From 357cab87ac7752b8e119b51c938b343c661d83c2 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Mon, 26 Dec 2022 16:42:08 +0900 Subject: [PATCH 01/65] fix(experimental): use new RT API (sorta) (#3179) --- server/api/externalapi.ts | 24 ++++++ server/api/rottentomatoes.ts | 147 +++++++++++++++++++++++------------ 2 files changed, 120 insertions(+), 51 deletions(-) diff --git a/server/api/externalapi.ts b/server/api/externalapi.ts index cc1e429ff..33e40e4d4 100644 --- a/server/api/externalapi.ts +++ b/server/api/externalapi.ts @@ -69,6 +69,30 @@ class ExternalAPI { return response.data; } + protected async post( + endpoint: string, + data: Record, + config?: AxiosRequestConfig, + ttl?: number + ): Promise { + const cacheKey = this.serializeCacheKey(endpoint, { + config: config?.params, + data, + }); + const cachedItem = this.cache?.get(cacheKey); + if (cachedItem) { + return cachedItem; + } + + const response = await this.axios.post(endpoint, data, config); + + if (this.cache) { + this.cache.set(cacheKey, response.data, ttl ?? DEFAULT_TTL); + } + + return response.data; + } + protected async getRolling( endpoint: string, config?: AxiosRequestConfig, diff --git a/server/api/rottentomatoes.ts b/server/api/rottentomatoes.ts index e190b7b97..7695e3987 100644 --- a/server/api/rottentomatoes.ts +++ b/server/api/rottentomatoes.ts @@ -1,28 +1,40 @@ import cacheManager from '@server/lib/cache'; +import { getSettings } from '@server/lib/settings'; import ExternalAPI from './externalapi'; -interface RTSearchResult { - meterClass: 'certified_fresh' | 'fresh' | 'rotten'; - meterScore: number; - url: string; +interface RTAlgoliaSearchResponse { + results: { + hits: RTAlgoliaHit[]; + index: 'content_rt' | 'people_rt'; + }[]; } -interface RTTvSearchResult extends RTSearchResult { +interface RTAlgoliaHit { + emsId: string; + emsVersionId: string; + tmsId: string; + type: string; title: string; - startYear: number; - endYear: number; -} -interface RTMovieSearchResult extends RTSearchResult { - name: string; - url: string; - year: number; -} - -interface RTMultiSearchResponse { - tvCount: number; - tvSeries: RTTvSearchResult[]; - movieCount: number; - movies: RTMovieSearchResult[]; + titles: string[]; + description: string; + releaseYear: string; + rating: string; + genres: string[]; + updateDate: string; + isEmsSearchable: boolean; + rtId: number; + vanity: string; + aka: string[]; + posterImageUrl: string; + rottenTomatoes: { + audienceScore: number; + criticsIconUrl: string; + wantToSeeCount: number; + audienceIconUrl: string; + scoreSentiment: string; + certifiedFresh: boolean; + criticsScore: number; + }; } export interface RTRating { @@ -47,13 +59,20 @@ export interface RTRating { */ class RottenTomatoes extends ExternalAPI { constructor() { + const settings = getSettings(); super( - 'https://www.rottentomatoes.com/api/private', - {}, + 'https://79frdp12pn-dsn.algolia.net/1/indexes/*', + { + 'x-algolia-agent': + 'Algolia%20for%20JavaScript%20(4.14.3)%3B%20Browser%20(lite)', + 'x-algolia-api-key': '175588f6e5f8319b27702e4cc4013561', + 'x-algolia-application-id': '79FRDP12PN', + }, { headers: { 'Content-Type': 'application/json', Accept: 'application/json', + 'x-algolia-usertoken': settings.clientId, }, nodeCache: cacheManager.getCache('rt').data, } @@ -61,14 +80,11 @@ class RottenTomatoes extends ExternalAPI { } /** - * Search the 1.0 api for the movie title + * Search the RT algolia api for the movie title * * We compare the release date to make sure its the correct * match. But it's not guaranteed to have results. * - * We use the 1.0 API here because the 2.0 search api does - * not return audience ratings. - * * @param name Movie name * @param year Release Year */ @@ -77,30 +93,45 @@ class RottenTomatoes extends ExternalAPI { year: number ): Promise { try { - const data = await this.get('/v2.0/search/', { - params: { q: name, limit: 10 }, + const data = await this.post('/queries', { + requests: [ + { + indexName: 'content_rt', + query: name, + params: 'filters=isEmsSearchable%20%3D%201&hitsPerPage=20', + }, + ], }); + const contentResults = data.results.find((r) => r.index === 'content_rt'); + + if (!contentResults) { + return null; + } + // First, attempt to match exact name and year - let movie = data.movies.find( - (movie) => movie.year === year && movie.name === name + let movie = contentResults.hits.find( + (movie) => movie.releaseYear === year.toString() && movie.title === name ); // If we don't find a movie, try to match partial name and year if (!movie) { - movie = data.movies.find( - (movie) => movie.year === year && movie.name.includes(name) + movie = contentResults.hits.find( + (movie) => + movie.releaseYear === year.toString() && movie.title.includes(name) ); } // If we still dont find a movie, try to match just on year if (!movie) { - movie = data.movies.find((movie) => movie.year === year); + movie = contentResults.hits.find( + (movie) => movie.releaseYear === year.toString() + ); } // One last try, try exact name match only if (!movie) { - movie = data.movies.find((movie) => movie.name === name); + movie = contentResults.hits.find((movie) => movie.title === name); } if (!movie) { @@ -108,16 +139,15 @@ class RottenTomatoes extends ExternalAPI { } return { - title: movie.name, - url: `https://www.rottentomatoes.com${movie.url}`, - criticsRating: - movie.meterClass === 'certified_fresh' - ? 'Certified Fresh' - : movie.meterClass === 'fresh' - ? 'Fresh' - : 'Rotten', - criticsScore: movie.meterScore, - year: movie.year, + title: movie.title, + url: `https://www.rottentomatoes.com/m/${movie.vanity}`, + criticsRating: movie.rottenTomatoes.certifiedFresh + ? 'Certified Fresh' + : movie.rottenTomatoes.criticsScore >= 60 + ? 'Fresh' + : 'Rotten', + criticsScore: movie.rottenTomatoes.criticsScore, + year: Number(movie.releaseYear), }; } catch (e) { throw new Error( @@ -131,14 +161,28 @@ class RottenTomatoes extends ExternalAPI { year?: number ): Promise { try { - const data = await this.get('/v2.0/search/', { - params: { q: name, limit: 10 }, + const data = await this.post('/queries', { + requests: [ + { + indexName: 'content_rt', + query: name, + params: 'filters=isEmsSearchable%20%3D%201&hitsPerPage=20', + }, + ], }); - let tvshow: RTTvSearchResult | undefined = data.tvSeries[0]; + const contentResults = data.results.find((r) => r.index === 'content_rt'); + + if (!contentResults) { + return null; + } + + let tvshow: RTAlgoliaHit | undefined = contentResults.hits[0]; if (year) { - tvshow = data.tvSeries.find((series) => series.startYear === year); + tvshow = contentResults.hits.find( + (series) => series.releaseYear === year.toString() + ); } if (!tvshow) { @@ -147,10 +191,11 @@ class RottenTomatoes extends ExternalAPI { return { title: tvshow.title, - url: `https://www.rottentomatoes.com${tvshow.url}`, - criticsRating: tvshow.meterClass === 'fresh' ? 'Fresh' : 'Rotten', - criticsScore: tvshow.meterScore, - year: tvshow.startYear, + url: `https://www.rottentomatoes.com/tv/${tvshow.vanity}`, + criticsRating: + tvshow.rottenTomatoes.criticsScore >= 60 ? 'Fresh' : 'Rotten', + criticsScore: tvshow.rottenTomatoes.criticsScore, + year: Number(tvshow.releaseYear), }; } catch (e) { throw new Error(`[RT API] Failed to retrieve tv ratings: ${e.message}`); From 03853a1b9155c8a2153c8885022a74619af1bc15 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Mon, 26 Dec 2022 21:13:57 -0500 Subject: [PATCH 02/65] feat(ui): request card progress bar (#3123) --- server/api/servarr/base.ts | 7 +- server/api/servarr/sonarr.ts | 21 ++- server/lib/downloadtracker.ts | 8 + src/components/CollectionDetails/index.tsx | 28 ++- src/components/Common/Tooltip/index.tsx | 41 +++-- src/components/DownloadBlock/index.tsx | 20 ++- src/components/MovieDetails/index.tsx | 4 + src/components/RequestCard/index.tsx | 6 + .../RequestList/RequestItem/index.tsx | 6 + src/components/StatusBadge/index.tsx | 169 ++++++++++++++++-- src/components/TvDetails/index.tsx | 4 + src/i18n/locale/en.json | 2 + 12 files changed, 283 insertions(+), 33 deletions(-) diff --git a/server/api/servarr/base.ts b/server/api/servarr/base.ts index 2b8ec4cb8..c004b4746 100644 --- a/server/api/servarr/base.ts +++ b/server/api/servarr/base.ts @@ -158,7 +158,12 @@ class ServarrBase extends ExternalAPI { public getQueue = async (): Promise<(QueueItem & QueueItemAppendT)[]> => { try { const response = await this.axios.get>( - `/queue` + `/queue`, + { + params: { + includeEpisode: true, + }, + } ); return response.data.records; diff --git a/server/api/servarr/sonarr.ts b/server/api/servarr/sonarr.ts index a5b9c1e8d..eca0208c7 100644 --- a/server/api/servarr/sonarr.ts +++ b/server/api/servarr/sonarr.ts @@ -13,6 +13,21 @@ interface SonarrSeason { percentOfEpisodes: number; }; } +interface EpisodeResult { + seriesId: number; + episodeFileId: number; + seasonNumber: number; + episodeNumber: number; + title: string; + airDate: string; + airDateUtc: string; + overview: string; + hasFile: boolean; + monitored: boolean; + absoluteEpisodeNumber: number; + unverifiedSceneNumbering: boolean; + id: number; +} export interface SonarrSeries { title: string; @@ -82,7 +97,11 @@ export interface LanguageProfile { name: string; } -class SonarrAPI extends ServarrBase<{ seriesId: number; episodeId: number }> { +class SonarrAPI extends ServarrBase<{ + seriesId: number; + episodeId: number; + episode: EpisodeResult; +}> { constructor({ url, apiKey }: { url: string; apiKey: string }) { super({ url, apiKey, apiName: 'Sonarr', cacheName: 'sonarr' }); } diff --git a/server/lib/downloadtracker.ts b/server/lib/downloadtracker.ts index 4aef968f1..cf29313e9 100644 --- a/server/lib/downloadtracker.ts +++ b/server/lib/downloadtracker.ts @@ -5,6 +5,12 @@ import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { uniqWith } from 'lodash'; +interface EpisodeNumberResult { + seasonNumber: number; + episodeNumber: number; + absoluteEpisodeNumber: number; + id: number; +} export interface DownloadingItem { mediaType: MediaType; externalId: number; @@ -14,6 +20,7 @@ export interface DownloadingItem { timeLeft: string; estimatedCompletionTime: Date; title: string; + episode?: EpisodeNumberResult; } class DownloadTracker { @@ -164,6 +171,7 @@ class DownloadTracker { status: item.status, timeLeft: item.timeleft, title: item.title, + episode: item.episode, })); if (queueItems.length > 0) { diff --git a/src/components/CollectionDetails/index.tsx b/src/components/CollectionDetails/index.tsx index 52bd8a269..60ce94053 100644 --- a/src/components/CollectionDetails/index.tsx +++ b/src/components/CollectionDetails/index.tsx @@ -16,7 +16,7 @@ import type { Collection } from '@server/models/Collection'; import { uniq } from 'lodash'; import Link from 'next/link'; import { useRouter } from 'next/router'; -import { useState } from 'react'; +import { useMemo, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import useSWR from 'swr'; @@ -51,6 +51,28 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { const { data: genres } = useSWR<{ id: number; name: string }[]>(`/api/v1/genres/movie`); + const [downloadStatus, downloadStatus4k] = useMemo(() => { + return [ + data?.parts.flatMap((item) => + item.mediaInfo?.downloadStatus ? item.mediaInfo?.downloadStatus : [] + ), + data?.parts.flatMap((item) => + item.mediaInfo?.downloadStatus4k ? item.mediaInfo?.downloadStatus4k : [] + ), + ]; + }, [data?.parts]); + + const [titles, titles4k] = useMemo(() => { + return [ + data?.parts + .filter((media) => (media.mediaInfo?.downloadStatus ?? []).length > 0) + .map((title) => title.title), + data?.parts + .filter((media) => (media.mediaInfo?.downloadStatus4k ?? []).length > 0) + .map((title) => title.title), + ]; + }, [data?.parts]); + if (!data && !error) { return ; } @@ -205,6 +227,8 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => {
(part.mediaInfo?.downloadStatus ?? []).length > 0 )} @@ -218,6 +242,8 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { ) && ( diff --git a/src/components/Common/Tooltip/index.tsx b/src/components/Common/Tooltip/index.tsx index 82bc7a7a9..e8574699e 100644 --- a/src/components/Common/Tooltip/index.tsx +++ b/src/components/Common/Tooltip/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import ReactDOM from 'react-dom'; import type { Config } from 'react-popper-tooltip'; import { usePopperTooltip } from 'react-popper-tooltip'; @@ -6,9 +7,15 @@ type TooltipProps = { content: React.ReactNode; children: React.ReactElement; tooltipConfig?: Partial; + className?: string; }; -const Tooltip = ({ children, content, tooltipConfig }: TooltipProps) => { +const Tooltip = ({ + children, + content, + tooltipConfig, + className, +}: TooltipProps) => { const { getTooltipProps, setTooltipRef, setTriggerRef, visible } = usePopperTooltip({ followCursor: true, @@ -17,20 +24,30 @@ const Tooltip = ({ children, content, tooltipConfig }: TooltipProps) => { ...tooltipConfig, }); + const tooltipStyle = [ + 'z-50 text-sm absolute font-normal bg-gray-800 px-2 py-1 rounded border border-gray-600 shadow text-gray-100', + ]; + + if (className) { + tooltipStyle.push(className); + } + return ( <> {React.cloneElement(children, { ref: setTriggerRef })} - {visible && content && ( -
- {content} -
- )} + {visible && + content && + ReactDOM.createPortal( +
+ {content} +
, + document.body + )} ); }; diff --git a/src/components/DownloadBlock/index.tsx b/src/components/DownloadBlock/index.tsx index 0597e3a6a..6bb04b54f 100644 --- a/src/components/DownloadBlock/index.tsx +++ b/src/components/DownloadBlock/index.tsx @@ -1,23 +1,39 @@ import Badge from '@app/components/Common/Badge'; +import { Permission, useUser } from '@app/hooks/useUser'; import type { DownloadingItem } from '@server/lib/downloadtracker'; import { defineMessages, FormattedRelativeTime, useIntl } from 'react-intl'; const messages = defineMessages({ estimatedtime: 'Estimated {time}', + formattedTitle: '{title}: Season {seasonNumber} Episode {episodeNumber}', }); interface DownloadBlockProps { downloadItem: DownloadingItem; is4k?: boolean; + title?: string; } -const DownloadBlock = ({ downloadItem, is4k = false }: DownloadBlockProps) => { +const DownloadBlock = ({ + downloadItem, + is4k = false, + title, +}: DownloadBlockProps) => { const intl = useIntl(); + const { hasPermission } = useUser(); return (
- {downloadItem.title} + {hasPermission(Permission.ADMIN) + ? downloadItem.title + : downloadItem.episode + ? intl.formatMessage(messages.formattedTitle, { + title, + seasonNumber: downloadItem?.episode?.seasonNumber, + episodeNumber: downloadItem?.episode?.episodeNumber, + }) + : title}
{
0} tmdbId={data.mediaInfo?.tmdbId} mediaType="movie" @@ -324,6 +326,8 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { ) && ( 0 diff --git a/src/components/RequestCard/index.tsx b/src/components/RequestCard/index.tsx index b98ecc7fb..f48d8fc0a 100644 --- a/src/components/RequestCard/index.tsx +++ b/src/components/RequestCard/index.tsx @@ -397,6 +397,12 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { status={ requestData.media[requestData.is4k ? 'status4k' : 'status'] } + downloadItem={ + (requestData.media?.downloadStatus4k ?? []).length > 0 + ? requestData.media?.downloadStatus4k + : requestData.media?.downloadStatus + } + title={isMovie(title) ? title.title : title.name} inProgress={ ( requestData.media[ diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index 88bd29c8b..31c9009ae 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -463,6 +463,12 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { status={ requestData.media[requestData.is4k ? 'status4k' : 'status'] } + downloadItem={ + requestData.media?.downloadStatus4k + ? requestData.media?.downloadStatus4k + : requestData.media?.downloadStatus + } + title={isMovie(title) ? title.title : title.name} inProgress={ ( requestData.media[ diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index 22fa2bbe8..278c8819b 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -1,10 +1,12 @@ import Spinner from '@app/assets/spinner.svg'; import Badge from '@app/components/Common/Badge'; import Tooltip from '@app/components/Common/Tooltip'; +import DownloadBlock from '@app/components/DownloadBlock'; import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { MediaStatus } from '@server/constants/media'; +import type { DownloadingItem } from '@server/lib/downloadtracker'; import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ @@ -13,26 +15,31 @@ const messages = defineMessages({ playonplex: 'Play on Plex', openinarr: 'Open in {arr}', managemedia: 'Manage {mediaType}', + seasonepisodenumber: 'S{seasonNumber}E{episodeNumber}', }); interface StatusBadgeProps { status?: MediaStatus; + downloadItem?: DownloadingItem[]; is4k?: boolean; inProgress?: boolean; plexUrl?: string; serviceUrl?: string; tmdbId?: number; mediaType?: 'movie' | 'tv'; + title?: string | string[]; } const StatusBadge = ({ status, + downloadItem = [], is4k = false, inProgress = false, plexUrl, serviceUrl, tmdbId, mediaType, + title, }: StatusBadgeProps) => { const intl = useIntl(); const { hasPermission } = useUser(); @@ -41,6 +48,10 @@ const StatusBadge = ({ let mediaLink: string | undefined; let mediaLinkDescription: string | undefined; + const calculateDownloadProgress = (media: DownloadingItem) => { + return Math.round(((media?.size - media?.sizeLeft) / media?.size) * 100); + }; + if ( mediaType && plexUrl && @@ -85,21 +96,87 @@ const StatusBadge = ({ } } + const tooltipContent = downloadItem ? ( +
    + {downloadItem.map((status, index) => ( +
  • + +
  • + ))} +
+ ) : ( + mediaLinkDescription + ); + + const badgeDownloadProgress = ( +
+ ); + switch (status) { case MediaStatus.AVAILABLE: return ( - - -
+ + + {inProgress && badgeDownloadProgress} +
{intl.formatMessage( is4k ? messages.status4k : messages.status, { - status: intl.formatMessage(globalMessages.available), + status: inProgress + ? intl.formatMessage(globalMessages.processing) + : intl.formatMessage(globalMessages.available), } )} - {inProgress && } + {inProgress && ( + <> + {mediaType === 'tv' && ( + + {intl.formatMessage(messages.seasonepisodenumber, { + seasonNumber: downloadItem[0].episode?.seasonNumber, + episodeNumber: downloadItem[0].episode?.episodeNumber, + })} + + )} + + + )}
@@ -107,20 +184,50 @@ const StatusBadge = ({ case MediaStatus.PARTIALLY_AVAILABLE: return ( - - -
+ + + {inProgress && badgeDownloadProgress} +
{intl.formatMessage( is4k ? messages.status4k : messages.status, { - status: intl.formatMessage( - globalMessages.partiallyavailable - ), + status: inProgress + ? intl.formatMessage(globalMessages.processing) + : intl.formatMessage(globalMessages.partiallyavailable), } )} - {inProgress && } + {inProgress && ( + <> + {mediaType === 'tv' && ( + + {intl.formatMessage(messages.seasonepisodenumber, { + seasonNumber: downloadItem[0].episode?.seasonNumber, + episodeNumber: downloadItem[0].episode?.episodeNumber, + })} + + )} + + + )}
@@ -128,9 +235,27 @@ const StatusBadge = ({ case MediaStatus.PROCESSING: return ( - - -
+ + + {inProgress && badgeDownloadProgress} +
{intl.formatMessage( is4k ? messages.status4k : messages.status, @@ -141,7 +266,19 @@ const StatusBadge = ({ } )} - {inProgress && } + {inProgress && ( + <> + {mediaType === 'tv' && ( + + {intl.formatMessage(messages.seasonepisodenumber, { + seasonNumber: downloadItem[0].episode?.seasonNumber, + episodeNumber: downloadItem[0].episode?.episodeNumber, + })} + + )} + + + )}
diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 628175f4f..876423905 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -318,6 +318,8 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
0} tmdbId={data.mediaInfo?.tmdbId} mediaType="tv" @@ -337,6 +339,8 @@ const TvDetails = ({ tv }: TvDetailsProps) => { ) && ( 0 diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index d05928cd5..18322e25c 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -34,6 +34,7 @@ "components.Discover.upcomingmovies": "Upcoming Movies", "components.Discover.upcomingtv": "Upcoming Series", "components.DownloadBlock.estimatedtime": "Estimated {time}", + "components.DownloadBlock.formattedTitle": "{title}: Season {seasonNumber} Episode {episodeNumber}", "components.IssueDetails.IssueComment.areyousuredelete": "Are you sure you want to delete this comment?", "components.IssueDetails.IssueComment.delete": "Delete Comment", "components.IssueDetails.IssueComment.edit": "Edit Comment", @@ -875,6 +876,7 @@ "components.StatusBadge.managemedia": "Manage {mediaType}", "components.StatusBadge.openinarr": "Open in {arr}", "components.StatusBadge.playonplex": "Play on Plex", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", "components.StatusBadge.status": "{status}", "components.StatusBadge.status4k": "4K {status}", "components.StatusChecker.appUpdated": "{applicationTitle} Updated", From 27feeea69121336557deda1f32b65a5daa146f82 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Mon, 26 Dec 2022 23:54:17 -0500 Subject: [PATCH 03/65] fix: changed overflow scroll to only if necessary (#3184) --- src/components/StatusBadge/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index 278c8819b..9dd1a7eb3 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -136,7 +136,7 @@ const StatusBadge = ({ @@ -187,7 +187,7 @@ const StatusBadge = ({ @@ -238,7 +238,7 @@ const StatusBadge = ({ From 6face8cc4564b978fb98af32659b326d8c5cede8 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Tue, 27 Dec 2022 10:17:32 -0500 Subject: [PATCH 04/65] fix: tooltip shows properly if not in progress (#3185) --- src/components/StatusBadge/index.tsx | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index 9dd1a7eb3..02bf383a1 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -96,7 +96,7 @@ const StatusBadge = ({ } } - const tooltipContent = downloadItem ? ( + const tooltipContent = (
    {downloadItem.map((status, index) => (
  • ))}
- ) : ( - mediaLinkDescription ); const badgeDownloadProgress = ( @@ -134,11 +132,13 @@ const StatusBadge = ({ case MediaStatus.AVAILABLE: return ( {inProgress && badgeDownloadProgress} From 3309f77aa4be1d70b27693531c119a8e26822518 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Wed, 28 Dec 2022 00:57:11 -0500 Subject: [PATCH 05/65] fix: added download status and title to request card/item error components (#3186) --- src/components/RequestCard/index.tsx | 16 +++++++++++++--- src/components/RequestList/RequestItem/index.tsx | 14 +++++++++++--- src/components/StatusBadge/index.tsx | 2 +- src/i18n/locale/en.json | 2 ++ 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/components/RequestCard/index.tsx b/src/components/RequestCard/index.tsx index f48d8fc0a..6efdb6a1f 100644 --- a/src/components/RequestCard/index.tsx +++ b/src/components/RequestCard/index.tsx @@ -38,6 +38,7 @@ const messages = defineMessages({ editrequest: 'Edit Request', cancelrequest: 'Cancel Request', deleterequest: 'Delete Request', + unknowntitle: 'Unknown Title', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { @@ -136,6 +137,14 @@ const RequestCardError = ({ requestData }: RequestCardErrorProps) => { requestData.is4k ? 'status4k' : 'status' ] } + downloadItem={ + requestData.media[ + requestData.is4k + ? 'downloadStatus4k' + : 'downloadStatus' + ] + } + title={intl.formatMessage(messages.unknowntitle)} inProgress={ ( requestData.media[ @@ -146,6 +155,7 @@ const RequestCardError = ({ requestData }: RequestCardErrorProps) => { ).length > 0 } is4k={requestData.is4k} + mediaType={requestData.type} plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k @@ -398,9 +408,9 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { requestData.media[requestData.is4k ? 'status4k' : 'status'] } downloadItem={ - (requestData.media?.downloadStatus4k ?? []).length > 0 - ? requestData.media?.downloadStatus4k - : requestData.media?.downloadStatus + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] } title={isMovie(title) ? title.title : title.name} inProgress={ diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index 31c9009ae..864ca7e4f 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -39,6 +39,7 @@ const messages = defineMessages({ cancelRequest: 'Cancel Request', tmdbid: 'TMDB ID', tvdbid: 'TheTVDB ID', + unknowntitle: 'Unknown Title', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { @@ -128,6 +129,12 @@ const RequestItemError = ({ requestData.is4k ? 'status4k' : 'status' ] } + downloadItem={ + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] + } + title={intl.formatMessage(messages.unknowntitle)} inProgress={ ( requestData.media[ @@ -138,6 +145,7 @@ const RequestItemError = ({ ).length > 0 } is4k={requestData.is4k} + mediaType={requestData.type} plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k @@ -464,9 +472,9 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { requestData.media[requestData.is4k ? 'status4k' : 'status'] } downloadItem={ - requestData.media?.downloadStatus4k - ? requestData.media?.downloadStatus4k - : requestData.media?.downloadStatus + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] } title={isMovie(title) ? title.title : title.name} inProgress={ diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index 02bf383a1..b301b11fa 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -251,7 +251,7 @@ const StatusBadge = ({ href={mediaLink} className={`${ inProgress && - 'relative !bg-gray-700 !bg-opacity-80 !px-0 hover:overflow-hidden hover:!bg-gray-700' + 'relative !bg-gray-700 !bg-opacity-80 !px-0 hover:!bg-gray-700' } overflow-hidden`} > {inProgress && badgeDownloadProgress} diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 18322e25c..4ffb110e1 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -330,6 +330,7 @@ "components.RequestCard.seasons": "{seasonCount, plural, one {Season} other {Seasons}}", "components.RequestCard.tmdbid": "TMDB ID", "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Unknown Title", "components.RequestList.RequestItem.cancelRequest": "Cancel Request", "components.RequestList.RequestItem.deleterequest": "Delete Request", "components.RequestList.RequestItem.editrequest": "Edit Request", @@ -342,6 +343,7 @@ "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Season} other {Seasons}}", "components.RequestList.RequestItem.tmdbid": "TMDB ID", "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Unknown Title", "components.RequestList.requests": "Requests", "components.RequestList.showallrequests": "Show All Requests", "components.RequestList.sortAdded": "Most Recent", From 76335ec8d321752b71378f9a363ff70ed6928f9f Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Thu, 29 Dec 2022 23:10:23 +0900 Subject: [PATCH 06/65] refactor: update mini status icons on titlecard to match badge colors (#3188) --- src/components/TitleCard/index.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/TitleCard/index.tsx b/src/components/TitleCard/index.tsx index f5f69605e..cca56cb42 100644 --- a/src/components/TitleCard/index.tsx +++ b/src/components/TitleCard/index.tsx @@ -129,8 +129,10 @@ const TitleCard = ({ />
@@ -142,17 +144,17 @@ const TitleCard = ({
{(currentStatus === MediaStatus.AVAILABLE || currentStatus === MediaStatus.PARTIALLY_AVAILABLE) && ( -
+
)} {currentStatus === MediaStatus.PENDING && ( -
+
)} {currentStatus === MediaStatus.PROCESSING && ( -
+
{inProgress ? ( ) : ( From 68223f4b1e98b01825516dcba39cbb2d3df31a70 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Thu, 29 Dec 2022 21:36:47 -0500 Subject: [PATCH 07/65] fix: add bg-opacity to in-progress status badges (#3190) --- src/components/StatusBadge/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/StatusBadge/index.tsx b/src/components/StatusBadge/index.tsx index b301b11fa..3dbe6e74b 100644 --- a/src/components/StatusBadge/index.tsx +++ b/src/components/StatusBadge/index.tsx @@ -116,7 +116,7 @@ const StatusBadge = ({ const badgeDownloadProgress = (
Date: Fri, 30 Dec 2022 11:38:08 +0900 Subject: [PATCH 08/65] chore: update to use github codeql (#3191) [skip ci] --- .github/workflows/codeql.yml | 41 ++++++++++++++++++++++++++++++++++++ README.md | 1 - 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..10926bbd9 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: 'CodeQL' + +on: + push: + branches: ['develop'] + pull_request: + branches: ['develop'] + schedule: + - cron: '50 7 * * 5' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [javascript] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: '/language:${{ matrix.language }}' diff --git a/README.md b/README.md index d81193a2a..f2edc25a7 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ Discord Docker pulls Translation status -Language grade: JavaScript GitHub All Contributors From cd3574851a12517cbfadc109e6412a7a9e44c114 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Tue, 3 Jan 2023 16:04:28 +0900 Subject: [PATCH 09/65] feat: add discover customization (#3182) --- .../e2e/settings/discover-customization.cy.ts | 151 +++ cypress/e2e/settings/general-settings.cy.ts | 4 +- overseerr-api.yml | 224 ++++ package.json | 1 + server/api/themoviedb/index.ts | 77 ++ server/api/themoviedb/interfaces.ts | 15 + server/constants/discover.ts | 98 ++ server/entity/DiscoverSlider.ts | 69 + server/index.ts | 4 + .../1672041273674-AddDiscoverSlider.ts | 15 + server/routes/discover.ts | 29 + server/routes/index.ts | 9 + server/routes/search.ts | 46 + server/routes/settings/discover.ts | 100 ++ server/routes/settings/index.ts | 2 + src/components/Common/SlideCheckbox/index.tsx | 38 + .../Discover/DiscoverMovieKeyword/index.tsx | 68 + .../Discover/DiscoverTvKeyword/index.tsx | 68 + .../Discover/PlexWatchlistSlider/index.tsx | 79 ++ .../Discover/RecentRequestsSlider/index.tsx | 49 + .../Discover/RecentlyAddedSlider/index.tsx | 53 + src/components/Discover/constants.ts | 24 + src/components/Discover/index.tsx | 315 +++-- src/components/MediaSlider/index.tsx | 16 +- .../CreateSlider/index.tsx | 383 ++++++ .../DiscoverOption/index.tsx | 170 +++ .../DiscoverCustomization/index.tsx | 220 ++++ .../index.tsx} | 15 +- src/hooks/useSearchInput.ts | 2 +- src/i18n/locale/en.json | 100 +- src/pages/discover/movies/keyword/index.tsx | 8 + src/pages/discover/tv/keyword/index.tsx | 8 + src/styles/globals.css | 8 + yarn.lock | 1116 +++++++++++++++++ 34 files changed, 3389 insertions(+), 195 deletions(-) create mode 100644 cypress/e2e/settings/discover-customization.cy.ts create mode 100644 server/constants/discover.ts create mode 100644 server/entity/DiscoverSlider.ts create mode 100644 server/migration/1672041273674-AddDiscoverSlider.ts create mode 100644 server/routes/settings/discover.ts create mode 100644 src/components/Common/SlideCheckbox/index.tsx create mode 100644 src/components/Discover/DiscoverMovieKeyword/index.tsx create mode 100644 src/components/Discover/DiscoverTvKeyword/index.tsx create mode 100644 src/components/Discover/PlexWatchlistSlider/index.tsx create mode 100644 src/components/Discover/RecentRequestsSlider/index.tsx create mode 100644 src/components/Discover/RecentlyAddedSlider/index.tsx create mode 100644 src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx create mode 100644 src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx create mode 100644 src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx rename src/components/Settings/{SettingsMain.tsx => SettingsMain/index.tsx} (96%) create mode 100644 src/pages/discover/movies/keyword/index.tsx create mode 100644 src/pages/discover/tv/keyword/index.tsx diff --git a/cypress/e2e/settings/discover-customization.cy.ts b/cypress/e2e/settings/discover-customization.cy.ts new file mode 100644 index 000000000..8c96b6e3c --- /dev/null +++ b/cypress/e2e/settings/discover-customization.cy.ts @@ -0,0 +1,151 @@ +describe('Discover Customization', () => { + beforeEach(() => { + cy.loginAsAdmin(); + cy.intercept('/api/v1/settings/discover').as('getDiscoverSliders'); + }); + + it('show the discover customization settings', () => { + cy.visit('/settings'); + + cy.get('[data-testid=discover-customization]') + .should('contain', 'Discover Customization') + .scrollIntoView(); + + // There should be some built in options + cy.get('[data-testid=discover-option]').should('contain', 'Recently Added'); + cy.get('[data-testid=discover-option]').should( + 'contain', + 'Recent Requests' + ); + }); + + it('can drag to re-order elements and save to persist the changes', () => { + let dataTransfer = new DataTransfer(); + cy.visit('/settings'); + + cy.get('[data-testid=discover-option]') + .first() + .trigger('dragstart', { dataTransfer }); + cy.get('[data-testid=discover-option]') + .eq(1) + .trigger('drop', { dataTransfer }); + cy.get('[data-testid=discover-option]') + .eq(1) + .trigger('dragend', { dataTransfer }); + + cy.get('[data-testid=discover-option]') + .eq(1) + .should('contain', 'Recently Added'); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + + cy.reload(); + + dataTransfer = new DataTransfer(); + + cy.get('[data-testid=discover-option]') + .eq(1) + .should('contain', 'Recently Added'); + + cy.get('[data-testid=discover-option]') + .first() + .trigger('dragstart', { dataTransfer }); + cy.get('[data-testid=discover-option]') + .eq(1) + .trigger('drop', { dataTransfer }); + cy.get('[data-testid=discover-option]') + .eq(1) + .trigger('dragend', { dataTransfer }); + + cy.get('[data-testid=discover-option]') + .eq(1) + .should('contain', 'Recent Requests'); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + }); + + it('can create a new discover option and remove it', () => { + cy.visit('/settings'); + cy.intercept('/api/v1/settings/discover/*').as('discoverSlider'); + cy.intercept('/api/v1/search/keyword*').as('searchKeyword'); + + const sliderTitle = 'Custom Keyword Slider'; + + cy.get('#sliderType').select('TMDB Movie Keyword'); + + cy.get('#title').type(sliderTitle); + // First confirm that an invalid keyword doesn't allow us to submit anything + cy.get('#data').type('invalidkeyword{enter}', { delay: 100 }); + cy.wait('@searchKeyword'); + + cy.get('[data-testid=create-discover-option-form]') + .find('button') + .should('be.disabled'); + + cy.get('#data').clear(); + cy.get('#data').type('time travel{enter}', { delay: 100 }); + + // Confirming we have some results + cy.contains('.slider-header', sliderTitle) + .next('[data-testid=media-slider]') + .find('[data-testid=title-card]'); + + cy.get('[data-testid=create-discover-option-form]').submit(); + + cy.wait('@discoverSlider'); + cy.wait('@getDiscoverSliders'); + cy.wait(1000); + + cy.get('[data-testid=discover-option]') + .first() + .should('contain', sliderTitle); + + // Make sure its still there even if we reload + cy.reload(); + + cy.get('[data-testid=discover-option]') + .first() + .should('contain', sliderTitle); + + // Verify it's not rendering on our discover page (its still disabled!) + cy.visit('/'); + + cy.get('.slider-header').should('not.contain', sliderTitle); + + cy.visit('/settings'); + + // Enable it, and check again + cy.get('[data-testid=discover-option]') + .first() + .find('[role="checkbox"]') + .click(); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + + cy.visit('/'); + + cy.contains('.slider-header', sliderTitle) + .next('[data-testid=media-slider]') + .find('[data-testid=title-card]'); + + cy.visit('/settings'); + + // let's delete it and confirm its deleted. + cy.get('[data-testid=discover-option]') + .first() + .find('button') + .should('contain', 'Remove') + .click(); + + cy.wait('@discoverSlider'); + cy.wait('@getDiscoverSliders'); + cy.wait(1000); + + cy.get('[data-testid=discover-option]') + .first() + .should('not.contain', sliderTitle); + }); +}); diff --git a/cypress/e2e/settings/general-settings.cy.ts b/cypress/e2e/settings/general-settings.cy.ts index 3717f65b0..bcfce1a32 100644 --- a/cypress/e2e/settings/general-settings.cy.ts +++ b/cypress/e2e/settings/general-settings.cy.ts @@ -16,7 +16,7 @@ describe('General Settings', () => { cy.visit('/settings'); cy.get('#trustProxy').click(); - cy.get('form').submit(); + cy.get('[data-testid=settings-main-form]').submit(); cy.get('[data-testid=modal-title]').should( 'contain', 'Server Restart Required' @@ -26,7 +26,7 @@ describe('General Settings', () => { cy.get('[data-testid=modal-title]').should('not.exist'); cy.get('[type=checkbox]#trustProxy').click(); - cy.get('form').submit(); + cy.get('[data-testid=settings-main-form]').submit(); cy.get('[data-testid=modal-title]').should('not.exist'); }); }); diff --git a/overseerr-api.yml b/overseerr-api.yml index f114cce1a..fb4e91aff 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -600,6 +600,17 @@ components: name: type: string example: Adventure + Company: + type: object + properties: + id: + type: number + example: 1 + logo_path: + type: string + nullable: true + name: + type: string ProductionCompany: type: object properties: @@ -1780,6 +1791,31 @@ components: message: type: string example: A comment + DiscoverSlider: + type: object + properties: + id: + type: number + example: 1 + type: + type: number + example: 1 + title: + type: string + nullable: true + isBuiltIn: + type: boolean + enabled: + type: boolean + data: + type: string + example: '1234' + nullable: true + required: + - type + - enabled + - title + - data securitySchemes: cookieAuth: type: apiKey @@ -3042,6 +3078,104 @@ paths: responses: '204': description: Test notification attempted + /settings/discover: + get: + summary: Get all discover sliders + description: Returns all discovery sliders. Built-in and custom made. + tags: + - settings + responses: + '200': + description: Returned all discovery sliders + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + post: + summary: Batch update all sliders. + description: | + Batch update all sliders at once. Should also be used for creation. Will only update sliders provided + and will not delete any sliders not present in the request. If a slider is missing a required field, + it will be ignored. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + responses: + '200': + description: Returned all newly updated discovery sliders + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/{sliderId}: + delete: + summary: Delete slider by ID + description: Deletes the slider with the provided sliderId. Requires the `ADMIN` permission. + tags: + - settings + parameters: + - in: path + name: sliderId + required: true + schema: + type: number + responses: + '200': + description: Slider successfully deleted + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/add: + post: + summary: Add a new slider + description: | + Add a single slider and return the newly created slider. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + example: 'New Slider' + type: + type: number + example: 1 + data: + type: string + example: '1' + responses: + '200': + description: Returns newly added discovery slider + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/reset: + get: + summary: Reset all discover sliders + description: Resets all discovery sliders to the default values. Requires the `ADMIN` permission. + tags: + - settings + responses: + '204': + description: All sliders reset to defaults /settings/about: get: summary: Get server stats @@ -3862,6 +3996,86 @@ paths: - $ref: '#/components/schemas/MovieResult' - $ref: '#/components/schemas/TvResult' - $ref: '#/components/schemas/PersonResult' + /search/keyword: + get: + summary: Search for keywords + description: Returns a list of TMDB keywords matching the search query + tags: + - search + parameters: + - in: query + name: query + required: true + schema: + type: string + example: 'christmas' + - in: query + name: page + schema: + type: number + example: 1 + default: 1 + responses: + '200': + description: Results + content: + application/json: + schema: + type: object + properties: + page: + type: number + example: 1 + totalPages: + type: number + example: 20 + totalResults: + type: number + example: 200 + results: + type: array + items: + $ref: '#/components/schemas/Keyword' + /search/company: + get: + summary: Search for companies + description: Returns a list of TMDB companies matching the search query. (Will not return origin country) + tags: + - search + parameters: + - in: query + name: query + required: true + schema: + type: string + example: 'Disney' + - in: query + name: page + schema: + type: number + example: 1 + default: 1 + responses: + '200': + description: Results + content: + application/json: + schema: + type: object + properties: + page: + type: number + example: 1 + totalPages: + type: number + example: 20 + totalResults: + type: number + example: 200 + results: + type: array + items: + $ref: '#/components/schemas/Company' /discover/movies: get: summary: Discover movies @@ -3890,6 +4104,11 @@ paths: schema: type: number example: 1 + - in: query + name: keywords + schema: + type: string + example: 1,2 responses: '200': description: Results @@ -4119,6 +4338,11 @@ paths: schema: type: number example: 1 + - in: query + name: keywords + schema: + type: string + example: 1,2 responses: '200': description: Results diff --git a/package.json b/package.json index 9d9fca3ba..bd88b9dd1 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "react": "18.2.0", "react-ace": "10.1.0", "react-animate-height": "2.1.2", + "react-aria": "^3.21.0", "react-dom": "18.2.0", "react-intersection-observer": "9.4.0", "react-intl": "6.0.5", diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index ea05b8ab9..bcfc06bb3 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -3,9 +3,12 @@ import cacheManager from '@server/lib/cache'; import { sortBy } from 'lodash'; import type { TmdbCollection, + TmdbCompanySearchResponse, TmdbExternalIdResponse, TmdbGenre, TmdbGenresResult, + TmdbKeyword, + TmdbKeywordSearchResponse, TmdbLanguage, TmdbMovieDetails, TmdbNetwork, @@ -41,6 +44,7 @@ interface DiscoverMovieOptions { originalLanguage?: string; genre?: number; studio?: number; + keywords?: string; sortBy?: | 'popularity.asc' | 'popularity.desc' @@ -67,6 +71,7 @@ interface DiscoverTvOptions { originalLanguage?: string; genre?: number; network?: number; + keywords?: string; sortBy?: | 'popularity.asc' | 'popularity.desc' @@ -440,6 +445,7 @@ class TheMovieDb extends ExternalAPI { originalLanguage, genre, studio, + keywords, }: DiscoverMovieOptions = {}): Promise => { try { const data = await this.get('/discover/movie', { @@ -454,6 +460,7 @@ class TheMovieDb extends ExternalAPI { 'primary_release_date.lte': primaryReleaseDateLte, with_genres: genre, with_companies: studio, + with_keywords: keywords, }, }); @@ -473,6 +480,7 @@ class TheMovieDb extends ExternalAPI { originalLanguage, genre, network, + keywords, }: DiscoverTvOptions = {}): Promise => { try { const data = await this.get('/discover/tv', { @@ -487,6 +495,7 @@ class TheMovieDb extends ExternalAPI { include_null_first_air_dates: includeEmptyReleaseDate, with_genres: genre, with_networks: network, + with_keywords: keywords, }, }); @@ -874,6 +883,74 @@ class TheMovieDb extends ExternalAPI { throw new Error(`[TMDB] Failed to fetch TV genres: ${e.message}`); } } + + public async getKeywordDetails({ + keywordId, + }: { + keywordId: number; + }): Promise { + try { + const data = await this.get( + `/keyword/${keywordId}`, + undefined, + 604800 // 7 days + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to fetch keyword: ${e.message}`); + } + } + + public async searchKeyword({ + query, + page = 1, + }: { + query: string; + page?: number; + }): Promise { + try { + const data = await this.get( + '/search/keyword', + { + params: { + query, + page, + }, + }, + 86400 // 24 hours + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to search keyword: ${e.message}`); + } + } + + public async searchCompany({ + query, + page = 1, + }: { + query: string; + page?: number; + }): Promise { + try { + const data = await this.get( + '/search/company', + { + params: { + query, + page, + }, + }, + 86400 // 24 hours + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to search companies: ${e.message}`); + } + } } export default TheMovieDb; diff --git a/server/api/themoviedb/interfaces.ts b/server/api/themoviedb/interfaces.ts index 6d005dc94..a35154167 100644 --- a/server/api/themoviedb/interfaces.ts +++ b/server/api/themoviedb/interfaces.ts @@ -428,3 +428,18 @@ export interface TmdbWatchProviderDetails { provider_id: number; provider_name: string; } + +export interface TmdbKeywordSearchResponse extends TmdbPaginatedResponse { + results: TmdbKeyword[]; +} + +// We have production companies, but the company search results return less data +export interface TmdbCompany { + id: number; + logo_path?: string; + name: string; +} + +export interface TmdbCompanySearchResponse extends TmdbPaginatedResponse { + results: TmdbCompany[]; +} diff --git a/server/constants/discover.ts b/server/constants/discover.ts new file mode 100644 index 000000000..a19f07422 --- /dev/null +++ b/server/constants/discover.ts @@ -0,0 +1,98 @@ +import type DiscoverSlider from '@server/entity/DiscoverSlider'; + +export enum DiscoverSliderType { + RECENTLY_ADDED = 1, + RECENT_REQUESTS, + PLEX_WATCHLIST, + TRENDING, + POPULAR_MOVIES, + MOVIE_GENRES, + UPCOMING_MOVIES, + STUDIOS, + POPULAR_TV, + TV_GENRES, + UPCOMING_TV, + NETWORKS, + TMDB_MOVIE_KEYWORD, + TMDB_MOVIE_GENRE, + TMDB_TV_KEYWORD, + TMDB_TV_GENRE, + TMDB_SEARCH, + TMDB_STUDIO, + TMDB_NETWORK, +} + +export const defaultSliders: Partial[] = [ + { + type: DiscoverSliderType.RECENTLY_ADDED, + enabled: true, + isBuiltIn: true, + order: 0, + }, + { + type: DiscoverSliderType.RECENT_REQUESTS, + enabled: true, + isBuiltIn: true, + order: 1, + }, + { + type: DiscoverSliderType.PLEX_WATCHLIST, + enabled: true, + isBuiltIn: true, + order: 2, + }, + { + type: DiscoverSliderType.TRENDING, + enabled: true, + isBuiltIn: true, + order: 3, + }, + { + type: DiscoverSliderType.POPULAR_MOVIES, + enabled: true, + isBuiltIn: true, + order: 4, + }, + { + type: DiscoverSliderType.MOVIE_GENRES, + enabled: true, + isBuiltIn: true, + order: 5, + }, + { + type: DiscoverSliderType.UPCOMING_MOVIES, + enabled: true, + isBuiltIn: true, + order: 6, + }, + { + type: DiscoverSliderType.STUDIOS, + enabled: true, + isBuiltIn: true, + order: 7, + }, + { + type: DiscoverSliderType.POPULAR_TV, + enabled: true, + isBuiltIn: true, + order: 8, + }, + { + type: DiscoverSliderType.TV_GENRES, + enabled: true, + isBuiltIn: true, + order: 9, + }, + { + type: DiscoverSliderType.UPCOMING_TV, + enabled: true, + isBuiltIn: true, + order: 10, + }, + { + type: DiscoverSliderType.NETWORKS, + enabled: true, + isBuiltIn: true, + order: 11, + }, +]; diff --git a/server/entity/DiscoverSlider.ts b/server/entity/DiscoverSlider.ts new file mode 100644 index 000000000..261419a07 --- /dev/null +++ b/server/entity/DiscoverSlider.ts @@ -0,0 +1,69 @@ +import type { DiscoverSliderType } from '@server/constants/discover'; +import { defaultSliders } from '@server/constants/discover'; +import { getRepository } from '@server/datasource'; +import logger from '@server/logger'; +import { + Column, + CreateDateColumn, + Entity, + PrimaryGeneratedColumn, + UpdateDateColumn, +} from 'typeorm'; + +@Entity() +class DiscoverSlider { + public static async bootstrapSliders(): Promise { + const sliderRepository = getRepository(DiscoverSlider); + + for (const slider of defaultSliders) { + const existingSlider = await sliderRepository.findOne({ + where: { + type: slider.type, + }, + }); + + if (!existingSlider) { + logger.info('Creating built-in discovery slider', { + label: 'Discover Slider', + slider, + }); + await sliderRepository.save(new DiscoverSlider(slider)); + } + } + } + + @PrimaryGeneratedColumn() + public id: number; + + @Column({ type: 'int' }) + public type: DiscoverSliderType; + + @Column({ type: 'int' }) + public order: number; + + @Column({ default: false }) + public isBuiltIn: boolean; + + @Column({ default: true }) + public enabled: boolean; + + @Column({ nullable: true }) + // Title is not required for built in sliders because we will + // use translations for them. + public title?: string; + + @Column({ nullable: true }) + public data?: string; + + @CreateDateColumn() + public createdAt: Date; + + @UpdateDateColumn() + public updatedAt: Date; + + constructor(init?: Partial) { + Object.assign(this, init); + } +} + +export default DiscoverSlider; diff --git a/server/index.ts b/server/index.ts index 12df2f1fd..93703402e 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,5 +1,6 @@ import PlexAPI from '@server/api/plexapi'; import dataSource, { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; import { Session } from '@server/entity/Session'; import { User } from '@server/entity/User'; import { startJobs } from '@server/job/schedule'; @@ -95,6 +96,9 @@ app // Start Jobs startJobs(); + // Bootstrap Discovery Sliders + await DiscoverSlider.bootstrapSliders(); + const server = express(); if (settings.main.trustProxy) { server.enable('trust proxy'); diff --git a/server/migration/1672041273674-AddDiscoverSlider.ts b/server/migration/1672041273674-AddDiscoverSlider.ts new file mode 100644 index 000000000..81cb14324 --- /dev/null +++ b/server/migration/1672041273674-AddDiscoverSlider.ts @@ -0,0 +1,15 @@ +import type { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddDiscoverSlider1672041273674 implements MigrationInterface { + name = 'AddDiscoverSlider1672041273674'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TABLE "discover_slider" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" integer NOT NULL, "order" integer NOT NULL, "isBuiltIn" boolean NOT NULL DEFAULT (0), "enabled" boolean NOT NULL DEFAULT (1), "title" varchar, "data" varchar, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')))` + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP TABLE "discover_slider"`); + } +} diff --git a/server/routes/discover.ts b/server/routes/discover.ts index b39a83325..428e4f7de 100644 --- a/server/routes/discover.ts +++ b/server/routes/discover.ts @@ -1,5 +1,6 @@ import PlexTvAPI from '@server/api/plextv'; import TheMovieDb from '@server/api/themoviedb'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; import { MediaType } from '@server/constants/media'; import { getRepository } from '@server/datasource'; import Media from '@server/entity/Media'; @@ -48,6 +49,7 @@ const discoverRoutes = Router(); discoverRoutes.get('/movies', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); + const keywords = req.query.keywords as string; try { const data = await tmdb.getDiscoverMovies({ @@ -55,16 +57,29 @@ discoverRoutes.get('/movies', async (req, res, next) => { language: req.locale ?? (req.query.language as string), genre: req.query.genre ? Number(req.query.genre) : undefined, studio: req.query.studio ? Number(req.query.studio) : undefined, + keywords, }); const media = await Media.getRelatedMedia( data.results.map((result) => result.id) ); + let keywordData: TmdbKeyword[] = []; + if (keywords) { + const splitKeywords = keywords.split(','); + + keywordData = await Promise.all( + splitKeywords.map(async (keywordId) => { + return await tmdb.getKeywordDetails({ keywordId: Number(keywordId) }); + }) + ); + } + return res.status(200).json({ page: data.page, totalPages: data.total_pages, totalResults: data.total_results, + keywords: keywordData, results: data.results.map((result) => mapMovieResult( result, @@ -294,6 +309,7 @@ discoverRoutes.get('/movies/upcoming', async (req, res, next) => { discoverRoutes.get('/tv', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); + const keywords = req.query.keywords as string; try { const data = await tmdb.getDiscoverTv({ @@ -301,16 +317,29 @@ discoverRoutes.get('/tv', async (req, res, next) => { language: req.locale ?? (req.query.language as string), genre: req.query.genre ? Number(req.query.genre) : undefined, network: req.query.network ? Number(req.query.network) : undefined, + keywords, }); const media = await Media.getRelatedMedia( data.results.map((result) => result.id) ); + let keywordData: TmdbKeyword[] = []; + if (keywords) { + const splitKeywords = keywords.split(','); + + keywordData = await Promise.all( + splitKeywords.map(async (keywordId) => { + return await tmdb.getKeywordDetails({ keywordId: Number(keywordId) }); + }) + ); + } + return res.status(200).json({ page: data.page, totalPages: data.total_pages, totalResults: data.total_results, + keywords: keywordData, results: data.results.map((result) => mapTvResult( result, diff --git a/server/routes/index.ts b/server/routes/index.ts index 9561e171b..faac1b439 100644 --- a/server/routes/index.ts +++ b/server/routes/index.ts @@ -4,6 +4,8 @@ import type { TmdbMovieResult, TmdbTvResult, } from '@server/api/themoviedb/interfaces'; +import { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; import type { StatusResponse } from '@server/interfaces/api/settingsInterfaces'; import { Permission } from '@server/lib/permissions'; import { getSettings } from '@server/lib/settings'; @@ -102,6 +104,13 @@ router.get('/settings/public', async (req, res) => { return res.status(200).json(settings.fullPublicSettings); } }); +router.get('/settings/discover', isAuthenticated(), async (_req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const sliders = await sliderRepository.find({ order: { order: 'ASC' } }); + + return res.json(sliders); +}); router.use('/settings', isAuthenticated(Permission.ADMIN), settingsRoutes); router.use('/search', isAuthenticated(), searchRoutes); router.use('/discover', isAuthenticated(), discoverRoutes); diff --git a/server/routes/search.ts b/server/routes/search.ts index 1152bce31..b9254221a 100644 --- a/server/routes/search.ts +++ b/server/routes/search.ts @@ -56,4 +56,50 @@ searchRoutes.get('/', async (req, res, next) => { } }); +searchRoutes.get('/keyword', async (req, res, next) => { + const tmdb = new TheMovieDb(); + + try { + const results = await tmdb.searchKeyword({ + query: req.query.query as string, + page: Number(req.query.page), + }); + + return res.status(200).json(results); + } catch (e) { + logger.debug('Something went wrong retrieving keyword search results', { + label: 'API', + errorMessage: e.message, + query: req.query.query, + }); + return next({ + status: 500, + message: 'Unable to retrieve keyword search results.', + }); + } +}); + +searchRoutes.get('/company', async (req, res, next) => { + const tmdb = new TheMovieDb(); + + try { + const results = await tmdb.searchCompany({ + query: req.query.query as string, + page: Number(req.query.page), + }); + + return res.status(200).json(results); + } catch (e) { + logger.debug('Something went wrong retrieving company search results', { + label: 'API', + errorMessage: e.message, + query: req.query.query, + }); + return next({ + status: 500, + message: 'Unable to retrieve company search results.', + }); + } +}); + export default searchRoutes; diff --git a/server/routes/settings/discover.ts b/server/routes/settings/discover.ts new file mode 100644 index 000000000..7d2a227da --- /dev/null +++ b/server/routes/settings/discover.ts @@ -0,0 +1,100 @@ +import { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; +import logger from '@server/logger'; +import { Router } from 'express'; + +const discoverSettingRoutes = Router(); + +discoverSettingRoutes.post('/', async (req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const sliders = req.body as DiscoverSlider[]; + + if (!Array.isArray(sliders)) { + return res.status(400).json({ message: 'Invalid request body.' }); + } + + for (let x = 0; x < sliders.length; x++) { + const slider = sliders[x]; + const existingSlider = await sliderRepository.findOne({ + where: { + id: slider.id, + }, + }); + + if (existingSlider && slider.id) { + existingSlider.enabled = slider.enabled; + existingSlider.order = x; + + // Only allow changes to the following when the slider is not built in + if (!existingSlider.isBuiltIn) { + existingSlider.title = slider.title; + existingSlider.data = slider.data; + existingSlider.type = slider.type; + } + + await sliderRepository.save(existingSlider); + } else { + const newSlider = new DiscoverSlider({ + isBuiltIn: false, + data: slider.data, + title: slider.title, + enabled: slider.enabled, + order: x, + type: slider.type, + }); + await sliderRepository.save(newSlider); + } + } + + return res.json(sliders); +}); + +discoverSettingRoutes.post('/add', async (req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const slider = req.body as DiscoverSlider; + + const newSlider = new DiscoverSlider({ + isBuiltIn: false, + data: slider.data, + title: slider.title, + enabled: false, + order: -1, + type: slider.type, + }); + await sliderRepository.save(newSlider); + + return res.json(newSlider); +}); + +discoverSettingRoutes.get('/reset', async (_req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + await sliderRepository.clear(); + await DiscoverSlider.bootstrapSliders(); + + return res.status(204).send(); +}); + +discoverSettingRoutes.delete('/:sliderId', async (req, res, next) => { + const sliderRepository = getRepository(DiscoverSlider); + + try { + const slider = await sliderRepository.findOneOrFail({ + where: { id: Number(req.params.sliderId), isBuiltIn: false }, + }); + + await sliderRepository.remove(slider); + + return res.status(204).send(); + } catch (e) { + logger.error('Something went wrong deleting a slider.', { + label: 'API', + errorMessage: e.message, + }); + next({ status: 404, message: 'Slider not found or cannot be deleted.' }); + } +}); + +export default discoverSettingRoutes; diff --git a/server/routes/settings/index.ts b/server/routes/settings/index.ts index 7205b1896..8023ba960 100644 --- a/server/routes/settings/index.ts +++ b/server/routes/settings/index.ts @@ -21,6 +21,7 @@ import type { JobId, MainSettings } from '@server/lib/settings'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { isAuthenticated } from '@server/middleware/auth'; +import discoverSettingRoutes from '@server/routes/settings/discover'; import { appDataPath } from '@server/utils/appDataVolume'; import { getAppVersion } from '@server/utils/appVersion'; import { Router } from 'express'; @@ -40,6 +41,7 @@ const settingsRoutes = Router(); settingsRoutes.use('/notifications', notificationRoutes); settingsRoutes.use('/radarr', radarrRoutes); settingsRoutes.use('/sonarr', sonarrRoutes); +settingsRoutes.use('/discover', discoverSettingRoutes); const filteredMainSettings = ( user: User, diff --git a/src/components/Common/SlideCheckbox/index.tsx b/src/components/Common/SlideCheckbox/index.tsx new file mode 100644 index 000000000..a514d6c03 --- /dev/null +++ b/src/components/Common/SlideCheckbox/index.tsx @@ -0,0 +1,38 @@ +type SlideCheckboxProps = { + onClick: () => void; + checked?: boolean; +}; + +const SlideCheckbox = ({ onClick, checked = false }: SlideCheckboxProps) => { + return ( + { + onClick(); + }} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === 'Space') { + onClick(); + } + }} + className={`relative inline-flex h-5 w-10 flex-shrink-0 cursor-pointer items-center justify-center pt-2 focus:outline-none`} + > + + + + ); +}; + +export default SlideCheckbox; diff --git a/src/components/Discover/DiscoverMovieKeyword/index.tsx b/src/components/Discover/DiscoverMovieKeyword/index.tsx new file mode 100644 index 000000000..9d22ba645 --- /dev/null +++ b/src/components/Discover/DiscoverMovieKeyword/index.tsx @@ -0,0 +1,68 @@ +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import useDiscover from '@app/hooks/useDiscover'; +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import globalMessages from '@app/i18n/globalMessages'; +import Error from '@app/pages/_error'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; +import type { MovieResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + keywordMovies: '{keywordTitle} Movies', +}); + +const DiscoverMovieKeyword = () => { + const router = useRouter(); + const intl = useIntl(); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + firstResultData, + } = useDiscover( + `/api/v1/discover/movies`, + { + keywords: encodeURIExtraParams(router.query.keywords as string), + } + ); + + if (error) { + return ; + } + + const title = isLoadingInitialData + ? intl.formatMessage(globalMessages.loading) + : intl.formatMessage(messages.keywordMovies, { + keywordTitle: firstResultData?.keywords + .map((k) => `${k.name[0].toUpperCase()}${k.name.substring(1)}`) + .join(', '), + }); + + return ( + <> + +
+
{title}
+
+ 0) + } + isReachingEnd={isReachingEnd} + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverMovieKeyword; diff --git a/src/components/Discover/DiscoverTvKeyword/index.tsx b/src/components/Discover/DiscoverTvKeyword/index.tsx new file mode 100644 index 000000000..ee6186f29 --- /dev/null +++ b/src/components/Discover/DiscoverTvKeyword/index.tsx @@ -0,0 +1,68 @@ +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import useDiscover from '@app/hooks/useDiscover'; +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import globalMessages from '@app/i18n/globalMessages'; +import Error from '@app/pages/_error'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; +import type { TvResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + keywordSeries: '{keywordTitle} Series', +}); + +const DiscoverTvKeyword = () => { + const router = useRouter(); + const intl = useIntl(); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + firstResultData, + } = useDiscover( + `/api/v1/discover/tv`, + { + keywords: encodeURIExtraParams(router.query.keywords as string), + } + ); + + if (error) { + return ; + } + + const title = isLoadingInitialData + ? intl.formatMessage(globalMessages.loading) + : intl.formatMessage(messages.keywordSeries, { + keywordTitle: firstResultData?.keywords + .map((k) => `${k.name[0].toUpperCase()}${k.name.substring(1)}`) + .join(', '), + }); + + return ( + <> + +
+
{title}
+
+ 0) + } + isReachingEnd={isReachingEnd} + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverTvKeyword; diff --git a/src/components/Discover/PlexWatchlistSlider/index.tsx b/src/components/Discover/PlexWatchlistSlider/index.tsx new file mode 100644 index 000000000..02f4a47fe --- /dev/null +++ b/src/components/Discover/PlexWatchlistSlider/index.tsx @@ -0,0 +1,79 @@ +import Slider from '@app/components/Slider'; +import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; +import { UserType, useUser } from '@app/hooks/useUser'; +import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; +import Link from 'next/link'; +import { defineMessages, useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const messages = defineMessages({ + plexwatchlist: 'Your Plex Watchlist', + emptywatchlist: + 'Media added to your Plex Watchlist will appear here.', +}); + +const PlexWatchlistSlider = () => { + const intl = useIntl(); + const { user } = useUser(); + + const { data: watchlistItems, error: watchlistError } = useSWR<{ + page: number; + totalPages: number; + totalResults: number; + results: WatchlistItem[]; + }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, { + revalidateOnMount: true, + }); + + if ( + user?.userType !== UserType.PLEX || + (watchlistItems && + watchlistItems.results.length === 0 && + !user?.settings?.watchlistSyncMovies && + !user?.settings?.watchlistSyncTv) || + watchlistError + ) { + return null; + } + + return ( + <> + + ( + + {msg} + + ), + })} + items={watchlistItems?.results.map((item) => ( + + ))} + /> + + ); +}; + +export default PlexWatchlistSlider; diff --git a/src/components/Discover/RecentRequestsSlider/index.tsx b/src/components/Discover/RecentRequestsSlider/index.tsx new file mode 100644 index 000000000..30f5e19f3 --- /dev/null +++ b/src/components/Discover/RecentRequestsSlider/index.tsx @@ -0,0 +1,49 @@ +import { sliderTitles } from '@app/components/Discover/constants'; +import RequestCard from '@app/components/RequestCard'; +import Slider from '@app/components/Slider'; +import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; +import Link from 'next/link'; +import { useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const RecentRequestsSlider = () => { + const intl = useIntl(); + const { data: requests, error: requestError } = + useSWR( + '/api/v1/request?filter=all&take=10&sort=modified&skip=0', + { + revalidateOnMount: true, + } + ); + + if (requests && requests.results.length === 0 && !requestError) { + return null; + } + + return ( + <> + + ( + + ))} + placeholder={} + /> + + ); +}; + +export default RecentRequestsSlider; diff --git a/src/components/Discover/RecentlyAddedSlider/index.tsx b/src/components/Discover/RecentlyAddedSlider/index.tsx new file mode 100644 index 000000000..078f86ba3 --- /dev/null +++ b/src/components/Discover/RecentlyAddedSlider/index.tsx @@ -0,0 +1,53 @@ +import Slider from '@app/components/Slider'; +import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; +import { Permission, useUser } from '@app/hooks/useUser'; +import type { MediaResultsResponse } from '@server/interfaces/api/mediaInterfaces'; +import { defineMessages, useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const messages = defineMessages({ + recentlyAdded: 'Recently Added', +}); + +const RecentlyAddedSlider = () => { + const intl = useIntl(); + const { hasPermission } = useUser(); + const { data: media, error: mediaError } = useSWR( + '/api/v1/media?filter=allavailable&take=20&sort=mediaAdded', + { revalidateOnMount: true } + ); + + if ( + (media && !media.results.length && !mediaError) || + !hasPermission([Permission.MANAGE_REQUESTS, Permission.RECENT_VIEW], { + type: 'or', + }) + ) { + return null; + } + + return ( + <> +
+
+ {intl.formatMessage(messages.recentlyAdded)} +
+
+ ( + + ))} + /> + + ); +}; + +export default RecentlyAddedSlider; diff --git a/src/components/Discover/constants.ts b/src/components/Discover/constants.ts index b53c42c12..3cef94dbb 100644 --- a/src/components/Discover/constants.ts +++ b/src/components/Discover/constants.ts @@ -1,3 +1,5 @@ +import { defineMessages } from 'react-intl'; + type AvailableColors = | 'black' | 'red' @@ -61,3 +63,25 @@ export const genreColorMap: Record = { 10767: colorTones.lightgreen, // Talk 10768: colorTones.darkred, // War & Politics }; + +export const sliderTitles = defineMessages({ + recentrequests: 'Recent Requests', + popularmovies: 'Popular Movies', + populartv: 'Popular Series', + upcomingtv: 'Upcoming Series', + recentlyAdded: 'Recently Added', + upcoming: 'Upcoming Movies', + trending: 'Trending', + plexwatchlist: 'Your Plex Watchlist', + moviegenres: 'Movie Genres', + tvgenres: 'Series Genres', + studios: 'Studios', + networks: 'Networks', + tmdbmoviekeyword: 'TMDB Movie Keyword', + tmdbtvkeyword: 'TMDB Series Keyword', + tmdbmoviegenre: 'TMDB Movie Genre', + tmdbtvgenre: 'TMDB Series Genre', + tmdbnetwork: 'TMDB Network', + tmdbstudio: 'TMDB Studio', + tmdbsearch: 'TMDB Search', +}); diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 24dc6fea5..b2c1a07c2 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -1,189 +1,180 @@ +import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import PageTitle from '@app/components/Common/PageTitle'; +import { sliderTitles } from '@app/components/Discover/constants'; import MovieGenreSlider from '@app/components/Discover/MovieGenreSlider'; import NetworkSlider from '@app/components/Discover/NetworkSlider'; +import PlexWatchlistSlider from '@app/components/Discover/PlexWatchlistSlider'; +import RecentlyAddedSlider from '@app/components/Discover/RecentlyAddedSlider'; +import RecentRequestsSlider from '@app/components/Discover/RecentRequestsSlider'; import StudioSlider from '@app/components/Discover/StudioSlider'; import TvGenreSlider from '@app/components/Discover/TvGenreSlider'; import MediaSlider from '@app/components/MediaSlider'; -import RequestCard from '@app/components/RequestCard'; -import Slider from '@app/components/Slider'; -import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; -import { Permission, UserType, useUser } from '@app/hooks/useUser'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; -import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; -import type { MediaResultsResponse } from '@server/interfaces/api/mediaInterfaces'; -import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; -import Link from 'next/link'; +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; import { defineMessages, useIntl } from 'react-intl'; import useSWR from 'swr'; const messages = defineMessages({ discover: 'Discover', - recentrequests: 'Recent Requests', - popularmovies: 'Popular Movies', - populartv: 'Popular Series', - upcomingtv: 'Upcoming Series', - recentlyAdded: 'Recently Added', - upcoming: 'Upcoming Movies', - trending: 'Trending', - plexwatchlist: 'Your Plex Watchlist', emptywatchlist: 'Media added to your Plex Watchlist will appear here.', }); const Discover = () => { const intl = useIntl(); - const { user, hasPermission } = useUser(); - - const { data: media, error: mediaError } = useSWR( - '/api/v1/media?filter=allavailable&take=20&sort=mediaAdded', - { revalidateOnMount: true } + const { data: discoverData, error: discoverError } = useSWR( + '/api/v1/settings/discover' ); - const { data: requests, error: requestError } = - useSWR( - '/api/v1/request?filter=all&take=10&sort=modified&skip=0', - { - revalidateOnMount: true, - } - ); - - const { data: watchlistItems, error: watchlistError } = useSWR<{ - page: number; - totalPages: number; - totalResults: number; - results: WatchlistItem[]; - }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, { - revalidateOnMount: true, - }); + if (!discoverData && !discoverError) { + return ; + } return ( <> - {(!media || !!media.results.length) && - !mediaError && - hasPermission([Permission.MANAGE_REQUESTS, Permission.RECENT_VIEW], { - type: 'or', - }) && ( - <> -
-
- {intl.formatMessage(messages.recentlyAdded)} -
-
- ( - - ))} - /> - - )} - {(!requests || !!requests.results.length) && !requestError && ( - <> - - ( - { + if (!slider.enabled) { + return null; + } + + switch (slider.type) { + case DiscoverSliderType.RECENTLY_ADDED: + return ; + case DiscoverSliderType.RECENT_REQUESTS: + return ; + case DiscoverSliderType.PLEX_WATCHLIST: + return ; + case DiscoverSliderType.TRENDING: + return ( + - ))} - placeholder={} - /> - - )} - {user?.userType === UserType.PLEX && - (!watchlistItems || - !!watchlistItems.results.length || - user.settings?.watchlistSyncMovies || - user.settings?.watchlistSyncTv) && - !watchlistError && ( - <> - - ( - - {msg} - - ), - })} - items={watchlistItems?.results.map((item) => ( - - ))} - /> - - )} - - - - - - - - - + ); + case DiscoverSliderType.POPULAR_MOVIES: + return ( + + ); + case DiscoverSliderType.MOVIE_GENRES: + return ; + case DiscoverSliderType.UPCOMING_MOVIES: + return ( + + ); + case DiscoverSliderType.STUDIOS: + return ; + case DiscoverSliderType.POPULAR_TV: + return ( + + ); + case DiscoverSliderType.TV_GENRES: + return ; + case DiscoverSliderType.UPCOMING_TV: + return ( + + ); + case DiscoverSliderType.NETWORKS: + return ; + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + return ( + + ); + case DiscoverSliderType.TMDB_TV_KEYWORD: + return ( + + ); + case DiscoverSliderType.TMDB_MOVIE_GENRE: + return ( + + ); + case DiscoverSliderType.TMDB_TV_GENRE: + return ( + + ); + case DiscoverSliderType.TMDB_STUDIO: + return ( + + ); + case DiscoverSliderType.TMDB_NETWORK: + return ( + + ); + case DiscoverSliderType.TMDB_SEARCH: + return ( + + ); + } + })} ); }; diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx index 9a9bc054c..734579374 100644 --- a/src/components/MediaSlider/index.tsx +++ b/src/components/MediaSlider/index.tsx @@ -27,14 +27,18 @@ interface MediaSliderProps { linkUrl?: string; sliderKey: string; hideWhenEmpty?: boolean; + extraParams?: string; + onNewTitles?: (titleCount: number) => void; } const MediaSlider = ({ title, url, linkUrl, + extraParams, sliderKey, hideWhenEmpty = false, + onNewTitles, }: MediaSliderProps) => { const settings = useSettings(); const { data, error, setSize, size } = useSWRInfinite( @@ -43,7 +47,9 @@ const MediaSlider = ({ return null; } - return `${url}?page=${pageIndex + 1}`; + return `${url}?page=${pageIndex + 1}${ + extraParams ? `&${extraParams}` : '' + }`; }, { initialSize: 2, @@ -72,7 +78,13 @@ const MediaSlider = ({ ) { setSize(size + 1); } - }, [titles, setSize, size, data]); + + if (onNewTitles) { + // We aren't reporting all titles. We just want to know if there are any titles + // at all for our purposes. + onNewTitles(titles.length); + } + }, [titles, setSize, size, data, onNewTitles]); if (hideWhenEmpty && (data?.[0].results ?? []).length === 0) { return null; diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx new file mode 100644 index 000000000..a2d0fdd2e --- /dev/null +++ b/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx @@ -0,0 +1,383 @@ +import Button from '@app/components/Common/Button'; +import Tooltip from '@app/components/Common/Tooltip'; +import { sliderTitles } from '@app/components/Discover/constants'; +import MediaSlider from '@app/components/MediaSlider'; +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import type { + TmdbCompanySearchResponse, + TmdbKeywordSearchResponse, +} from '@server/api/themoviedb/interfaces'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; +import axios from 'axios'; +import { Field, Form, Formik } from 'formik'; +import { debounce } from 'lodash'; +import { useCallback, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import AsyncSelect from 'react-select/async'; +import { useToasts } from 'react-toast-notifications'; +import * as Yup from 'yup'; + +const messages = defineMessages({ + addSlider: 'Add Slider', + slidernameplaceholder: 'Slider Name', + providetmdbkeywordid: 'Provide a TMDB Keyword ID', + providetmdbgenreid: 'Provide a TMDB Genre ID', + providetmdbsearch: 'Provide a search query', + providetmdbstudio: 'Provide TMDB Studio ID', + providetmdbnetwork: 'Provide TMDB Network ID', + addsuccess: 'Created new slider and saved discover customization settings.', + addfail: 'Failed to create new slider.', + needresults: 'You need to have at least 1 result to create a slider.', + validationDatarequired: 'You must provide a data value.', + validationTitlerequired: 'You must provide a title.', + addcustomslider: 'Add Custom Slider', + searchKeywords: 'Search keywords…', + seachGenres: 'Search genres…', + searchStudios: 'Search studios…', + starttyping: 'Starting typing to search.', + nooptions: 'No results.', +}); + +type CreateSliderProps = { + onCreate: () => void; +}; + +type CreateOption = { + type: DiscoverSliderType; + title: string; + dataUrl: string; + params?: string; + titlePlaceholderText: string; + dataPlaceholderText: string; +}; + +const CreateSlider = ({ onCreate }: CreateSliderProps) => { + const intl = useIntl(); + const { addToast } = useToasts(); + const [resultCount, setResultCount] = useState(0); + + const CreateSliderSchema = Yup.object().shape({ + title: Yup.string().required( + intl.formatMessage(messages.validationTitlerequired) + ), + data: Yup.string().required( + intl.formatMessage(messages.validationDatarequired) + ), + }); + + const updateResultCount = useCallback( + (count: number) => { + setResultCount(count); + }, + [setResultCount] + ); + + const loadKeywordOptions = debounce(async (inputValue: string) => { + const results = await axios.get( + '/api/v1/search/keyword', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }, 100); + + const loadCompanyOptions = debounce(async (inputValue: string) => { + const results = await axios.get( + '/api/v1/search/company', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }, 100); + + const loadMovieGenreOptions = async () => { + const results = await axios.get( + '/api/v1/discover/genreslider/movie' + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const loadTvGenreOptions = async () => { + const results = await axios.get( + '/api/v1/discover/genreslider/tv' + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const options: CreateOption[] = [ + { + type: DiscoverSliderType.TMDB_MOVIE_KEYWORD, + title: intl.formatMessage(sliderTitles.tmdbmoviekeyword), + dataUrl: '/api/v1/discover/movies', + params: 'keywords=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbkeywordid), + }, + { + type: DiscoverSliderType.TMDB_TV_KEYWORD, + title: intl.formatMessage(sliderTitles.tmdbtvkeyword), + dataUrl: '/api/v1/discover/tv', + params: 'keywords=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbkeywordid), + }, + { + type: DiscoverSliderType.TMDB_MOVIE_GENRE, + title: intl.formatMessage(sliderTitles.tmdbmoviegenre), + dataUrl: '/api/v1/discover/movies/genre/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbgenreid), + }, + { + type: DiscoverSliderType.TMDB_TV_GENRE, + title: intl.formatMessage(sliderTitles.tmdbtvgenre), + dataUrl: '/api/v1/discover/tv/genre/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbgenreid), + }, + { + type: DiscoverSliderType.TMDB_STUDIO, + title: intl.formatMessage(sliderTitles.tmdbstudio), + dataUrl: '/api/v1/discover/movies/studio/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbstudio), + }, + { + type: DiscoverSliderType.TMDB_NETWORK, + title: intl.formatMessage(sliderTitles.tmdbnetwork), + dataUrl: '/api/v1/discover/tv/network/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbnetwork), + }, + { + type: DiscoverSliderType.TMDB_SEARCH, + title: intl.formatMessage(sliderTitles.tmdbsearch), + dataUrl: '/api/v1/search', + params: 'query=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbsearch), + }, + ]; + + return ( + { + try { + await axios.post('/api/v1/settings/discover/add', { + type: Number(values.sliderType), + title: values.title, + data: values.data, + }); + + addToast(intl.formatMessage(messages.addsuccess), { + appearance: 'success', + autoDismiss: true, + }); + onCreate(); + resetForm(); + } catch (e) { + addToast(intl.formatMessage(messages.addfail), { + appearance: 'error', + autoDismiss: true, + }); + } + }} + > + {({ values, isValid, isSubmitting, errors, touched, setFieldValue }) => { + const activeOption = options.find( + (option) => option.type === Number(values.sliderType) + ); + + let dataInput: React.ReactNode; + + switch (activeOption?.type) { + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + case DiscoverSliderType.TMDB_TV_KEYWORD: + dataInput = ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + loadOptions={loadKeywordOptions} + placeholder={intl.formatMessage(messages.searchKeywords)} + onChange={(value) => { + const keywords = value.map((item) => item.value).join(','); + + setFieldValue('data', keywords); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_MOVIE_GENRE: + dataInput = ( + { + setFieldValue('data', value?.value); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_TV_GENRE: + dataInput = ( + { + setFieldValue('data', value?.value); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_STUDIO: + dataInput = ( + { + setFieldValue('data', value?.value); + }} + /> + ); + break; + default: + dataInput = ( + + ); + } + + return ( +
+
+ + {intl.formatMessage(messages.addcustomslider)} + + + {options.map((option) => ( + + ))} + + + {errors.title && + touched.title && + typeof errors.title === 'string' && ( +
{errors.title}
+ )} + {dataInput} + {errors.data && + touched.data && + typeof errors.data === 'string' && ( +
{errors.data}
+ )} +
+ {resultCount === 0 ? ( + +
+ +
+
+ ) : ( +
+ +
+ )} +
+ +
+ {activeOption && values.title && values.data && ( + + )} +
+
+ ); + }} +
+ ); +}; + +export default CreateSlider; diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx new file mode 100644 index 000000000..02b24084e --- /dev/null +++ b/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx @@ -0,0 +1,170 @@ +import Badge from '@app/components/Common/Badge'; +import Button from '@app/components/Common/Button'; +import SlideCheckbox from '@app/components/Common/SlideCheckbox'; +import Tooltip from '@app/components/Common/Tooltip'; +import { MenuIcon, XIcon } from '@heroicons/react/solid'; +import axios from 'axios'; +import { useRef, useState } from 'react'; +import { useDrag, useDrop } from 'react-aria'; +import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; + +const messages = defineMessages({ + deletesuccess: 'Sucessfully deleted slider.', + deletefail: 'Failed to delete slider.', + remove: 'Remove', + enable: 'Toggle Visibility', +}); + +const Position = { + None: 'None', + Above: 'Above', + Below: 'Below', +} as const; + +type DiscoverOptionProps = { + id: number; + title: string; + subtitle?: string; + data?: string; + enabled?: boolean; + isBuiltIn?: boolean; + onEnable: () => void; + onDelete: () => void; + onPositionUpdate: ( + updatedItemId: number, + position: keyof typeof Position + ) => void; +}; + +const DiscoverOption = ({ + id, + title, + enabled, + onPositionUpdate, + onEnable, + subtitle, + data, + isBuiltIn, + onDelete, +}: DiscoverOptionProps) => { + const intl = useIntl(); + const { addToast } = useToasts(); + const ref = useRef(null); + const [hoverPosition, setHoverPosition] = useState( + Position.None + ); + + const { dragProps, isDragging } = useDrag({ + getItems() { + return [{ id: id.toString(), title }]; + }, + }); + + const deleteSlider = async () => { + try { + await axios.delete(`/api/v1/settings/discover/${id}`); + addToast(intl.formatMessage(messages.deletesuccess), { + appearance: 'success', + autoDismiss: true, + }); + onDelete(); + } catch (e) { + addToast(intl.formatMessage(messages.deletefail), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const { dropProps } = useDrop({ + ref, + onDropMove: (e) => { + if (ref.current) { + const middlePoint = ref.current.offsetHeight / 2; + + if (e.y < middlePoint) { + setHoverPosition(Position.Above); + } else { + setHoverPosition(Position.Below); + } + } + }, + onDropExit: () => { + setHoverPosition(Position.None); + }, + onDrop: async (e) => { + const items = await Promise.all( + e.items + .filter((item) => item.kind === 'text' && item.types.has('id')) + .map(async (item) => { + if (item.kind === 'text') { + return item.getText('id'); + } + }) + ); + if (items?.[0]) { + const dropped = Number(items[0]); + onPositionUpdate(dropped, hoverPosition); + } + }, + }); + + return ( +
+ {hoverPosition === Position.Above && ( +
+ )} + {hoverPosition === Position.Below && ( +
+ )} +
+ + + {title} + {subtitle && {subtitle}} + {data && {data}} + {!isBuiltIn && ( +
+ +
+ )} + +
+ { + onEnable(); + }} + checked={enabled} + /> +
+
+
+
+ ); +}; + +export default DiscoverOption; diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx new file mode 100644 index 000000000..be405ad8b --- /dev/null +++ b/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx @@ -0,0 +1,220 @@ +import Button from '@app/components/Common/Button'; +import LoadingSpinner from '@app/components/Common/LoadingSpinner'; +import Tooltip from '@app/components/Common/Tooltip'; +import { sliderTitles } from '@app/components/Discover/constants'; +import CreateSlider from '@app/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider'; +import DiscoverOption from '@app/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption'; +import globalMessages from '@app/i18n/globalMessages'; +import { RefreshIcon, SaveIcon } from '@heroicons/react/solid'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import axios from 'axios'; +import { useEffect, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; +import useSWR from 'swr'; + +const messages = defineMessages({ + resettodefault: 'Reset to Default', + resetwarning: + 'Reset all sliders to default. This will also delete any custom sliders!', + updatesuccess: 'Updated discover customization settings.', + updatefailed: + 'Something went wrong updating the discover customization settings.', + resetsuccess: 'Sucessfully reset discover customization settings.', + resetfailed: + 'Something went wrong resetting the discover customization settings.', +}); + +const DiscoverCustomization = () => { + const intl = useIntl(); + const { addToast } = useToasts(); + const { data, error, mutate } = useSWR( + '/api/v1/settings/discover' + ); + const [sliders, setSliders] = useState[]>([]); + + // We need to sync the state here so that we can modify the changes locally without commiting + // anything to the server until the user decides to save the changes + useEffect(() => { + if (data) { + setSliders(data); + } + }, [data]); + + const updateSliders = async () => { + try { + await axios.post('/api/v1/settings/discover', sliders); + + addToast(intl.formatMessage(messages.updatesuccess), { + appearance: 'success', + autoDismiss: true, + }); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.updatefailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const resetSliders = async () => { + try { + await axios.get('/api/v1/settings/discover/reset'); + + addToast(intl.formatMessage(messages.resetsuccess), { + appearance: 'success', + autoDismiss: true, + }); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.resetfailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const hasChanged = () => !Object.is(data, sliders); + + const getSliderTitle = (slider: Partial): string => { + if (slider.title) { + return slider.title; + } + + switch (slider.type) { + case DiscoverSliderType.RECENTLY_ADDED: + return intl.formatMessage(sliderTitles.recentlyAdded); + case DiscoverSliderType.RECENT_REQUESTS: + return intl.formatMessage(sliderTitles.recentrequests); + case DiscoverSliderType.PLEX_WATCHLIST: + return intl.formatMessage(sliderTitles.plexwatchlist); + case DiscoverSliderType.TRENDING: + return intl.formatMessage(sliderTitles.trending); + case DiscoverSliderType.POPULAR_MOVIES: + return intl.formatMessage(sliderTitles.popularmovies); + case DiscoverSliderType.MOVIE_GENRES: + return intl.formatMessage(sliderTitles.moviegenres); + case DiscoverSliderType.UPCOMING_MOVIES: + return intl.formatMessage(sliderTitles.upcoming); + case DiscoverSliderType.STUDIOS: + return intl.formatMessage(sliderTitles.studios); + case DiscoverSliderType.POPULAR_TV: + return intl.formatMessage(sliderTitles.populartv); + case DiscoverSliderType.TV_GENRES: + return intl.formatMessage(sliderTitles.tvgenres); + case DiscoverSliderType.UPCOMING_TV: + return intl.formatMessage(sliderTitles.upcomingtv); + case DiscoverSliderType.NETWORKS: + return intl.formatMessage(sliderTitles.networks); + default: + return 'Unknown Slider'; + } + }; + + const getSliderSubtitle = ( + slider: Partial + ): string | undefined => { + switch (slider.type) { + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbmoviekeyword); + case DiscoverSliderType.TMDB_TV_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbtvkeyword); + case DiscoverSliderType.TMDB_MOVIE_GENRE: + return intl.formatMessage(sliderTitles.tmdbmoviegenre); + case DiscoverSliderType.TMDB_TV_GENRE: + return intl.formatMessage(sliderTitles.tmdbtvgenre); + case DiscoverSliderType.TMDB_STUDIO: + return intl.formatMessage(sliderTitles.tmdbstudio); + case DiscoverSliderType.TMDB_NETWORK: + return intl.formatMessage(sliderTitles.tmdbnetwork); + case DiscoverSliderType.TMDB_SEARCH: + return intl.formatMessage(sliderTitles.tmdbsearch); + default: + return undefined; + } + }; + + if (!data && !error) { + return ; + } + + return ( + <> +
+
+ {sliders.map((slider, index) => ( + { + mutate(); + }} + onEnable={() => { + const tempSliders = sliders.slice(); + tempSliders[index].enabled = !tempSliders[index].enabled; + setSliders(tempSliders); + }} + onPositionUpdate={(updatedItemId, position) => { + const originalPosition = sliders.findIndex( + (item) => item.id === updatedItemId + ); + const originalItem = sliders[originalPosition]; + + const tempSliders = sliders.slice(); + + tempSliders.splice(originalPosition, 1); + tempSliders.splice( + position === 'Above' && index > originalPosition + ? Math.max(index - 1, 0) + : index, + 0, + originalItem + ); + + setSliders(tempSliders); + }} + /> + ))} + { + mutate(); + }} + /> +
+
+
+
+ + + + + + + + +
+
+ + ); +}; + +export default DiscoverCustomization; diff --git a/src/components/Settings/SettingsMain.tsx b/src/components/Settings/SettingsMain/index.tsx similarity index 96% rename from src/components/Settings/SettingsMain.tsx rename to src/components/Settings/SettingsMain/index.tsx index 7d4e188e5..352821059 100644 --- a/src/components/Settings/SettingsMain.tsx +++ b/src/components/Settings/SettingsMain/index.tsx @@ -7,6 +7,7 @@ import LanguageSelector from '@app/components/LanguageSelector'; import RegionSelector from '@app/components/RegionSelector'; import CopyButton from '@app/components/Settings/CopyButton'; import SettingsBadge from '@app/components/Settings/SettingsBadge'; +import DiscoverCustomization from '@app/components/Settings/SettingsMain/DiscoverCustomization'; import type { AvailableLocale } from '@app/context/LanguageContext'; import { availableLanguages } from '@app/context/LanguageContext'; import useLocale from '@app/hooks/useLocale'; @@ -55,6 +56,9 @@ const messages = defineMessages({ validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash', partialRequestsEnabled: 'Allow Partial Series Requests', locale: 'Display Language', + discovercustomization: 'Discover Customization', + discovercustomizationDescription: + 'Add or remove sliders on the Discover page.', }); const SettingsMain = () => { @@ -185,7 +189,7 @@ const SettingsMain = () => { setFieldValue, }) => { return ( -
+ {userHasPermission(Permission.ADMIN) && (
+
+

+ {intl.formatMessage(messages.discovercustomization)} +

+

+ {intl.formatMessage(messages.discovercustomizationDescription)} +

+
+ ); }; diff --git a/src/hooks/useSearchInput.ts b/src/hooks/useSearchInput.ts index 54876357f..a27a6d109 100644 --- a/src/hooks/useSearchInput.ts +++ b/src/hooks/useSearchInput.ts @@ -15,7 +15,7 @@ const extraEncodes: [RegExp, string][] = [ [/\*/g, '%2A'], ]; -const encodeURIExtraParams = (string: string): string => { +export const encodeURIExtraParams = (string: string): string => { let finalString = encodeURIComponent(string); extraEncodes.forEach((encode) => { diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 4ffb110e1..14a680f69 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -7,16 +7,21 @@ "components.CollectionDetails.requestcollection": "Request Collection", "components.CollectionDetails.requestcollection4k": "Request Collection in 4K", "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Movies", + "components.Discover.DiscoverMovieKeyword.keywordMovies": "{keywordTitle} Movies", "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} Movies", "components.Discover.DiscoverNetwork.networkSeries": "{network} Series", "components.Discover.DiscoverStudio.studioMovies": "{studio} Movies", "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Series", + "components.Discover.DiscoverTvKeyword.keywordSeries": "{keywordTitle} Series", "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Series", "components.Discover.DiscoverWatchlist.discoverwatchlist": "Your Plex Watchlist", "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", "components.Discover.MovieGenreList.moviegenres": "Movie Genres", "components.Discover.MovieGenreSlider.moviegenres": "Movie Genres", "components.Discover.NetworkSlider.networks": "Networks", + "components.Discover.PlexWatchlistSlider.emptywatchlist": "Media added to your Plex Watchlist will appear here.", + "components.Discover.PlexWatchlistSlider.plexwatchlist": "Your Plex Watchlist", + "components.Discover.RecentlyAddedSlider.recentlyAdded": "Recently Added", "components.Discover.StudioSlider.studios": "Studios", "components.Discover.TvGenreList.seriesgenres": "Series Genres", "components.Discover.TvGenreSlider.tvgenres": "Series Genres", @@ -24,12 +29,23 @@ "components.Discover.discovermovies": "Popular Movies", "components.Discover.discovertv": "Popular Series", "components.Discover.emptywatchlist": "Media added to your Plex Watchlist will appear here.", + "components.Discover.moviegenres": "Movie Genres", + "components.Discover.networks": "Networks", "components.Discover.plexwatchlist": "Your Plex Watchlist", "components.Discover.popularmovies": "Popular Movies", "components.Discover.populartv": "Popular Series", "components.Discover.recentlyAdded": "Recently Added", "components.Discover.recentrequests": "Recent Requests", + "components.Discover.studios": "Studios", + "components.Discover.tmdbmoviegenre": "TMDB Movie Genre", + "components.Discover.tmdbmoviekeyword": "TMDB Movie Keyword", + "components.Discover.tmdbnetwork": "TMDB Network", + "components.Discover.tmdbsearch": "TMDB Search", + "components.Discover.tmdbstudio": "TMDB Studio", + "components.Discover.tmdbtvgenre": "TMDB Series Genre", + "components.Discover.tmdbtvkeyword": "TMDB Series Keyword", "components.Discover.trending": "Trending", + "components.Discover.tvgenres": "Series Genres", "components.Discover.upcoming": "Upcoming Movies", "components.Discover.upcomingmovies": "Upcoming Movies", "components.Discover.upcomingtv": "Upcoming Series", @@ -688,6 +704,63 @@ "components.Settings.SettingsLogs.showall": "Show All Logs", "components.Settings.SettingsLogs.time": "Timestamp", "components.Settings.SettingsLogs.viewdetails": "View Details", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addSlider": "Add Slider", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addcustomslider": "Add Custom Slider", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addfail": "Failed to create new slider.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addsuccess": "Created new slider and saved discover customization settings.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.needresults": "You need to have at least 1 result to create a slider.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.nooptions": "No results.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbgenreid": "Provide a TMDB Genre ID", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbkeywordid": "Provide a TMDB Keyword ID", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbnetwork": "Provide TMDB Network ID", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbsearch": "Provide a search query", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbstudio": "Provide TMDB Studio ID", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.seachGenres": "Search genres…", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchKeywords": "Search keywords…", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchStudios": "Search studios…", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.slidernameplaceholder": "Slider Name", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.starttyping": "Starting typing to search.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.validationDatarequired": "You must provide a data value.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.validationTitlerequired": "You must provide a title.", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletefail": "Failed to delete slider.", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletesuccess": "Sucessfully deleted slider.", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.enable": "Toggle Visibility", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.remove": "Remove", + "components.Settings.SettingsMain.DiscoverCustomization.resetfailed": "Something went wrong resetting the discover customization settings.", + "components.Settings.SettingsMain.DiscoverCustomization.resetsuccess": "Sucessfully reset discover customization settings.", + "components.Settings.SettingsMain.DiscoverCustomization.resettodefault": "Reset to Default", + "components.Settings.SettingsMain.DiscoverCustomization.resetwarning": "Reset all sliders to default. This will also delete any custom sliders!", + "components.Settings.SettingsMain.DiscoverCustomization.updatefailed": "Something went wrong updating the discover customization settings.", + "components.Settings.SettingsMain.DiscoverCustomization.updatesuccess": "Updated discover customization settings.", + "components.Settings.SettingsMain.apikey": "API Key", + "components.Settings.SettingsMain.applicationTitle": "Application Title", + "components.Settings.SettingsMain.applicationurl": "Application URL", + "components.Settings.SettingsMain.cacheImages": "Enable Image Caching", + "components.Settings.SettingsMain.cacheImagesTip": "Cache externally sourced images (requires a significant amount of disk space)", + "components.Settings.SettingsMain.csrfProtection": "Enable CSRF Protection", + "components.Settings.SettingsMain.csrfProtectionHoverTip": "Do NOT enable this setting unless you understand what you are doing!", + "components.Settings.SettingsMain.csrfProtectionTip": "Set external API access to read-only (requires HTTPS)", + "components.Settings.SettingsMain.discovercustomization": "Discover Customization", + "components.Settings.SettingsMain.discovercustomizationDescription": "Add or remove sliders on the Discover page.", + "components.Settings.SettingsMain.general": "General", + "components.Settings.SettingsMain.generalsettings": "General Settings", + "components.Settings.SettingsMain.generalsettingsDescription": "Configure global and default settings for Overseerr.", + "components.Settings.SettingsMain.hideAvailable": "Hide Available Media", + "components.Settings.SettingsMain.locale": "Display Language", + "components.Settings.SettingsMain.originallanguage": "Discover Language", + "components.Settings.SettingsMain.originallanguageTip": "Filter content by original language", + "components.Settings.SettingsMain.partialRequestsEnabled": "Allow Partial Series Requests", + "components.Settings.SettingsMain.region": "Discover Region", + "components.Settings.SettingsMain.regionTip": "Filter content by regional availability", + "components.Settings.SettingsMain.toastApiKeyFailure": "Something went wrong while generating a new API key.", + "components.Settings.SettingsMain.toastApiKeySuccess": "New API key generated successfully!", + "components.Settings.SettingsMain.toastSettingsFailure": "Something went wrong while saving settings.", + "components.Settings.SettingsMain.toastSettingsSuccess": "Settings saved successfully!", + "components.Settings.SettingsMain.trustProxy": "Enable Proxy Support", + "components.Settings.SettingsMain.trustProxyTip": "Allow Overseerr to correctly register client IP addresses behind a proxy", + "components.Settings.SettingsMain.validationApplicationTitle": "You must provide an application title", + "components.Settings.SettingsMain.validationApplicationUrl": "You must provide a valid URL", + "components.Settings.SettingsMain.validationApplicationUrlTrailingSlash": "URL must not end in a trailing slash", "components.Settings.SettingsUsers.defaultPermissions": "Default Permissions", "components.Settings.SettingsUsers.defaultPermissionsTip": "Initial permissions assigned to new users", "components.Settings.SettingsUsers.localLogin": "Enable Local Sign-In", @@ -758,16 +831,8 @@ "components.Settings.address": "Address", "components.Settings.addsonarr": "Add Sonarr Server", "components.Settings.advancedTooltip": "Incorrectly configuring this setting may result in broken functionality", - "components.Settings.apikey": "API Key", - "components.Settings.applicationTitle": "Application Title", - "components.Settings.applicationurl": "Application URL", - "components.Settings.cacheImages": "Enable Image Caching", - "components.Settings.cacheImagesTip": "Cache externally sourced images (requires a significant amount of disk space)", "components.Settings.cancelscan": "Cancel Scan", "components.Settings.copied": "Copied API key to clipboard.", - "components.Settings.csrfProtection": "Enable CSRF Protection", - "components.Settings.csrfProtectionHoverTip": "Do NOT enable this setting unless you understand what you are doing!", - "components.Settings.csrfProtectionTip": "Set external API access to read-only (requires HTTPS)", "components.Settings.currentlibrary": "Current Library: {name}", "components.Settings.default": "Default", "components.Settings.default4k": "Default 4K", @@ -777,14 +842,9 @@ "components.Settings.enablessl": "Use SSL", "components.Settings.experimentalTooltip": "Enabling this setting may result in unexpected application behavior", "components.Settings.externalUrl": "External URL", - "components.Settings.general": "General", - "components.Settings.generalsettings": "General Settings", - "components.Settings.generalsettingsDescription": "Configure global and default settings for Overseerr.", - "components.Settings.hideAvailable": "Hide Available Media", "components.Settings.hostname": "Hostname or IP Address", "components.Settings.is4k": "4K", "components.Settings.librariesRemaining": "Libraries Remaining: {count}", - "components.Settings.locale": "Display Language", "components.Settings.manualscan": "Manual Library Scan", "components.Settings.manualscanDescription": "Normally, this will only be run once every 24 hours. Overseerr will check your Plex server's recently added more aggressively. If this is your first time configuring Plex, a one-time full manual library scan is recommended!", "components.Settings.mediaTypeMovie": "movie", @@ -804,9 +864,6 @@ "components.Settings.notifications": "Notifications", "components.Settings.notificationsettings": "Notification Settings", "components.Settings.notrunning": "Not Running", - "components.Settings.originallanguage": "Discover Language", - "components.Settings.originallanguageTip": "Filter content by original language", - "components.Settings.partialRequestsEnabled": "Allow Partial Series Requests", "components.Settings.plex": "Plex", "components.Settings.plexlibraries": "Plex Libraries", "components.Settings.plexlibrariesDescription": "The libraries Overseerr scans for titles. Set up and save your Plex connection settings, then click the button below if no libraries are listed.", @@ -814,8 +871,6 @@ "components.Settings.plexsettingsDescription": "Configure the settings for your Plex server. Overseerr scans your Plex libraries to determine content availability.", "components.Settings.port": "Port", "components.Settings.radarrsettings": "Radarr Settings", - "components.Settings.region": "Discover Region", - "components.Settings.regionTip": "Filter content by regional availability", "components.Settings.restartrequiredTooltip": "Overseerr must be restarted for changes to this setting to take effect", "components.Settings.scan": "Sync Libraries", "components.Settings.scanning": "Syncing…", @@ -835,25 +890,16 @@ "components.Settings.tautulliApiKey": "API Key", "components.Settings.tautulliSettings": "Tautulli Settings", "components.Settings.tautulliSettingsDescription": "Optionally configure the settings for your Tautulli server. Overseerr fetches watch history data for your Plex media from Tautulli.", - "components.Settings.toastApiKeyFailure": "Something went wrong while generating a new API key.", - "components.Settings.toastApiKeySuccess": "New API key generated successfully!", "components.Settings.toastPlexConnecting": "Attempting to connect to Plex…", "components.Settings.toastPlexConnectingFailure": "Failed to connect to Plex.", "components.Settings.toastPlexConnectingSuccess": "Plex connection established successfully!", "components.Settings.toastPlexRefresh": "Retrieving server list from Plex…", "components.Settings.toastPlexRefreshFailure": "Failed to retrieve Plex server list.", "components.Settings.toastPlexRefreshSuccess": "Plex server list retrieved successfully!", - "components.Settings.toastSettingsFailure": "Something went wrong while saving settings.", - "components.Settings.toastSettingsSuccess": "Settings saved successfully!", "components.Settings.toastTautulliSettingsFailure": "Something went wrong while saving Tautulli settings.", "components.Settings.toastTautulliSettingsSuccess": "Tautulli settings saved successfully!", - "components.Settings.trustProxy": "Enable Proxy Support", - "components.Settings.trustProxyTip": "Allow Overseerr to correctly register client IP addresses behind a proxy", "components.Settings.urlBase": "URL Base", "components.Settings.validationApiKey": "You must provide an API key", - "components.Settings.validationApplicationTitle": "You must provide an application title", - "components.Settings.validationApplicationUrl": "You must provide a valid URL", - "components.Settings.validationApplicationUrlTrailingSlash": "URL must not end in a trailing slash", "components.Settings.validationHostnameRequired": "You must provide a valid hostname or IP address", "components.Settings.validationPortRequired": "You must provide a valid port number", "components.Settings.validationUrl": "You must provide a valid URL", diff --git a/src/pages/discover/movies/keyword/index.tsx b/src/pages/discover/movies/keyword/index.tsx new file mode 100644 index 000000000..4fc0cfd27 --- /dev/null +++ b/src/pages/discover/movies/keyword/index.tsx @@ -0,0 +1,8 @@ +import DiscoverMovieKeyword from '@app/components/Discover/DiscoverMovieKeyword'; +import type { NextPage } from 'next'; + +const DiscoverMoviesKeywordPage: NextPage = () => { + return ; +}; + +export default DiscoverMoviesKeywordPage; diff --git a/src/pages/discover/tv/keyword/index.tsx b/src/pages/discover/tv/keyword/index.tsx new file mode 100644 index 000000000..0c6ab00ff --- /dev/null +++ b/src/pages/discover/tv/keyword/index.tsx @@ -0,0 +1,8 @@ +import DiscoverTvKeyword from '@app/components/Discover/DiscoverTvKeyword'; +import type { NextPage } from 'next'; + +const DiscoverTvKeywordPage: NextPage = () => { + return ; +}; + +export default DiscoverTvKeywordPage; diff --git a/src/styles/globals.css b/src/styles/globals.css index a5f417ddb..7e0900e0c 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -417,6 +417,14 @@ .react-select-container .react-select__input-container { @apply text-white; } + + .react-select-container .react-select__single-value { + @apply text-sm text-gray-100; + } + + .react-select-container .react-select__placeholder { + @apply text-sm text-gray-500; + } } @layer utilities { diff --git a/yarn.lock b/yarn.lock index 3036e822a..d638cfe1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1176,6 +1176,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.6.2": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -1654,6 +1661,14 @@ "@formatjs/intl-localematcher" "0.2.28" tslib "2.4.0" +"@formatjs/ecma402-abstract@1.14.0": + version "1.14.0" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.0.tgz#2ee584d671e2776434da88b3e1ae4ed3053ad450" + integrity sha512-o1RDlkxcLzi0ZcoaovQooZC+0M3Ox0/DKZ+YTdUU9DHgWFeEZbYXEqM9k7JHdN7VyRi4wprTVPqrK+zR/9mo8Q== + dependencies: + "@formatjs/intl-localematcher" "0.2.31" + tslib "2.4.0" + "@formatjs/ecma402-abstract@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz#ac6c17a8fffac43c6d68c849a7b732626d32654c" @@ -1675,6 +1690,22 @@ dependencies: tslib "2.4.0" +"@formatjs/fast-memoize@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.6.tgz#a442970db7e9634af556919343261a7bbe5e88c3" + integrity sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA== + dependencies: + tslib "2.4.0" + +"@formatjs/icu-messageformat-parser@2.1.11": + version "2.1.11" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.11.tgz#d0b59145bf910ea0fdd023a848369d7f08a16c26" + integrity sha512-g2OET65sDI0F3RUNXcyQPlxn+h+zQ6RkFIZZnOo70LtMEHTyDbgaMvauRlkBX52kqEe9eI99I3RaLvaM8pEcEg== + dependencies: + "@formatjs/ecma402-abstract" "1.14.0" + "@formatjs/icu-skeleton-parser" "1.3.15" + tslib "2.4.0" + "@formatjs/icu-messageformat-parser@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.4.tgz#f1e32b9937f151c1dd5c30536ce3e920b7f23813" @@ -1692,6 +1723,14 @@ "@formatjs/ecma402-abstract" "1.11.8" tslib "2.4.0" +"@formatjs/icu-skeleton-parser@1.3.15": + version "1.3.15" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.15.tgz#b30c6437aa259e8720e14beeff7e9c713d6e5646" + integrity sha512-/x7qBaswEGLEBm0vY8HmYy764py0FmD+pSzBNH5llgp1d0NFAIo+lTfsKFxPDk+iNNnL3f7ZH0KOyUtAResZ5Q== + dependencies: + "@formatjs/ecma402-abstract" "1.14.0" + tslib "2.4.0" + "@formatjs/intl-displaynames@6.0.3": version "6.0.3" resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.0.3.tgz#e648a91bccd9fb21519090eaafece3be9d15f480" @@ -1733,6 +1772,13 @@ dependencies: tslib "2.4.0" +"@formatjs/intl-localematcher@0.2.31": + version "0.2.31" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.31.tgz#aada2b1e58211460cedba56889e3c489117eb6eb" + integrity sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA== + dependencies: + tslib "2.4.0" + "@formatjs/intl-numberformat@^5.5.2": version "5.7.6" resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz#630206bb0acefd2d508ccf4f82367c6875cad611" @@ -1838,6 +1884,35 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@internationalized/date@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.1.tgz#66332e9ca8f59b7be010ca65d946bca430ba4b66" + integrity sha512-E/3lASs4mAeJ2Z2ye6ab7eUD0bPUfTeNVTAv6IS+ne9UtMu9Uepb9A1U2Ae0hDr6WAlBuvUtrakaxEdYB9TV6Q== + dependencies: + "@babel/runtime" "^7.6.2" + +"@internationalized/message@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.9.tgz#52bc20debe5296375d66ffcf56c3df5d8118a37d" + integrity sha512-yHQggKWUuSvj1GznVtie4tcYq+xMrkd/lTKCFHp6gG18KbIliDw+UI7sL9+yJPGuWiR083xuLyyhzqiPbNOEww== + dependencies: + "@babel/runtime" "^7.6.2" + intl-messageformat "^10.1.0" + +"@internationalized/number@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.1.tgz#160584316741de4381689ab759001603ee17b595" + integrity sha512-dBxCQKIxvsZvW2IBt3KsqrCfaw2nV6o6a8xsloJn/hjW0ayeyhKuiiMtTwW3/WGNPP7ZRyDbtuiUEjMwif1ENQ== + dependencies: + "@babel/runtime" "^7.6.2" + +"@internationalized/string@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.0.tgz#de563871e1b19e4d0ce3246ec18d25da1a73db73" + integrity sha512-NUSr4u+mNu5BysXFeVWZW4kvjXylPkU/YYqaWzdNuz1eABfehFiZTEYhWAAMzI3U8DTxfqF9PM3zyhk5gcfz6w== + dependencies: + "@babel/runtime" "^7.6.2" + "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" @@ -2371,6 +2446,540 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== +"@react-aria/breadcrumbs@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.4.0.tgz#dadc6c9eb70ad7185e52929df5c82fe283485e9e" + integrity sha512-zQzDu8yO4DInw14FfuZVkIqsoQ9xJ+nbRjJug1iag+FBJCb598DnBZVpFvZdsOsRKbCtImhHhjK/CcImq1rTpA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/link" "^3.3.5" + "@react-aria/utils" "^3.14.1" + "@react-types/breadcrumbs" "^3.4.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/button@^3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.3.tgz#058f3f7ef935395ae2c744d4b926236b2e5c406c" + integrity sha512-t6UHFPFMlAQW0yefjhqwyQya6RYlUtMRtMKZjnRANbK6JskazkkLvu//qULs+vsiM21PLhspKVLcGdS+t2khsA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/toggle" "^3.4.3" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + +"@react-aria/calendar@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.0.4.tgz#f97318ccfdf57294b66e71f751a3df20832f4b31" + integrity sha512-FE52NSR631YO+ew0k/Qt90C+qV9qJV53uAkFYWXzYE0zeE9/+IM0Jtrb/rdcmUhsx/c4l9tzNPAMdFjKvkawXw== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "^3.0.1" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/utils" "^3.14.1" + "@react-stately/calendar" "^3.0.4" + "@react-types/button" "^3.7.0" + "@react-types/calendar" "^3.0.4" + "@react-types/shared" "^3.16.0" + +"@react-aria/checkbox@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.7.0.tgz#74e58e66a06908c78109dbbcc359c5485c1c6463" + integrity sha512-CGVfBcCK3e8YwjPSgIMTQbMxbjTtsDy9xGkw/7iCMVIsHC7MfzO8Ny5qJJbQ2dVkNnSfIgQdtWikYGJN2QjeDw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/label" "^3.4.3" + "@react-aria/toggle" "^3.4.1" + "@react-aria/utils" "^3.14.1" + "@react-stately/checkbox" "^3.3.1" + "@react-stately/toggle" "^3.4.3" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/combobox@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.4.3.tgz#c930ce318c37b7f7fee5687352afa4de0fce4355" + integrity sha512-MrpxrpJOOIRKMKkFDxTzQFu6y31eL15IsMbTRttO0NsrnQiJl19ojz6MpnhIJjnaC/Wz2EEWqnUawQsJjAVxyQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/listbox" "^3.7.1" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/menu" "^3.7.0" + "@react-aria/overlays" "^3.12.0" + "@react-aria/selection" "^3.12.0" + "@react-aria/textfield" "^3.8.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/collections" "^3.5.0" + "@react-stately/combobox" "^3.3.0" + "@react-stately/layout" "^3.9.0" + "@react-types/button" "^3.7.0" + "@react-types/combobox" "^3.5.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/datepicker@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.2.0.tgz#3905a888cfed7d71a9ef212fb72448eb6dbb0175" + integrity sha512-qsnAcKeWzmZadXtQPpmTN4TNO10Vq/TXSsf5PF+2MInsJQjEWTN8YFFgTbKVf7ksDwfDRSarTV0f+hZbi5scHA== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "^3.0.1" + "@internationalized/number" "^3.1.1" + "@internationalized/string" "^3.0.0" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/spinbutton" "^3.2.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/datepicker" "^3.2.0" + "@react-types/button" "^3.7.0" + "@react-types/calendar" "^3.0.4" + "@react-types/datepicker" "^3.1.3" + "@react-types/dialog" "^3.4.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/dialog@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.4.1.tgz#373c389e21b9b9fcc6947ec092074daedd46030c" + integrity sha512-1P6zCn78OP9nv7/1i4QsysOKQ6gxHy9JUyOj0ixrR1jwYI/psCM2MwT9cfPjuj7pGQys6lsu4glSmZ82zARURQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/overlays" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/overlays" "^3.4.3" + "@react-types/dialog" "^3.4.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/dnd@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.0.0.tgz#3217595756ded984a0f8aa9a26b3e5b8f01acd12" + integrity sha512-0sJp1tqqqp4FIN+VBPcImrBy0Tb+qMAIeQ4RmqQCdrwb+T1WDcroyUnYoTRPBatsHBClQMM4z9ETKrudKJqC0w== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/string" "^3.0.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/overlays" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-aria/visually-hidden" "^3.6.0" + "@react-stately/dnd" "^3.0.0" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + +"@react-aria/focus@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.10.0.tgz#12d85d46f58590a915009e57bddb2d90b56f5836" + integrity sha512-idI7Etgh6y2BYi3X4d+EuUpzR7gPZ94Lf/0UNnVyMkDM9fzcdz/8DCBt0qKOff24HlaLE1rmREt0+iTR/qRgbA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + clsx "^1.1.1" + +"@react-aria/grid@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.5.1.tgz#0c5c719985cf66501cd6ae8d34673185de70f358" + integrity sha512-eWwhG9wHb6l6poZSvnhoSSCpNy1kG3HxIpcbMaR2/qllbUYgZ4PASyx4N2TT/VqBUsxCSwC/WqcDka11U9d94w== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/grid" "^3.4.1" + "@react-stately/selection" "^3.11.1" + "@react-stately/virtualizer" "^3.4.0" + "@react-types/checkbox" "^3.4.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/gridlist@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.1.1.tgz#541d4b3ea9327ddddda8556a2d6d8bcc65387438" + integrity sha512-/2f4RYqPF1Jxz2Zl5uScGh8trS/N+cp3YbihjLX/3q/qwBj6El72lpJCeF6zkGAJQx+bt1Uew5YB0qt9uMYZng== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/grid" "^3.5.1" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/list" "^3.6.0" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/i18n@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.2.tgz#74fa50f4b13ca7efe7738fd1960732a076ed049d" + integrity sha512-/G22mZQcISX6DcKLBn4j/X53y2SOnFfiD4wOEuY7sIZZDryktd+3I/QHukCnNlf0tKK3PdixQLvWa9Q1RqTSaw== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "^3.0.1" + "@internationalized/message" "^3.0.9" + "@internationalized/number" "^3.1.1" + "@internationalized/string" "^3.0.0" + "@react-aria/ssr" "^3.4.0" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/interactions@^3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.13.0.tgz#897ee2b4a7751bcf22c716ceccfc1321f427a8f2" + integrity sha512-gbZL+qs+6FPitR/abAramth4lqz/drEzXwzIDF6p6WyajF805mjyAgZin1/3mQygSE5BwJNDU7jMUSGRvgFyTw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/label@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.4.3.tgz#7cc1821cffb0dba6c9a82c2c0fb5655ddca52ba6" + integrity sha512-g8NSHQKha6xOpR0cUQ6cmH/HwGJdebEbyy+c1I6VeW6me8lSF47xLnybnA6LBV4x9hJqkST6rfL/oPaBMCEKNA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.14.1" + "@react-types/label" "^3.7.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/link@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.3.5.tgz#5c22a6cbff0ce982e135971b932e34183d163dfb" + integrity sha512-BbyoJ73IAQcQMYWFxhV/zJWYFlx4Edprm6xfBZKMEBrEpUcvBwe/X3QsCQmRXZ8fJodMjQ9SdQPyue1yi8Ksrw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-types/link" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/listbox@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.7.1.tgz#10ded709334146fbeccc66437074c0e070cbf4ad" + integrity sha512-vKovd+u8F7jdcogZeDPtm89gn390cR0xpMbOoyPzbACOdST43SYexDXWV4Ww/M2YWkdJxT3jZ576NeifcfO2MA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/collections" "^3.5.0" + "@react-stately/list" "^3.6.0" + "@react-types/listbox" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/live-announcer@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.1.1.tgz#40f340f6794fca42682fb308fe750ff56bf7c07f" + integrity sha512-e7b+dRh1SUTla42vzjdbhGYkeLD7E6wIYjYaHW9zZ37rBkSqLHUhTigh3eT3k5NxFlDD/uRxTYuwaFnWQgR+4g== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-aria/menu@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.7.0.tgz#1aa8a06c3b89dcc94d9451f84b47409aeb673733" + integrity sha512-dCSg67G3vEXOovZyaojZXvcq19MLqual6oTSJC9WhNS/SR0AuNPbwMbD34a/b1Je73ro5bzjIbmQPyt/i3XaCA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/overlays" "^3.12.0" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/collections" "^3.5.0" + "@react-stately/menu" "^3.4.3" + "@react-stately/tree" "^3.4.0" + "@react-types/button" "^3.7.0" + "@react-types/menu" "^3.7.3" + "@react-types/shared" "^3.16.0" + +"@react-aria/meter@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.3.3.tgz#023091968fd5d9ba3b2dc06ad5fc16ba9f1a8618" + integrity sha512-6pe6Gl5e9yZsDkFsdpQNx9eAqSKIjwcOJ4/mLgTiCVgZWtWYuxprLAPiN7OyCnSYPfLp36wkIrMkk82xfBYb9Q== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/progress" "^3.3.3" + "@react-types/meter" "^3.2.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/numberfield@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.3.3.tgz#6a4861eb43abb4d9fcb06de256ee1ecc6047b3f1" + integrity sha512-DxVhoD+RsgN385f2OsOg5J1RYo1yZt0AUfIJdHn7FDWYCxruUVmEhzy1ovDxpXkseK0Gh3IdkfHvOfgiqE+pXg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/spinbutton" "^3.2.0" + "@react-aria/textfield" "^3.8.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/numberfield" "^3.3.0" + "@react-types/button" "^3.7.0" + "@react-types/numberfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.1" + +"@react-aria/overlays@^3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.12.0.tgz#66fc930a39771888123c6fd1b246fedd5e76ad89" + integrity sha512-jsGeLTB3W3S5Cf2zDTxh1ODTNkE69miFDOGMB0VLwS1GWDwDvytcTRpBKY9JBrxad+4u0x6evnah7IbJ61qNBA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/ssr" "^3.4.0" + "@react-aria/utils" "^3.14.1" + "@react-aria/visually-hidden" "^3.6.0" + "@react-stately/overlays" "^3.4.3" + "@react-types/button" "^3.7.0" + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/progress@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.3.3.tgz#b79327b27ad367f9ffd7376ed505b2281efdfc9d" + integrity sha512-yRE9fBfbjSdyWHWeQ4HqEURAT8foa9drGCJIKnMUx08dEsPAXvdh9tvnAvr1kbJnDlZxVwhlbTyFCwB+E2Mfag== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/label" "^3.4.3" + "@react-aria/utils" "^3.14.1" + "@react-types/progress" "^3.2.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/radio@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.4.1.tgz#23ed38aac1fb5094c7652919d331ec77094ba41f" + integrity sha512-a1JFxFOiExX1ZRGBE31LW4dgc3VmW2v3upJ5snGQldC83o0XxqNavmOef+fMsIRV0AQA/mcxAJVNQ0n9SfIiUQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/utils" "^3.14.1" + "@react-stately/radio" "^3.6.1" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/searchfield@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.4.3.tgz#7f897f9c6ef6b19291d43d629e41680d1a7835b5" + integrity sha512-8WISGEyXWyVKRql4oVc9T5eNx8jTUwDQy0+ZSO5qGXuiZtlyeTJdWMrHN8I4SUdWEoF9c7R0eLhl0Twefnjkiw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/textfield" "^3.8.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/searchfield" "^3.3.3" + "@react-types/button" "^3.7.0" + "@react-types/searchfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/select@^3.8.3": + version "3.8.3" + resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.8.3.tgz#6137fc28b4ccfc4f3761e2f7ecd67b24b2f005e0" + integrity sha512-EkbzbpSEkq0oSmFSeOJskjPzopqmKQ2VxsEaJHL8RebVdJiNxp5kSaBOaH1KxZI9DgrzHQNSRKYJaSJ1pUTfbw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/listbox" "^3.7.1" + "@react-aria/menu" "^3.7.0" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-aria/visually-hidden" "^3.6.0" + "@react-stately/select" "^3.3.3" + "@react-types/button" "^3.7.0" + "@react-types/select" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-aria/selection@^3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.12.0.tgz#895ced39795180094ca79882c54b71441f4466e7" + integrity sha512-Akzx5Faxw+sOZFXLCOw6OddDNFbP5Kho3EP6bYJfd2pzMkBc8/JemC/YDrtIuy8e9x6Je9HHSZqtKjwiEaXWog== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/collections" "^3.5.0" + "@react-stately/selection" "^3.11.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/separator@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.2.5.tgz#4c004023eb8c31ac36ddacaf938d776c1e04c50c" + integrity sha512-WJhqvUqMxxs18Qn8kGIdx7NCe/yoHev6w0TCxxcZMf/crJKWdSunv3YpbcQW67loBTRo1093RqhacPtXoRzQvg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + +"@react-aria/slider@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.2.3.tgz#cc4c61c427e2df07fb4cecf2c6113f0a485bb498" + integrity sha512-y2Sx2YExcWcg15Hzhxhqccpylq5xm2RlswnhBxzwY+ms8ZR4MK6UNL64wbCmOBLxhzjgi5mTWSB+OmVCZk5H4A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/utils" "^3.14.1" + "@react-stately/radio" "^3.6.1" + "@react-stately/slider" "^3.2.3" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + "@react-types/slider" "^3.3.1" + +"@react-aria/spinbutton@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.2.0.tgz#f1e12954c3ca20c298f71494e371cec99781de1a" + integrity sha512-6pbfC/uOz1k+D6NL7l/o855yr3hMBaiLdZpKdGu4N/vybnyS5ZcjX9Y1VswBZjYgvZ3Ojp8fSu/buZMU/zAISw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/utils" "^3.14.1" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + +"@react-aria/ssr@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.0.tgz#a2b9a170214f56e41d3c4c933d0d8fcffa07a12a" + integrity sha512-qzuGk14/fUyUAoW/EBwgFcuMkVNXJVGlezTgZ1HovpCZ+p9844E7MUFHE7CuzFzPEIkVeqhBNIoIu+VJJ8YCOA== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-aria/switch@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.3.0.tgz#b68753d0917964bb7e84aaa50b63ab4ecc4f23a7" + integrity sha512-A/6G9HjZYPvCvaUbrghdCH0rkQfaNbayruQJ+PWGITZbxhYZAUUW7wkxvxLpf3iX2K5+UtNNThxlEMcplEkVrw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/toggle" "^3.4.1" + "@react-stately/toggle" "^3.4.3" + "@react-types/switch" "^3.2.5" + +"@react-aria/table@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.6.0.tgz#8258a6f53e233bb0f5e2da71b5fd33d866c4f517" + integrity sha512-hwq+5iwXVSirmi9Lr0v5wDOv7uz7UD+BUNFXP5d9nknrAKzVYDfpuNpz/Bbhpczp9R89VRBcFvcKJ3cWhESYnw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/grid" "^3.5.1" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/live-announcer" "^3.1.1" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/table" "^3.6.0" + "@react-stately/virtualizer" "^3.4.0" + "@react-types/checkbox" "^3.4.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.3.3" + +"@react-aria/tabs@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.3.tgz#b66852794c6d72cf66a6789d78f89c6b41523b3c" + integrity sha512-0GeArynZzWQuNXIp1DUexNdfFC0vnTLAhN9cd3ZJDc7jbAvwy5HB363ElYqfTqNgvrtMF1QTJo9tY6KmYWxLeg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/selection" "^3.12.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/list" "^3.6.0" + "@react-stately/tabs" "^3.2.3" + "@react-types/shared" "^3.16.0" + "@react-types/tabs" "^3.1.5" + +"@react-aria/textfield@^3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.8.0.tgz#1bc1cd93af82861a789b1bc1c4cd7c1b549f564e" + integrity sha512-PRU8q1gK0auDMH1YekJScZ4EZMrLrL3QJEHMNDdp2GDQlVISbPeTRy2On20DXfiG8GlXAtCWj9BiZhK2OE71DQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/label" "^3.4.3" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.1" + +"@react-aria/toggle@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.4.1.tgz#d48381ed7ebcd7637cc5be7ba5a5323a6e91c658" + integrity sha512-oVcjqsqvvEXW25vm3F2gxF5Csz8vRNKeF7Kc5pxqLrBohqMausChul+/Zisx5qVB4TL0yO3ygjTGbEvfEYQ1qg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/toggle" "^3.4.3" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@react-types/switch" "^3.2.5" + +"@react-aria/tooltip@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.3.3.tgz#02f64fffe5ab4bb9db28b73896770c74f0d4dc42" + integrity sha512-EF58SQ70KEfGJQErsELJh1dk3KUDrBFmCEHo6kD1fVEHCqUgdWLkz+TCfkiP8VgFoj4WoE8zSpl3MpgGOQr/Gg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/focus" "^3.10.0" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-stately/tooltip" "^3.2.3" + "@react-types/shared" "^3.16.0" + "@react-types/tooltip" "^3.2.5" + +"@react-aria/utils@^3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.14.1.tgz#36aeb077f758f1f325951b1e3376a905217edd84" + integrity sha512-+ynP0YlxN02MHVEBaeuTrIhBsfBYpfJn36pZm2t7ZEFbafH8DPaMGZ70ffYZXAESkWzRULXL3e79DheWOFI1qA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/ssr" "^3.4.0" + "@react-stately/utils" "^3.5.1" + "@react-types/shared" "^3.16.0" + clsx "^1.1.1" + +"@react-aria/visually-hidden@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.6.0.tgz#cc4dd9e648a5c8b6d8dfbd1f70d8672b36d3f1bc" + integrity sha512-W3Ix5wdlVzh2GY7dytqOAyLCXiHzk3S4jLKSaoiCwPJX9fHE5zMlZwahhDy27V0LXfjmdjBltbwyEZOq4G/Q0w== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + clsx "^1.1.1" + "@react-spring/animated@~9.5.2": version "9.5.2" resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.5.2.tgz#42785b4f369d9715e9ee32c04b78483e7bb85489" @@ -2457,6 +3066,453 @@ "@react-spring/shared" "~9.5.2" "@react-spring/types" "~9.5.2" +"@react-stately/calendar@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.0.4.tgz#b6bd88b11064a1b020a99f7e225becc050a35665" + integrity sha512-KaytmQVRqEOoKuLDgrm8RzY7ZHJ24IlDirN4dZj1wBHYt7RkAtwgqyTF/eyhS6/VYegmPhu53GcsSk0I3W+xLQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "^3.0.1" + "@react-stately/utils" "^3.5.1" + "@react-types/calendar" "^3.0.4" + "@react-types/datepicker" "^3.1.3" + "@react-types/shared" "^3.16.0" + +"@react-stately/checkbox@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.3.1.tgz#4a53f8e813161f5c149c51b844624982e82a9247" + integrity sha512-r2hL11GF9r2ztUFEhpiVgiXgE+W99tyL1Kt7rOiTZ8/aMBGWwBxOHAdHeqcWFeBgOztXuJsKiDu82necEG4xhA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/toggle" "^3.4.3" + "@react-stately/utils" "^3.5.1" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/collections@^3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.5.0.tgz#01606d4aa12364cc4296cc036e77690e48ec818c" + integrity sha512-3BAMRjJqrka0IGvyK4m3WslqCeiEfQGx7YsXEIgIgMJoLpk6Fi1Eh4CI8coBnl/wcVLiIRMCIvxubwFRWTgzdg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-types/shared" "^3.16.0" + +"@react-stately/combobox@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.3.0.tgz#ae3566f3c715dbd4bf826927dbaaacb42ae108f5" + integrity sha512-+9xQW6C4nMcx7M72P4vZdQECa9CqzALTM3HTNAXgdCmfEezhns/m4xGmn4hoN8iw39yYvU8Ffs80rgTFQ+/oFg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/list" "^3.6.0" + "@react-stately/menu" "^3.4.3" + "@react-stately/select" "^3.3.3" + "@react-stately/utils" "^3.5.1" + "@react-types/combobox" "^3.5.5" + "@react-types/shared" "^3.16.0" + +"@react-stately/datepicker@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.2.0.tgz#74ae91de4b8a24ddaefbd60b38a1851080c3e53f" + integrity sha512-isFB8jpeiig3vfstWKkaY0cdejG0XT47Q9jZJgsrsEqpMVFBmcvlQQQ3WNqP4yC5c7Mrs3tAscY7WtbPIkDQ4g== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/date" "^3.0.1" + "@internationalized/string" "^3.0.0" + "@react-stately/overlays" "^3.4.3" + "@react-stately/utils" "^3.5.1" + "@react-types/datepicker" "^3.1.3" + "@react-types/shared" "^3.16.0" + +"@react-stately/dnd@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.0.0.tgz#533035fb1180605e24431d503417e38d9788d830" + integrity sha512-TI3BqheEm9fUhqrMm6RFY6q8DcWfC5O/LK+IgHpQgOBhL+Vk/EwvGnRice1xyMEQKbAXf04WOFiAjZqfurLshQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/selection" "^3.11.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/grid@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.4.1.tgz#b3f771d64141e3753e16b7ddba0affa6f22a927a" + integrity sha512-IRaqXUQGji87Q+pYYQKJYTuUtgAjoDQaMOlvpvB9HlyK5faXq0H1tJsYAeVYpH0synfzCnr7CN0J6kSTbeL1jA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/selection" "^3.11.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + +"@react-stately/layout@^3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.9.0.tgz#2a23ec29443ef8103b330a7a8bda07b19c6a03da" + integrity sha512-uFdK98hIspBV9/RMW/JJaViuWyISdcm5GFplB361JZkhDaYblzomvkoX5Y1dKO5uH/BOjdM2AB5vfCb21oKEhg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/virtualizer" "^3.4.0" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.3.3" + +"@react-stately/list@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.6.0.tgz#b5e04d59b8d53974c199f19712eb02c7a138896e" + integrity sha512-sah2JAiqlSZhg1tQBSv9866LeAJISmosOFsOsVZPfyfAewuCksA+8OHrFtbKmMyzU5MbrmpbR8v2zZH7c1CLdg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.5.0" + "@react-stately/selection" "^3.11.1" + "@react-stately/utils" "^3.5.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/menu@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.4.3.tgz#65bb3fe29634047d3f6a3024577d3535e00802ae" + integrity sha512-ZWym6XQSLaC5uFUTZl6+mreEgzc8EUG6ElcnvdXYcH4DWUfswhLxCi3IdnG0lusWEi4NcHbZ2prEUxpT8VKqrg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/overlays" "^3.4.3" + "@react-stately/utils" "^3.5.1" + "@react-types/menu" "^3.7.3" + "@react-types/shared" "^3.16.0" + +"@react-stately/numberfield@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.3.0.tgz#e1926996772440ea3c9d65ca9b0b9d1914ee9409" + integrity sha512-UYw8KpLEG7F6U3lHvrqWLdyiWmEeYwvwLlUPErIy+/heoBUW22FRjTIfOANmvVQoeSmd8aGIBWbCVRrbjU6Q5A== + dependencies: + "@babel/runtime" "^7.6.2" + "@internationalized/number" "^3.1.1" + "@react-stately/utils" "^3.5.1" + "@react-types/numberfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-stately/overlays@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.4.3.tgz#2e935c404c0845ee7a7c6f001ff057d315161a16" + integrity sha512-WZCr3J8hj0cplQki1OVBR3MXg2l9V017h15Y2h+TNduWvnKH0yYOE/XfWviAT4KUP0LYoQfCnZ7XMHv+UI+8JA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.5.1" + "@react-types/overlays" "^3.6.5" + +"@react-stately/radio@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.6.1.tgz#7d2d7ad94cc910a5647c196ce747c2f4a9a160b6" + integrity sha512-Hcg2qgvR7ekKMzVKeGby1FgMk3Sw4iDcEY/K1Y6j7UmGjM2HtQOq614tWQSQeGB25pp5I2jAWlparJeX0vY/oA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.5.1" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/searchfield@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.3.3.tgz#36888922e96258815c77140bc26419fe98c9d555" + integrity sha512-pQxvFP05gPU2pcm+RuKg5Q8TuYcQ+SpxRwX4i4awwL/wSZTG7VmFkQpOaQK5wU558UXydMnK3QfifmCBV7IN9A== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.5.1" + "@react-types/searchfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-stately/select@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.3.3.tgz#d042c88a63e9d4c6718a45034ea27789cbd34819" + integrity sha512-HTKKwx5tq21G2r3Q0CVC5v2Amftj1+DvBlFSRIC9ZqWyxeQg//HotX0GpYHzEEyj5hB1GjBklKJ4UVejqNbb0w== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.5.0" + "@react-stately/list" "^3.6.0" + "@react-stately/menu" "^3.4.3" + "@react-stately/selection" "^3.11.1" + "@react-stately/utils" "^3.5.1" + "@react-types/select" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-stately/selection@^3.11.1": + version "3.11.1" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.11.1.tgz#580145bade9aebb8395ebc2edabed422d84fde0a" + integrity sha512-UHB6/eH5NJ+Q70G+pmnxohHfR3bh0szT+lOlWPj7Mh76WPu9bu07IHKLEob6PSzyJ81h7+Ysk3hdIgS3TewGog== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.5.0" + "@react-stately/utils" "^3.5.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/slider@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.2.3.tgz#36dcd2ccf07021ec770bbdebaa43c2fd4531884a" + integrity sha512-l5ezt0+Gq67QO/J5u6YX00mzahRrANSXK/wBx7TVeIxqOAPOG9zc8M8O9Pa5fZB6lYAVpHMbV/aqLSkyy8ImTg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/i18n" "^3.6.2" + "@react-aria/utils" "^3.14.1" + "@react-stately/utils" "^3.5.1" + "@react-types/shared" "^3.16.0" + "@react-types/slider" "^3.3.1" + +"@react-stately/table@^3.6.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.6.0.tgz#f47041d14b2b803da33720b4b754f3af3c91954a" + integrity sha512-B6zamfI06j3+kxlMm1mgn+JaQv5CdXgYsMLo96nrU+XRbn2WzAikc2w+XHmfnqlKAcm+PtcDjrshDOCMioP2QA== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.5.0" + "@react-stately/grid" "^3.4.1" + "@react-stately/selection" "^3.11.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.3.3" + +"@react-stately/tabs@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.3.tgz#39b7e7bf7dfe544868be4c1593578587cff0d5a9" + integrity sha512-23GX5iBX1IPY1sD4nq8sTgCfaCt+P2nORYnBWA01+iZoUX/g3BG3+3S2SVL1J7esmcapGnXNapUa2zEbf3aFRg== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/list" "^3.6.0" + "@react-stately/utils" "^3.5.1" + "@react-types/tabs" "^3.1.5" + +"@react-stately/toggle@^3.4.3": + version "3.4.3" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.4.3.tgz#331942e70314f918f852ee679b8f668d98771801" + integrity sha512-HsJLMa5d9i6SWyDIahkJExkanXZek86//hirsgSU0IvY7YJx33Wek8UwHE5Vskp39DAOu18QMz2GrAngnUErYQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/utils" "^3.5.1" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/tooltip@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.2.3.tgz#edcd70239b0b872753e6636085e53eafd023a61c" + integrity sha512-RWCcqn6iz1IcOXX+TiXBql2kI5hgDlf49DiGZJqSGmNQujX1FVZ1uqn9yHpdh+/TZPZ7JeMvQu3S5lA+x4ehPw== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/overlays" "^3.4.3" + "@react-stately/utils" "^3.5.1" + "@react-types/tooltip" "^3.2.5" + +"@react-stately/tree@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.4.0.tgz#e3985fcc4a6c4014a6cb28b146ff5f6903c7bd4c" + integrity sha512-MqxSABMzykwI6Wj1B7+jBcCoYc0b05CueRTQDyoL+PfVhnV0SzOH6P84UPD+FHlz8x3RG/2hTTmLr4A8McO2nQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-stately/collections" "^3.5.0" + "@react-stately/selection" "^3.11.1" + "@react-stately/utils" "^3.5.1" + "@react-types/shared" "^3.16.0" + +"@react-stately/utils@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.1.tgz#502de762e5d33e892347c5f58053674e06d3bc92" + integrity sha512-INeQ5Er2Jm+db8Py4upKBtgfzp3UYgwXYmbU/XJn49Xw27ktuimH9e37qP3bgHaReb5L3g8IrGs38tJUpnGPHA== + dependencies: + "@babel/runtime" "^7.6.2" + +"@react-stately/virtualizer@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.4.0.tgz#939c19d869ccf0e3f7c0e62ecb2406a9fe128cd1" + integrity sha512-Yy5RKlt6W/1+qjJAVHxPJA0RgpN3KNHcSpnFHdus2OuEvylSXZ2kqwflj97Ao4XfNSpDIs4NQS/eOq+mpZlNqQ== + dependencies: + "@babel/runtime" "^7.6.2" + "@react-aria/utils" "^3.14.1" + "@react-types/shared" "^3.16.0" + +"@react-types/breadcrumbs@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.4.5.tgz#ea77c88af05497b93bdeedc21dbb98973bbd57a2" + integrity sha512-5DXV6qW6Orronu1D9Op903m+lGzPajzJnsW6ygEiv6kjRutY33gIl1ePoQKoBQzNimtFs3uE4YLOw7nLzry1qg== + dependencies: + "@react-types/link" "^3.3.5" + "@react-types/shared" "^3.16.0" + +"@react-types/button@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.7.0.tgz#774c043d8090a505e60fdf26f026d5f0cc968f0f" + integrity sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/calendar@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.0.4.tgz#294a2931f87e547fdd8261aa4524e5cc8524d5a4" + integrity sha512-0hKaaEil2XbdUESQe9Yg2uLVNvNcFHVzXN6KoQHGBPnpWlkwa24ufKiX27mAWOAoce0nEXlVBG1H9C/kwLMcMw== + dependencies: + "@internationalized/date" "^3.0.1" + "@react-types/shared" "^3.16.0" + +"@react-types/checkbox@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.4.1.tgz#75a78b3f21f4cc72d2382761ba4c326aefd699db" + integrity sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/combobox@^3.5.5": + version "3.5.5" + resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.5.5.tgz#13410106fc2df8e3d02d53a33e9d2a6f3f2f6b61" + integrity sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/datepicker@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.1.3.tgz#0bfc1755ca0a7680b68d1f9281721f72b2dcf7c8" + integrity sha512-5ZsCU/quVXMCQd3T9yLYKOviSghBaSx/vqzJDsDGimyFRAxd4n95PRl8SjlGjVf6lR0WSihCbcXB/D+b8/RJIA== + dependencies: + "@internationalized/date" "^3.0.1" + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/dialog@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.4.5.tgz#a12c4e6d69dd7f098eb8b1534107ae6d970f734b" + integrity sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/grid@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.1.5.tgz#b0efef48202b40aa05913f1fe5b05d80e7d26c15" + integrity sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/label@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.7.1.tgz#ad4d3d7a6b5ea6aca70f89661d7c358cf2ab5f94" + integrity sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/link@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.3.5.tgz#0482c03ccb3e703922b201cda582801024508145" + integrity sha512-wEeYXqzRPwEwU6AakiRfsPrkGxm2l0gjIc992FBmHPz6MWU8eSATTwzeyI668eRzNrQvOBMI7il6lXuxDm1ZLg== + dependencies: + "@react-aria/interactions" "^3.13.0" + "@react-types/shared" "^3.16.0" + +"@react-types/listbox@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.3.5.tgz#c2222e3f50fbf377ed20b2d16e761b9c09d7adc8" + integrity sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/menu@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.7.3.tgz#beb8d0fb7f1e50254e2e7661dfbfa4bb38826dad" + integrity sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/meter@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/meter/-/meter-3.2.5.tgz#99a381808e98765e7b645721bcc2bff4b5d5f19e" + integrity sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw== + dependencies: + "@react-types/progress" "^3.2.5" + "@react-types/shared" "^3.16.0" + +"@react-types/numberfield@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/numberfield/-/numberfield-3.3.5.tgz#423aced559f7431e88b7988bf7e2cb3870fcdb1c" + integrity sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/overlays@^3.6.5": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.6.5.tgz#466b325d9be51f67beb98b7bec3fd9295c72efac" + integrity sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/progress@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.2.5.tgz#71780e48402cb25813c8edd07ee6075cdd972488" + integrity sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/radio@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.3.1.tgz#688570ba9901d21850a16c2aaafed5dd83e09966" + integrity sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/searchfield@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.3.5.tgz#a1019b10e2052faf8bde1dc3be99e9113e361844" + integrity sha512-g0kefTbrpqh5Cbv7skvlWfcDnopwTdoe7muHRYkuhMYbGbr8ZeUrCXpWUwVXBq8M24soLSHLuRohaEnKcwpHhw== + dependencies: + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.1" + +"@react-types/select@^3.6.5": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.6.5.tgz#798abf0073b39eef041952198a9e84eff0ce9edc" + integrity sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/shared@^3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.16.0.tgz#cab7bf0376969d1773480ecb2d6da5aa91391db5" + integrity sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw== + +"@react-types/slider@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.3.1.tgz#0e6a8d0767b1ab94f8c32541d50aaa6d93683df4" + integrity sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/switch@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.2.5.tgz#e1db722e8beeed846cfcf9de94cad81b4e0ead78" + integrity sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ== + dependencies: + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-types/table@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.3.3.tgz#350d6a86ad0aceab3fdd33470b4bd1346777aaf4" + integrity sha512-rdY8PCzdqumVd6EFgN4NCoNRHdU4dVKH2oufr50TrAVPAz2KyoNXaGcDGe0q4RjQeTk+fc0sCvRZZdpMwHRVpQ== + dependencies: + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + +"@react-types/tabs@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.1.5.tgz#8676dd16e0dc4be2d4d1cc33bb89cc679ef93abe" + integrity sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/textfield@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.6.1.tgz#70494412144ddbe4e2ae37ba8ef63922e2a9f413" + integrity sha512-V3EyYw82GVJQbNN0OAWpOLs/UQij+AgUuJpxh8192p/q0B3/9lqepZ9b+Qts2XgMsA+3Db+KgFMWm2IdjaZbpQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/tooltip@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.2.5.tgz#f2940d3edbcf846dc15f9222f0162664641f183c" + integrity sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + "@rushstack/eslint-patch@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" @@ -4417,6 +5473,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + cmd-shim@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" @@ -7151,6 +8212,16 @@ intl-messageformat@10.1.1: "@formatjs/icu-messageformat-parser" "2.1.4" tslib "2.4.0" +intl-messageformat@^10.1.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.2.tgz#8436a6bf36d5d336513ff027fb099ca0d6676d13" + integrity sha512-iiaDjsEZNe92Vb8UIf46hT/3uVdcrL4x4GLjwFSVz/uC6ancQDUtyLVETX13wyTw78kBo3ONBMgiHoCtWN8ioQ== + dependencies: + "@formatjs/ecma402-abstract" "1.14.0" + "@formatjs/fast-memoize" "1.2.6" + "@formatjs/icu-messageformat-parser" "2.1.11" + tslib "2.4.0" + intl@1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde" @@ -10289,6 +11360,46 @@ react-animate-height@2.1.2: classnames "^2.2.5" prop-types "^15.6.1" +react-aria@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.21.0.tgz#429cf5ae13bbdf49cc2687254f5325a0cf386d82" + integrity sha512-gPzUZ+TxY8lDN1j4K90O3SVWBF1k870NuIePjgiymQqmKTMBGvBB6AswxSgbefakQjkgg+GsyQYGhoQMTtpcMA== + dependencies: + "@react-aria/breadcrumbs" "^3.4.0" + "@react-aria/button" "^3.6.3" + "@react-aria/calendar" "^3.0.4" + "@react-aria/checkbox" "^3.7.0" + "@react-aria/combobox" "^3.4.3" + "@react-aria/datepicker" "^3.2.0" + "@react-aria/dialog" "^3.4.1" + "@react-aria/dnd" "^3.0.0" + "@react-aria/focus" "^3.10.0" + "@react-aria/gridlist" "^3.1.1" + "@react-aria/i18n" "^3.6.2" + "@react-aria/interactions" "^3.13.0" + "@react-aria/label" "^3.4.3" + "@react-aria/link" "^3.3.5" + "@react-aria/listbox" "^3.7.1" + "@react-aria/menu" "^3.7.0" + "@react-aria/meter" "^3.3.3" + "@react-aria/numberfield" "^3.3.3" + "@react-aria/overlays" "^3.12.0" + "@react-aria/progress" "^3.3.3" + "@react-aria/radio" "^3.4.1" + "@react-aria/searchfield" "^3.4.3" + "@react-aria/select" "^3.8.3" + "@react-aria/selection" "^3.12.0" + "@react-aria/separator" "^3.2.5" + "@react-aria/slider" "^3.2.3" + "@react-aria/ssr" "^3.4.0" + "@react-aria/switch" "^3.3.0" + "@react-aria/table" "^3.6.0" + "@react-aria/tabs" "^3.3.3" + "@react-aria/textfield" "^3.8.0" + "@react-aria/tooltip" "^3.3.3" + "@react-aria/utils" "^3.14.1" + "@react-aria/visually-hidden" "^3.6.0" + react-dom@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -10588,6 +11699,11 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" From 1a95d423f214a66a7e14c6dfe29a9cf40149393f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jan 2023 22:06:07 +0900 Subject: [PATCH 10/65] chore(deps): update all non-major dependencies (#2926) * chore(deps): update all non-major dependencies * fix: correct breaking changes Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sct --- package.json | 136 +- server/datasource.ts | 2 +- server/types/express-session.d.ts | 9 + server/types/express.d.ts | 9 +- src/components/IssueDetails/index.tsx | 82 +- src/components/TvDetails/index.tsx | 13 +- src/utils/typeHelpers.ts | 5 +- yarn.lock | 6878 ++++++++++++------------- 8 files changed, 3399 insertions(+), 3735 deletions(-) create mode 100644 server/types/express-session.d.ts diff --git a/package.json b/package.json index bd88b9dd1..c5405d5bd 100644 --- a/package.json +++ b/package.json @@ -29,145 +29,145 @@ }, "license": "MIT", "dependencies": { - "@formatjs/intl-displaynames": "6.0.3", - "@formatjs/intl-locale": "3.0.3", - "@formatjs/intl-pluralrules": "5.0.3", + "@formatjs/intl-displaynames": "6.2.3", + "@formatjs/intl-locale": "3.0.11", + "@formatjs/intl-pluralrules": "5.1.8", "@formatjs/intl-utils": "3.8.4", - "@headlessui/react": "0.0.0-insiders.b301f04", + "@headlessui/react": "^1.7.7", "@heroicons/react": "1.0.6", "@supercharge/request-ip": "1.2.0", - "@svgr/webpack": "6.3.1", - "@tanem/react-nprogress": "5.0.11", - "ace-builds": "1.9.6", + "@svgr/webpack": "6.5.1", + "@tanem/react-nprogress": "5.0.22", + "ace-builds": "1.14.0", "axios": "0.27.2", "axios-rate-limit": "1.3.0", - "bcrypt": "5.0.1", + "bcrypt": "5.1.0", "bowser": "2.11.0", "connect-typeorm": "1.1.4", "cookie-parser": "1.4.6", - "copy-to-clipboard": "3.3.2", + "copy-to-clipboard": "3.3.3", "country-flag-icons": "1.5.5", - "cronstrue": "2.11.0", + "cronstrue": "2.21.0", "csurf": "1.11.0", - "date-fns": "2.29.1", + "date-fns": "2.29.3", "email-templates": "9.0.0", - "express": "4.18.1", + "express": "4.18.2", "express-openapi-validator": "4.13.8", - "express-rate-limit": "6.5.1", + "express-rate-limit": "6.7.0", "express-session": "1.17.3", "formik": "2.2.9", "gravatar-url": "3.1.0", "intl": "1.2.5", "lodash": "4.17.21", - "next": "12.2.5", + "next": "12.3.4", "node-cache": "5.1.2", - "node-gyp": "9.1.0", + "node-gyp": "9.3.1", "node-schedule": "2.1.0", - "nodemailer": "6.7.8", - "openpgp": "5.4.0", + "nodemailer": "6.8.0", + "openpgp": "5.5.0", "plex-api": "5.3.2", "pug": "3.0.2", "pulltorefreshjs": "0.1.22", "react": "18.2.0", "react-ace": "10.1.0", "react-animate-height": "2.1.2", - "react-aria": "^3.21.0", + "react-aria": "3.22.0", "react-dom": "18.2.0", - "react-intersection-observer": "9.4.0", - "react-intl": "6.0.5", - "react-markdown": "8.0.3", + "react-intersection-observer": "9.4.1", + "react-intl": "6.2.5", + "react-markdown": "8.0.4", "react-popper-tooltip": "4.4.2", - "react-select": "5.4.0", - "react-spring": "9.5.2", + "react-select": "5.7.0", + "react-spring": "9.6.1", "react-toast-notifications": "2.5.1", "react-truncate-markup": "5.1.2", - "react-use-clipboard": "1.0.8", + "react-use-clipboard": "1.0.9", "reflect-metadata": "0.1.13", "secure-random-password": "0.2.3", - "semver": "7.3.7", - "sqlite3": "5.0.11", - "swagger-ui-express": "4.5.0", + "semver": "7.3.8", + "sqlite3": "5.1.4", + "swagger-ui-express": "4.6.0", "swr": "1.3.0", - "typeorm": "0.3.7", + "typeorm": "0.3.11", "web-push": "3.5.0", - "winston": "3.8.1", + "winston": "3.8.2", "winston-daily-rotate-file": "4.7.1", "xml2js": "0.4.23", "yamljs": "0.3.0", "yup": "0.32.11" }, "devDependencies": { - "@babel/cli": "7.18.10", - "@commitlint/cli": "17.0.3", - "@commitlint/config-conventional": "17.0.3", - "@semantic-release/changelog": "6.0.1", + "@babel/cli": "7.20.7", + "@commitlint/cli": "17.3.0", + "@commitlint/config-conventional": "17.3.0", + "@semantic-release/changelog": "6.0.2", "@semantic-release/commit-analyzer": "9.0.2", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", - "@tailwindcss/aspect-ratio": "0.4.0", - "@tailwindcss/forms": "0.5.2", - "@tailwindcss/typography": "0.5.4", + "@tailwindcss/aspect-ratio": "0.4.2", + "@tailwindcss/forms": "0.5.3", + "@tailwindcss/typography": "0.5.8", "@types/bcrypt": "5.0.0", "@types/cookie-parser": "1.4.3", "@types/country-flag-icons": "1.2.0", "@types/csurf": "1.11.2", "@types/email-templates": "8.0.4", - "@types/express": "4.17.13", - "@types/express-session": "1.17.4", - "@types/lodash": "4.14.183", + "@types/express": "4.17.15", + "@types/express-session": "1.17.5", + "@types/lodash": "4.14.191", "@types/node": "17.0.36", "@types/node-schedule": "2.1.0", - "@types/nodemailer": "6.4.5", + "@types/nodemailer": "6.4.7", "@types/pulltorefreshjs": "0.1.5", - "@types/react": "18.0.17", - "@types/react-dom": "18.0.6", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10", "@types/react-transition-group": "4.4.5", "@types/secure-random-password": "0.2.1", - "@types/semver": "7.3.12", + "@types/semver": "7.3.13", "@types/swagger-ui-express": "4.1.3", "@types/web-push": "3.3.2", "@types/xml2js": "0.4.11", "@types/yamljs": "0.2.31", "@types/yup": "0.29.14", - "@typescript-eslint/eslint-plugin": "5.33.1", - "@typescript-eslint/parser": "5.33.1", - "autoprefixer": "10.4.8", + "@typescript-eslint/eslint-plugin": "5.48.0", + "@typescript-eslint/parser": "5.48.0", + "autoprefixer": "10.4.13", "babel-plugin-react-intl": "8.2.25", "babel-plugin-react-intl-auto": "3.3.0", - "commitizen": "4.2.5", + "commitizen": "4.2.6", "copyfiles": "2.4.1", "cy-mobile-commands": "0.3.0", - "cypress": "10.6.0", + "cypress": "10.11.0", "cz-conventional-changelog": "3.3.0", - "eslint": "8.22.0", - "eslint-config-next": "12.2.5", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-formatjs": "4.1.0", + "eslint": "8.31.0", + "eslint-config-next": "12.3.4", + "eslint-config-prettier": "8.6.0", + "eslint-plugin-formatjs": "4.3.9", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-no-relative-import-paths": "1.4.0", + "eslint-plugin-no-relative-import-paths": "1.5.2", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-react": "7.30.1", + "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", "extract-react-intl-messages": "4.1.1", - "husky": "8.0.1", - "lint-staged": "12.4.3", - "nodemon": "2.0.19", - "postcss": "8.4.16", - "prettier": "2.7.1", - "prettier-plugin-organize-imports": "3.1.0", - "prettier-plugin-tailwindcss": "0.1.13", - "semantic-release": "19.0.3", + "husky": "8.0.2", + "lint-staged": "12.5.0", + "nodemon": "2.0.20", + "postcss": "8.4.20", + "prettier": "2.8.1", + "prettier-plugin-organize-imports": "3.2.1", + "prettier-plugin-tailwindcss": "0.2.1", + "semantic-release": "19.0.5", "semantic-release-docker-buildx": "1.0.1", - "tailwindcss": "3.1.8", + "tailwindcss": "3.2.4", "ts-node": "10.9.1", - "tsc-alias": "1.7.0", - "tsconfig-paths": "4.1.0", - "typescript": "4.7.4" + "tsc-alias": "1.8.2", + "tsconfig-paths": "4.1.2", + "typescript": "4.9.4" }, "resolutions": { "sqlite3/node-gyp": "8.4.1", - "@types/react": "18.0.17", - "@types/react-dom": "18.0.6" + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10" }, "config": { "commitizen": { diff --git a/server/datasource.ts b/server/datasource.ts index a68392989..d4eadaa10 100644 --- a/server/datasource.ts +++ b/server/datasource.ts @@ -34,7 +34,7 @@ const dataSource = new DataSource( process.env.NODE_ENV !== 'production' ? devConfig : prodConfig ); -export const getRepository = ( +export const getRepository = ( target: EntityTarget ): Repository => { return dataSource.getRepository(target); diff --git a/server/types/express-session.d.ts b/server/types/express-session.d.ts new file mode 100644 index 000000000..c4842b096 --- /dev/null +++ b/server/types/express-session.d.ts @@ -0,0 +1,9 @@ +import 'express-session'; + +// Declaration merging to apply our own types to SessionData +// See: (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-session/index.d.ts#L23) +declare module 'express-session' { + interface SessionData { + userId: number; + } +} diff --git a/server/types/express.d.ts b/server/types/express.d.ts index 7b82477ad..2fe842382 100644 --- a/server/types/express.d.ts +++ b/server/types/express.d.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import type { User } from '@server/entity/User'; import type { NextFunction, Request, Response } from 'express'; +import 'express-session'; declare global { namespace Express { @@ -16,11 +17,3 @@ declare global { next: NextFunction ) => Promise | void | NextFunction; } - -// Declaration merging to apply our own types to SessionData -// See: (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-session/index.d.ts#L23) -declare module 'express-session' { - export interface SessionData { - userId: number; - } -} diff --git a/src/components/IssueDetails/index.tsx b/src/components/IssueDetails/index.tsx index dcf71e7b7..aefec7a9e 100644 --- a/src/components/IssueDetails/index.tsx +++ b/src/components/IssueDetails/index.tsx @@ -372,26 +372,27 @@ const IssueDetails = () => { {intl.formatMessage(messages.playonplex)} )} - {issueData?.media.serviceUrl && hasPermission(Permission.ADMIN) && ( - - )} + {issueData?.media.serviceUrl && + hasPermission(Permission.ADMIN) && ( + + )} {issueData?.media.plexUrl4k && ( )} - {issueData?.media.serviceUrl4k && hasPermission(Permission.ADMIN) && ( - - )} + {issueData?.media.serviceUrl4k && + hasPermission(Permission.ADMIN) && ( + + )}
diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 876423905..a3a29538c 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -784,12 +784,13 @@ const TvDetails = ({ tv }: TvDetailsProps) => { )}
)} - {data.originalName && data.originalLanguage !== locale.slice(0, 2) && ( -
- {intl.formatMessage(messages.originaltitle)} - {data.originalName} -
- )} + {data.originalName && + data.originalLanguage !== locale.slice(0, 2) && ( +
+ {intl.formatMessage(messages.originaltitle)} + {data.originalName} +
+ )} {data.keywords.some( (keyword) => keyword.id === ANIME_KEYWORD_ID ) && ( diff --git a/src/utils/typeHelpers.ts b/src/utils/typeHelpers.ts index 1ec82c427..dd6579902 100644 --- a/src/utils/typeHelpers.ts +++ b/src/utils/typeHelpers.ts @@ -9,7 +9,10 @@ export type Maybe = T | null | undefined; * @param component Main object you want to apply properties to * @param properties Object of properties you want to type on the main component */ -export function withProperties(component: A, properties: B): A & B { +export function withProperties( + component: A, + properties: B +): A & B { (Object.keys(properties) as (keyof B)[]).forEach((key) => { Object.assign(component, { [key]: properties[key] }); }); diff --git a/yarn.lock b/yarn.lock index d638cfe1d..c942fe24b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,10 +20,10 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" -"@babel/cli@7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" - integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== +"@babel/cli@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.20.7.tgz#8fc12e85c744a1a617680eacb488fab1fcd35b7c" + integrity sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ== dependencies: "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" @@ -36,97 +36,48 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== - -"@babel/core@^7.18.5": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" - integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== +"@babel/core@^7.19.6", "@babel/core@^7.9.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" + integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.10" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.10" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.7" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.9.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" - integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== +"@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/generator@^7.18.10": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" - integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== - dependencies: - "@babel/types" "^7.18.10" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== - dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -142,59 +93,42 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.18.8" + "@babel/compat-data" "^7.20.5" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" + browserslist "^4.21.3" + lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" - integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz#d0e1f8d7e4ed5dac0389364d9c0c191d948ade6f" + integrity sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" - integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + regexpu-core "^5.2.1" -"@babel/helper-define-polyfill-provider@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" - integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -203,11 +137,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -220,28 +149,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -250,54 +164,33 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.7" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.20.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -306,17 +199,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== - -"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -326,44 +214,31 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/helper-simple-access@^7.17.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: - "@babel/types" "^7.18.2" + "@babel/types" "^7.20.2" -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.20.0" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -372,25 +247,15 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": version "7.18.6" @@ -398,41 +263,23 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" - integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== dependencies: - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.11" - "@babel/types" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" -"@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== - dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": version "7.18.6" @@ -443,15 +290,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== - -"@babel/parser@^7.18.10", "@babel/parser@^7.18.11": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" - integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -461,21 +303,21 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" -"@babel/plugin-proposal-async-generator-functions@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" - integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== +"@babel/plugin-proposal-async-generator-functions@^7.20.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -488,12 +330,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" + integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.18.6": @@ -521,11 +363,11 @@ "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": @@ -544,16 +386,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== +"@babel/plugin-proposal-object-rest-spread@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-parameters" "^7.20.7" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" @@ -563,13 +405,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== +"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" + integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.18.6": @@ -581,16 +423,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6": +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -598,14 +440,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" - integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -641,12 +475,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -655,14 +489,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" - integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-syntax-jsx@^7.18.6": +"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== @@ -725,28 +552,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== +"@babel/plugin-syntax-typescript@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== dependencies: "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" @@ -755,42 +582,44 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== +"@babel/plugin-transform-block-scoping@^7.20.2": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" + integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" - integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== +"@babel/plugin-transform-classes@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" + integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" -"@babel/plugin-transform-destructuring@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" - integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== +"@babel/plugin-transform-destructuring@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" + integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-dotall-regex@^7.18.6": +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== @@ -798,14 +627,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" @@ -851,35 +672,32 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== +"@babel/plugin-transform-modules-amd@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== +"@babel/plugin-transform-modules-commonjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" + integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" -"@babel/plugin-transform-modules-systemjs@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" - integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== +"@babel/plugin-transform-modules-systemjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" @@ -889,13 +707,13 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" - integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" @@ -912,12 +730,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== +"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" + integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -926,12 +744,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-constant-elements@^7.17.12": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" - integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== +"@babel/plugin-transform-react-constant-elements@^7.18.12": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz#3f02c784e0b711970d7d8ccc96c4359d64e27ac7" + integrity sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-react-display-name@^7.18.6": version "7.18.6" @@ -948,15 +766,15 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" - integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7" + integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.18.10" + "@babel/types" "^7.20.7" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -967,12 +785,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" @@ -988,13 +806,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" - integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== +"@babel/plugin-transform-spread@^7.19.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" @@ -1018,13 +836,13 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz#712e9a71b9e00fde9f8c0238e0cceee86ab2f8fd" - integrity sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.7.tgz#673f49499cd810ae32a1ea5f3f8fab370987e055" + integrity sha512-m3wVKEvf6SoszD8pu4NZz3PvfKRCMgk6D6d0Qi9hNnlM5M6CFS92EgF4EiHVLKbU0r/r7ty1hg7NPZwE7WRbYw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-typescript" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" @@ -1041,18 +859,18 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.18.2": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" - integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== +"@babel/preset-env@^7.19.4": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" + integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.18.10" + "@babel/plugin-proposal-async-generator-functions" "^7.20.1" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" @@ -1061,7 +879,7 @@ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-object-rest-spread" "^7.20.2" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" @@ -1072,7 +890,7 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.18.6" + "@babel/plugin-syntax-import-assertions" "^7.20.0" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1085,10 +903,10 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.9" - "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/plugin-transform-classes" "^7.20.2" "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.20.2" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" @@ -1096,30 +914,30 @@ "@babel/plugin-transform-function-name" "^7.18.9" "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.18.6" - "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-amd" "^7.19.6" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.6" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-parameters" "^7.20.1" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.18.6" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-spread" "^7.19.0" "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.10" - babel-plugin-polyfill-corejs2 "^0.3.2" - babel-plugin-polyfill-corejs3 "^0.5.3" - babel-plugin-polyfill-regenerator "^0.4.0" - core-js-compat "^3.22.1" + "@babel/types" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -1133,7 +951,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.17.12": +"@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -1145,7 +963,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.17.12": +"@babel/preset-typescript@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -1155,99 +973,52 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime-corejs3@^7.10.2": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz#52f0241a31e0ec61a6187530af6227c2846bd60c" - integrity sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.7.tgz#a1e5ea3d758ba6beb715210142912e3f29981d84" + integrity sha512-jr9lCZ4RbRQmCR28Q8U8Fu49zvFqLxTY9AMOUz+iyMohMoAgpEcVxY+wJNay99oXOpOcCTODkk70NDN2aaJEeg== dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" + core-js-pure "^3.25.1" + regenerator-runtime "^0.13.11" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.6.2": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.20.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/template@^7.18.10", "@babel/template@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.9.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" - integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.2" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f" - integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ== +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.9.0": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" + integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.10" + "@babel/generator" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.11" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" - integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -1255,52 +1026,48 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@commitlint/cli@17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.0.3.tgz#50be9d9a8d79f6c47bfd2703638fe65215eb2526" - integrity sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A== +"@commitlint/cli@17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.3.0.tgz#d8497f03e27a5161178e802168d77de2941959a0" + integrity sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg== dependencies: "@commitlint/format" "^17.0.0" - "@commitlint/lint" "^17.0.3" - "@commitlint/load" "^17.0.3" - "@commitlint/read" "^17.0.0" + "@commitlint/lint" "^17.3.0" + "@commitlint/load" "^17.3.0" + "@commitlint/read" "^17.2.0" "@commitlint/types" "^17.0.0" execa "^5.0.0" - lodash "^4.17.19" + lodash.isfunction "^3.0.9" resolve-from "5.0.0" resolve-global "1.0.0" yargs "^17.0.0" -"@commitlint/config-conventional@17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.0.3.tgz#61e937357ce63ea08a2017e58b918748fcf3abc5" - integrity sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A== +"@commitlint/config-conventional@17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz#77bcfabfed932bc80e97f31f2201ba05f504e145" + integrity sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw== dependencies: conventional-changelog-conventionalcommits "^5.0.0" -"@commitlint/config-validator@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.0.0.tgz#49ab09f3ca0ac3449e79ea389cb4942423162ac0" - integrity sha512-78IQjoZWR4kDHp/U5y17euEWzswJpPkA9TDL5F6oZZZaLIEreWzrDZD5PWtM8MsSRl/K2LDU/UrzYju2bKLMpA== - dependencies: - "@commitlint/types" "^17.0.0" - ajv "^6.12.6" - -"@commitlint/config-validator@^17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.0.3.tgz#5d1ec17eece1f85a0d06c05d168a039b313eb5d7" - integrity sha512-3tLRPQJKapksGE7Kee9axv+9z5I2GDHitDH4q63q7NmNA0wkB+DAorJ0RHz2/K00Zb1/MVdHzhCga34FJvDihQ== +"@commitlint/config-validator@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.1.0.tgz#51d09ca53d7a0d19736abf34eb18a66efce0f97a" + integrity sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg== dependencies: "@commitlint/types" "^17.0.0" ajv "^8.11.0" -"@commitlint/ensure@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.0.0.tgz#781ff5f8870cb98ce4496d5c71649a4cd122a0e0" - integrity sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A== +"@commitlint/ensure@^17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.3.0.tgz#d7bb60291a254152b468ccb2be8c0dc79667247e" + integrity sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg== dependencies: "@commitlint/types" "^17.0.0" - lodash "^4.17.19" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" "@commitlint/execute-rule@^17.0.0": version "17.0.0" @@ -1315,113 +1082,88 @@ "@commitlint/types" "^17.0.0" chalk "^4.1.0" -"@commitlint/is-ignored@^17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.0.3.tgz#0e1c725c1e50aea5852fb1260bc92b2ee1856425" - integrity sha512-/wgCXAvPtFTQZxsVxj7owLeRf5wwzcXLaYmrZPR4a87iD4sCvUIRl1/ogYrtOyUmHwWfQsvjqIB4mWE/SqWSnA== +"@commitlint/is-ignored@^17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.2.0.tgz#07c329396e2457fd37e8707f990c3a49731a168d" + integrity sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg== dependencies: "@commitlint/types" "^17.0.0" semver "7.3.7" -"@commitlint/lint@^17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.0.3.tgz#98542a48f03b5c144309e24cbe1c032366ea75e2" - integrity sha512-2o1fk7JUdxBUgszyt41sHC/8Nd5PXNpkmuOo9jvGIjDHzOwXyV0PSdbEVTH3xGz9NEmjohFHr5l+N+T9fcxong== +"@commitlint/lint@^17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.3.0.tgz#16506deaa347d61bd1195b17df1c6809a553d2a0" + integrity sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw== dependencies: - "@commitlint/is-ignored" "^17.0.3" - "@commitlint/parse" "^17.0.0" - "@commitlint/rules" "^17.0.0" + "@commitlint/is-ignored" "^17.2.0" + "@commitlint/parse" "^17.2.0" + "@commitlint/rules" "^17.3.0" "@commitlint/types" "^17.0.0" -"@commitlint/load@>6.1.1": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.0.0.tgz#0bbefe6d8b99276714c5ea8ef32de2bd2f082698" - integrity sha512-XaiHF4yWQOPAI0O6wXvk+NYLtJn/Xb7jgZEeKd4C1ZWd7vR7u8z5h0PkWxSr0uLZGQsElGxv3fiZ32C5+q6M8w== +"@commitlint/load@>6.1.1", "@commitlint/load@^17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.3.0.tgz#ebfec0198dd1627627e32a2b2ae4744d297599a8" + integrity sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw== dependencies: - "@commitlint/config-validator" "^17.0.0" + "@commitlint/config-validator" "^17.1.0" "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.0.0" + "@commitlint/resolve-extends" "^17.3.0" "@commitlint/types" "^17.0.0" - "@types/node" ">=12" + "@types/node" "^14.0.0" chalk "^4.1.0" cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^2.0.0" - lodash "^4.17.19" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" resolve-from "^5.0.0" + ts-node "^10.8.1" typescript "^4.6.4" -"@commitlint/load@^17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.0.3.tgz#683aa484a5515714512e442f2f4b11f75e66097a" - integrity sha512-3Dhvr7GcKbKa/ey4QJ5MZH3+J7QFlARohUow6hftQyNjzoXXROm+RwpBes4dDFrXG1xDw9QPXA7uzrOShCd4bw== - dependencies: - "@commitlint/config-validator" "^17.0.3" - "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.0.3" - "@commitlint/types" "^17.0.0" - "@types/node" ">=12" - chalk "^4.1.0" - cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^2.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - typescript "^4.6.4" +"@commitlint/message@^17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.2.0.tgz#c546b7a441b9f69493257f9fe0c3c8fc37933b27" + integrity sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q== -"@commitlint/message@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.0.0.tgz#ae0f8ec6a3e5c8d369792a2c391952c7596cca73" - integrity sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw== - -"@commitlint/parse@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.0.0.tgz#6d508a1e2aec76f348a447994f26e9b749c02091" - integrity sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A== +"@commitlint/parse@^17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.2.0.tgz#d87b09436ec741c2267b76a41972b34e53459a81" + integrity sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q== dependencies: "@commitlint/types" "^17.0.0" conventional-changelog-angular "^5.0.11" conventional-commits-parser "^3.2.2" -"@commitlint/read@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.0.0.tgz#8ab01cf2f27350d8f81f21690962679a7cae5abf" - integrity sha512-zkuOdZayKX3J6F6mPnVMzohK3OBrsEdOByIqp4zQjA9VLw1hMsDEFQ18rKgUc2adkZar+4S01QrFreDCfZgbxA== +"@commitlint/read@^17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.2.0.tgz#7a67b7b611d978a344c2430cba030252c2170723" + integrity sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ== dependencies: "@commitlint/top-level" "^17.0.0" "@commitlint/types" "^17.0.0" fs-extra "^10.0.0" git-raw-commits "^2.0.0" + minimist "^1.2.6" -"@commitlint/resolve-extends@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.0.0.tgz#3a40ee08184b984acf475ebc962641f435e3a639" - integrity sha512-wi60WiJmwaQ7lzMXK8Vbc18Hq9tE2j/6iv2AFfPUGV7fvfY6Sf1iNKuUHirSqR0fquUyufIXe4y/K9A6LVIIvw== +"@commitlint/resolve-extends@^17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.3.0.tgz#413a9ec393266d0673e6b9ec2f0974c358ed662d" + integrity sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg== dependencies: - "@commitlint/config-validator" "^17.0.0" + "@commitlint/config-validator" "^17.1.0" "@commitlint/types" "^17.0.0" import-fresh "^3.0.0" - lodash "^4.17.19" + lodash.mergewith "^4.6.2" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/resolve-extends@^17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.0.3.tgz#43b237899e2abd59d16af091521b888c8a071412" - integrity sha512-H/RFMvrcBeJCMdnVC4i8I94108UDccIHrTke2tyQEg9nXQnR5/Hd6MhyNWkREvcrxh9Y+33JLb+PiPiaBxCtBA== +"@commitlint/rules@^17.3.0": + version "17.3.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.3.0.tgz#4b31d6739f7eb8c7222b323b0bc2b63bd298a4ad" + integrity sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g== dependencies: - "@commitlint/config-validator" "^17.0.3" - "@commitlint/types" "^17.0.0" - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.0.0.tgz#4eecc5d28cabbc5f3f73838fb02592b551f9bf62" - integrity sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ== - dependencies: - "@commitlint/ensure" "^17.0.0" - "@commitlint/message" "^17.0.0" + "@commitlint/ensure" "^17.3.0" + "@commitlint/message" "^17.2.0" "@commitlint/to-lines" "^17.0.0" "@commitlint/types" "^17.0.0" execa "^5.0.0" @@ -1493,23 +1235,23 @@ enabled "2.0.x" kuler "^2.0.0" -"@emotion/babel-plugin@^11.7.1": - version "11.9.2" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95" - integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw== +"@emotion/babel-plugin@^11.10.5": + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz#65fa6e1790ddc9e23cc22658a4c5dea423c55c3c" + integrity sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/runtime" "^7.13.10" - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.5" - "@emotion/serialize" "^1.0.2" - babel-plugin-macros "^2.6.1" + "@babel/helper-module-imports" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.17.12" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.1" + babel-plugin-macros "^3.1.0" convert-source-map "^1.5.0" escape-string-regexp "^4.0.0" find-root "^1.1.0" source-map "^0.5.7" - stylis "4.0.13" + stylis "4.1.3" "@emotion/cache@^10.0.27": version "10.0.29" @@ -1521,16 +1263,16 @@ "@emotion/utils" "0.11.3" "@emotion/weak-memoize" "0.2.5" -"@emotion/cache@^11.4.0", "@emotion/cache@^11.7.1": - version "11.7.1" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539" - integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A== +"@emotion/cache@^11.10.5", "@emotion/cache@^11.4.0": + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.5.tgz#c142da9351f94e47527ed458f7bbbbe40bb13c12" + integrity sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA== dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.1.0" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - stylis "4.0.13" + "@emotion/memoize" "^0.8.0" + "@emotion/sheet" "^1.2.1" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + stylis "4.1.3" "@emotion/core@^10.0.14": version "10.3.1" @@ -1553,32 +1295,38 @@ "@emotion/utils" "0.11.3" babel-plugin-emotion "^10.0.27" -"@emotion/hash@0.8.0", "@emotion/hash@^0.8.0": +"@emotion/hash@0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== +"@emotion/hash@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" + integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== + "@emotion/memoize@0.7.4": version "0.7.4" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" - integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== "@emotion/react@^11.8.1": - version "11.9.0" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.0.tgz#b6d42b1db3bd7511e7a7c4151dc8bc82e14593b8" - integrity sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ== + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.5.tgz#95fff612a5de1efa9c0d535384d3cfa115fe175d" + integrity sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A== dependencies: - "@babel/runtime" "^7.13.10" - "@emotion/babel-plugin" "^11.7.1" - "@emotion/cache" "^11.7.1" - "@emotion/serialize" "^1.0.3" - "@emotion/utils" "^1.1.0" - "@emotion/weak-memoize" "^0.2.5" + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.5" + "@emotion/cache" "^11.10.5" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" hoist-non-react-statics "^3.3.1" "@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": @@ -1592,15 +1340,15 @@ "@emotion/utils" "0.11.3" csstype "^2.5.7" -"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63" - integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA== +"@emotion/serialize@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.1.tgz#0595701b1902feded8a96d293b26be3f5c1a5cf0" + integrity sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA== dependencies: - "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.4" - "@emotion/unitless" "^0.7.5" - "@emotion/utils" "^1.0.0" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/unitless" "^0.8.0" + "@emotion/utils" "^1.2.0" csstype "^3.0.2" "@emotion/sheet@0.9.4": @@ -1608,66 +1356,85 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== -"@emotion/sheet@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" - integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== +"@emotion/sheet@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.1.tgz#0767e0305230e894897cadb6c8df2c51e61a6c2c" + integrity sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA== "@emotion/stylis@0.8.5": version "0.8.5" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== -"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.5": +"@emotion/unitless@0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@emotion/unitless@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" + integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== + "@emotion/utils@0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== -"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" - integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ== +"@emotion/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" + integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== -"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5": +"@emotion/weak-memoize@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== + +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" - globals "^13.15.0" + espree "^9.4.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.11.8": - version "1.11.8" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.8.tgz#f4015dfb6a837369d94c6ba82455c609e45bce20" - integrity sha512-fgLqyWlwmTEuqV/TSLEL/t9JOmHNLFvCdgzXB0jc2w+WOItPCOJ1T0eyN6fQBQKRPfSqqNlu+kWj7ijcOVTVVQ== - dependencies: - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" +"@floating-ui/core@^1.0.5": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.1.0.tgz#0a1dee4bbce87ff71602625d33f711cafd8afc08" + integrity sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ== -"@formatjs/ecma402-abstract@1.14.0": - version "1.14.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.0.tgz#2ee584d671e2776434da88b3e1ae4ed3053ad450" - integrity sha512-o1RDlkxcLzi0ZcoaovQooZC+0M3Ox0/DKZ+YTdUU9DHgWFeEZbYXEqM9k7JHdN7VyRi4wprTVPqrK+zR/9mo8Q== +"@floating-ui/dom@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.1.0.tgz#29fea1344fdef15b6ba270a733d20b7134fee5c2" + integrity sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A== dependencies: - "@formatjs/intl-localematcher" "0.2.31" - tslib "2.4.0" + "@floating-ui/core" "^1.0.5" + +"@formatjs/ecma402-abstract@1.14.3": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz#6428f243538a11126180d121ce8d4b2f17465738" + integrity sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg== + dependencies: + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" "@formatjs/ecma402-abstract@1.4.0": version "1.4.0" @@ -1683,101 +1450,70 @@ dependencies: tslib "^2.0.1" -"@formatjs/fast-memoize@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.4.tgz#4b5ddce9eb7803ff0bd4052387672151a8b7f8a0" - integrity sha512-9ARYoLR8AEzXvj2nYrOVHY/h1dDMDWGTnKDLXSISF1uoPakSmfcZuSqjiqZX2wRkEUimPxdwTu/agyozBtZRHA== +"@formatjs/fast-memoize@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz#90d5de031fc80e0027b2d4e8a3197b0df4a94457" + integrity sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ== dependencies: - tslib "2.4.0" + tslib "^2.4.0" -"@formatjs/fast-memoize@1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.6.tgz#a442970db7e9634af556919343261a7bbe5e88c3" - integrity sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA== +"@formatjs/icu-messageformat-parser@2.1.14": + version "2.1.14" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz#d7bc8c82bfce1eb8e3232e6d7e3d6ea92ba390cc" + integrity sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q== dependencies: - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-skeleton-parser" "1.3.18" + tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.1.11": - version "2.1.11" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.11.tgz#d0b59145bf910ea0fdd023a848369d7f08a16c26" - integrity sha512-g2OET65sDI0F3RUNXcyQPlxn+h+zQ6RkFIZZnOo70LtMEHTyDbgaMvauRlkBX52kqEe9eI99I3RaLvaM8pEcEg== +"@formatjs/icu-skeleton-parser@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz#7aed3d60e718c8ad6b0e64820be44daa1e29eeeb" + integrity sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg== dependencies: - "@formatjs/ecma402-abstract" "1.14.0" - "@formatjs/icu-skeleton-parser" "1.3.15" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.4.tgz#f1e32b9937f151c1dd5c30536ce3e920b7f23813" - integrity sha512-3PqMvKWV1oyok0BuiXUAHIaotdhdTJw6OICqCZbfUgKT+ZRwRWO4IlCgvXJeCITaKS5p+PY0XXKjf/vUyIpWjQ== +"@formatjs/intl-displaynames@6.2.3": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.2.3.tgz#65bc954fe891fdfe197268602f4d2d3ccd631cce" + integrity sha512-teB0L68MDGM8jEKQg55w7nvFjzeLHE6e3eK/04s+iuEVYYmvjjiHJKHrthKENzcJ0F6mHf/AwXrbX+1mKxT6AQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/icu-skeleton-parser" "1.3.10" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.10.tgz#2f504e56ac80137ee2baad55c7fa0b5dc7f4e4df" - integrity sha512-kXJmtLDqFF5aLTf8IxdJXnhrIX1Qb4Qp3a9jqRecGDYfzOa9hMhi9U0nKyhrJJ4cXxBzptcgb+LWkyeHL6nlBQ== +"@formatjs/intl-getcanonicallocales@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.0.5.tgz#d405cf5221f49531e62ecfde50acdfb62fcc4854" + integrity sha512-YOk+Fa5gpPq5bdpm8JDAY5bkfCkR+NENZKQbLHeqhm8JchHcclPwZ9FU48gYGg3CW6Wi/cTCOvmOrzsIhlkr0w== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - tslib "2.4.0" + tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.3.15": - version "1.3.15" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.15.tgz#b30c6437aa259e8720e14beeff7e9c713d6e5646" - integrity sha512-/x7qBaswEGLEBm0vY8HmYy764py0FmD+pSzBNH5llgp1d0NFAIo+lTfsKFxPDk+iNNnL3f7ZH0KOyUtAResZ5Q== +"@formatjs/intl-listformat@7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.1.7.tgz#b46fec1038ef9ca062d1e7b9b3412c2a14dca18f" + integrity sha512-Zzf5ruPpfJnrAA2hGgf/6pMgQ3tx9oJVhpqycFDavHl3eEzrwdHddGqGdSNwhd0bB4NAFttZNQdmKDldc5iDZw== dependencies: - "@formatjs/ecma402-abstract" "1.14.0" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" -"@formatjs/intl-displaynames@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.0.3.tgz#e648a91bccd9fb21519090eaafece3be9d15f480" - integrity sha512-Mxh6W1VOlmiEvO/QPBrBQHlXrIn5VxjJWyyEI0V7ZHNGl0ee8AjSlq7vIJG8GodRJqGUuutF6N3OB/6qFv0YWg== +"@formatjs/intl-locale@3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.0.11.tgz#6b3bee5692fab3c70a0ce9c642c2a2bec3700aa4" + integrity sha512-gLEX9kzebBjIVCkXMMN+VFMUV2aj0vhmrP+nke2muxUSJ3fLs/DJjlkv+s59rAL3nNaGdvphqKLhQsul0mmhAw== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-getcanonicallocales" "2.0.5" + tslib "^2.4.0" -"@formatjs/intl-getcanonicallocales@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.0.2.tgz#e9fd5d2215ce0dba4d8611b37ac87c5fae60a1a7" - integrity sha512-nMkPblAjgK49ORueVhyuKJDXOCq8at2h9Xf0lqabBZylaX3xLEeuAW2eMXuwJ/ascYYQnwuxeukd/qlzDkuJzQ== +"@formatjs/intl-localematcher@0.2.32": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz#00d4d307cd7d514b298e15a11a369b86c8933ec1" + integrity sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ== dependencies: - tslib "2.4.0" - -"@formatjs/intl-listformat@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.0.3.tgz#8627969b77849559d148bc9536d0884c2271e6de" - integrity sha512-ampNLRGZl/08epHa3i5sRmcHGLneC6JrknexbbgnexYFNSmJ6AbL/dCzgrQzw2Efl+5AZK7UbNFxcDYY3RePvw== - dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" - -"@formatjs/intl-locale@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.0.3.tgz#ae112831c06209d1d7286b36e7b824a5e84ddd63" - integrity sha512-AZrh8z/GaR+4ogy9LR1lKouXwXWKRK4TDtwFv6SIFIJgF9SQ6l4gdJ1/k13susw6NMAQiKdtG9IdhEtKXsp+6w== - dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-getcanonicallocales" "2.0.2" - tslib "2.4.0" - -"@formatjs/intl-localematcher@0.2.28": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.28.tgz#412ea7fefbfc7ed33cd6b43aa304fc14d816e564" - integrity sha512-FLsc6Gifs1np/8HnCn/7Q+lHMmenrD5fuDhRT82yj0gi9O19kfaFwjQUw1gZsyILuRyT93GuzdifHj7TKRhBcw== - dependencies: - tslib "2.4.0" - -"@formatjs/intl-localematcher@0.2.31": - version "0.2.31" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.31.tgz#aada2b1e58211460cedba56889e3c489117eb6eb" - integrity sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA== - dependencies: - tslib "2.4.0" + tslib "^2.4.0" "@formatjs/intl-numberformat@^5.5.2": version "5.7.6" @@ -1787,14 +1523,14 @@ "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" -"@formatjs/intl-pluralrules@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.0.3.tgz#78d76da83470495e3e4d82df8cd6250578c1685c" - integrity sha512-av3ks022vDE1dbCUAqwYc8bnGRcAPKK6C7ZRINNjjQn43ZQVX1AXc7PY2RqO/GXzkixsSWfHFZjSgzzbhbd21A== +"@formatjs/intl-pluralrules@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.1.8.tgz#11eeca3cde088fd68d258a09b0791b327a8eb019" + integrity sha512-uevO916EWoeuueqeNzHjnUzpfWZzXFJibC/sEvPR/ZiZH5btWuOLeJLdb1To4nMH8ZJQlmAf8SDpFf+eWvz5lQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" "@formatjs/intl-utils@3.8.4": version "3.8.4" @@ -1803,18 +1539,18 @@ dependencies: emojis-list "^3.0.0" -"@formatjs/intl@2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.3.1.tgz#eccd6d03e4db18c256181f235b1d0a7f7aaebf5a" - integrity sha512-f06qZ/ukpeN24gc01qFjh3P+r3FU/ikY4yG+fDJu6dPNvpUQzDy98lYogA1dr6ig2UtrnoEk3xncyFPL1e9cZw== +"@formatjs/intl@2.6.3": + version "2.6.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.6.3.tgz#7cedd184fb62d39174fbf62ee636b1b306524b7c" + integrity sha512-JaVZk14U/GypVfCZPevQ0KdruFkq16FXx7g398/Dm+YEx/W7sRiftbZeDy4wQ7WGryb45e763XycxD9o/vm9BA== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/fast-memoize" "1.2.4" - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/intl-displaynames" "6.0.3" - "@formatjs/intl-listformat" "7.0.3" - intl-messageformat "10.1.1" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "1.2.7" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/intl-displaynames" "6.2.3" + "@formatjs/intl-listformat" "7.1.7" + intl-messageformat "10.2.5" + tslib "^2.4.0" "@formatjs/ts-transformer@2.13.0", "@formatjs/ts-transformer@^2.6.0": version "2.13.0" @@ -1825,18 +1561,18 @@ tslib "^2.0.1" typescript "^4.0" -"@formatjs/ts-transformer@3.9.9": - version "3.9.9" - resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.9.9.tgz#4804e0560e1944407e9dc5f5ae568a329d5668e4" - integrity sha512-V5BDpn5XW1wWBkpDn5SFHRH4Ndf3oyjxmuqWMxe2EwOKkV4XJvzZI73k3p/Hut3Xg55AxBQQmkFK9hyeBJPyIg== +"@formatjs/ts-transformer@3.11.5": + version "3.11.5" + resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.11.5.tgz#0502c0c38d4ad628efbef61f1c2e35b7ea37959e" + integrity sha512-cAmvKzgPqdetAr/RsxoXYhfNhMf5tERlXzJTsQw+j6tddPwIAbihACQx6KaajyJJ4aNssiziWNmcaHtjTqrrVw== dependencies: - "@formatjs/icu-messageformat-parser" "2.1.4" + "@formatjs/icu-messageformat-parser" "2.1.14" "@types/json-stable-stringify" "^1.0.32" "@types/node" "14 || 16 || 17" chalk "^4.0.0" json-stable-stringify "^1.0.1" - tslib "2.4.0" - typescript "^4.5" + tslib "^2.4.0" + typescript "^4.7" "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" @@ -1855,63 +1591,65 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@headlessui/react@0.0.0-insiders.b301f04": - version "0.0.0-insiders.b301f04" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-0.0.0-insiders.b301f04.tgz#12f209097f987cddbba72de40240a12648ebe12b" - integrity sha512-I+UUEUkdYp+AgKU1teWUZaICEg//OWl0R1UxCB50Jzfi3APu7aSY0Y+ABrgfEWDhBYTG9hNgXvMVTNCnFu49yA== +"@headlessui/react@^1.7.7": + version "1.7.7" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.7.tgz#d6f8708d8943ae8ebb1a6929108234e4515ac7e8" + integrity sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w== + dependencies: + client-only "^0.0.1" "@heroicons/react@1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324" integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ== -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@internationalized/date@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.1.tgz#66332e9ca8f59b7be010ca65d946bca430ba4b66" - integrity sha512-E/3lASs4mAeJ2Z2ye6ab7eUD0bPUfTeNVTAv6IS+ne9UtMu9Uepb9A1U2Ae0hDr6WAlBuvUtrakaxEdYB9TV6Q== +"@internationalized/date@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.2.tgz#1566a0bcbd82dce4dd54a5b26456bb701068cb89" + integrity sha512-9V1IxesP6ASZj/hYyOXOC4yPJvidbbStyWQKLCQSqhhKACMOXoo+BddXZJy47ju9mqOMpWdrJ2rTx4yTxK9oag== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" -"@internationalized/message@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.9.tgz#52bc20debe5296375d66ffcf56c3df5d8118a37d" - integrity sha512-yHQggKWUuSvj1GznVtie4tcYq+xMrkd/lTKCFHp6gG18KbIliDw+UI7sL9+yJPGuWiR083xuLyyhzqiPbNOEww== +"@internationalized/message@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.10.tgz#340dcfd14ace37234e09419427c991a0c466b96e" + integrity sha512-vfLqEop/NH68IgqMcXJNSDqZ5Leg3EEgCxhuuSefU7vvdbptD3pwpUWXaK9igYPa+aZfUU0eqv86yqm76obtsw== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" intl-messageformat "^10.1.0" -"@internationalized/number@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.1.tgz#160584316741de4381689ab759001603ee17b595" - integrity sha512-dBxCQKIxvsZvW2IBt3KsqrCfaw2nV6o6a8xsloJn/hjW0ayeyhKuiiMtTwW3/WGNPP7ZRyDbtuiUEjMwif1ENQ== +"@internationalized/number@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.2.tgz#4482a6ac573acfb18efd354a42008af20da6c89c" + integrity sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" -"@internationalized/string@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.0.tgz#de563871e1b19e4d0ce3246ec18d25da1a73db73" - integrity sha512-NUSr4u+mNu5BysXFeVWZW4kvjXylPkU/YYqaWzdNuz1eABfehFiZTEYhWAAMzI3U8DTxfqF9PM3zyhk5gcfz6w== +"@internationalized/string@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.1.tgz#2c70a81ae5eb84f156f40330369c2469bad6d504" + integrity sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" @@ -1926,15 +1664,6 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -1944,25 +1673,20 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -1973,12 +1697,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@jsdevtools/ono@7.1.3", "@jsdevtools/ono@^7.1.3": version "7.1.3" @@ -2011,10 +1735,10 @@ titleize "2" tlds "^1.230.0" -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== +"@mapbox/node-pre-gyp@^1.0.0", "@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== dependencies: detect-libc "^2.0.0" https-proxy-agent "^5.0.0" @@ -2039,14 +1763,14 @@ safe-identifier "^0.4.1" "@messageformat/date-skeleton@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz#a3bc22f0943b7f2871980cf2d7aa870195f19b06" - integrity sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz#980b8babe21a11433b6e1e8f6dc8c4cae4f5f56b" + integrity sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg== "@messageformat/number-skeleton@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz#1864b8b65abbee57a02bc8ea67061aa132947af7" - integrity sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@messageformat/number-skeleton/-/number-skeleton-1.1.0.tgz#eb636738da8abbd35ccbeb84f7d84d63302aeb61" + integrity sha512-F0Io+GOSvFFxvp9Ze3L5kAoZ2NnOAT0Mr/jpGNd3fqo8A0t4NxNIAcCdggtl2B/gN2ErkIKSBVPrF7xcW1IGvA== "@messageformat/parser@^5.0.0": version "5.0.0" @@ -2062,82 +1786,82 @@ dependencies: make-plural "^7.0.0" -"@next/env@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.5.tgz#d908c57b35262b94db3e431e869b72ac3e1ad3e3" - integrity sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw== +"@next/env@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-12.3.4.tgz#c787837d36fcad75d72ff8df6b57482027d64a47" + integrity sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A== -"@next/eslint-plugin-next@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.5.tgz#4f3acccd2ed4f9300fbf9fd480cc8a0b261889a8" - integrity sha512-VBjVbmqEzGiOTBq4+wpeVXt/KgknnGB6ahvC/AxiIGnN93/RCSyXhFRI4uSfftM2Ba3w7ZO7076bfKasZsA0fw== +"@next/eslint-plugin-next@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" + integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== dependencies: glob "7.1.7" -"@next/swc-android-arm-eabi@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz#903a5479ab4c2705d9c08d080907475f7bacf94d" - integrity sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA== +"@next/swc-android-arm-eabi@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.4.tgz#fd1c2dafe92066c6120761c6a39d19e666dc5dd0" + integrity sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA== -"@next/swc-android-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz#2f9a98ec4166c7860510963b31bda1f57a77c792" - integrity sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg== +"@next/swc-android-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.3.4.tgz#11a146dae7b8bca007239b21c616e83f77b19ed4" + integrity sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg== -"@next/swc-darwin-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz#31b1c3c659d54be546120c488a1e1bad21c24a1d" - integrity sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg== +"@next/swc-darwin-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.4.tgz#14ac8357010c95e67327f47082af9c9d75d5be79" + integrity sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA== -"@next/swc-darwin-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz#2e44dd82b2b7fef88238d1bc4d3bead5884cedfd" - integrity sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A== +"@next/swc-darwin-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.4.tgz#e7dc63cd2ac26d15fb84d4d2997207fb9ba7da0f" + integrity sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ== -"@next/swc-freebsd-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz#e24e75d8c2581bfebc75e4f08f6ddbd116ce9dbd" - integrity sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw== +"@next/swc-freebsd-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.4.tgz#fe7ceec58746fdf03f1fcb37ec1331c28e76af93" + integrity sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ== -"@next/swc-linux-arm-gnueabihf@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz#46d8c514d834d2b5f67086013f0bd5e3081e10b9" - integrity sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg== +"@next/swc-linux-arm-gnueabihf@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.4.tgz#d7016934d02bfc8bd69818ffb0ae364b77b17af7" + integrity sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw== -"@next/swc-linux-arm64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz#91f725ac217d3a1f4f9f53b553615ba582fd3d9f" - integrity sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ== +"@next/swc-linux-arm64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz#43a7bc409b03487bff5beb99479cacdc7bd29af5" + integrity sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA== -"@next/swc-linux-arm64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz#e627e8c867920995810250303cd9b8e963598383" - integrity sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg== +"@next/swc-linux-arm64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz#4d1db6de6dc982b974cd1c52937111e3e4a34bd3" + integrity sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ== -"@next/swc-linux-x64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz#83a5e224fbc4d119ef2e0f29d0d79c40cc43887e" - integrity sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw== +"@next/swc-linux-x64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz#c3b414d77bab08b35f7dd8943d5586f0adb15e38" + integrity sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag== -"@next/swc-linux-x64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz#be700d48471baac1ec2e9539396625584a317e95" - integrity sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g== +"@next/swc-linux-x64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz#187a883ec09eb2442a5ebf126826e19037313c61" + integrity sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg== -"@next/swc-win32-arm64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz#a93e958133ad3310373fda33a79aa10af2a0aa97" - integrity sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw== +"@next/swc-win32-arm64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz#89befa84e453ed2ef9a888f375eba565a0fde80b" + integrity sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ== -"@next/swc-win32-ia32-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz#4f5f7ba0a98ff89a883625d4af0125baed8b2e19" - integrity sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw== +"@next/swc-win32-ia32-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz#cb50c08f0e40ead63642a7f269f0c8254261f17c" + integrity sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ== -"@next/swc-win32-x64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz#20fed129b04a0d3f632c6d0de135345bb623b1e4" - integrity sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q== +"@next/swc-win32-x64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz#d28ea15a72cdcf96201c60a43e9630cd7fda168f" + integrity sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -2157,7 +1881,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -2165,10 +1889,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@^5.0.0", "@npmcli/arborist@^5.0.4": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.2.0.tgz#ee40dfe1f81ae1524819ee39c8f3e7022b0d6269" - integrity sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg== +"@npmcli/arborist@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.3.tgz#40810080272e097b4a7a4f56108f4a31638a9874" + integrity sha512-/7hbqEM6YuRjwTcQXkK1+xKslEblY5kFQe0tZ7jKyMlIR6x4iOmhLErIkBBGtTKvYxRKdpcxnFXjCobg3UqmsA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" @@ -2178,21 +1902,24 @@ "@npmcli/name-from-folder" "^1.0.1" "@npmcli/node-gyp" "^2.0.0" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^3.0.0" - bin-links "^3.0.0" - cacache "^16.0.6" + "@npmcli/query" "^1.2.0" + "@npmcli/run-script" "^4.1.3" + bin-links "^3.0.3" + cacache "^16.1.3" common-ancestor-path "^1.0.1" + hosted-git-info "^5.2.1" json-parse-even-better-errors "^2.3.1" json-stringify-nice "^1.1.4" + minimatch "^5.1.0" mkdirp "^1.0.4" mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" + nopt "^6.0.0" npm-install-checks "^5.0.0" npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" + npm-pick-manifest "^7.0.2" npm-registry-fetch "^13.0.0" npmlog "^6.0.2" - pacote "^13.0.5" + pacote "^13.6.1" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -2210,15 +1937,15 @@ resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89" integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== -"@npmcli/config@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.1.0.tgz#5c92e5ded2a44baf76b94926646329c3b39e79b8" - integrity sha512-cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg== +"@npmcli/config@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.2.2.tgz#2e3334dda84f48d059309c53d152e66b05ca24b7" + integrity sha512-5GNcLd+0c4bYBnFop53+26CO5GQP0R9YcxlernohpHDWdIgzUg9I0+GEMk3sNHnLntATVU39d283A4OO+W402w== dependencies: "@npmcli/map-workspaces" "^2.0.2" ini "^3.0.0" mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" + nopt "^6.0.0" proc-log "^2.0.0" read-package-json-fast "^2.0.3" semver "^7.3.5" @@ -2239,18 +1966,18 @@ "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/fs@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" - integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== +"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== dependencies: "@gar/promisify" "^1.1.3" semver "^7.3.5" "@npmcli/git@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.1.tgz#049b99b1381a2ddf7dc56ba3e91eaf76ca803a8d" - integrity sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== dependencies: "@npmcli/promise-spawn" "^3.0.0" lru-cache "^7.4.4" @@ -2271,9 +1998,9 @@ npm-normalize-package-bin "^1.0.1" "@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" - integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== dependencies: "@npmcli/name-from-folder" "^1.0.1" glob "^8.0.1" @@ -2281,9 +2008,9 @@ read-package-json-fast "^2.0.3" "@npmcli/metavuln-calculator@^3.0.1": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.0.tgz#b1c2f0991c4f2d992b1615a54d4358c05efc3702" - integrity sha512-Q5fbQqGDlYqk7kWrbg6E2j/mtqQjZop0ZE6735wYA1tYNHguIDjAuWs+kFb5rJCkLIlXllfapvsyotYKiZOTBA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" + integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== dependencies: cacache "^16.0.0" json-parse-even-better-errors "^2.3.1" @@ -2299,9 +2026,9 @@ rimraf "^3.0.2" "@npmcli/move-file@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02" - integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== dependencies: mkdirp "^1.0.4" rimraf "^3.0.2" @@ -2330,1003 +2057,1014 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-3.0.3.tgz#66afa6e0c4c3484056195f295fa6c1d1a45ddf58" - integrity sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q== +"@npmcli/query@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" + integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== + dependencies: + npm-package-arg "^9.1.0" + postcss-selector-parser "^6.0.10" + semver "^7.3.7" + +"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0", "@npmcli/run-script@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== dependencies: "@npmcli/node-gyp" "^2.0.0" "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^8.4.1" + node-gyp "^9.0.0" read-package-json-fast "^2.0.3" + which "^2.0.2" -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== +"@octokit/auth-token@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.2.tgz#a0fc8de149fd15876e1ac78f6525c1c5ab48435f" + integrity sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^8.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== +"@octokit/core@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.1.0.tgz#b6b03a478f1716de92b3f4ec4fd64d05ba5a9251" + integrity sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ== dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^8.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== +"@octokit/endpoint@^7.0.0": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.3.tgz#0b96035673a9e3bedf8bab8f7335de424a2147ed" + integrity sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^8.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== +"@octokit/graphql@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.4.tgz#519dd5c05123868276f3ae4e50ad565ed7dff8c8" + integrity sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A== dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" + "@octokit/request" "^6.0.0" + "@octokit/types" "^8.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a" + integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== +"@octokit/plugin-paginate-rest@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz#93d7e74f1f69d68ba554fa6b888c2a9cf1f99a83" + integrity sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^8.0.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== +"@octokit/plugin-rest-endpoint-methods@^6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz#2f6f17f25b6babbc8b41d2bb0a95a8839672ce7c" + integrity sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^8.0.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.2.tgz#f74c0f163d19463b87528efe877216c41d6deb0a" + integrity sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^8.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== +"@octokit/request@^6.0.0": + version "6.2.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.2.tgz#a2ba5ac22bddd5dcb3f539b618faa05115c5a255" + integrity sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw== dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^8.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.0.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== +"@octokit/rest@^19.0.0": + version "19.0.5" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.5.tgz#4dbde8ae69b27dca04b5f1d8119d282575818f6c" + integrity sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow== dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/core" "^4.1.0" + "@octokit/plugin-paginate-rest" "^5.0.0" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + "@octokit/plugin-rest-endpoint-methods" "^6.7.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f" + integrity sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^14.0.0" "@popperjs/core@^2.11.5": version "2.11.6" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== -"@react-aria/breadcrumbs@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.4.0.tgz#dadc6c9eb70ad7185e52929df5c82fe283485e9e" - integrity sha512-zQzDu8yO4DInw14FfuZVkIqsoQ9xJ+nbRjJug1iag+FBJCb598DnBZVpFvZdsOsRKbCtImhHhjK/CcImq1rTpA== +"@react-aria/breadcrumbs@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.4.1.tgz#f0fc1353bf402cac2d2312d7de60f545366e1413" + integrity sha512-3dotDXcXX5IbES9tS9gK5m/2inlZH1ZESi61aBUoD/kQbUcf4CJ3TniVqzBKjNqQN8yIBH/LjwkAoGmuvtPVRQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/link" "^3.3.5" - "@react-aria/utils" "^3.14.1" - "@react-types/breadcrumbs" "^3.4.5" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/link" "^3.3.6" + "@react-aria/utils" "^3.14.2" + "@react-types/breadcrumbs" "^3.4.6" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/button@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.3.tgz#058f3f7ef935395ae2c744d4b926236b2e5c406c" - integrity sha512-t6UHFPFMlAQW0yefjhqwyQya6RYlUtMRtMKZjnRANbK6JskazkkLvu//qULs+vsiM21PLhspKVLcGdS+t2khsA== +"@react-aria/button@^3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.4.tgz#51927c9d968d0c1f741ee2081ca7f2e244abbc12" + integrity sha512-OEs5fNGiuZzyC5y0cNl96+6pRf/3ZhI1i2m6LlRYhJLsWXPhHt21UHEnlSchE/XGtgKojJEeTsXottoBFTBi5w== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/toggle" "^3.4.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/toggle" "^3.4.4" "@react-types/button" "^3.7.0" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/calendar@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.0.4.tgz#f97318ccfdf57294b66e71f751a3df20832f4b31" - integrity sha512-FE52NSR631YO+ew0k/Qt90C+qV9qJV53uAkFYWXzYE0zeE9/+IM0Jtrb/rdcmUhsx/c4l9tzNPAMdFjKvkawXw== +"@react-aria/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.0.5.tgz#78b4138688d325a3c3f8dc0be3e45291b3e8670b" + integrity sha512-RIOwGYIwMizN/MAF5RkTb2ic9OJ0rJyR2VqqgtV3c7ADHNejzyLYMQmaalEFDUHS+AbvaXM1LCXdFBhSB8nf5w== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/date" "^3.0.1" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/utils" "^3.14.1" - "@react-stately/calendar" "^3.0.4" + "@internationalized/date" "^3.0.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/utils" "^3.14.2" + "@react-stately/calendar" "^3.0.5" "@react-types/button" "^3.7.0" - "@react-types/calendar" "^3.0.4" + "@react-types/calendar" "^3.0.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/checkbox@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.7.0.tgz#74e58e66a06908c78109dbbcc359c5485c1c6463" - integrity sha512-CGVfBcCK3e8YwjPSgIMTQbMxbjTtsDy9xGkw/7iCMVIsHC7MfzO8Ny5qJJbQ2dVkNnSfIgQdtWikYGJN2QjeDw== +"@react-aria/checkbox@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.7.1.tgz#217ea3173ad37ae85cb39bcb9932eb5c1cde2e0b" + integrity sha512-3KRg/KrTRwQdw5Yg7gpbIKWWVt57PbGSEXAS/diQvRf9pTXbOuChTES8uVlcwF8q+3mKXc4ppzE3gsNQ5jOMqg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/label" "^3.4.3" - "@react-aria/toggle" "^3.4.1" - "@react-aria/utils" "^3.14.1" - "@react-stately/checkbox" "^3.3.1" - "@react-stately/toggle" "^3.4.3" + "@react-aria/label" "^3.4.4" + "@react-aria/toggle" "^3.4.2" + "@react-aria/utils" "^3.14.2" + "@react-stately/checkbox" "^3.3.2" + "@react-stately/toggle" "^3.4.4" "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/combobox@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.4.3.tgz#c930ce318c37b7f7fee5687352afa4de0fce4355" - integrity sha512-MrpxrpJOOIRKMKkFDxTzQFu6y31eL15IsMbTRttO0NsrnQiJl19ojz6MpnhIJjnaC/Wz2EEWqnUawQsJjAVxyQ== +"@react-aria/combobox@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.4.4.tgz#0a968bfefedc9106e4b098ea84707f6da93dfc83" + integrity sha512-aviSDt4JkYZC1Ww83gvrNB4cHetXu73n5NuEfMNBC3B6fiL0MP5Av5+lMgf8FzpQks39QkZNxBtQ/h4I3D7SBA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/listbox" "^3.7.1" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/menu" "^3.7.0" - "@react-aria/overlays" "^3.12.0" - "@react-aria/selection" "^3.12.0" - "@react-aria/textfield" "^3.8.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/collections" "^3.5.0" - "@react-stately/combobox" "^3.3.0" - "@react-stately/layout" "^3.9.0" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/listbox" "^3.7.2" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/combobox" "^3.3.1" + "@react-stately/layout" "^3.10.0" "@react-types/button" "^3.7.0" "@react-types/combobox" "^3.5.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/datepicker@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.2.0.tgz#3905a888cfed7d71a9ef212fb72448eb6dbb0175" - integrity sha512-qsnAcKeWzmZadXtQPpmTN4TNO10Vq/TXSsf5PF+2MInsJQjEWTN8YFFgTbKVf7ksDwfDRSarTV0f+hZbi5scHA== +"@react-aria/datepicker@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.2.1.tgz#56a222c4b1c9c65b9b9371d3066611134f537ab7" + integrity sha512-NnW9VgX/YjxkgjcIaxmOhzpfiQmTQpCXjpPJ1+3nPhKzPKpcjtPxIYTDMkm/R+6i5FRukEGtjhg3QY9amLK6hQ== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/date" "^3.0.1" - "@internationalized/number" "^3.1.1" - "@internationalized/string" "^3.0.0" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/spinbutton" "^3.2.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/datepicker" "^3.2.0" + "@internationalized/date" "^3.0.2" + "@internationalized/number" "^3.1.2" + "@internationalized/string" "^3.0.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/spinbutton" "^3.2.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/datepicker" "^3.2.1" "@react-types/button" "^3.7.0" - "@react-types/calendar" "^3.0.4" - "@react-types/datepicker" "^3.1.3" + "@react-types/calendar" "^3.0.5" + "@react-types/datepicker" "^3.1.4" "@react-types/dialog" "^3.4.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/dialog@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.4.1.tgz#373c389e21b9b9fcc6947ec092074daedd46030c" - integrity sha512-1P6zCn78OP9nv7/1i4QsysOKQ6gxHy9JUyOj0ixrR1jwYI/psCM2MwT9cfPjuj7pGQys6lsu4glSmZ82zARURQ== +"@react-aria/dialog@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.4.2.tgz#b35f13e47d5d7d5363c7089d5d847069815bb5ea" + integrity sha512-Z6YZYXtwwmC5ZHjJldF3zuTjHnli7fXe/sM1ts3bw6jvU2L0kzhV/DRbPXYg8h695Oj9t+OIi4qxjEyKVH7SEA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/overlays" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/overlays" "^3.4.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/overlays" "^3.4.4" "@react-types/dialog" "^3.4.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/dnd@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.0.0.tgz#3217595756ded984a0f8aa9a26b3e5b8f01acd12" - integrity sha512-0sJp1tqqqp4FIN+VBPcImrBy0Tb+qMAIeQ4RmqQCdrwb+T1WDcroyUnYoTRPBatsHBClQMM4z9ETKrudKJqC0w== +"@react-aria/dnd@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.0.1.tgz#6e601873bde4173578ce63ba6bcfb78abf3bba59" + integrity sha512-z/T59Jc+6mj3OMcLjfA6MYd0zD6K3DYw+kB2CZ0EPte7BRN8wtU4+q/bx1iX+If97X6bTcHjMGX6nrQJ5vX/fw== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/string" "^3.0.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/overlays" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-aria/visually-hidden" "^3.6.0" - "@react-stately/dnd" "^3.0.0" + "@internationalized/string" "^3.0.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/overlays" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/dnd" "^3.0.1" "@react-types/button" "^3.7.0" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/focus@^3.10.0": - version "3.10.0" - resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.10.0.tgz#12d85d46f58590a915009e57bddb2d90b56f5836" - integrity sha512-idI7Etgh6y2BYi3X4d+EuUpzR7gPZ94Lf/0UNnVyMkDM9fzcdz/8DCBt0qKOff24HlaLE1rmREt0+iTR/qRgbA== +"@react-aria/focus@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.10.1.tgz#624d02d2565151030a4156aeb17685d87f18ad58" + integrity sha512-HjgFUC1CznuYC7CxtBIFML6bOBxW3M3cSNtvmXU9QWlrPSwwOLkXCnfY6+UkjCc5huP4v7co4PoRDX8Vbe/cVQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" clsx "^1.1.1" -"@react-aria/grid@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.5.1.tgz#0c5c719985cf66501cd6ae8d34673185de70f358" - integrity sha512-eWwhG9wHb6l6poZSvnhoSSCpNy1kG3HxIpcbMaR2/qllbUYgZ4PASyx4N2TT/VqBUsxCSwC/WqcDka11U9d94w== +"@react-aria/grid@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.5.2.tgz#17454be19d4f53bde27fc4b676fa02dae4f3a85d" + integrity sha512-+cDtTvTT0YF4jgy1pv0omcweub6z1N+GdkpHC6L6/jtH2gFRVns3IC6pf5ihLDIpLloylthaMMR8C3lus7035g== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/grid" "^3.4.1" - "@react-stately/selection" "^3.11.1" - "@react-stately/virtualizer" "^3.4.0" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/grid" "^3.4.2" + "@react-stately/selection" "^3.11.2" + "@react-stately/virtualizer" "^3.4.1" "@react-types/checkbox" "^3.4.1" "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/gridlist@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.1.1.tgz#541d4b3ea9327ddddda8556a2d6d8bcc65387438" - integrity sha512-/2f4RYqPF1Jxz2Zl5uScGh8trS/N+cp3YbihjLX/3q/qwBj6El72lpJCeF6zkGAJQx+bt1Uew5YB0qt9uMYZng== +"@react-aria/gridlist@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.1.2.tgz#ffb7bc5e4e15e3bacdf036e4762f1eea0e6292f7" + integrity sha512-3HI/e8HzyBRWdEbDH+3Hvj9U5fD/1TYaqA0f4XnBdSEDd7LHPOzZyNzbZMdlMmaq2W0Dmm1YRCMELacFVUehUA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/grid" "^3.5.1" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/list" "^3.6.0" + "@react-aria/focus" "^3.10.1" + "@react-aria/grid" "^3.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/list" "^3.6.1" "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/i18n@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.2.tgz#74fa50f4b13ca7efe7738fd1960732a076ed049d" - integrity sha512-/G22mZQcISX6DcKLBn4j/X53y2SOnFfiD4wOEuY7sIZZDryktd+3I/QHukCnNlf0tKK3PdixQLvWa9Q1RqTSaw== +"@react-aria/i18n@^3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.3.tgz#2b4d72d0baf07b514d2c35eb6ac356d0247ea84a" + integrity sha512-cDWl8FXJIXsw/raWcThywBueCJ5ncoogq81wYVS6hfZVmSyncONIB3bwUL12cojmjX1VEP31sN0ujT/83QP95Q== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/date" "^3.0.1" - "@internationalized/message" "^3.0.9" - "@internationalized/number" "^3.1.1" - "@internationalized/string" "^3.0.0" - "@react-aria/ssr" "^3.4.0" - "@react-aria/utils" "^3.14.1" + "@internationalized/date" "^3.0.2" + "@internationalized/message" "^3.0.10" + "@internationalized/number" "^3.1.2" + "@internationalized/string" "^3.0.1" + "@react-aria/ssr" "^3.4.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/interactions@^3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.13.0.tgz#897ee2b4a7751bcf22c716ceccfc1321f427a8f2" - integrity sha512-gbZL+qs+6FPitR/abAramth4lqz/drEzXwzIDF6p6WyajF805mjyAgZin1/3mQygSE5BwJNDU7jMUSGRvgFyTw== +"@react-aria/interactions@^3.13.1": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.13.1.tgz#75e102c50a5c1d002cad4ee8d59677aee226186b" + integrity sha512-WCvfZOi1hhussVTHxVq76OR48ry13Zvp9U5hmuQufyxIUlf4hOvDk4/cbK4o4JiCs8X7C7SRzcwFM34M4NHzmg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/utils" "^3.14.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/label@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.4.3.tgz#7cc1821cffb0dba6c9a82c2c0fb5655ddca52ba6" - integrity sha512-g8NSHQKha6xOpR0cUQ6cmH/HwGJdebEbyy+c1I6VeW6me8lSF47xLnybnA6LBV4x9hJqkST6rfL/oPaBMCEKNA== +"@react-aria/label@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.4.4.tgz#b891d3cebeeffc7a1413a492d8a694083dc3253e" + integrity sha512-1fuYf2UctNhBy31uYN7OhdcrwzlB5GS0+C49gDkwWzccB7yr+CoOJ5UQUoVB7WBmzrc+CuzwWxSDd4OupSYIZQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/utils" "^3.14.1" + "@react-aria/utils" "^3.14.2" "@react-types/label" "^3.7.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/link@^3.3.5": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.3.5.tgz#5c22a6cbff0ce982e135971b932e34183d163dfb" - integrity sha512-BbyoJ73IAQcQMYWFxhV/zJWYFlx4Edprm6xfBZKMEBrEpUcvBwe/X3QsCQmRXZ8fJodMjQ9SdQPyue1yi8Ksrw== +"@react-aria/link@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.3.6.tgz#e9e3203c41c4dd5c4113d0a06b7620b476f78345" + integrity sha512-UjbdBJ8EB+jCC3mPZD6cYykHqZKTy6/VvI5RGJoKtF8cg9639tRy6g102pd4ncFTdD4DfU5PPWtthC24nQRCyQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" - "@react-types/link" "^3.3.5" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-types/link" "^3.3.6" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/listbox@^3.7.1": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.7.1.tgz#10ded709334146fbeccc66437074c0e070cbf4ad" - integrity sha512-vKovd+u8F7jdcogZeDPtm89gn390cR0xpMbOoyPzbACOdST43SYexDXWV4Ww/M2YWkdJxT3jZ576NeifcfO2MA== +"@react-aria/listbox@^3.7.2": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.7.2.tgz#0cbbd4dc39712ac927542259bf4663e087353448" + integrity sha512-e3O/u2T3TccinmfS/UvHywxLbASmh28U4020WTpZnIrsaoriVCkGZvG1AYNNPDIESz2WO0oRF6vDrmGunglJ2A== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/collections" "^3.5.0" - "@react-stately/list" "^3.6.0" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/list" "^3.6.1" "@react-types/listbox" "^3.3.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/live-announcer@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.1.1.tgz#40f340f6794fca42682fb308fe750ff56bf7c07f" - integrity sha512-e7b+dRh1SUTla42vzjdbhGYkeLD7E6wIYjYaHW9zZ37rBkSqLHUhTigh3eT3k5NxFlDD/uRxTYuwaFnWQgR+4g== +"@react-aria/live-announcer@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.1.2.tgz#a492c7ec1e664c8f41a572368cdbc53e22241a0c" + integrity sha512-BqtVLPWU10sZssoOJF1lJiRvZe5zqZ5BM39PsFyO7dWhVkR/9O9bZviqvKXnC1oXCnypfa+85gUshbK9unFcWA== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" -"@react-aria/menu@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.7.0.tgz#1aa8a06c3b89dcc94d9451f84b47409aeb673733" - integrity sha512-dCSg67G3vEXOovZyaojZXvcq19MLqual6oTSJC9WhNS/SR0AuNPbwMbD34a/b1Je73ro5bzjIbmQPyt/i3XaCA== +"@react-aria/menu@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.7.1.tgz#74c60dcd33bba47faa79deb89523ad21d9855221" + integrity sha512-5KIUTs3xYSmERB8qzofFghznMVLcG3RWDnJcQjpRtrrYjm6Oc39TJeodDH874fiEr6o3i5WwMrEYVp7NSxz/TQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/overlays" "^3.12.0" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/collections" "^3.5.0" - "@react-stately/menu" "^3.4.3" - "@react-stately/tree" "^3.4.0" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/tree" "^3.4.1" "@react-types/button" "^3.7.0" "@react-types/menu" "^3.7.3" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/meter@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.3.3.tgz#023091968fd5d9ba3b2dc06ad5fc16ba9f1a8618" - integrity sha512-6pe6Gl5e9yZsDkFsdpQNx9eAqSKIjwcOJ4/mLgTiCVgZWtWYuxprLAPiN7OyCnSYPfLp36wkIrMkk82xfBYb9Q== +"@react-aria/meter@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.3.4.tgz#7361a663ff21bc14df48d9eedec288e21146fabf" + integrity sha512-RdVd5vlb6//HI8G1hhH4G+E0Y387GYFKjmewSUKK0Lzp9PFLili26s+xLvgigUX9ald7HiPmfPdAlXzotvo54Q== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/progress" "^3.3.3" + "@react-aria/progress" "^3.3.4" "@react-types/meter" "^3.2.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/numberfield@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.3.3.tgz#6a4861eb43abb4d9fcb06de256ee1ecc6047b3f1" - integrity sha512-DxVhoD+RsgN385f2OsOg5J1RYo1yZt0AUfIJdHn7FDWYCxruUVmEhzy1ovDxpXkseK0Gh3IdkfHvOfgiqE+pXg== +"@react-aria/numberfield@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.3.4.tgz#79fc2db5449a09efc20b83530aa2d69ae7140438" + integrity sha512-yoYeYaEW5v84Ff0x+oSN0h3uzqrSOBEgjtv8ZMaFVsZfm9yMjsVLu+QWGBYCEOPcASMkNZpNR3o91nBPK3XTDw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/spinbutton" "^3.2.0" - "@react-aria/textfield" "^3.8.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/numberfield" "^3.3.0" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/spinbutton" "^3.2.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/numberfield" "^3.3.1" "@react-types/button" "^3.7.0" "@react-types/numberfield" "^3.3.5" "@react-types/shared" "^3.16.0" - "@react-types/textfield" "^3.6.1" + "@react-types/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" -"@react-aria/overlays@^3.12.0": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.12.0.tgz#66fc930a39771888123c6fd1b246fedd5e76ad89" - integrity sha512-jsGeLTB3W3S5Cf2zDTxh1ODTNkE69miFDOGMB0VLwS1GWDwDvytcTRpBKY9JBrxad+4u0x6evnah7IbJ61qNBA== +"@react-aria/overlays@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.12.1.tgz#429fe33b0da7b920334f241c688d73dc9a750a28" + integrity sha512-OSgSopk2uQI5unvC3+fUyngbRFFe4GnF0iopCmrsI7qSQEusJUd4M2SuPVXUBBwWFt5TsiH7TnxmIPWeh5LSoA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/ssr" "^3.4.0" - "@react-aria/utils" "^3.14.1" - "@react-aria/visually-hidden" "^3.6.0" - "@react-stately/overlays" "^3.4.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/ssr" "^3.4.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/overlays" "^3.4.4" "@react-types/button" "^3.7.0" "@react-types/overlays" "^3.6.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/progress@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.3.3.tgz#b79327b27ad367f9ffd7376ed505b2281efdfc9d" - integrity sha512-yRE9fBfbjSdyWHWeQ4HqEURAT8foa9drGCJIKnMUx08dEsPAXvdh9tvnAvr1kbJnDlZxVwhlbTyFCwB+E2Mfag== +"@react-aria/progress@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.3.4.tgz#21138195532ae8807fb1dfc2f8162c6032d513dc" + integrity sha512-MVlWdH7L2e0u1SvkVk+C6/onS8opex9rIKUKHM08s++y80Xe3BIAh8jd5tgdlutDtcZ1kKgfb4bet9dvjymo4A== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/label" "^3.4.3" - "@react-aria/utils" "^3.14.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" "@react-types/progress" "^3.2.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/radio@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.4.1.tgz#23ed38aac1fb5094c7652919d331ec77094ba41f" - integrity sha512-a1JFxFOiExX1ZRGBE31LW4dgc3VmW2v3upJ5snGQldC83o0XxqNavmOef+fMsIRV0AQA/mcxAJVNQ0n9SfIiUQ== +"@react-aria/radio@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.4.2.tgz#bcd2deb8326f934046545fee9b2568f9d3b0655b" + integrity sha512-PpEsQjwkYOkSfKfnqXpBzf0FM/V2GSC0g/NG2ZAI5atDIACeic+kHCcs8fm2QzXtUDaRltNurvYdDJ+XzZ8g1g== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/utils" "^3.14.1" - "@react-stately/radio" "^3.6.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-stately/radio" "^3.6.2" "@react-types/radio" "^3.3.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/searchfield@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.4.3.tgz#7f897f9c6ef6b19291d43d629e41680d1a7835b5" - integrity sha512-8WISGEyXWyVKRql4oVc9T5eNx8jTUwDQy0+ZSO5qGXuiZtlyeTJdWMrHN8I4SUdWEoF9c7R0eLhl0Twefnjkiw== +"@react-aria/searchfield@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.4.4.tgz#f77f057fcd2582534bec60b5d65db5cf84490f27" + integrity sha512-Z3nZI2FXrWLPNUeJ3QV2ruTKBR9eHhPoHi+Iiuq4n+e02ib5s0Jlbam29FFiOxmf6vUMhScNcEYP9p2BNANmQA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/textfield" "^3.8.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/searchfield" "^3.3.3" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/searchfield" "^3.3.4" "@react-types/button" "^3.7.0" - "@react-types/searchfield" "^3.3.5" + "@react-types/searchfield" "^3.3.6" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/select@^3.8.3": - version "3.8.3" - resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.8.3.tgz#6137fc28b4ccfc4f3761e2f7ecd67b24b2f005e0" - integrity sha512-EkbzbpSEkq0oSmFSeOJskjPzopqmKQ2VxsEaJHL8RebVdJiNxp5kSaBOaH1KxZI9DgrzHQNSRKYJaSJ1pUTfbw== +"@react-aria/select@^3.8.4": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.8.4.tgz#cbb02f0cfca816e1f6b472212f0fb6aad9899fdb" + integrity sha512-d2JOe11lUoGLvsE32bZRMq32SzXuyLNczyTOLrWM0e9fsOr49A8p6L6bFm3symU/KpwjjnO+pf5IkvgEq+GoJg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/listbox" "^3.7.1" - "@react-aria/menu" "^3.7.0" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-aria/visually-hidden" "^3.6.0" - "@react-stately/select" "^3.3.3" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/listbox" "^3.7.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/select" "^3.3.4" "@react-types/button" "^3.7.0" "@react-types/select" "^3.6.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/selection@^3.12.0": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.12.0.tgz#895ced39795180094ca79882c54b71441f4466e7" - integrity sha512-Akzx5Faxw+sOZFXLCOw6OddDNFbP5Kho3EP6bYJfd2pzMkBc8/JemC/YDrtIuy8e9x6Je9HHSZqtKjwiEaXWog== +"@react-aria/selection@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.12.1.tgz#a21ea85952c55b5a7ce8c846478226fe3d03f1f8" + integrity sha512-UX1vSY+iUdHe0itFZIOizX1BCI8SAeFnEh5VIQ1bYRt93+kAxeC914fsxFPPgrodJyqWRCX1dblPyRUIWAzQiw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/collections" "^3.5.0" - "@react-stately/selection" "^3.11.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/separator@^3.2.5": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.2.5.tgz#4c004023eb8c31ac36ddacaf938d776c1e04c50c" - integrity sha512-WJhqvUqMxxs18Qn8kGIdx7NCe/yoHev6w0TCxxcZMf/crJKWdSunv3YpbcQW67loBTRo1093RqhacPtXoRzQvg== +"@react-aria/separator@^3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.2.6.tgz#516fb27aa02862fc8e555042d9a8edde30214f40" + integrity sha512-QhYqoLfu+4T3ASCs5Q8ZWfBbRKBUmqquVdREWvHyvVyOBk9kRN9nxsoIxlkss1RJlJJx59AYF9T9CwgL80/bvw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/utils" "^3.14.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/slider@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.2.3.tgz#cc4c61c427e2df07fb4cecf2c6113f0a485bb498" - integrity sha512-y2Sx2YExcWcg15Hzhxhqccpylq5xm2RlswnhBxzwY+ms8ZR4MK6UNL64wbCmOBLxhzjgi5mTWSB+OmVCZk5H4A== +"@react-aria/slider@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.2.4.tgz#b272c13b5651f7e76a5b9d4ef300226ae315a64d" + integrity sha512-+BDPFaCgm0gtGewO33ZDNZz1b3Fc1p5Y/HSuwCcru+jHetODJXy23IIVpWsDri1vG3fHECRnWcDZAjLZgkVnAw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/utils" "^3.14.1" - "@react-stately/radio" "^3.6.1" - "@react-stately/slider" "^3.2.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-stately/radio" "^3.6.2" + "@react-stately/slider" "^3.2.4" "@react-types/radio" "^3.3.1" "@react-types/shared" "^3.16.0" "@react-types/slider" "^3.3.1" + "@swc/helpers" "^0.4.14" -"@react-aria/spinbutton@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.2.0.tgz#f1e12954c3ca20c298f71494e371cec99781de1a" - integrity sha512-6pbfC/uOz1k+D6NL7l/o855yr3hMBaiLdZpKdGu4N/vybnyS5ZcjX9Y1VswBZjYgvZ3Ojp8fSu/buZMU/zAISw== +"@react-aria/spinbutton@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.2.1.tgz#8e9fff341deef3e14109c69f2b52fffa8a878a5b" + integrity sha512-y9QZ0VzWL7qzbWSPOCsAdvZhVlQrnHLRGc8bkRa2jmWrnCqS0iua/TRuLGgazIf2Rb7GmdbKBJJuPSScytVDUw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/utils" "^3.14.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/utils" "^3.14.2" "@react-types/button" "^3.7.0" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-aria/ssr@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.0.tgz#a2b9a170214f56e41d3c4c933d0d8fcffa07a12a" - integrity sha512-qzuGk14/fUyUAoW/EBwgFcuMkVNXJVGlezTgZ1HovpCZ+p9844E7MUFHE7CuzFzPEIkVeqhBNIoIu+VJJ8YCOA== +"@react-aria/ssr@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.1.tgz#79e8bb621487e8f52890c917d3c734f448ba95e7" + integrity sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" -"@react-aria/switch@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.3.0.tgz#b68753d0917964bb7e84aaa50b63ab4ecc4f23a7" - integrity sha512-A/6G9HjZYPvCvaUbrghdCH0rkQfaNbayruQJ+PWGITZbxhYZAUUW7wkxvxLpf3iX2K5+UtNNThxlEMcplEkVrw== +"@react-aria/switch@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.3.1.tgz#c0f92f417a78972a3a9d10592eb474698b827d5a" + integrity sha512-o9MvXiSK9c7rUZjA6oQ0PNlVCnHEctue6v6W8Vn4HNbQMfhJiWqiSSff4RFcgRgs8WsPsEqbT+vHi2kXykQzdA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/toggle" "^3.4.1" - "@react-stately/toggle" "^3.4.3" + "@react-aria/toggle" "^3.4.2" + "@react-stately/toggle" "^3.4.4" "@react-types/switch" "^3.2.5" + "@swc/helpers" "^0.4.14" -"@react-aria/table@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.6.0.tgz#8258a6f53e233bb0f5e2da71b5fd33d866c4f517" - integrity sha512-hwq+5iwXVSirmi9Lr0v5wDOv7uz7UD+BUNFXP5d9nknrAKzVYDfpuNpz/Bbhpczp9R89VRBcFvcKJ3cWhESYnw== +"@react-aria/table@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.7.0.tgz#234c905b6b2e2212bac6cc8ef93fe750bf606425" + integrity sha512-1YqOeb8r8pxIYyfa5qNdCoM3fNQELM4d+9DanoNJhgnehoq9QDI9A1pGC2pvK2PN2y9IuTJM+U/ITjSpPBoGjQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/grid" "^3.5.1" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/live-announcer" "^3.1.1" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/table" "^3.6.0" - "@react-stately/virtualizer" "^3.4.0" + "@react-aria/focus" "^3.10.1" + "@react-aria/grid" "^3.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/table" "^3.7.0" + "@react-stately/virtualizer" "^3.4.1" "@react-types/checkbox" "^3.4.1" "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" - "@react-types/table" "^3.3.3" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" -"@react-aria/tabs@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.3.tgz#b66852794c6d72cf66a6789d78f89c6b41523b3c" - integrity sha512-0GeArynZzWQuNXIp1DUexNdfFC0vnTLAhN9cd3ZJDc7jbAvwy5HB363ElYqfTqNgvrtMF1QTJo9tY6KmYWxLeg== +"@react-aria/tabs@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.4.tgz#0cbe65d4c99c9c9e5d8ebd5e1442da68964b9e14" + integrity sha512-SqlgfPvpRHlWelFk/lF9Ziu/8881NVErhKcpyyi+A9jASv5tvILWiwK8na82oI22UXXzyp0Y1EojLB25HnCB+w== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/selection" "^3.12.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/list" "^3.6.0" - "@react-stately/tabs" "^3.2.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/list" "^3.6.1" + "@react-stately/tabs" "^3.2.4" "@react-types/shared" "^3.16.0" "@react-types/tabs" "^3.1.5" + "@swc/helpers" "^0.4.14" -"@react-aria/textfield@^3.8.0": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.8.0.tgz#1bc1cd93af82861a789b1bc1c4cd7c1b549f564e" - integrity sha512-PRU8q1gK0auDMH1YekJScZ4EZMrLrL3QJEHMNDdp2GDQlVISbPeTRy2On20DXfiG8GlXAtCWj9BiZhK2OE71DQ== +"@react-aria/textfield@^3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.8.1.tgz#b6df2decc587824a3757ec33bd9b432fed1bacc5" + integrity sha512-jgun/B9ecuRCfBSJLX2xDuNwfuj1lL0oibMWoSv6Y++W+CSS8a7LjR1f9Kll5TDVkQiRRUm9qHwI0og9xTJrNw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/label" "^3.4.3" - "@react-aria/utils" "^3.14.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" - "@react-types/textfield" "^3.6.1" + "@react-types/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" -"@react-aria/toggle@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.4.1.tgz#d48381ed7ebcd7637cc5be7ba5a5323a6e91c658" - integrity sha512-oVcjqsqvvEXW25vm3F2gxF5Csz8vRNKeF7Kc5pxqLrBohqMausChul+/Zisx5qVB4TL0yO3ygjTGbEvfEYQ1qg== +"@react-aria/toggle@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.4.2.tgz#1c57539a26722219979c80dcebfbd0701c518789" + integrity sha512-xokCGf0fn96mOMqQku5QW672iQoMsN9RMpFbKvvgg2seceh8ifblyAXElWf/6YmluOZSgUSZljDkFrbMMYlzVA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/toggle" "^3.4.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/toggle" "^3.4.4" "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" "@react-types/switch" "^3.2.5" + "@swc/helpers" "^0.4.14" -"@react-aria/tooltip@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.3.3.tgz#02f64fffe5ab4bb9db28b73896770c74f0d4dc42" - integrity sha512-EF58SQ70KEfGJQErsELJh1dk3KUDrBFmCEHo6kD1fVEHCqUgdWLkz+TCfkiP8VgFoj4WoE8zSpl3MpgGOQr/Gg== +"@react-aria/tooltip@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.3.4.tgz#e508a6f4092ee632ca69fd202268c8f4317f04d2" + integrity sha512-KPDkDu7fquuUOOnNh9S7KfhPMwB1w9K+yLIFrYaj4iYSOLk/HH5TDkyiUQ7j5+B963D1fWlQjYFEGQ9o2KwO/Q== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/focus" "^3.10.0" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" - "@react-stately/tooltip" "^3.2.3" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/tooltip" "^3.2.4" "@react-types/shared" "^3.16.0" "@react-types/tooltip" "^3.2.5" + "@swc/helpers" "^0.4.14" -"@react-aria/utils@^3.14.1": - version "3.14.1" - resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.14.1.tgz#36aeb077f758f1f325951b1e3376a905217edd84" - integrity sha512-+ynP0YlxN02MHVEBaeuTrIhBsfBYpfJn36pZm2t7ZEFbafH8DPaMGZ70ffYZXAESkWzRULXL3e79DheWOFI1qA== +"@react-aria/utils@^3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.14.2.tgz#3a8d0d14abab4bb1095e101ee44dc5e3e43e6217" + integrity sha512-3nr5gsAf/J/W+6Tu4NF3Q7m+1mXjfpXESh7TPa6UR6v3tVDTsJVMrITg2BkHN1jM8xELcl2ZxyUffOWqOXzWuA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/ssr" "^3.4.0" - "@react-stately/utils" "^3.5.1" + "@react-aria/ssr" "^3.4.1" + "@react-stately/utils" "^3.5.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" clsx "^1.1.1" -"@react-aria/visually-hidden@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.6.0.tgz#cc4dd9e648a5c8b6d8dfbd1f70d8672b36d3f1bc" - integrity sha512-W3Ix5wdlVzh2GY7dytqOAyLCXiHzk3S4jLKSaoiCwPJX9fHE5zMlZwahhDy27V0LXfjmdjBltbwyEZOq4G/Q0w== +"@react-aria/visually-hidden@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.6.1.tgz#b0a94b1531b9a8942d0d9a5cc6ed88109b8f5487" + integrity sha512-7rUbiaIiR1nok9HAHPn/WcyQlvuldUqxnvh81V4dlI3NtXOgMw7/QaNc5Xo5FFWlsSVpbyK3UVJgzIui0Ns0Xg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/utils" "^3.14.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" clsx "^1.1.1" -"@react-spring/animated@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.5.2.tgz#42785b4f369d9715e9ee32c04b78483e7bb85489" - integrity sha512-oRlX+MmYLbK8IuUZR7SQUnRjXxJ4PMIZeBkBd1SUWVgVJAHMTfJzPltzm+I6p59qX+qLlklYHfnWaonQKDqLuQ== +"@react-spring/animated@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.6.1.tgz#ccc626d847cbe346f5f8815d0928183c647eb425" + integrity sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ== dependencies: - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/core@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.5.2.tgz#c8450783ce87a82d3f9ab21e2650e42922398ff7" - integrity sha512-UMRtFH6EfebMp/NMDGCUY5+hZFXsg9iT9hzt/iPzJSz2WMXKBjLoFZHJXcmiVOrIhzHmg1O0pFECn1Wp6pZ5Gw== +"@react-spring/core@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.6.1.tgz#ebe07c20682b360b06af116ea24e2b609e778c10" + integrity sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/rafz" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/rafz" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/konva@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.5.2.tgz#cbc7c75c55c7946481f86c7392a6656bb5b1bf4a" - integrity sha512-FN8LpbGQtm2pllU9mOyYjYwvLtA9EiIPWk2NVuhhX+5lJZrdCWuEY7EyFpK8PtgZXBdVj8bj7eIu1LlTnARW/A== +"@react-spring/konva@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.6.1.tgz#66e63da0e9681e42395e995402a7e73ba6892461" + integrity sha512-MevnU+tnG1LPsmMRpfJfevfLtI0ObIvrwYc+Xg+kmYJe00vwMRSdulQOztKANKalFXBewwk72XrQCeRLXFaUIg== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/native@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.5.2.tgz#218fa228a746cb2f535ea59b317d2e99cdfed02d" - integrity sha512-G9BCAKVADLweLR43uyMnTrOnYDb4BboYvqKY+0X1fLs45PNrfbBXnSLot4g+5x3HjblypJgNq7CjHlqZKI980g== +"@react-spring/native@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.6.1.tgz#b66e237f2faaa4f88569d5a03b6fb0136bcdf2b9" + integrity sha512-ZIfSytxFGLw4gYOb8gsmwG0+JZYxuM/Y1XPCXCkhuoMn+RmOYrr0kQ4gLczbmf+TRxth7OT1c8vBYz0+SCGcIQ== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/rafz@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.5.2.tgz#1264d5df09717cf46d55055da2c55ff84f59073f" - integrity sha512-xHSRXKKBI/wDUkZGrspkOm4VlgN6lZi8Tw9Jzibp9QKf3neoof+U2mDNgklvnLaasymtUwAq9o4ZfFvQIVNgPQ== +"@react-spring/rafz@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.6.1.tgz#d71aafb92b78b24e4ff84639f52745afc285c38d" + integrity sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ== -"@react-spring/shared@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.5.2.tgz#e0a252e06daa3927964460fef05d8092e7d78ffc" - integrity sha512-/OSf2sjwY4BUnjZL6xMC+H3WxOOhMUCk+yZwgdj40XuyUpk6E6tYyiPeD9Yq5GLsZHodkvE1syVMRVReL4ndAg== +"@react-spring/shared@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.6.1.tgz#4e2e4296910656c02bd9fd54c559702bc836ac4e" + integrity sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw== dependencies: - "@react-spring/rafz" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/rafz" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/three@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.5.2.tgz#965ff4e729929ebbb9a1f8e84f3f4acb6acec4f9" - integrity sha512-3H7Lv8BJZ3dajh0yJA3m9rEbqz5ZNrTCAkhVOeLqgvBlcWU5qVs4luYA1Z7H4vZnLqVtzv+kHAyg3XIpuTOXhQ== +"@react-spring/three@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.6.1.tgz#095fcd1dc6509127c33c14486d88289b89baeb9d" + integrity sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/types@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.5.2.tgz#cce1b03afbafb23edfb9cd8c517cc7462abffb65" - integrity sha512-n/wBRSHPqTmEd4BFWY6TeR1o/UY+3ujoqMxLjqy90CcY/ozJzDRuREL3c+pxMeTF2+B7dX33dTPCtFMX51nbxg== +"@react-spring/types@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.6.1.tgz#913d3a68c5cbc1124fdb18eff919432f7b6abdde" + integrity sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q== -"@react-spring/web@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.5.2.tgz#762ee6b3c8fea40281e1298f5cf1c0515ad6a794" - integrity sha512-cusTjbOGTgtbsnpBDjb6Ia+B0lQLE0Fk5rGDog6Sww7hWnLIQ521PMiOBnAWtkntB9eXDUfj7L91nwJviEC0lw== +"@react-spring/web@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.6.1.tgz#3e4c03b724d2b545dc2fa2649eb6109318ab9178" + integrity sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-spring/zdog@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.5.2.tgz#a3e451378c23caa4381b5821d3d52c3017740c55" - integrity sha512-zUX8RzX8gM51g8NJ5Qaf15KNKQgN3qN/8m5FvqmiqZ5ZGqjoHkbCoMD3o2MICTUN1l+d4eUu9TYrmiO2bgJo/g== +"@react-spring/zdog@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.6.1.tgz#5292c374e23e3846db3eb9d7557ed5a7bb40dada" + integrity sha512-0jSGm2OFW/+/+4dkRp46KzEkcLVfzV2k6DO1om0dLDtQ4q6FpX4dmDTlRc7Apzin6VtfQONMFIGITtbqoS28MQ== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" -"@react-stately/calendar@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.0.4.tgz#b6bd88b11064a1b020a99f7e225becc050a35665" - integrity sha512-KaytmQVRqEOoKuLDgrm8RzY7ZHJ24IlDirN4dZj1wBHYt7RkAtwgqyTF/eyhS6/VYegmPhu53GcsSk0I3W+xLQ== +"@react-stately/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.0.5.tgz#78decc870ddf33ce1f7b7c8da57d2639e9a46c30" + integrity sha512-vu5hKsiA8edqNtsqBTGi8QR38qZ+uHDjuq3vp2m0f6TZSnp0kg8fkPNHEOuBTQ8ZXFFbGUZKhL/1B+ZWwLHwMQ== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/date" "^3.0.1" - "@react-stately/utils" "^3.5.1" - "@react-types/calendar" "^3.0.4" - "@react-types/datepicker" "^3.1.3" + "@internationalized/date" "^3.0.2" + "@react-stately/utils" "^3.5.2" + "@react-types/calendar" "^3.0.5" + "@react-types/datepicker" "^3.1.4" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/checkbox@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.3.1.tgz#4a53f8e813161f5c149c51b844624982e82a9247" - integrity sha512-r2hL11GF9r2ztUFEhpiVgiXgE+W99tyL1Kt7rOiTZ8/aMBGWwBxOHAdHeqcWFeBgOztXuJsKiDu82necEG4xhA== +"@react-stately/checkbox@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.3.2.tgz#fd81866a7624c79cab2ec2c32234f164205a85e8" + integrity sha512-eU3zvWgQrcqS8UK8ZVkb3fMP816PeuN9N0/dOJKuOXXhkoLPuxtuja1oEqKU3sFMa5+bx3czZhhNIRpr60NAdw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/toggle" "^3.4.3" - "@react-stately/utils" "^3.5.1" + "@react-stately/toggle" "^3.4.4" + "@react-stately/utils" "^3.5.2" "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/collections@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.5.0.tgz#01606d4aa12364cc4296cc036e77690e48ec818c" - integrity sha512-3BAMRjJqrka0IGvyK4m3WslqCeiEfQGx7YsXEIgIgMJoLpk6Fi1Eh4CI8coBnl/wcVLiIRMCIvxubwFRWTgzdg== +"@react-stately/collections@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.5.1.tgz#502a56658e4859aa7d31bd4b9189879b5b5a0255" + integrity sha512-egzVrZC5eFc5RJBpqUkzxd2aJOHZ2T1o7horEi8tAWZkg4YI+AmKrqela4ijVrrB9l1GO9z06qPT1UoPkFrC1w== dependencies: - "@babel/runtime" "^7.6.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/combobox@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.3.0.tgz#ae3566f3c715dbd4bf826927dbaaacb42ae108f5" - integrity sha512-+9xQW6C4nMcx7M72P4vZdQECa9CqzALTM3HTNAXgdCmfEezhns/m4xGmn4hoN8iw39yYvU8Ffs80rgTFQ+/oFg== +"@react-stately/combobox@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.3.1.tgz#5be13467dd64ddd09199b5e00e9f7d4a1aec5688" + integrity sha512-DgYn0MyfbDySf54o7ofXRd29TWznqtRRRbMG8TWgi/RaB0piDckT/TYWWSYOH3iMgnOEhReJhUUdMiQG4QLpIg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/list" "^3.6.0" - "@react-stately/menu" "^3.4.3" - "@react-stately/select" "^3.3.3" - "@react-stately/utils" "^3.5.1" + "@react-stately/list" "^3.6.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/select" "^3.3.4" + "@react-stately/utils" "^3.5.2" "@react-types/combobox" "^3.5.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/datepicker@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.2.0.tgz#74ae91de4b8a24ddaefbd60b38a1851080c3e53f" - integrity sha512-isFB8jpeiig3vfstWKkaY0cdejG0XT47Q9jZJgsrsEqpMVFBmcvlQQQ3WNqP4yC5c7Mrs3tAscY7WtbPIkDQ4g== +"@react-stately/datepicker@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.2.1.tgz#4c545981f73771bff76885e50014b4274fa4b554" + integrity sha512-nd6thX2Z+rOLDHduB3EgMKA0n5U83lrwn3IUfjRGrcE21zFaFmhTPsHyvol5jHy3eSyjWSN9kGpKFzOxES+uoA== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/date" "^3.0.1" - "@internationalized/string" "^3.0.0" - "@react-stately/overlays" "^3.4.3" - "@react-stately/utils" "^3.5.1" - "@react-types/datepicker" "^3.1.3" + "@internationalized/date" "^3.0.2" + "@internationalized/string" "^3.0.1" + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" + "@react-types/datepicker" "^3.1.4" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/dnd@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.0.0.tgz#533035fb1180605e24431d503417e38d9788d830" - integrity sha512-TI3BqheEm9fUhqrMm6RFY6q8DcWfC5O/LK+IgHpQgOBhL+Vk/EwvGnRice1xyMEQKbAXf04WOFiAjZqfurLshQ== +"@react-stately/dnd@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.0.1.tgz#b8e8190c147dcaeac1a90eabce5bd20891f2c620" + integrity sha512-pwtyY/TR6Rdk33lFdF6dztQTV9gPujFmTqJG31NSSs6ei1FfUW9ZMq+311Zb8OhZ0TFiwZqAutVmmaaUrtl5+A== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/selection" "^3.11.1" + "@react-stately/selection" "^3.11.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/grid@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.4.1.tgz#b3f771d64141e3753e16b7ddba0affa6f22a927a" - integrity sha512-IRaqXUQGji87Q+pYYQKJYTuUtgAjoDQaMOlvpvB9HlyK5faXq0H1tJsYAeVYpH0synfzCnr7CN0J6kSTbeL1jA== +"@react-stately/grid@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.4.2.tgz#d7d1a4ed4b5bb431b5e5429f8f557cf7d88a7ae8" + integrity sha512-NeIUykQeA7Hen+dV4771ARW5SRrHYNn5VTOsQwn3KBUd2Z2gZ01OwUl3gETl5u0e3/tzMUdJ1LUoSPhDMwcmKw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/selection" "^3.11.1" + "@react-stately/selection" "^3.11.2" "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/layout@^3.9.0": - version "3.9.0" - resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.9.0.tgz#2a23ec29443ef8103b330a7a8bda07b19c6a03da" - integrity sha512-uFdK98hIspBV9/RMW/JJaViuWyISdcm5GFplB361JZkhDaYblzomvkoX5Y1dKO5uH/BOjdM2AB5vfCb21oKEhg== +"@react-stately/layout@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.10.0.tgz#86bcb9117a05df56f02d7b55d1d24c5593285c18" + integrity sha512-ThFgivQSD5ksLMX7tbu0HqIxbxac/E8a/0vA21wB9QF9IQnUKO796QAQqwfA5rwPvTT41LL2Xn00GkrwQ9g/zg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/virtualizer" "^3.4.0" + "@react-stately/table" "^3.7.0" + "@react-stately/virtualizer" "^3.4.1" "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" - "@react-types/table" "^3.3.3" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" -"@react-stately/list@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.6.0.tgz#b5e04d59b8d53974c199f19712eb02c7a138896e" - integrity sha512-sah2JAiqlSZhg1tQBSv9866LeAJISmosOFsOsVZPfyfAewuCksA+8OHrFtbKmMyzU5MbrmpbR8v2zZH7c1CLdg== +"@react-stately/list@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.6.1.tgz#75d07a4e04111b804fb13c975df5a0c1265f3aa1" + integrity sha512-+/fVkK3UO+N2NoUGpe57k9gcnfIsyEgWP8SD6CXZUkJho7BTp6mwrH0Wm8tcOclT3uBk+fZaQrk8mR3uWsPZGw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/collections" "^3.5.0" - "@react-stately/selection" "^3.11.1" - "@react-stately/utils" "^3.5.1" + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/menu@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.4.3.tgz#65bb3fe29634047d3f6a3024577d3535e00802ae" - integrity sha512-ZWym6XQSLaC5uFUTZl6+mreEgzc8EUG6ElcnvdXYcH4DWUfswhLxCi3IdnG0lusWEi4NcHbZ2prEUxpT8VKqrg== +"@react-stately/menu@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.4.4.tgz#222ffd283691f1c4137a85ff0484b98a4385b099" + integrity sha512-WKak1NSV9yDY0tDB4mzsbj0FboTtR06gekio0VmKb1+FmnrC07mef8eGKUn974F0WhTNUy5A1iI5eM0W2YNynA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/overlays" "^3.4.3" - "@react-stately/utils" "^3.5.1" + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" "@react-types/menu" "^3.7.3" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/numberfield@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.3.0.tgz#e1926996772440ea3c9d65ca9b0b9d1914ee9409" - integrity sha512-UYw8KpLEG7F6U3lHvrqWLdyiWmEeYwvwLlUPErIy+/heoBUW22FRjTIfOANmvVQoeSmd8aGIBWbCVRrbjU6Q5A== +"@react-stately/numberfield@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.3.1.tgz#ef411062ffdb3646eae2a320e07443b2bf78a76f" + integrity sha512-GOu6wE2L2eal4AOL+rJQ4wQnFRgRkwiS9xdAFPu9B4qfP0DVfEIUC3XV4jws9nBhANxEf5LyilUv400nG881wg== dependencies: - "@babel/runtime" "^7.6.2" - "@internationalized/number" "^3.1.1" - "@react-stately/utils" "^3.5.1" + "@internationalized/number" "^3.1.2" + "@react-stately/utils" "^3.5.2" "@react-types/numberfield" "^3.3.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/overlays@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.4.3.tgz#2e935c404c0845ee7a7c6f001ff057d315161a16" - integrity sha512-WZCr3J8hj0cplQki1OVBR3MXg2l9V017h15Y2h+TNduWvnKH0yYOE/XfWviAT4KUP0LYoQfCnZ7XMHv+UI+8JA== +"@react-stately/overlays@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.4.4.tgz#a228a230f46f0d593ffb7bc8f836439bbc08e9ed" + integrity sha512-IIlx+VXtXS4snDXrocUOls8QZ5XBQ4SNonaz1ox8/5W7Nsvq4VtdKsIaXsUP4agOudswaimlpj3pTDO/KuF5tQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/utils" "^3.5.1" + "@react-stately/utils" "^3.5.2" "@react-types/overlays" "^3.6.5" + "@swc/helpers" "^0.4.14" -"@react-stately/radio@^3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.6.1.tgz#7d2d7ad94cc910a5647c196ce747c2f4a9a160b6" - integrity sha512-Hcg2qgvR7ekKMzVKeGby1FgMk3Sw4iDcEY/K1Y6j7UmGjM2HtQOq614tWQSQeGB25pp5I2jAWlparJeX0vY/oA== +"@react-stately/radio@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.6.2.tgz#6a13e3f97d130fccc1b404673cbe1414ac018621" + integrity sha512-qjbebR0YSkdEocLsPSzNnCsUYllWY938/5Z8mETxk4+74PJLxC3z0qjqVRq+aDO8hOgIfqSgrRRp3cJz9vIsBg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/utils" "^3.5.1" + "@react-stately/utils" "^3.5.2" "@react-types/radio" "^3.3.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/searchfield@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.3.3.tgz#36888922e96258815c77140bc26419fe98c9d555" - integrity sha512-pQxvFP05gPU2pcm+RuKg5Q8TuYcQ+SpxRwX4i4awwL/wSZTG7VmFkQpOaQK5wU558UXydMnK3QfifmCBV7IN9A== +"@react-stately/searchfield@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.3.4.tgz#a2d885fd68a3e8936d60b9d56e15f785022b448e" + integrity sha512-H/1evv7lsJl6PlD7/Sv7VgbCe0Yd2E2eKFihD6/tXPWO6L/ngYp5siqqhdwazjWTK2Hgw4TL0eviHGOGXKItzQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/utils" "^3.5.1" - "@react-types/searchfield" "^3.3.5" + "@react-stately/utils" "^3.5.2" + "@react-types/searchfield" "^3.3.6" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/select@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.3.3.tgz#d042c88a63e9d4c6718a45034ea27789cbd34819" - integrity sha512-HTKKwx5tq21G2r3Q0CVC5v2Amftj1+DvBlFSRIC9ZqWyxeQg//HotX0GpYHzEEyj5hB1GjBklKJ4UVejqNbb0w== +"@react-stately/select@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.3.4.tgz#61c3e739175e86babf0e585f8c68e30f3bf6363c" + integrity sha512-gD4JnF9/OIrQNdA4VqPIbifqpBC84BXHR5N7KmG7Ef06K9WGGVNB4FS538wno/znKg7lR6A45CPlaV53qfvWHg== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/collections" "^3.5.0" - "@react-stately/list" "^3.6.0" - "@react-stately/menu" "^3.4.3" - "@react-stately/selection" "^3.11.1" - "@react-stately/utils" "^3.5.1" + "@react-stately/collections" "^3.5.1" + "@react-stately/list" "^3.6.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" "@react-types/select" "^3.6.5" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/selection@^3.11.1": - version "3.11.1" - resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.11.1.tgz#580145bade9aebb8395ebc2edabed422d84fde0a" - integrity sha512-UHB6/eH5NJ+Q70G+pmnxohHfR3bh0szT+lOlWPj7Mh76WPu9bu07IHKLEob6PSzyJ81h7+Ysk3hdIgS3TewGog== +"@react-stately/selection@^3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.11.2.tgz#15c35dfb386e5218b8106070137a8b3ecded5a8b" + integrity sha512-g21Y36xhYkXO3yzz0BYSBqnD38olvEwsJUqBXGZfx//bshMC2FNmI5sRYMAi36stxWbwzBvB01OytxfLLxCXCA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/collections" "^3.5.0" - "@react-stately/utils" "^3.5.1" + "@react-stately/collections" "^3.5.1" + "@react-stately/utils" "^3.5.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/slider@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.2.3.tgz#36dcd2ccf07021ec770bbdebaa43c2fd4531884a" - integrity sha512-l5ezt0+Gq67QO/J5u6YX00mzahRrANSXK/wBx7TVeIxqOAPOG9zc8M8O9Pa5fZB6lYAVpHMbV/aqLSkyy8ImTg== +"@react-stately/slider@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.2.4.tgz#4e9e22cd8c2c449497e8476f2bc8d1399a5b0f80" + integrity sha512-J97lTLqQKsrVSovYr4dTz7IJO/+j9OStT78N6bumDklnIKT7bsH3g857zITUFjs8yCcq0Jt3sfOvEU0ts6vyww== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/i18n" "^3.6.2" - "@react-aria/utils" "^3.14.1" - "@react-stately/utils" "^3.5.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/utils" "^3.14.2" + "@react-stately/utils" "^3.5.2" "@react-types/shared" "^3.16.0" "@react-types/slider" "^3.3.1" + "@swc/helpers" "^0.4.14" -"@react-stately/table@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.6.0.tgz#f47041d14b2b803da33720b4b754f3af3c91954a" - integrity sha512-B6zamfI06j3+kxlMm1mgn+JaQv5CdXgYsMLo96nrU+XRbn2WzAikc2w+XHmfnqlKAcm+PtcDjrshDOCMioP2QA== +"@react-stately/table@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.7.0.tgz#fbb50081805c391d43de8ca4153bcd89edb82368" + integrity sha512-oPvMEabRUD4LSJ/NZsal3TT2YjoRmpEK8t2pqG20+Vapxy5tC6QKEZQvrDxJwF4Z8fqQnX/GvnqmfypvqWDUSA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/collections" "^3.5.0" - "@react-stately/grid" "^3.4.1" - "@react-stately/selection" "^3.11.1" + "@react-stately/collections" "^3.5.1" + "@react-stately/grid" "^3.4.2" + "@react-stately/selection" "^3.11.2" "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" - "@react-types/table" "^3.3.3" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" -"@react-stately/tabs@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.3.tgz#39b7e7bf7dfe544868be4c1593578587cff0d5a9" - integrity sha512-23GX5iBX1IPY1sD4nq8sTgCfaCt+P2nORYnBWA01+iZoUX/g3BG3+3S2SVL1J7esmcapGnXNapUa2zEbf3aFRg== +"@react-stately/tabs@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.4.tgz#e596623de62731efc769ee0d58e54f9f1400551c" + integrity sha512-qSnkoxzbC21KXZYGtg6TEDaex34WSNmPN4sJzXc9Xe39L6+wXNCA2tqZxWCfpIcWQklFm+BmnnNNCO8/PDDrMA== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/list" "^3.6.0" - "@react-stately/utils" "^3.5.1" + "@react-stately/list" "^3.6.1" + "@react-stately/utils" "^3.5.2" "@react-types/tabs" "^3.1.5" + "@swc/helpers" "^0.4.14" -"@react-stately/toggle@^3.4.3": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.4.3.tgz#331942e70314f918f852ee679b8f668d98771801" - integrity sha512-HsJLMa5d9i6SWyDIahkJExkanXZek86//hirsgSU0IvY7YJx33Wek8UwHE5Vskp39DAOu18QMz2GrAngnUErYQ== +"@react-stately/toggle@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.4.4.tgz#b7825bf900725dcee0444fe6132b06948be36b44" + integrity sha512-OwVJpd2M7P7fekTWpl3TUdD3Brq+Z/xElOCJYP5QuVytXCa5seKsk40YPld8JQnA5dRKojpbUxMDOJpb6hOOfw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/utils" "^3.5.1" + "@react-stately/utils" "^3.5.2" "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/tooltip@^3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.2.3.tgz#edcd70239b0b872753e6636085e53eafd023a61c" - integrity sha512-RWCcqn6iz1IcOXX+TiXBql2kI5hgDlf49DiGZJqSGmNQujX1FVZ1uqn9yHpdh+/TZPZ7JeMvQu3S5lA+x4ehPw== +"@react-stately/tooltip@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.2.4.tgz#387bb53539c39b0f3a0807537e9d404e03dc5d3f" + integrity sha512-t7ksDRs9jKcOS25BVLM5cNCyzSCnzrin8OZ3AEmgeNxfiS58HhHbNxYk725hyGrbdpugQ03cRcJG70EZ6VgwDQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/overlays" "^3.4.3" - "@react-stately/utils" "^3.5.1" + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" "@react-types/tooltip" "^3.2.5" + "@swc/helpers" "^0.4.14" -"@react-stately/tree@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.4.0.tgz#e3985fcc4a6c4014a6cb28b146ff5f6903c7bd4c" - integrity sha512-MqxSABMzykwI6Wj1B7+jBcCoYc0b05CueRTQDyoL+PfVhnV0SzOH6P84UPD+FHlz8x3RG/2hTTmLr4A8McO2nQ== +"@react-stately/tree@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.4.1.tgz#bb267784000b22c7c1aa6415103ad1b9f3566677" + integrity sha512-kIXeJOHgGGaUFnAD2wyRIiOwOw/+PN1OXo46n8+dPTFIYwR4+IWFNG8OMjVlIiSLPYWMCzzxZBE9a5grmbmNWQ== dependencies: - "@babel/runtime" "^7.6.2" - "@react-stately/collections" "^3.5.0" - "@react-stately/selection" "^3.11.1" - "@react-stately/utils" "^3.5.1" + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-stately/utils@^3.5.1": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.1.tgz#502de762e5d33e892347c5f58053674e06d3bc92" - integrity sha512-INeQ5Er2Jm+db8Py4upKBtgfzp3UYgwXYmbU/XJn49Xw27ktuimH9e37qP3bgHaReb5L3g8IrGs38tJUpnGPHA== +"@react-stately/utils@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.2.tgz#9b5f3bb9ad500bf9c5b636a42988dba60a221669" + integrity sha512-639gSKqamPHIEPaApb9ahVJS0HgAqNdVF3tQRoh+Ky6759Mbk6i3HqG4zk4IGQ1tVlYSYZvCckwehF7b2zndMg== dependencies: - "@babel/runtime" "^7.6.2" + "@swc/helpers" "^0.4.14" -"@react-stately/virtualizer@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.4.0.tgz#939c19d869ccf0e3f7c0e62ecb2406a9fe128cd1" - integrity sha512-Yy5RKlt6W/1+qjJAVHxPJA0RgpN3KNHcSpnFHdus2OuEvylSXZ2kqwflj97Ao4XfNSpDIs4NQS/eOq+mpZlNqQ== +"@react-stately/virtualizer@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.4.1.tgz#00c7b36b989244cf985b9ad5fb13dc1ecbb81a0f" + integrity sha512-2S7GARkZl41X7fN0Xa94TkN8ELAUbA89zn1xH59d02NOvAKLAFXHkCe69AivvVvbhXo8/nONzO8NXqqgBS/XQw== dependencies: - "@babel/runtime" "^7.6.2" - "@react-aria/utils" "^3.14.1" + "@react-aria/utils" "^3.14.2" "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-types/breadcrumbs@^3.4.5": - version "3.4.5" - resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.4.5.tgz#ea77c88af05497b93bdeedc21dbb98973bbd57a2" - integrity sha512-5DXV6qW6Orronu1D9Op903m+lGzPajzJnsW6ygEiv6kjRutY33gIl1ePoQKoBQzNimtFs3uE4YLOw7nLzry1qg== +"@react-types/breadcrumbs@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.4.6.tgz#cbc1132b5bfa87dde5467b037c563ed77a211980" + integrity sha512-hvGUI4mKHvOl3QyKFHk1qT/UkG+C4iJsRTlk6pbQgwk4lb7rplEm1CEa7fxzRdI8Gh4Id+C9+WyKCxZf9GNWUw== dependencies: - "@react-types/link" "^3.3.5" + "@react-types/link" "^3.3.6" "@react-types/shared" "^3.16.0" "@react-types/button@^3.7.0": @@ -3336,12 +3074,12 @@ dependencies: "@react-types/shared" "^3.16.0" -"@react-types/calendar@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.0.4.tgz#294a2931f87e547fdd8261aa4524e5cc8524d5a4" - integrity sha512-0hKaaEil2XbdUESQe9Yg2uLVNvNcFHVzXN6KoQHGBPnpWlkwa24ufKiX27mAWOAoce0nEXlVBG1H9C/kwLMcMw== +"@react-types/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.0.5.tgz#a91fca7d5a2bbbd554748471f9920600cb364d18" + integrity sha512-Kx00132hFEVvqay/Ub7q2oZEA1AzksirAuCsjakamn4LAXvitlo3PZxqBdEsyRc3nP5NR48KJj8yo276mXY8kQ== dependencies: - "@internationalized/date" "^3.0.1" + "@internationalized/date" "^3.0.2" "@react-types/shared" "^3.16.0" "@react-types/checkbox@^3.4.1": @@ -3358,12 +3096,12 @@ dependencies: "@react-types/shared" "^3.16.0" -"@react-types/datepicker@^3.1.3": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.1.3.tgz#0bfc1755ca0a7680b68d1f9281721f72b2dcf7c8" - integrity sha512-5ZsCU/quVXMCQd3T9yLYKOviSghBaSx/vqzJDsDGimyFRAxd4n95PRl8SjlGjVf6lR0WSihCbcXB/D+b8/RJIA== +"@react-types/datepicker@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.1.4.tgz#46fd291d8acd40fdd304c4c0bf1a47e71eaa1801" + integrity sha512-NBCXBCe3YZqeA/JrVKy0IAvJ2XSnXaVpR9iAlUwKu7V8P81CtnXHsVCrd/0HSH8QZWsGdIV5E23z0TctvW8trA== dependencies: - "@internationalized/date" "^3.0.1" + "@internationalized/date" "^3.0.2" "@react-types/overlays" "^3.6.5" "@react-types/shared" "^3.16.0" @@ -3389,12 +3127,12 @@ dependencies: "@react-types/shared" "^3.16.0" -"@react-types/link@^3.3.5": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.3.5.tgz#0482c03ccb3e703922b201cda582801024508145" - integrity sha512-wEeYXqzRPwEwU6AakiRfsPrkGxm2l0gjIc992FBmHPz6MWU8eSATTwzeyI668eRzNrQvOBMI7il6lXuxDm1ZLg== +"@react-types/link@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.3.6.tgz#74ff1602c7aba38d3200f0d597a04e1f94989e25" + integrity sha512-HMFd94CW8WrHbwXeTtCP/WOZmGugrEkN8f16R0i7T9xlTumk5GxubDMjA41ND/ehH72Xq7lP9VX8qezHWCGSoQ== dependencies: - "@react-aria/interactions" "^3.13.0" + "@react-aria/interactions" "^3.13.1" "@react-types/shared" "^3.16.0" "@react-types/listbox@^3.3.5": @@ -3448,13 +3186,13 @@ dependencies: "@react-types/shared" "^3.16.0" -"@react-types/searchfield@^3.3.5": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.3.5.tgz#a1019b10e2052faf8bde1dc3be99e9113e361844" - integrity sha512-g0kefTbrpqh5Cbv7skvlWfcDnopwTdoe7muHRYkuhMYbGbr8ZeUrCXpWUwVXBq8M24soLSHLuRohaEnKcwpHhw== +"@react-types/searchfield@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.3.6.tgz#8f33ef6938e2db9f80b7e4008d81fc4de65f07d3" + integrity sha512-DIv5eznnJVv0CM4f8SEEiptEZSzXUJWUyxRPkTzYNWt91pPPaCNbCQbmzZtyR9/R9KRJ9hlZN2bMkrtfVLvl1g== dependencies: "@react-types/shared" "^3.16.0" - "@react-types/textfield" "^3.6.1" + "@react-types/textfield" "^3.6.2" "@react-types/select@^3.6.5": version "3.6.5" @@ -3483,10 +3221,10 @@ "@react-types/checkbox" "^3.4.1" "@react-types/shared" "^3.16.0" -"@react-types/table@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.3.3.tgz#350d6a86ad0aceab3fdd33470b4bd1346777aaf4" - integrity sha512-rdY8PCzdqumVd6EFgN4NCoNRHdU4dVKH2oufr50TrAVPAz2KyoNXaGcDGe0q4RjQeTk+fc0sCvRZZdpMwHRVpQ== +"@react-types/table@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.4.0.tgz#64715f6c355b880467f67b1e5288e6c28d6092e8" + integrity sha512-G2L5WtaBMeG3v/5Kj/ZXH4ywz95vyPUBj7qy9UZJOYNaAR7uJWZkbe+Ka4xD4H/AaOk4mqW8dSo8cj7gtD66GQ== dependencies: "@react-types/grid" "^3.1.5" "@react-types/shared" "^3.16.0" @@ -3498,10 +3236,10 @@ dependencies: "@react-types/shared" "^3.16.0" -"@react-types/textfield@^3.6.1": - version "3.6.1" - resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.6.1.tgz#70494412144ddbe4e2ae37ba8ef63922e2a9f413" - integrity sha512-V3EyYw82GVJQbNN0OAWpOLs/UQij+AgUuJpxh8192p/q0B3/9lqepZ9b+Qts2XgMsA+3Db+KgFMWm2IdjaZbpQ== +"@react-types/textfield@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.6.2.tgz#6cc87c2bac286a06ba04b9465d23fa9078bf280e" + integrity sha512-QhFcpXvmSEW1/PwkWkvHJkcjsVezLW0OAvA0kMt/FMOChQNxnO36Pha+WjfcVbiFHXMhCBl6akbY2xG9NsHJrQ== dependencies: "@react-types/shared" "^3.16.0" @@ -3514,9 +3252,17 @@ "@react-types/shared" "^3.16.0" "@rushstack/eslint-patch@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz#6801033be7ff87a6b7cadaf5b337c9f366a3c4b0" - integrity sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + +"@selderee/plugin-htmlparser2@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz#8a304d18df907e086f3cfc71ea0ced52d6524430" + integrity sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA== + dependencies: + domhandler "^5.0.3" + selderee "^0.10.0" "@selderee/plugin-htmlparser2@^0.6.0": version "0.6.0" @@ -3526,14 +3272,14 @@ domhandler "^4.2.0" selderee "^0.6.0" -"@semantic-release/changelog@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.1.tgz#8dd0334fd8c7d50cda747d2591e4f18f816b3c9c" - integrity sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA== +"@semantic-release/changelog@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.2.tgz#fdcdbd368788c8fcc69c4af29bf2064f4afb45f4" + integrity sha512-jHqfTkoPbDEOAgAP18mGP53IxeMwxTISN+GwTRy9uLu58UjARoZU8ScCgWGeO2WPkEsm57H8AkyY02W2ntIlIw== dependencies: "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" - fs-extra "^9.0.0" + fs-extra "^11.0.0" lodash "^4.17.4" "@semantic-release/commit-analyzer@9.0.2", "@semantic-release/commit-analyzer@^9.0.2": @@ -3549,11 +3295,6 @@ lodash "^4.17.4" micromatch "^4.0.2" -"@semantic-release/error@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" - integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== - "@semantic-release/error@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-3.0.0.tgz#30a3b97bbb5844d695eb22f9d3aa40f6a92770c2" @@ -3586,17 +3327,17 @@ p-reduce "^2.0.0" "@semantic-release/github@^8.0.0": - version "8.0.4" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-8.0.4.tgz#4ea242f6ad10a0474b0fbb09462e10c43518002a" - integrity sha512-But4e8oqqP3anZI5tjzZssZc2J6eoUdeeE0s7LVKKwyiAXJiQDWNNvtPOpgG2DsIz4+Exuse7cEQgjGMxwtLmg== + version "8.0.7" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-8.0.7.tgz#643aee7a5cdd2acd3ae643bb90ad4ac796901de6" + integrity sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww== dependencies: - "@octokit/rest" "^18.0.0" - "@semantic-release/error" "^2.2.0" + "@octokit/rest" "^19.0.0" + "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" bottleneck "^2.18.1" debug "^4.0.0" dir-glob "^3.0.0" - fs-extra "^10.0.0" + fs-extra "^11.0.0" globby "^11.0.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -3643,153 +3384,163 @@ read-pkg-up "^7.0.0" "@sqltools/formatter@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" - integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== "@supercharge/request-ip@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@supercharge/request-ip/-/request-ip-1.2.0.tgz#b8a8164322e09de3fa9b6f556885795c4841a7d4" integrity sha512-wlt6JW69MHqLY2M6Sm/jVyCojNRKq2CBvwH0Hbx24SFhDQQGkgEjeKxVutDxHSyrWixFaOSLXC27euzxijhyMQ== -"@svgr/babel-plugin-add-jsx-attribute@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz#b9a5d84902be75a05ede92e70b338d28ab63fa74" - integrity sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w== +"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" + integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== -"@svgr/babel-plugin-remove-jsx-attribute@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz#4877995452efc997b36777abe1fde9705ef78e8b" - integrity sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ== +"@svgr/babel-plugin-remove-jsx-attribute@*": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" + integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== -"@svgr/babel-plugin-remove-jsx-empty-expression@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz#2d67a0e92904c9be149a5b22d3a3797ce4d7b514" - integrity sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A== +"@svgr/babel-plugin-remove-jsx-empty-expression@*": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" + integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz#306f5247139c53af70d1778f2719647c747998ee" - integrity sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA== +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" + integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== -"@svgr/babel-plugin-svg-dynamic-title@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz#6ce26d34cbc93eb81737ef528528907c292e7aa2" - integrity sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA== +"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" + integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== -"@svgr/babel-plugin-svg-em-dimensions@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz#5ade2a724b290873c30529d1d8cd23523856287a" - integrity sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw== +"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" + integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== -"@svgr/babel-plugin-transform-react-native-svg@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz#d654f509d692c3a09dfb475757a44bd9f6ad7ddf" - integrity sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw== +"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" + integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== -"@svgr/babel-plugin-transform-svg-component@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz#21a285dbffdce9567c437ebf0d081bf9210807e6" - integrity sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw== +"@svgr/babel-plugin-transform-svg-component@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" + integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== -"@svgr/babel-preset@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz#8bd1ead79637d395e9362b01dd37cfd59702e152" - integrity sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g== +"@svgr/babel-preset@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" + integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.3.1" - "@svgr/babel-plugin-remove-jsx-attribute" "^6.3.1" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.3.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.3.1" - "@svgr/babel-plugin-svg-dynamic-title" "^6.3.1" - "@svgr/babel-plugin-svg-em-dimensions" "^6.3.1" - "@svgr/babel-plugin-transform-react-native-svg" "^6.3.1" - "@svgr/babel-plugin-transform-svg-component" "^6.3.1" + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute" "*" + "@svgr/babel-plugin-remove-jsx-empty-expression" "*" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" + "@svgr/babel-plugin-transform-svg-component" "^6.5.1" -"@svgr/core@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.3.1.tgz#752adf49d8d5473b15d76ca741961de093f715bd" - integrity sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA== +"@svgr/core@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" + integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== dependencies: - "@svgr/plugin-jsx" "^6.3.1" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz#59614e24d2a4a28010e02089213b3448d905769d" - integrity sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ== +"@svgr/hast-util-to-babel-ast@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" + integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== dependencies: - "@babel/types" "^7.18.4" - entities "^4.3.0" + "@babel/types" "^7.20.0" + entities "^4.4.0" -"@svgr/plugin-jsx@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz#de7b2de824296b836d6b874d498377896e367f50" - integrity sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw== +"@svgr/plugin-jsx@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" + integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.3.1" - "@svgr/hast-util-to-babel-ast" "^6.3.1" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/hast-util-to-babel-ast" "^6.5.1" svg-parser "^2.0.4" -"@svgr/plugin-svgo@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz#3c1ff2efaed10e5c5d35a6cae7bacaedc18b5d4a" - integrity sha512-yJIjTDKPYqzFVjmsbH5EdIwEsmKxjxdXSGJVLeUgwZOZPAkNQmD1v7LDbOdOKbR44FG8465Du+zWPdbYGnbMbw== +"@svgr/plugin-svgo@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" + integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.8.0" -"@svgr/webpack@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.3.1.tgz#001d03236ebb03bf47c0a4b92d5423e05095ebe6" - integrity sha512-eODxwIUShLxSMaRjzJtrj9wg89D75JLczvWg9SaB5W+OtVTkiC1vdGd8+t+pf5fTlBOy4RRXAq7x1E3DUl3D0A== +"@svgr/webpack@6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" + integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== dependencies: - "@babel/core" "^7.18.5" - "@babel/plugin-transform-react-constant-elements" "^7.17.12" - "@babel/preset-env" "^7.18.2" - "@babel/preset-react" "^7.17.12" - "@babel/preset-typescript" "^7.17.12" - "@svgr/core" "^6.3.1" - "@svgr/plugin-jsx" "^6.3.1" - "@svgr/plugin-svgo" "^6.3.1" + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-constant-elements" "^7.18.12" + "@babel/preset-env" "^7.19.4" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.18.6" + "@svgr/core" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + "@svgr/plugin-svgo" "^6.5.1" -"@swc/helpers@0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.3.tgz#16593dfc248c53b699d4b5026040f88ddb497012" - integrity sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA== +"@swc/helpers@0.4.11": + version "0.4.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.11.tgz#db23a376761b3d31c26502122f349a21b592c8de" + integrity sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw== dependencies: tslib "^2.4.0" -"@tailwindcss/aspect-ratio@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz#c635dd7331cbcc1b111cebdc2647dd3493ebdd3e" - integrity sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ== +"@swc/helpers@^0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" -"@tailwindcss/forms@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" - integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== +"@tailwindcss/aspect-ratio@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" + integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== + +"@tailwindcss/forms@0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7" + integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q== dependencies: mini-svg-data-uri "^1.2.3" -"@tailwindcss/typography@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.4.tgz#ad8c9e6808bae297bb7826742e4789f2a9f09a48" - integrity sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg== +"@tailwindcss/typography@0.5.8": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.8.tgz#8fb31db5ab0590be6dfa062b1535ac86ad9d12bf" + integrity sha512-xGQEp8KXN8Sd8m6R4xYmwxghmswrd0cPnNI2Lc6fmrC3OojysTBJJGSIVwPV56q4t6THFUK3HJ0EaWwpglSxWw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" -"@tanem/react-nprogress@5.0.11": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.11.tgz#ac05edd3b93c88170b91ce33871e1dc71ca5af22" - integrity sha512-zLOsKXzTjXkCEgicC+wHxZiXl5/ONOQIFoZ1HBmHmNbrnMStg4/T6gmyBLRDu4lQ5cS00F1ElRwLSODd0xmNMg== +"@tanem/react-nprogress@5.0.22": + version "5.0.22" + resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.22.tgz#31aff13de27ec27401acb8cc4a5976eb034616e6" + integrity sha512-S73v6z7uD8wkCzKARDXn/AGEAVlL8IXI2/pqACRMnn3dTyfaLg2JLrZYtrfBcVaZXf5bgKSB+lK1ncKVN40pQQ== dependencies: - "@babel/runtime" "^7.18.9" + "@babel/runtime" "^7.20.6" hoist-non-react-statics "^3.3.2" "@tootallnate/once@1": @@ -3808,29 +3559,29 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/babel__core@^7.1.7": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -3854,9 +3605,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -3923,41 +3674,41 @@ juice "^7.0.0" "@types/eslint@7 || 8": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" - integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== + version "8.4.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" + integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": + version "4.17.32" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" + integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express-session@1.17.4", "@types/express-session@^1.15.5": - version "1.17.4" - resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.4.tgz#97a30a35e853a61bdd26e727453b8ed314d6166b" - integrity sha512-7cNlSI8+oOBUHTfPXMwDxF/Lchx5aJ3ho7+p9jJZYVg9dVDJFh3qdMXmJtRsysnvS+C6x46k9DRYmrmCkE+MVg== +"@types/express-session@1.17.5", "@types/express-session@^1.15.5": + version "1.17.5" + resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e" + integrity sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w== dependencies: "@types/express" "*" -"@types/express@*", "@types/express@4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@*", "@types/express@4.17.15": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.31" "@types/qs" "*" "@types/serve-static" "*" @@ -3984,9 +3735,9 @@ hoist-non-react-statics "^3.3.0" "@types/html-to-text@*": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/html-to-text/-/html-to-text-8.1.0.tgz#dad0bf5d199f7e3f67eae50a36c13eadb1b56d1b" - integrity sha512-54YF2fGmN4g62/w+T85uQ8n0FyBhMY5cjKZ1imsbIh4Pgbeno1mAaQktC/pv/+C2ToUYkTZis9ADgn9GRRz9nQ== + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/html-to-text/-/html-to-text-8.1.1.tgz#0c5573207c14f618f24da5a2910c510285573094" + integrity sha512-QFcqfc7TiVbvIX8Fc2kWUxakruI1Ay6uitaGCYHzI5M0WHQROV5D2XeSaVrK0FmvssivXum4yERVnJsiuH61Ww== "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" @@ -4003,15 +3754,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@4.14.183": - version "4.14.183" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.183.tgz#1173e843e858cff5b997c234df2789a4a54c2374" - integrity sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw== - -"@types/lodash@^4.14.175": - version "4.14.182" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" - integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== +"@types/lodash@4.14.191", "@types/lodash@^4.14.175": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== "@types/mdast@^3.0.0": version "3.0.10" @@ -4020,15 +3766,10 @@ dependencies: "@types/unist" "*" -"@types/mdurl@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/minimatch@^3.0.3": version "3.0.5" @@ -4059,27 +3800,30 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@14 || 16 || 17", "@types/node@17.0.36", "@types/node@>=12": +"@types/node@*": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + +"@types/node@14 || 16 || 17": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + +"@types/node@17.0.36": version "17.0.36" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.36.tgz#c0d5f2fe76b47b63e0e0efc3d2049a9970d68794" integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA== -"@types/node@^14.14.31": - version "14.18.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.23.tgz#70f5f20b0b1b38f696848c1d3647bb95694e615e" - integrity sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA== +"@types/node@^14.0.0", "@types/node@^14.14.31": + version "14.18.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835" + integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ== -"@types/nodemailer@*": - version "6.4.4" - resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.4.tgz#c265f7e7a51df587597b3a49a023acaf0c741f4b" - integrity sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw== - dependencies: - "@types/node" "*" - -"@types/nodemailer@6.4.5": - version "6.4.5" - resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.5.tgz#09011ac73259245475d1688e4ba101860567dc39" - integrity sha512-zuP3nBRQHI6M2PkXnGGy1Ww4VB+MyYHGgnfV2T+JR9KLkeWqPJuyVUgLpKXuFnA/b7pZaIDFh2sV4759B7jK1g== +"@types/nodemailer@*", "@types/nodemailer@6.4.7": + version "6.4.7" + resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.7.tgz#658f4bca47c1a895b1d7e054b3b54030a5e1f5e0" + integrity sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg== dependencies: "@types/node" "*" @@ -4118,31 +3862,24 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" - integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== +"@types/react-dom@18.0.10": + version "18.0.10" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352" + integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg== dependencies: "@types/react" "*" -"@types/react-transition-group@4.4.5": +"@types/react-transition-group@4.4.5", "@types/react-transition-group@^4.4.0": version "4.4.5" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.0": - version "4.4.4" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" - integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.17": - version "18.0.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.17.tgz#4583d9c322d67efe4b39a935d223edcc7050ccf4" - integrity sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ== +"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.26": + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -4170,17 +3907,17 @@ resolved "https://registry.yarnpkg.com/@types/secure-random-password/-/secure-random-password-0.2.1.tgz#c01a96d5c2667c3fa896533207bceb157e3b87bc" integrity sha512-tpG5oVF+NpIS9UJ9ttXAokafyhE/MCZBg65D345qu3gOM4YoJ/mFNVzUDUNBfb1hIi598bNOzvY04BbfS7VKwA== -"@types/semver@7.3.12": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== +"@types/semver@7.3.13", "@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - "@types/mime" "^1" + "@types/mime" "*" "@types/node" "*" "@types/sinonjs__fake-timers@8.1.1": @@ -4237,128 +3974,87 @@ resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.14.tgz#754f1dccedcc66fc2bbe290c27f5323b407ceb00" integrity sha512-Ynb/CjHhE/Xp/4bhHmQC4U1Ox+I2OpfRYF3dnNgQqn1cHa6LK3H1wJMNPT02tSVZA6FYuXE2ITORfbnb6zBCSA== -"@typescript-eslint/eslint-plugin@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714" - integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ== +"@typescript-eslint/eslint-plugin@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz#54f8368d080eb384a455f60c2ee044e948a8ce67" + integrity sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ== dependencies: - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/type-utils" "5.33.1" - "@typescript-eslint/utils" "5.33.1" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/type-utils" "5.48.0" + "@typescript-eslint/utils" "5.48.0" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" + natural-compare-lite "^1.4.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3" - integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA== +"@typescript-eslint/parser@5.48.0", "@typescript-eslint/parser@^5.21.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba" + integrity sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg== dependencies: - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/typescript-estree" "5.33.1" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/typescript-estree" "5.48.0" debug "^4.3.4" -"@typescript-eslint/parser@^5.21.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.27.0.tgz#62bb091ed5cf9c7e126e80021bb563dcf36b6b12" - integrity sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA== +"@typescript-eslint/scope-manager@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz#607731cb0957fbc52fd754fd79507d1b6659cecf" + integrity sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow== dependencies: - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" - debug "^4.3.4" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/visitor-keys" "5.48.0" -"@typescript-eslint/scope-manager@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz#a272178f613050ed62f51f69aae1e19e870a8bbb" - integrity sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g== +"@typescript-eslint/type-utils@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz#40496dccfdc2daa14a565f8be80ad1ae3882d6d6" + integrity sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" - -"@typescript-eslint/scope-manager@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493" - integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA== - dependencies: - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" - -"@typescript-eslint/type-utils@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367" - integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g== - dependencies: - "@typescript-eslint/utils" "5.33.1" + "@typescript-eslint/typescript-estree" "5.48.0" + "@typescript-eslint/utils" "5.48.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.27.0.tgz#c3f44b9dda6177a9554f94a74745ca495ba9c001" - integrity sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A== +"@typescript-eslint/types@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449" + integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw== -"@typescript-eslint/types@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7" - integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ== - -"@typescript-eslint/typescript-estree@5.27.0", "@typescript-eslint/typescript-estree@^5.9.1": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz#7965f5b553c634c5354a47dcce0b40b94611e995" - integrity sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ== +"@typescript-eslint/typescript-estree@5.48.0", "@typescript-eslint/typescript-estree@^5.9.1": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz#a7f04bccb001003405bb5452d43953a382c2fac2" + integrity sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/visitor-keys" "5.48.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34" - integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA== - dependencies: - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575" - integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ== +"@typescript-eslint/utils@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.0.tgz#eee926af2733f7156ad8d15e51791e42ce300273" + integrity sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/typescript-estree" "5.33.1" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/typescript-estree" "5.48.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" + semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz#97aa9a5d2f3df8215e6d3b77f9d214a24db269bd" - integrity sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA== +"@typescript-eslint/visitor-keys@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz#4446d5e7f6cadde7140390c0e284c8702d944904" + integrity sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q== dependencies: - "@typescript-eslint/types" "5.27.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b" - integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg== - dependencies: - "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/types" "5.48.0" eslint-visitor-keys "^3.3.0" JSONStream@^1.0.4: @@ -4369,7 +4065,7 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abbrev@1, abbrev@~1.1.1: +abbrev@1, abbrev@^1.0.0, abbrev@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -4382,15 +4078,10 @@ accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -ace-builds@1.9.6: - version "1.9.6" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.9.6.tgz#2d3721f90f0664b79be9288f6319dd57576ff1e7" - integrity sha512-M/Li4hPruMSbkkg35LgdbsIBq0WuwrV4ztP2pKaww47rC/MvDc1bOrYxwJrfgxdlzyLKrja5bn+9KwwuzqB2xQ== - -ace-builds@^1.4.14: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.5.2.tgz#411752873a19a4d653a0b156131d56e4192bd9e3" - integrity sha512-E/h9JRtcTwzXYKZ4Ucnw9Eit0gEWQSFrjSCQQER/qIavrVbWNM4w21WqyyOqSVs+jtMjpSO11mg2ZZTExXbltQ== +ace-builds@1.14.0, ace-builds@^1.4.14: + version "1.14.0" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.14.0.tgz#85a6733b4fa17b0abc3dbfe38cd8d823cad79716" + integrity sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw== acorn-jsx@^5.3.2: version "5.3.2" @@ -4421,15 +4112,10 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.4.1, acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.4.1, acorn@^8.8.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== agent-base@6, agent-base@^6.0.2: version "6.0.2" @@ -4485,9 +4171,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.11.0, ajv@^8.8.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -4499,11 +4185,6 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -4518,16 +4199,6 @@ ansi-escapes@^5.0.0: dependencies: type-fest "^1.0.2" -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -4553,9 +4224,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: color-convert "^2.0.1" ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== ansicolors@~0.3.2: version "0.3.2" @@ -4568,17 +4239,17 @@ any-promise@^1.0.0: integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== append-field@^1.0.0: version "1.0.0" @@ -4609,9 +4280,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" - integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -4666,15 +4337,15 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.4, array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== +array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" is-string "^1.0.7" array-union@^2.1.0: @@ -4683,25 +4354,36 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flat@^1.2.5: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -4754,16 +4436,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async@^3.2.0: +async@^3.2.0, async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== -async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -4774,13 +4451,13 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@10.4.8: - version "10.4.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" - integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== +autoprefixer@10.4.13: + version "10.4.13" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" + integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== dependencies: - browserslist "^4.21.3" - caniuse-lite "^1.0.30001373" + browserslist "^4.21.4" + caniuse-lite "^1.0.30001426" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -4796,15 +4473,10 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axe-core@^4.3.5: - version "4.4.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" - integrity sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA== - axe-core@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" - integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== + version "4.6.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.1.tgz#79cccdee3e3ab61a8f42c458d4123a6768e6fbce" + integrity sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w== axios-rate-limit@1.3.0: version "1.3.0" @@ -4824,13 +4496,6 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-emotion@^10.0.27: version "10.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz#a1fe3503cff80abfd0bdda14abd2e8e57a79d17d" @@ -4847,7 +4512,7 @@ babel-plugin-emotion@^10.0.27: find-root "^1.1.0" source-map "^0.5.7" -babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1: +babel-plugin-macros@^2.0.0: version "2.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -4856,29 +4521,38 @@ babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-polyfill-corejs2@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" - integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.2" + "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" - integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - core-js-compat "^3.21.0" + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" -babel-plugin-polyfill-regenerator@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" - integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" + "@babel/helper-define-polyfill-provider" "^0.3.3" babel-plugin-react-intl-auto@3.3.0: version "3.3.0" @@ -4955,27 +4629,27 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bcrypt@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.0.1.tgz#f1a2c20f208e2ccdceea4433df0c8b2c54ecdf71" - integrity sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw== +bcrypt@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.1.0.tgz#bbb27665dbc400480a524d8991ac7434e8529e17" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^3.1.0" + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== -bin-links@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" - integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ== +bin-links@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== dependencies: cmd-shim "^5.0.0" mkdirp-infer-owner "^2.0.0" - npm-normalize-package-bin "^1.0.0" + npm-normalize-package-bin "^2.0.0" read-cmd-shim "^3.0.0" rimraf "^3.0.0" write-file-atomic "^4.0.0" @@ -5014,10 +4688,10 @@ bn.js@^4.0.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -5027,7 +4701,7 @@ body-parser@1.20.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" @@ -5074,26 +4748,15 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.20.2, browserslist@^4.20.3: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browserslist@^4.21.3, browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -browserslist@^4.21.3: - version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" - integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== - dependencies: - caniuse-lite "^1.0.30001370" - electron-to-chromium "^1.4.202" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" node-releases "^2.0.6" - update-browserslist-db "^1.0.5" + update-browserslist-db "^1.0.9" buffer-crc32@~0.2.3: version "0.2.13" @@ -5169,10 +4832,10 @@ cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" -cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.0.tgz#87a6bae558a511c9cb2a13768073e240ca76153a" - integrity sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ== +cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== dependencies: "@npmcli/fs" "^2.1.0" "@npmcli/move-file" "^2.0.0" @@ -5191,12 +4854,7 @@ cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: rimraf "^3.0.2" ssri "^9.0.0" tar "^6.1.11" - unique-filename "^1.1.1" - -cachedir@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" - integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== + unique-filename "^2.0.0" cachedir@2.3.0, cachedir@^2.3.0: version "2.3.0" @@ -5212,9 +4870,9 @@ call-bind@^1.0.0, call-bind@^1.0.2: get-intrinsic "^1.0.2" call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== callsites@^3.0.0: version "3.1.0" @@ -5245,15 +4903,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001332: - version "1.0.30001344" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz#8a1e7fdc4db9c2ec79a05e9fd68eb93a761888bb" - integrity sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g== - -caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: - version "1.0.30001378" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz#3d2159bf5a8f9ca093275b0d3ecc717b00f27b67" - integrity sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA== +caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001426: + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== cardinal@^2.1.1: version "2.1.1" @@ -5268,7 +4921,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -5286,14 +4939,14 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" - integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-parser@^2.2.0: version "2.2.0" @@ -5312,6 +4965,17 @@ check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== + dependencies: + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" @@ -5324,10 +4988,23 @@ cheerio-select@^2.1.0: domhandler "^5.0.3" domutils "^3.0.1" +cheerio@1.0.0-rc.10: + version "1.0.0-rc.10" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + cheerio@^1.0.0-rc.3: - version "1.0.0-rc.11" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.11.tgz#1be84be1a126958366bcc57a11648cd9b30a60c2" - integrity sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag== + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" dom-serializer "^2.0.0" @@ -5336,7 +5013,6 @@ cheerio@^1.0.0-rc.3: htmlparser2 "^8.0.1" parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" - tslib "^2.4.0" chokidar@^3.4.0, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" @@ -5358,10 +5034,10 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== +ci-info@^3.2.0, ci-info@^3.3.2: + version "3.7.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" + integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== cidr-regex@^3.1.1: version "3.1.1" @@ -5371,9 +5047,9 @@ cidr-regex@^3.1.1: ip-regex "^4.1.0" classnames@^2.2.5: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== clean-stack@^2.0.0: version "2.2.0" @@ -5388,13 +5064,6 @@ cli-columns@^4.0.0: string-width "^4.2.3" strip-ansi "^6.0.1" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== - dependencies: - restore-cursor "^2.0.0" - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -5420,9 +5089,9 @@ cli-spinners@^2.5.0: integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-table3@^0.6.1, cli-table3@^0.6.2, cli-table3@~0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -5444,16 +5113,16 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -5463,6 +5132,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone@2.x: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" @@ -5531,9 +5209,9 @@ color@^3.1.3: color-string "^1.6.0" colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== colorspace@1.1.x: version "1.1.4" @@ -5559,9 +5237,9 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" - integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@^2.19.0: version "2.20.3" @@ -5588,20 +5266,15 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" - integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== +commander@^9.0.0, commander@^9.3.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== -commander@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" - integrity sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw== - -commitizen@4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.5.tgz#48e5a5c28334c6e8ed845cc24fc9f072efd3961e" - integrity sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ== +commitizen@4.2.6, commitizen@^4.0.3: + version "4.2.6" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.6.tgz#c35af39e1cb5fc2de88511df802da4344dc3ca80" + integrity sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w== dependencies: cachedir "2.3.0" cz-conventional-changelog "3.3.0" @@ -5618,26 +5291,6 @@ commitizen@4.2.5: strip-bom "4.0.0" strip-json-comments "3.1.1" -commitizen@^4.0.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.4.tgz#a3e5b36bd7575f6bf6e7aa19dbbf06b0d8f37165" - integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== - dependencies: - cachedir "2.2.0" - cz-conventional-changelog "3.2.0" - dedent "0.7.0" - detect-indent "6.0.0" - find-node-modules "^2.1.2" - find-root "1.1.0" - fs-extra "8.1.0" - glob "7.1.4" - inquirer "6.5.2" - is-utf8 "^0.2.1" - lodash "^4.17.20" - minimist "1.2.5" - strip-bom "4.0.0" - strip-json-comments "3.0.1" - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -5776,11 +5429,9 @@ conventional-commits-parser@^3.2.2, conventional-commits-parser@^3.2.3: through2 "^4.0.0" convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cookie-parser@1.4.6: version "1.4.6" @@ -5815,17 +5466,10 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-to-clipboard@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz#5b263ec2366224b100181dded7ce0579b340c107" - integrity sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg== - dependencies: - toggle-selection "^1.0.6" - -copy-to-clipboard@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== +copy-to-clipboard@3.3.3, copy-to-clipboard@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" @@ -5842,18 +5486,17 @@ copyfiles@2.4.1: untildify "^4.0.0" yargs "^16.1.0" -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.22.7" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.7.tgz#8359eb66ecbf726dd0cfced8e48d5e73f3224239" - integrity sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA== +core-js-compat@^3.25.1: + version "3.27.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.1.tgz#b5695eb25c602d72b1d30cbfba3cb7e5e4cf0a67" + integrity sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA== dependencies: - browserslist "^4.20.3" - semver "7.0.0" + browserslist "^4.21.4" -core-js-pure@^3.20.2: - version "3.22.7" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.22.7.tgz#f58489d9b309fa7b26486a0f70d4ec19a418084e" - integrity sha512-wTriFxiZI+C8msGeh7fJcbC/a0V8fdInN1oS2eK79DMBGs8iIJiXhtFJCiT3rBa8w6zroHWW3p8ArlujZ/Mz+w== +core-js-pure@^3.25.1: + version "3.27.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.1.tgz#ede4a6b8440585c7190062757069c01d37a19dca" + integrity sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw== core-util-is@1.0.2: version "1.0.2" @@ -5865,13 +5508,10 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig-typescript-loader@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-2.0.1.tgz#5622bb1eb87d293570bcc3a57f406940e0960113" - integrity sha512-B9s6sX/omXq7I6gC6+YgLmrBFMJhPWew7ty/X5Tuwtd2zOSgWaUdXjkuVwbe3qqcdETo60+1nSVMekq//LIXVA== - dependencies: - cosmiconfig "^7" - ts-node "^10.8.0" +cosmiconfig-typescript-loader@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== cosmiconfig@^6.0.0: version "6.0.0" @@ -5884,10 +5524,10 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -5913,10 +5553,21 @@ cron-parser@^3.5.0: is-nan "^1.3.2" luxon "^1.26.0" -cronstrue@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.11.0.tgz#18ff1b95a836b9b4e06854f796db2dc8fa98ce41" - integrity sha512-iIBCSis5yqtFYWtJAmNOiwDveFWWIn+8uV5UYuPHYu/Aeu5CSSJepSbaHMyfc+pPFgnsCcGzfPQEo7LSGmWbTg== +cronstrue@2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.21.0.tgz#278d19aa0b9e7ecc90a0c1dbd4f84ceece724094" + integrity sha512-YxabE1ZSHA1zJZMPCTSEbc0u4cRRenjqqTgCwJT7OvkspPSvfYFITuPFtsT+VkBuavJtFv2kJXT+mKSnlUJxfg== + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + 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@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" @@ -5927,6 +5578,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-random-string@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.3.1.tgz#13cee94cac8001e4842501608ef779e0ed08f82d" + integrity sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg== + dependencies: + type-fest "^0.8.1" + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -5941,7 +5599,7 @@ csrf@3.1.0: tsscmp "1.0.6" uid-safe "2.1.5" -css-select@^4.1.3: +css-select@^4.1.3, css-select@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== @@ -5989,14 +5647,14 @@ csso@^4.2.0: css-tree "^1.1.2" csstype@^2.5.7: - version "2.6.20" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" - integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== csstype@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== csurf@1.11.0: version "1.11.0" @@ -6013,10 +5671,10 @@ cy-mobile-commands@0.3.0: resolved "https://registry.yarnpkg.com/cy-mobile-commands/-/cy-mobile-commands-0.3.0.tgz#2bf242093149154d846b755977da197b4730429e" integrity sha512-Bj5P2ylw88hPqolLu68xWB6euVH5uNt8zyh+Ju8sBukGv39mWZxpjp6LtnUX/LK/YMthwvILYHhvr9SG1TP+4w== -cypress@10.6.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.6.0.tgz#13f46867febf2c3715874ed5dce9c2e946b175fe" - integrity sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA== +cypress@10.11.0: + version "10.11.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.11.0.tgz#e9fbdd7638bae3d8fb7619fd75a6330d11ebb4e8" + integrity sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -6037,7 +5695,7 @@ cypress@10.6.0: dayjs "^1.10.4" debug "^4.3.2" enquirer "^2.3.6" - eventemitter2 "^6.4.3" + eventemitter2 "6.4.7" execa "4.1.0" executable "^4.1.1" extract-zip "2.0.1" @@ -6061,20 +5719,6 @@ cypress@10.6.0: untildify "^4.0.0" yauzl "^2.10.0" -cz-conventional-changelog@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" - integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" - optionalDependencies: - "@commitlint/load" ">6.1.1" - cz-conventional-changelog@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" @@ -6089,7 +5733,7 @@ cz-conventional-changelog@3.3.0: optionalDependencies: "@commitlint/load" ">6.1.1" -damerau-levenshtein@^1.0.7, damerau-levenshtein@^1.0.8: +damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== @@ -6106,15 +5750,10 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.1.tgz#9667c2615525e552b5135a3116b95b1961456e60" - integrity sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw== - -date-fns@^2.28.0: - version "2.28.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== +date-fns@2.29.3, date-fns@^2.28.0: + version "2.29.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== dateformat@^3.0.0: version "3.0.3" @@ -6122,14 +5761,9 @@ dateformat@^3.0.0: integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== dayjs@^1.10.4: - version "1.11.5" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93" - integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA== - -dayjs@^1.10.6: - version "1.11.2" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" - integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== debug@2.6.9, debug@^2.6.9: version "2.6.9" @@ -6158,9 +5792,9 @@ debuglog@^1.0.1: integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -6171,9 +5805,9 @@ decamelize@^1.1.0, decamelize@^1.2.0: integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" @@ -6203,9 +5837,9 @@ deepmerge@^4.2.2: integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" @@ -6218,9 +5852,9 @@ define-properties@^1.1.3, define-properties@^1.1.4: object-keys "^1.1.1" defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== del@^6.0.0: version "6.1.1" @@ -6262,9 +5896,9 @@ deprecation@^2.0.0, deprecation@^2.3.1: integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" @@ -6276,11 +5910,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== -detect-indent@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== - detect-indent@6.1.0, detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" @@ -6323,7 +5952,7 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0: +diff@^5.0.0, diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== @@ -6340,6 +5969,14 @@ discontinuous-range@1.0.0: resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== +display-notification@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/display-notification/-/display-notification-2.0.0.tgz#49fad2e03289b4f668c296e1855c2cf8ba893d49" + integrity sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw== + dependencies: + escape-string-applescript "^1.0.0" + run-applescript "^3.0.0" + dlv@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" @@ -6372,7 +6009,7 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dom-serializer@^1.0.1: +dom-serializer@^1.0.1, dom-serializer@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== @@ -6395,7 +6032,7 @@ domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domhandler@^3.0.0: +domhandler@^3.0.0, domhandler@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== @@ -6416,7 +6053,7 @@ domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -domutils@^2.0.0, domutils@^2.5.2, domutils@^2.8.0: +domutils@^2.0.0, domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -6442,9 +6079,9 @@ dot-prop@^5.1.0: is-obj "^2.0.0" dotenv@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== duplexer2@~0.1.0: version "0.1.4" @@ -6478,15 +6115,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.141" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz#4dd9119e8a99f1c83c51dfcf1bed79ea541f08d6" - integrity sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA== - -electron-to-chromium@^1.4.202: - version "1.4.224" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz#ecf2eed395cfedcbbe634658ccc4b457f7b254c3" - integrity sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w== +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== email-templates@9.0.0: version "9.0.0" @@ -6504,9 +6136,9 @@ email-templates@9.0.0: preview-email "^3.0.5" emoji-regex@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.1.0.tgz#d50e383743c0f7a5945c47087295afc112e3cf66" - integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg== + version "10.2.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.2.1.tgz#a41c330d957191efd3d9dfe6e1e8e1e9ab048b3f" + integrity sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA== emoji-regex@^8.0.0: version "8.0.0" @@ -6564,10 +6196,10 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.2.0, entities@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.0.tgz#62915f08d67353bb4eb67e3d62641a4059aec656" - integrity sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg== +entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== env-ci@^5.0.0: version "5.5.0" @@ -6595,33 +6227,35 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" + gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" - is-callable "^1.2.4" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" unbox-primitive "^1.0.2" es-shim-unscopables@^1.0.0: @@ -6655,6 +6289,11 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-applescript@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/escape-string-applescript/-/escape-string-applescript-1.0.0.tgz#6f1c2294245d82c63bc03338dc19a94aa8428892" + integrity sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -6665,25 +6304,25 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-next@12.2.5: - version "12.2.5" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.2.5.tgz#76ce83f18cc02f6f42ed407a127f83db54fabd3c" - integrity sha512-SOowilkqPzW6DxKp3a3SYlrfPi5Ajs9MIzp9gVfUDxxH9QFM5ElkR1hX5m/iICJuvCbWgQqFBiA3mCMozluniw== +eslint-config-next@12.3.4: + version "12.3.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.3.4.tgz#3d4d9e74b919b879c4cc79c61bdc388fb2b964ee" + integrity sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ== dependencies: - "@next/eslint-plugin-next" "12.2.5" + "@next/eslint-plugin-next" "12.3.4" "@rushstack/eslint-patch" "^1.1.3" "@typescript-eslint/parser" "^5.21.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^2.7.1" eslint-plugin-import "^2.26.0" eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.29.4" + eslint-plugin-react "^7.31.7" eslint-plugin-react-hooks "^4.5.0" -eslint-config-prettier@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== +eslint-config-prettier@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== eslint-import-resolver-node@^0.3.6: version "0.3.6" @@ -6705,27 +6344,26 @@ eslint-import-resolver-typescript@^2.7.1: tsconfig-paths "^3.14.1" eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" -eslint-plugin-formatjs@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.1.0.tgz#3dfcd6c44037414229d1e071817fc0496f36e213" - integrity sha512-r8qCy5SDwsCcUUdP6ua1gYFd6I+tj/5GORj7jTOGGvmOfzkDQk+6ieaUqZ8ZF7xFUubDvLJwaZLHVdHI4Cq6Yw== +eslint-plugin-formatjs@4.3.9: + version "4.3.9" + resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.3.9.tgz#cccecfa7bb40b6f150c5e0602ddaca1cd632d116" + integrity sha512-+8kGoTUaNe0qS55eg5XbPDY+eQmeZxnrC8MugQTGUXlqbCyLyG7y4mDsMhAgactVyUMST6Ln1HEm1Tk0KNuIKQ== dependencies: - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/ts-transformer" "3.9.9" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/ts-transformer" "3.11.5" "@types/eslint" "7 || 8" "@types/picomatch" "^2.3.0" "@typescript-eslint/typescript-estree" "^5.9.1" emoji-regex "^10.0.0" picomatch "^2.3.1" - tslib "2.4.0" - typescript "^4.5" + tslib "^2.4.0" + typescript "^4.7" eslint-plugin-import@^2.26.0: version "2.26.0" @@ -6746,7 +6384,7 @@ eslint-plugin-import@^2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-jsx-a11y@6.6.1: +eslint-plugin-jsx-a11y@6.6.1, eslint-plugin-jsx-a11y@^6.5.1: version "6.6.1" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff" integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q== @@ -6765,28 +6403,10 @@ eslint-plugin-jsx-a11y@6.6.1: minimatch "^3.1.2" semver "^6.3.0" -eslint-plugin-jsx-a11y@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== - dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" - ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" - emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" - -eslint-plugin-no-relative-import-paths@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-relative-import-paths/-/eslint-plugin-no-relative-import-paths-1.4.0.tgz#59489ebc19688d1398bfe53d3ad320b3ed42ca17" - integrity sha512-J/ok26KqJM+20VsxNEcHc9kyW0dcFHBlihOO5FFv/GQqwcW+G1UngbHLpnPAdOQ1dJg5Ljk/40csqfZ3mnneUw== +eslint-plugin-no-relative-import-paths@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-no-relative-import-paths/-/eslint-plugin-no-relative-import-paths-1.5.2.tgz#c35f2fd0bf2a6a57b268193ed7df63ff7000134e" + integrity sha512-wMlL+TVuDhKk1plP+w3L4Hc7+u89vUkrOYq6/0ARjcYqwc9/YaS9uEXNzaqAk+WLoEgakzNL5JgJJw6m4qd5zw== eslint-plugin-prettier@4.2.1: version "4.2.1" @@ -6795,55 +6415,31 @@ eslint-plugin-prettier@4.2.1: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@4.6.0: +eslint-plugin-react-hooks@4.6.0, eslint-plugin-react-hooks@^4.5.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react-hooks@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz#5f762dfedf8b2cf431c689f533c9d3fa5dcf25ad" - integrity sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw== - -eslint-plugin-react@7.30.1: - version "7.30.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" - integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== +eslint-plugin-react@7.31.11, eslint-plugin-react@^7.31.7: + version "7.31.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" + integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.3" semver "^6.3.0" - string.prototype.matchall "^4.0.7" - -eslint-plugin-react@^7.29.4: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz#8e7b1b2934b8426ac067a0febade1b13bd7064e3" - integrity sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A== - dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" - prop-types "^15.8.1" - resolve "^2.0.0-next.3" - semver "^6.3.0" - string.prototype.matchall "^4.0.7" + string.prototype.matchall "^4.0.8" eslint-scope@^5.1.1: version "5.1.1" @@ -6878,14 +6474,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.22.0: - version "8.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" - integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== +eslint@8.31.0: + version "8.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" + integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -6895,21 +6492,21 @@ eslint@8.22.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.3" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" + glob-parent "^6.0.2" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -6921,21 +6518,11 @@ eslint@8.22.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" - integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -6980,7 +6567,7 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eventemitter2@^6.4.3: +eventemitter2@6.4.7: version "6.4.7" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== @@ -7000,6 +6587,19 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -7047,10 +6647,10 @@ express-openapi-validator@4.13.8: ono "^7.1.3" path-to-regexp "^6.2.0" -express-rate-limit@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-6.5.1.tgz#2b4c329f03265f94f19613519b169afbd018e783" - integrity sha512-pxO6ioBLd3i8IHL+RmJtL4noYzte5fugoMdaDabtU4hcg53+x0QkTwfPtM7vWD0YUaXQgNj9NRdzmps+CHEHlA== +express-rate-limit@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-6.7.0.tgz#6aa8a1bd63dfe79702267b3af1161a93afc1d3c2" + integrity sha512-vhwIdRoqcYB/72TK3tRZI+0ttS8Ytrk24GfmsxDXK9o9IhHNO5bXRiXQSExPQ4GbaE5tvIS7j1SGrxsuWs+sGA== express-session@1.17.3, express-session@^1.15.6: version "1.17.3" @@ -7066,14 +6666,14 @@ express-session@1.17.3, express-session@^1.15.6: safe-buffer "5.2.1" uid-safe "~2.1.5" -express@4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== +express@4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -7092,7 +6692,7 @@ express@4.18.1: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -7169,10 +6769,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -7198,14 +6798,14 @@ fast-printf@^1.6.9: boolean "^3.1.4" fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -7282,7 +6882,7 @@ find-root@1.1.0, find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^2.0.0, find-up@^2.1.0: +find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== @@ -7336,9 +6936,9 @@ flat@^5.0.0: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== fn.name@1.x.x: version "1.1.0" @@ -7346,9 +6946,9 @@ fn.name@1.x.x: integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== follow-redirects@^1.14.9: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== forever-agent@~0.6.1: version "0.6.1" @@ -7414,15 +7014,6 @@ fromentries@^1.3.2: resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -7442,6 +7033,15 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -7479,11 +7079,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -7528,14 +7123,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-paths@^0.0.7: version "0.0.7" @@ -7544,6 +7139,16 @@ get-paths@^0.0.7: dependencies: pify "^4.0.1" +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -7608,25 +7213,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -7670,9 +7263,9 @@ global-dirs@^0.1.1: ini "^1.3.4" global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" @@ -7701,10 +7294,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -7720,6 +7313,13 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -7790,7 +7390,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -7860,17 +7460,28 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hosted-git-info@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.0.0.tgz#df7a06678b4ebd722139786303db80fdf302ea56" - integrity sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q== +hosted-git-info@^5.0.0, hosted-git-info@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" + integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== dependencies: lru-cache "^7.5.1" -html-to-text@8.2.0, html-to-text@^8.1.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-8.2.0.tgz#8b35e280ba7fc27710b7aa76d4500aab30731924" - integrity sha512-CLXExYn1b++Lgri+ZyVvbUEFwzkLZppjjZOwB7X1qv2jIi8MrMEvxWX5KQ7zATAzTvcqgmtO00M2kCRMtEdOKQ== +html-to-text@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.3.tgz#331368f32fcb270c59dbd3a7fdb32813d2a490bc" + integrity sha512-hxDF1kVCF2uw4VUJ3vr2doc91pXf2D5ngKcNviSitNkhP9OMOaJkDrFIFL6RMvko7NisWTEiqGpQ9LAxcVok1w== + dependencies: + "@selderee/plugin-htmlparser2" "^0.10.0" + deepmerge "^4.2.2" + dom-serializer "^2.0.0" + htmlparser2 "^8.0.1" + selderee "^0.10.0" + +html-to-text@^8.1.0: + version "8.2.1" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-8.2.1.tgz#4a75b8a1b646149bd71c50527adb568990bf459b" + integrity sha512-aN/3JvAk8qFsWVeE9InWAWueLXrbkoVZy0TkzaGhoRBC2gCFEeRLDDJN3/ijIGHohy6H+SZzUQWN/hcYtaPK8w== dependencies: "@selderee/plugin-htmlparser2" "^0.6.0" deepmerge "^4.2.2" @@ -7889,6 +7500,16 @@ htmlparser2@^4.0.0: domutils "^2.0.0" entities "^2.0.0" +htmlparser2@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" @@ -8004,10 +7625,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== +husky@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" + integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== i18n-locales@^0.0.5: version "0.0.5" @@ -8060,9 +7681,9 @@ ignore-walk@^5.0.1: minimatch "^5.0.1" ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" @@ -8115,10 +7736,10 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ini@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.0.tgz#2f6de95006923aa75feed8894f5686165adc08f1" - integrity sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw== +ini@^3.0.0, ini@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== init-package-json@^3.0.2: version "3.0.2" @@ -8138,25 +7759,6 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - inquirer@8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" @@ -8179,11 +7781,11 @@ inquirer@8.2.4: wrap-ansi "^7.0.0" internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.1.3" has "^1.0.3" side-channel "^1.0.4" @@ -8202,25 +7804,15 @@ intl-messageformat-parser@^5.3.7: dependencies: "@formatjs/intl-numberformat" "^5.5.2" -intl-messageformat@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.1.1.tgz#226767e7921fa86cef2cbe4a13911050716720bc" - integrity sha512-FeJne2oooYW6shLPbrqyjRX6hTELVrQ90Dn88z7NomLk/xZBCLxLPAkgaYaTQJBRBV78nZ933d8APHHkTQrD9Q== +intl-messageformat@10.2.5, intl-messageformat@^10.1.0: + version "10.2.5" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.5.tgz#a51e6e2700d82b5b7ccd7a9f3bd45d967d95afc0" + integrity sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/fast-memoize" "1.2.4" - "@formatjs/icu-messageformat-parser" "2.1.4" - tslib "2.4.0" - -intl-messageformat@^10.1.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.2.tgz#8436a6bf36d5d336513ff027fb099ca0d6676d13" - integrity sha512-iiaDjsEZNe92Vb8UIf46hT/3uVdcrL4x4GLjwFSVz/uC6ancQDUtyLVETX13wyTw78kBo3ONBMgiHoCtWN8ioQ== - dependencies: - "@formatjs/ecma402-abstract" "1.14.0" - "@formatjs/fast-memoize" "1.2.6" - "@formatjs/icu-messageformat-parser" "2.1.11" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "1.2.7" + "@formatjs/icu-messageformat-parser" "2.1.14" + tslib "^2.4.0" intl@1.2.5: version "1.2.5" @@ -8240,10 +7832,10 @@ ip-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== ipaddr.js@1.9.1: version "1.9.1" @@ -8287,10 +7879,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^3.0.0: version "3.0.1" @@ -8306,10 +7898,10 @@ is-cidr@^4.0.2: dependencies: cidr-regex "^3.1.1" -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" @@ -8338,11 +7930,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -8413,7 +8000,7 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.2: +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -8429,9 +8016,9 @@ is-plain-obj@^2.0.0: integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^5.0.0: version "5.0.0" @@ -8458,6 +8045,11 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -8554,6 +8146,11 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== +js-sdsl@^4.1.4: + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" + integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -8632,11 +8229,11 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== dependencies: - jsonify "~0.0.0" + jsonify "^0.0.1" json-stringify-nice@^1.1.4: version "1.1.4" @@ -8649,23 +8246,16 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" +json5@^2.1.2, json5@^2.2.1, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" @@ -8676,10 +8266,10 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" @@ -8714,21 +8304,13 @@ jstransformer@1.0.0: is-promise "^2.0.0" promise "^7.0.1" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz#e624f259143b9062c92b6413ff92a164c80d3ccb" - integrity sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q== - dependencies: - array-includes "^3.1.4" - object.assign "^4.1.2" - -jsx-ast-utils@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd" - integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q== +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" + integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== dependencies: array-includes "^3.1.5" - object.assign "^4.1.2" + object.assign "^4.1.3" juice@^7.0.0: version "7.0.0" @@ -8742,25 +8324,25 @@ juice@^7.0.0: web-resource-inliner "^5.0.0" juice@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/juice/-/juice-8.0.0.tgz#ac77d3372373409b06a875aee425b9d381f645fe" - integrity sha512-LRCfXBOqI1wt+zYR/5xwDnf+ZyiJiDt44DGZaBSAVwZWyWv3BliaiGTLS6KCvadv3uw6XGiPPFcTfY7CdF7Z/Q== + version "8.1.0" + resolved "https://registry.yarnpkg.com/juice/-/juice-8.1.0.tgz#4ea23362522fe06418229943237ee3751a4fca70" + integrity sha512-FLzurJrx5Iv1e7CfBSZH68dC04EEvXvvVvPYB7Vx1WAuhCp1ZPIMtqxc+WTWxVkpTIC2Ach/GAv0rQbtGf6YMA== dependencies: - cheerio "^1.0.0-rc.3" + cheerio "1.0.0-rc.10" commander "^6.1.0" mensch "^0.3.4" slick "^1.12.2" - web-resource-inliner "^5.0.0" + web-resource-inliner "^6.0.1" just-diff-apply@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.3.1.tgz#30f40809ffed55ad76dccf73fa9b85a76964c867" - integrity sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA== + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== just-diff@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.2.tgz#68854c94280c37d28cb266d8f29bdd2cd29f003e" - integrity sha512-uGd6F+eIZ4T95EinP8ubINGkbEy3jrgBym+6LjW+ja1UG1WQIcEcQ6FLeyXtVJZglk+bj7fvEn+Cu2LBxkgiYQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" + integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== jwa@^2.0.0: version "2.0.0" @@ -8785,32 +8367,37 @@ kind-of@^6.0.3: integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== kuler@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== -language-subtag-registry@~0.3.2: - version "0.3.21" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" - integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== language-tags@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967" + integrity sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== +leac@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" + integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -8824,94 +8411,96 @@ libbase64@1.2.1: resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.2.1.tgz#fb93bf4cb6d730f29b92155b6408d1bd2176a8c8" integrity sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew== -libmime@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.1.0.tgz#d9a1c4a85c982fa4e64c2c841f95e3827c3f71d2" - integrity sha512-xOqorG21Va+3CjpFOfFTU7SWohHH2uIX9ZY4Byz6J+lvpfvc486tOAT/G9GfbrKtJ9O7NCX9o0aC2lxqbnZ9EA== +libmime@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.2.0.tgz#c4ed5cbd2d9fdd27534543a68bb8d17c658d51d8" + integrity sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw== dependencies: encoding-japanese "2.0.0" iconv-lite "0.6.3" libbase64 "1.2.1" - libqp "1.1.0" + libqp "2.0.1" -libnpmaccess@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.3.tgz#473cc3e4aadb2bc713419d92e45d23b070d8cded" - integrity sha512-4tkfUZprwvih2VUZYMozL7EMKgQ5q9VW2NtRyxWtQWlkLTAWHRklcAvBN49CVqEkhUw7vTX2fNgB5LzgUucgYg== +libnpmaccess@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" + integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== dependencies: aproba "^2.0.0" minipass "^3.1.1" npm-package-arg "^9.0.1" npm-registry-fetch "^13.0.0" -libnpmdiff@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.3.tgz#ad3997330c887c1098ac42682f1e5ad014d49cec" - integrity sha512-AiwBtXtH7HjfmT7FbTf9LFzJB347RrIA4I+IewMfhq8vYXaUveHwJMVNgMM2H/o2J+7Hf12JCBoOF5bTwlmGyw== +libnpmdiff@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" + integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== dependencies: "@npmcli/disparity-colors" "^2.0.0" "@npmcli/installed-package-contents" "^1.0.7" binary-extensions "^2.2.0" - diff "^5.0.0" + diff "^5.1.0" minimatch "^5.0.1" npm-package-arg "^9.0.1" - pacote "^13.0.5" + pacote "^13.6.1" tar "^6.1.0" -libnpmexec@^4.0.2: - version "4.0.5" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.5.tgz#e488a1f47805b8d9af3c216ff4a5ea9c51111013" - integrity sha512-ykTsaAz0AV5mPr2HqmI6GCtQ5b6/OTJnnuXxZa78fJVMIGqJMfm4lAQZpBNNyH68Fs0oDIGZbnWaB5PfzyzSJg== +libnpmexec@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.14.tgz#9ad44232434b374e477eb2c2e4548baaf698f773" + integrity sha512-dwmzv2K29SdoAHBOa7QR6CfQbFG/PiZDRF6HZrlI6C4DLt2hNgOHTFaUGOpqE2C+YGu0ZwYTDywxRe0eOnf0ZA== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.3" "@npmcli/ci-detect" "^2.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/fs" "^2.1.1" + "@npmcli/run-script" "^4.2.0" chalk "^4.1.0" mkdirp-infer-owner "^2.0.0" npm-package-arg "^9.0.1" npmlog "^6.0.2" - pacote "^13.0.5" + pacote "^13.6.1" proc-log "^2.0.0" read "^1.0.7" read-package-json-fast "^2.0.2" + semver "^7.3.7" walk-up-path "^1.0.0" -libnpmfund@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.2.tgz#7da0827950f0db2cce0acb0dc7652d1834a8b239" - integrity sha512-wmFMP/93Wjy+jDg5LaSldDgAhSgCyA64JUUmp806Kae7y3YP9Qv5m1vUhPxT4yebxgB2v/I6G1/RUcNb1y0kVg== +libnpmfund@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.5.tgz#817f9e2120889beb483d9ba8eda142bb84293e4e" + integrity sha512-KdeRoG/dem8H3PcEU2/0SKi3ip7AWwczgS72y/3PE+PBrz/s/G52FNIA9jeLnBirkLC0sOyQHfeM3b7e24ZM+g== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.3" -libnpmhook@^8.0.2: - version "8.0.3" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.3.tgz#9628518a63455d21dafda312ee46175275707ff5" - integrity sha512-TEdNI1mC5zS+w/juCgxrwwQnpbq9lY76NDOS0N37pn6pWIUxB1Yq8mwy6MUEXR1TgH4HurSQyKT6I6Kp9Wjm4A== +libnpmhook@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" + integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmorg@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.3.tgz#a85cbdb3665ad4f7c7279d239a4581ec2eeef5a6" - integrity sha512-r4CpmCEF+e5PbFMBi64xSXmqn0uGgV4T7NWpGL4/A6KT/DTtIxALILQZq+l0ZdN1xm4RjOvqSDR22oT4il8rAQ== +libnpmorg@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" + integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmpack@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.0.tgz#93a170b67bc52e15edc7b1f2e09b2c36e532b897" - integrity sha512-BHwojfEbJvVVJXivZjOCe3Y0IzQ47p6c/bfebrpzazuFNRoS9XOsbkncRbl3f23+u9b51eplzwaPh/5xSOAWHg== +libnpmpack@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" + integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== dependencies: - "@npmcli/run-script" "^3.0.0" + "@npmcli/run-script" "^4.1.3" npm-package-arg "^9.0.1" - pacote "^13.5.0" + pacote "^13.6.1" -libnpmpublish@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.4.tgz#adb41ec6b0c307d6f603746a4d929dcefb8f1a0b" - integrity sha512-lvAEYW8mB8QblL6Q/PI/wMzKNvIrF7Kpujf/4fGS/32a2i3jzUXi04TNyIBcK6dQJ34IgywfaKGh+Jq4HYPFmg== +libnpmpublish@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" + integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== dependencies: normalize-package-data "^4.0.0" npm-package-arg "^9.0.1" @@ -8919,36 +8508,36 @@ libnpmpublish@^6.0.2: semver "^7.3.7" ssri "^9.0.0" -libnpmsearch@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.3.tgz#ed502a4c2c70ea36723180455fae1357546b2184" - integrity sha512-Ofq76qKAPhxbiyzPf/5LPjJln26VTKwU9hIU0ACxQ6tNtBJ1CHmI7iITrdp7vNezhZc0FlkXwrIpqXjhBJZgLQ== +libnpmsearch@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" + integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== dependencies: npm-registry-fetch "^13.0.0" -libnpmteam@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.3.tgz#9335fbbd032b3770f5c9b7ffc6203f47d1ed144a" - integrity sha512-LsYYLz4TlTpcqkusInY5MhKjiHFaCx1GV0LmydXJ/QMh+3IWBJpUhes4ynTZuFoJKkDIFjxyMU09ul+RZixgdg== +libnpmteam@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" + integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmversion@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.4.tgz#a30f563416ea1e2dd69878b4a9edf4eb4a070ef8" - integrity sha512-q5hvZlso0SMLgKm4AMtleRWtq4pERprebEGV6OwKi24efgAOgNDP98+jNUX2mIR2wp9eAa6ybkNNWu4yMaCsVw== +libnpmversion@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" + integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== dependencies: "@npmcli/git" "^3.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/run-script" "^4.1.3" json-parse-even-better-errors "^2.3.1" proc-log "^2.0.0" semver "^7.3.7" -libqp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" - integrity sha512-4Rgfa0hZpG++t1Vi2IiqXG9Ad1ig4QTmtuZF946QJP4bPqOYC78ixUXgz5TW/wE7lNaNKlplSYTxQ+fR2KZ0EA== +libqp@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libqp/-/libqp-2.0.1.tgz#b8fed76cc1ea6c9ceff8888169e4e0de70cd5cf2" + integrity sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg== lilconfig@2.0.5: version "2.0.5" @@ -8972,17 +8561,17 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.0.tgz#4f2d16879adc637cdfe9056cbc02de30e88ffa32" - integrity sha512-QAxkXyzT/TXgwGyY4rTgC95Ex6/lZ5/lYTV9nug6eJt93BCBQGOE47D/g2+/m5J1MrVLr2ot97OXkBZ9bBpR4A== +linkify-it@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== dependencies: uc.micro "^1.0.1" -lint-staged@12.4.3: - version "12.4.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.4.3.tgz#914fa468458364e14cc952145db552d87c8847b6" - integrity sha512-eH6SKOmdm/ZwCRMTZAmM3q3dPkpq6vco/BfrOw8iGun4Xs/thYegPD/MLIwKO+iPkzibkLJuQcRhRLXKvaKreg== +lint-staged@12.5.0: + version "12.5.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.5.0.tgz#d6925747480ae0e380d13988522f9dd8ef9126e3" + integrity sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g== dependencies: cli-truncate "^3.1.0" colorette "^2.0.16" @@ -9074,6 +8663,11 @@ lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" @@ -9109,6 +8703,11 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -9124,6 +8723,11 @@ lodash.isstring@^4.0.1: resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" @@ -9149,6 +8753,16 @@ lodash.pick@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -9159,12 +8773,17 @@ lodash.uniqby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + lodash.zipobject@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz#b399f5aba8ff62a746f6979bf20b214f964dbef8" integrity sha512-A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ== -lodash@4.17.21, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: +lodash@4.17.21, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9188,9 +8807,9 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" logform@^2.3.2, logform@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" - integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== + version "2.4.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== dependencies: "@colors/colors" "1.5.0" fecha "^4.2.0" @@ -9215,6 +8834,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -9223,38 +8849,38 @@ lru-cache@^6.0.0: yallist "^4.0.0" lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.10.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.10.1.tgz#db577f42a94c168f676b638d15da8fb073448cab" - integrity sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A== + version "7.14.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" + integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== luxon@^1.26.0: version "1.28.0" resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== -mailparser@^3.3.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-3.5.0.tgz#5b333b0ef2f063a7db9d24ed95f29efb464cbef3" - integrity sha512-mdr2DFgz8LKC0/Q6io6znA0HVnzaPFT0a4TTnLeZ7mWHlkfnm227Wxlq7mHh7AgeP32h7gOUpXvyhSfJJIEeyg== +mailparser@^3.5.0: + version "3.6.3" + resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-3.6.3.tgz#7edcfd9af7931e8a724e97880756477a9ea80f88" + integrity sha512-Yi6poKSsZsmjEcUexv3H4w4+TIeyN9u3+TCdC43VK7fe4rUOGDJ3wL4kMhNLiTOScCA1Rpzldv1hcf6g1MLtZQ== dependencies: encoding-japanese "2.0.0" he "1.2.0" - html-to-text "8.2.0" + html-to-text "9.0.3" iconv-lite "0.6.3" - libmime "5.1.0" - linkify-it "4.0.0" - mailsplit "5.3.2" - nodemailer "6.7.3" - tlds "1.231.0" + libmime "5.2.0" + linkify-it "4.0.1" + mailsplit "5.4.0" + nodemailer "6.8.0" + tlds "1.236.0" -mailsplit@5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-5.3.2.tgz#c344c019f631be4f54d5213509637127e3e3dd66" - integrity sha512-coES12hhKqagkuBTJoqERX+y9bXNpxbxw3Esd07auuwKYmcagouVlgucyIVRp48fnswMKxcUtLoFn/L1a75ynQ== +mailsplit@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-5.4.0.tgz#9f4692fadd9013e9ce632147d996931d2abac6ba" + integrity sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA== dependencies: libbase64 "1.2.1" - libmime "5.1.0" - libqp "1.1.0" + libmime "5.2.0" + libqp "2.0.1" make-dir@^2.1.0: version "2.1.0" @@ -9276,10 +8902,10 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.5: - version "10.1.6" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz#22b3ac3b077a7cfa80525af12e637e349f21d26e" - integrity sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w== +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== dependencies: agentkeepalive "^4.2.1" cacache "^16.1.0" @@ -9295,7 +8921,7 @@ make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.1.5: minipass-pipeline "^1.2.4" negotiator "^0.6.3" promise-retry "^2.0.1" - socks-proxy-agent "^6.1.1" + socks-proxy-agent "^7.0.0" ssri "^9.0.0" make-fetch-happen@^9.1.0: @@ -9321,9 +8947,9 @@ make-fetch-happen@^9.1.0: ssri "^8.0.0" make-plural@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.1.0.tgz#8a0381ff8c9be4f074e0acdc42ec97639c2344f9" - integrity sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.2.0.tgz#93174b1419672a48a2340db6c1d3fb217530c684" + integrity sha512-WkdI+iaWaBCFM2wUXwos8Z7spg5Dt64Xe/VI6NpRaly21cDtD76N6S97K//UtzV0dHOiXX+E90TnszdXHG0aMg== map-obj@^1.0.0: version "1.0.1" @@ -9348,9 +8974,9 @@ marked-terminal@^5.0.0: supports-hyperlinks "^2.2.0" marked@^4.0.10: - version "4.0.16" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.16.tgz#9ec18fc1a723032eb28666100344d9428cf7a264" - integrity sha512-wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA== + version "4.2.5" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.5.tgz#979813dfc1252cc123a79b71b095759a32f42a5d" + integrity sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ== math-interval-parser@^2.0.1: version "2.0.1" @@ -9365,13 +8991,13 @@ md5-hex@^3.0.1: blueimp-md5 "^2.10.0" mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-from-markdown@^1.0.0: version "1.2.0" @@ -9392,16 +9018,15 @@ mdast-util-from-markdown@^1.0.0: uvu "^0.5.0" mdast-util-to-hast@^12.1.0: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== + version "12.2.5" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.5.tgz#91532ebd929a7def21585034f7901eb367d2d272" + integrity sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - mdurl "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -9417,26 +9042,26 @@ mdn-data@2.0.14: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memoize-one@^5.0.0, memoize-one@^5.1.1: +memoize-one@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + mensch@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" @@ -9479,7 +9104,7 @@ meow@^8.0.0: merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -9499,7 +9124,7 @@ merge@^2.1.1: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^1.0.1: version "1.0.6" @@ -9644,10 +9269,10 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" @@ -9674,9 +9299,9 @@ micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -9731,11 +9356,6 @@ mime@^3.0.0: resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -9756,17 +9376,17 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" + integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== dependencies: brace-expansion "^2.0.1" @@ -9779,16 +9399,16 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@1.2.6, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -9808,9 +9428,9 @@ minipass-fetch@^1.3.2: encoding "^0.1.12" minipass-fetch@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8" - integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: minipass "^3.1.6" minipass-sized "^1.0.3" @@ -9848,9 +9468,16 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== dependencies: yallist "^4.0.0" @@ -9889,14 +9516,14 @@ modify-values@^1.0.0: integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.29.1: - version "2.29.3" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.3.tgz#edd47411c322413999f7a5940d526de183c031f3" - integrity sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw== + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== moo@^0.5.0, moo@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + version "0.5.2" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" + integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== mri@^1.1.0: version "1.2.0" @@ -9906,7 +9533,7 @@ mri@^1.1.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -9945,27 +9572,22 @@ multimatch@5: murmurhash3js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" - integrity sha1-Ppg+W0fCoG9DpxMXTn5DXKBEuZg= + integrity sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow== mustache@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== mylas@^2.1.9: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.11.tgz#1827462533977bed1c4251317aa84254e3ca94c7" - integrity sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg== + version "2.1.13" + resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4" + integrity sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg== mz@^2.4.0: version "2.7.0" @@ -9986,10 +9608,15 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== nearley@^2.20.1: version "2.20.1" @@ -10014,44 +9641,49 @@ neo-async@^2.6.0: nerf-dart@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" - integrity sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo= + integrity sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g== -next@12.2.5: - version "12.2.5" - resolved "https://registry.yarnpkg.com/next/-/next-12.2.5.tgz#14fb5975e8841fad09553b8ef41fe1393602b717" - integrity sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA== +next@12.3.4: + version "12.3.4" + resolved "https://registry.yarnpkg.com/next/-/next-12.3.4.tgz#f2780a6ebbf367e071ce67e24bd8a6e05de2fcb1" + integrity sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ== dependencies: - "@next/env" "12.2.5" - "@swc/helpers" "0.4.3" - caniuse-lite "^1.0.30001332" + "@next/env" "12.3.4" + "@swc/helpers" "0.4.11" + caniuse-lite "^1.0.30001406" postcss "8.4.14" - styled-jsx "5.0.4" + styled-jsx "5.0.7" use-sync-external-store "1.2.0" optionalDependencies: - "@next/swc-android-arm-eabi" "12.2.5" - "@next/swc-android-arm64" "12.2.5" - "@next/swc-darwin-arm64" "12.2.5" - "@next/swc-darwin-x64" "12.2.5" - "@next/swc-freebsd-x64" "12.2.5" - "@next/swc-linux-arm-gnueabihf" "12.2.5" - "@next/swc-linux-arm64-gnu" "12.2.5" - "@next/swc-linux-arm64-musl" "12.2.5" - "@next/swc-linux-x64-gnu" "12.2.5" - "@next/swc-linux-x64-musl" "12.2.5" - "@next/swc-win32-arm64-msvc" "12.2.5" - "@next/swc-win32-ia32-msvc" "12.2.5" - "@next/swc-win32-x64-msvc" "12.2.5" + "@next/swc-android-arm-eabi" "12.3.4" + "@next/swc-android-arm64" "12.3.4" + "@next/swc-darwin-arm64" "12.3.4" + "@next/swc-darwin-x64" "12.3.4" + "@next/swc-freebsd-x64" "12.3.4" + "@next/swc-linux-arm-gnueabihf" "12.3.4" + "@next/swc-linux-arm64-gnu" "12.3.4" + "@next/swc-linux-arm64-musl" "12.3.4" + "@next/swc-linux-x64-gnu" "12.3.4" + "@next/swc-linux-x64-musl" "12.3.4" + "@next/swc-win32-arm64-msvc" "12.3.4" + "@next/swc-win32-ia32-msvc" "12.3.4" + "@next/swc-win32-x64-msvc" "12.3.4" -node-addon-api@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-addon-api@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== +node-addon-api@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501" + integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA== + node-cache@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" @@ -10073,7 +9705,7 @@ node-fetch@^2.6.0, node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-gyp@8.4.1, node-gyp@8.x, node-gyp@^8.4.1: +node-gyp@8.4.1, node-gyp@8.x: version "8.4.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== @@ -10089,47 +9721,26 @@ node-gyp@8.4.1, node-gyp@8.x, node-gyp@^8.4.1: tar "^6.1.2" which "^2.0.2" -node-gyp@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" - integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== +node-gyp@9.3.1, node-gyp@^9.0.0, node-gyp@^9.1.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.6" make-fetch-happen "^10.0.3" - nopt "^5.0.0" + nopt "^6.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.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" - integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - 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-releases@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== node-schedule@2.1.0: version "2.1.0" @@ -10140,30 +9751,20 @@ node-schedule@2.1.0: long-timeout "0.1.1" sorted-array-functions "^1.3.0" -nodemailer@6.7.3: - version "6.7.3" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.3.tgz#b73f9a81b9c8fa8acb4ea14b608f5e725ea8e018" - integrity sha512-KUdDsspqx89sD4UUyUKzdlUOper3hRkDVkrKh/89G+d9WKsU5ox51NWS4tB1XR5dPUdR4SP0E3molyEfOvSa3g== +nodemailer@6.8.0, nodemailer@^6.7.2, nodemailer@^6.7.7: + version "6.8.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.8.0.tgz#804bcc5256ee5523bc914506ee59f8de8f0b1cd5" + integrity sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ== -nodemailer@6.7.8: - version "6.7.8" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.8.tgz#9f1af9911314960c0b889079e1754e8d9e3f740a" - integrity sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g== - -nodemailer@^6.6.3, nodemailer@^6.7.2: - version "6.7.5" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.5.tgz#b30b1566f5fa2249f7bd49ced4c58bec6b25915e" - integrity sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg== - -nodemon@2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.19.tgz#cac175f74b9cb8b57e770d47841995eebe4488bd" - integrity sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A== +nodemon@2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== dependencies: chokidar "^3.5.2" debug "^3.2.7" ignore-by-default "^1.0.1" - minimatch "^3.0.4" + minimatch "^3.1.2" pstree.remy "^1.1.8" semver "^5.7.1" simple-update-notifier "^1.0.7" @@ -10174,7 +9775,7 @@ nodemon@2.0.19: noms@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" - integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== dependencies: inherits "^2.0.1" readable-stream "~1.0.31" @@ -10186,10 +9787,17 @@ nopt@^5.0.0: dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== dependencies: abbrev "1" @@ -10214,9 +9822,9 @@ normalize-package-data@^3.0.0: validate-npm-package-license "^3.0.1" normalize-package-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.0.tgz#1122d5359af21d4cd08718b92b058a658594177c" - integrity sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g== + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== dependencies: hosted-git-info "^5.0.0" is-core-module "^2.8.1" @@ -10231,7 +9839,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^6.0.0: version "6.1.0" @@ -10245,13 +9853,20 @@ npm-audit-report@^3.0.0: dependencies: chalk "^4.0.0" -npm-bundled@^1.1.1, npm-bundled@^1.1.2: +npm-bundled@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + npm-install-checks@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" @@ -10259,52 +9874,58 @@ npm-install-checks@^5.0.0: dependencies: semver "^7.1.1" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.0.2.tgz#f3ef7b1b3b02e82564af2d5228b4c36567dcd389" - integrity sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g== +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== dependencies: hosted-git-info "^5.0.0" + proc-log "^2.0.1" semver "^7.3.5" validate-npm-package-name "^4.0.0" npm-packlist@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.0.tgz#f3fd52903a021009913a133732022132eb355ce7" - integrity sha512-a04sqF6FbkyOAFA19AA0e94gS7Et5T2/IMj3VOT9nOF2RaRdVPQ1Q17Fb/HaDRFs+gbC7HOmhVZ29adpWgmDZg== + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== dependencies: glob "^8.0.1" ignore-walk "^5.0.1" - npm-bundled "^1.1.2" - npm-normalize-package-bin "^1.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" -npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz#76dda30a7cd6b99be822217a935c2f5eacdaca4c" - integrity sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg== +npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== dependencies: npm-install-checks "^5.0.0" - npm-normalize-package-bin "^1.0.1" + npm-normalize-package-bin "^2.0.0" npm-package-arg "^9.0.0" semver "^7.3.5" -npm-profile@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.0.3.tgz#f4a11ce09467f00fa0832db7f27992e55fdfc94b" - integrity sha512-TVeHhnol2Iemud+Sr70/uqax5LnLJ9y361w+m5+Z7WYV2B1t6FhRDxDu72+yYYTvsgshkhnXEqbPjuD87kYXfA== +npm-profile@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.2.1.tgz#975c31ec75a6ae029ab5b8820ffdcbae3a1e3d5e" + integrity sha512-Tlu13duByHyDd4Xy0PgroxzxnBYWbGGL5aZifNp8cx2DxUrHSoETXtPKg38aRPsBWMRfDtvcvVfJNasj7oImQQ== dependencies: npm-registry-fetch "^13.0.1" proc-log "^2.0.0" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz#26dc4b26d0a545886e807748032ba2aefaaae96b" - integrity sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w== +npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== dependencies: make-fetch-happen "^10.0.6" minipass "^3.1.6" @@ -10314,6 +9935,13 @@ npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.1 npm-package-arg "^9.0.1" proc-log "^2.0.0" +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -10327,68 +9955,71 @@ npm-user-validate@^1.0.1: integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== npm@^8.3.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-8.11.0.tgz#224fbca389252e43dd2a277249df3320a7f91189" - integrity sha512-4qmtwHa28J4SPmwCNoQI07KIF/ljmBhhuqG+xNXsIIRpwdKB5OXkMIGfH6KlThR6kzusxlkgR7t1haFDB88dcQ== + version "8.19.3" + resolved "https://registry.yarnpkg.com/npm/-/npm-8.19.3.tgz#adb51bf8886d519dd4df162726d0ad157ecfa272" + integrity sha512-0QjmyPtDxSyMWWD8I91QGbrgx9KzbV6C9FK1liEb/K0zppiZkr5KxXc990G+LzPwBHDfRjUBlO9T1qZ08vl9mA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/arborist" "^5.0.4" + "@npmcli/arborist" "^5.6.3" "@npmcli/ci-detect" "^2.0.0" - "@npmcli/config" "^4.1.0" + "@npmcli/config" "^4.2.1" "@npmcli/fs" "^2.1.0" "@npmcli/map-workspaces" "^2.0.3" "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^3.0.1" + "@npmcli/run-script" "^4.2.1" abbrev "~1.1.1" archy "~1.0.0" - cacache "^16.1.0" + cacache "^16.1.3" chalk "^4.1.2" chownr "^2.0.0" cli-columns "^4.0.0" cli-table3 "^0.6.2" columnify "^1.6.0" fastest-levenshtein "^1.0.12" + fs-minipass "^2.1.0" glob "^8.0.1" graceful-fs "^4.2.10" - hosted-git-info "^5.0.0" - ini "^3.0.0" + hosted-git-info "^5.2.1" + ini "^3.0.1" init-package-json "^3.0.2" is-cidr "^4.0.2" json-parse-even-better-errors "^2.3.1" - libnpmaccess "^6.0.2" - libnpmdiff "^4.0.2" - libnpmexec "^4.0.2" - libnpmfund "^3.0.1" - libnpmhook "^8.0.2" - libnpmorg "^4.0.2" - libnpmpack "^4.0.2" - libnpmpublish "^6.0.2" - libnpmsearch "^5.0.2" - libnpmteam "^4.0.2" - libnpmversion "^3.0.1" - make-fetch-happen "^10.1.5" + libnpmaccess "^6.0.4" + libnpmdiff "^4.0.5" + libnpmexec "^4.0.14" + libnpmfund "^3.0.5" + libnpmhook "^8.0.4" + libnpmorg "^4.0.4" + libnpmpack "^4.1.3" + libnpmpublish "^6.0.5" + libnpmsearch "^5.0.4" + libnpmteam "^4.0.4" + libnpmversion "^3.0.7" + make-fetch-happen "^10.2.0" + minimatch "^5.1.0" minipass "^3.1.6" minipass-pipeline "^1.2.4" mkdirp "^1.0.4" mkdirp-infer-owner "^2.0.0" ms "^2.1.2" - node-gyp "^9.0.0" - nopt "^5.0.0" + node-gyp "^9.1.0" + nopt "^6.0.0" npm-audit-report "^3.0.0" npm-install-checks "^5.0.0" - npm-package-arg "^9.0.2" - npm-pick-manifest "^7.0.1" - npm-profile "^6.0.3" - npm-registry-fetch "^13.1.1" + npm-package-arg "^9.1.0" + npm-pick-manifest "^7.0.2" + npm-profile "^6.2.0" + npm-registry-fetch "^13.3.1" npm-user-validate "^1.0.1" npmlog "^6.0.2" opener "^1.5.2" - pacote "^13.4.1" + p-map "^4.0.0" + pacote "^13.6.2" parse-conflict-json "^2.0.2" proc-log "^2.0.1" qrcode-terminal "^0.12.0" read "~1.0.7" - read-package-json "^5.0.1" + read-package-json "^5.0.2" read-package-json-fast "^2.0.3" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" @@ -10437,7 +10068,7 @@ oauth-sign@~0.9.0: object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^2.0.1: version "2.2.0" @@ -10449,7 +10080,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -10459,50 +10090,50 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.3, object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.values@^1.1.5, object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" on-finished@2.4.1: version "2.4.1" @@ -10519,7 +10150,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -10530,13 +10161,6 @@ one-time@^1.0.0: dependencies: fn.name "1.x.x" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -10564,10 +10188,10 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openpgp@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.4.0.tgz#679e7ce1c97994d72545bf5be818de15e5707b52" - integrity sha512-XgQnK8SYy4Ycg9BDvrXTE4foMwME/+1EfGZWZirUU2VPzU1X3xx094fChjbP10+gUJifAcoWTsT2zAbdhFUxyg== +openpgp@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.5.0.tgz#235ae5a49d5fda5cfd1d82c4c42cd91433478c14" + integrity sha512-SpwcJnxrK9Y0HRM6KxSFqkAEOSWEabCH/c8dII/+y2e5f6KvuDG5ZE7JXaPBaVJNE4VUZZeTphxXDoZD0KOHrw== dependencies: asn1.js "^5.0.0" @@ -10601,7 +10225,7 @@ ora@^5.4.1: os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== ospath@^1.2.2: version "1.2.2" @@ -10613,6 +10237,13 @@ p-each-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== +p-event@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-filter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -10620,6 +10251,11 @@ p-filter@^2.0.0: dependencies: p-map "^2.0.0" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + p-is-promise@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" @@ -10649,7 +10285,7 @@ p-limit@^3.0.2: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" @@ -10692,25 +10328,39 @@ p-retry@^4.0.0: "@types/retry" "0.12.0" retry "^0.13.1" +p-timeout@^3.0.0, p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pacote@^13.0.3, pacote@^13.0.5, pacote@^13.4.1, pacote@^13.5.0: - version "13.5.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.5.0.tgz#e2c745dc320513a98b9403e92b366a1ba6a4db94" - integrity sha512-yekp0ykEsaBH0t0bYA/89R+ywdYV5ZnEdg4YMIfqakSlpIhoF6b8+aEUm8NZpfWRgmy6lxgywcW05URhLRogVQ== +p-wait-for@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + +pacote@^13.0.3, pacote@^13.6.1, pacote@^13.6.2: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/installed-package-contents" "^1.0.7" "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^3.0.1" + "@npmcli/run-script" "^4.1.0" cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" @@ -10748,7 +10398,7 @@ parse-conflict-json@^2.0.1, parse-conflict-json@^2.0.2: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -10766,9 +10416,9 @@ parse-json@^5.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== -parse5-htmlparser2-tree-adapter@^6.0.0: +parse5-htmlparser2-tree-adapter@^6.0.0, parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== @@ -10794,11 +10444,19 @@ parse5@^6.0.1: integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.0.0.tgz#51f74a5257f5fcc536389e8c2d0b3802e1bfa91a" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: - entities "^4.3.0" + entities "^4.4.0" + +parseley@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.11.0.tgz#1ff817c829a02fcc214c9cc0d96b126d772ee814" + integrity sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ== + dependencies: + leac "^0.6.0" + peberminta "^0.8.0" parseley@^0.7.0: version "0.7.0" @@ -10816,7 +10474,7 @@ parseurl@~1.3.3: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -10826,14 +10484,19 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -10841,7 +10504,7 @@ path-parse@^1.0.6, path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-to-regexp@^6.2.0: version "6.2.1" @@ -10853,6 +10516,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +peberminta@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.8.0.tgz#acf7b105f3d13c8ac28cad81f2f5fe4698507590" + integrity sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -10861,7 +10529,7 @@ pend@~1.2.0: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" @@ -10886,7 +10554,7 @@ pify@^2.2.0, pify@^2.3.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -10901,7 +10569,7 @@ pify@^5.0.0: pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= + integrity sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g== dependencies: find-up "^2.0.0" load-json-file "^4.0.0" @@ -10919,7 +10587,7 @@ plex-api-credentials@3.0.1: plex-api-headers@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/plex-api-headers/-/plex-api-headers-1.1.0.tgz#4ce364715d9648cccf2c064583279ef87c12fbf2" - integrity sha1-TONkcV2WSMzPLAZFgyee+HwS+/I= + integrity sha512-Igl37++MSa+4H8LNP3Ene9GU0e1YypmXvFVNvVUwoAx44e74jbUlJXy4Q5rLSBisn0O2lBKdE6VkFIwrDl+UnQ== plex-api@5.3.2: version "5.3.2" @@ -10933,11 +10601,11 @@ plex-api@5.3.2: xml2js "0.4.16" plimit-lit@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.3.0.tgz#46908adbfcfc010e65a5a737652768b0fec21587" - integrity sha512-63qOoSzggsjBHPVbaKeEtsO8oWTeyJxUfVRLkoc59pRkDiCCLvqn2tCgAkfbejrx+V5zJtlG2wqkk/Db6cwlVQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.5.0.tgz#f66df8a7041de1e965c4f1c0697ab486968a92a5" + integrity sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng== dependencies: - queue-lit "^1.3.0" + queue-lit "^1.5.0" postcss-import@^14.1.0: version "14.1.0" @@ -10963,14 +10631,14 @@ postcss-load-config@^3.1.4: lilconfig "^2.0.5" yaml "^1.10.2" -postcss-nested@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" - integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== +postcss-nested@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" + integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== dependencies: - postcss-selector-parser "^6.0.6" + postcss-selector-parser "^6.0.10" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: +postcss-selector-parser@6.0.10: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -10978,12 +10646,20 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.10: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.14, postcss@^8.4.14: +postcss@8.4.14: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -10992,10 +10668,10 @@ postcss@8.4.14, postcss@^8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@8.4.16: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== +postcss@8.4.20, postcss@^8.4.18: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -11013,20 +10689,20 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-organize-imports@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.1.0.tgz#00420affd69f21926dbf29bf94a152f37e859d5e" - integrity sha512-eufD78FKdkDTyyY9oKxuwEMrfz4/AXrGeyeyjqiRtSBr01DAdGFTq4SgIKvLeqlLkq+ZPJ2H0+BK0e6flRUwJQ== +prettier-plugin-organize-imports@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.1.tgz#7e0e0a18457e0166e740daaff1aed1c08069fcb9" + integrity sha512-bty7C2Ecard5EOXirtzeCAqj4FU4epeuWrQt/Z+sh8UVEpBlBZ3m3KNPz2kFu7KgRTQx/C9o4/TdquPD1jOqjQ== -prettier-plugin-tailwindcss@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz#ca1071361dc7e2ed5d95a2ee36825ce45f814942" - integrity sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw== +prettier-plugin-tailwindcss@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz#989b35afd86c550cb671da69891aba4f4a051159" + integrity sha512-aIO8IguumORyRsmT+E7JfJ3A9FEoyhqZR7Au7TBOege3VZkgMvHJMkufeYp4zjnDK2iq4ktkvGMNOQR9T8lisQ== -prettier@2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +prettier@2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== pretty-bytes@^5.6.0: version "5.6.0" @@ -11034,15 +10710,19 @@ pretty-bytes@^5.6.0: integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== preview-email@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.5.tgz#09c32ba43c450ead16b309d9e5cb10f90ff45a95" - integrity sha512-q37jdkVw+wic0o/7xYhOTBS4kF0WX3two0OepmR1Fhxp9NTpO3rJTccAjQm95gJx/2Wa/Nv98sr9pXIQ77/foA== + version "3.0.7" + resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.7.tgz#b43e997294367f9c7437150bbe61a52e6bc7dca4" + integrity sha512-WGko2NiS3d8qoGcC981sXotm7noW/dcv4Cp4wo+X95ek2WwJ4A+aDpw/MzMjMW/johihvmfrfUdUWBbh+HnxCw== dependencies: - dayjs "^1.10.6" - debug "^4.3.2" - mailparser "^3.3.0" - nodemailer "^6.6.3" + ci-info "^3.3.2" + crypto-random-string "3.3.1" + display-notification "2.0.0" + get-port "5.1.1" + mailparser "^3.5.0" + nodemailer "^6.7.7" open "7" + p-event "4.2.0" + p-wait-for "3.2.0" pug "^3.0.2" uuid "^8.3.2" @@ -11069,7 +10749,7 @@ promise-call-limit@^1.0.1: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" @@ -11089,7 +10769,7 @@ promise@^7.0.1: promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== dependencies: read "1" @@ -11108,9 +10788,9 @@ property-expr@^2.0.4: integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== property-information@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" - integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== proxy-addr@~2.0.7: version "2.0.7" @@ -11126,9 +10806,9 @@ proxy-from-env@1.0.0: integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pstree.remy@^1.1.8: version "1.1.8" @@ -11259,17 +10939,17 @@ punycode@^2.1.0, punycode@^2.1.1: q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.10.3, qs@^6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0, qs@^6.10.3: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -11278,10 +10958,10 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -queue-lit@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.3.0.tgz#a29e4cfd0d0e2c6594beb70a4726716a57ffce5b" - integrity sha512-3HpQ7bD2ct56qPithPr5IzH2Oij3WVPcgevCJ+mI9HAfVJKCqQ2yiFYgb4AUkLfsCmmbVDy9luvE97Ztzr5eBg== +queue-lit@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.5.0.tgz#8197fdafda1edd615c8a0fc14c48353626e5160a" + integrity sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA== queue-microtask@^1.2.2: version "1.2.3" @@ -11301,7 +10981,7 @@ quick-lru@^5.1.1: railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= + integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== randexp@0.4.6: version "0.4.6" @@ -11314,7 +10994,7 @@ randexp@0.4.6: random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== range-parser@~1.2.1: version "1.2.1" @@ -11331,7 +11011,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@1.2.8, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -11360,45 +11040,45 @@ react-animate-height@2.1.2: classnames "^2.2.5" prop-types "^15.6.1" -react-aria@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.21.0.tgz#429cf5ae13bbdf49cc2687254f5325a0cf386d82" - integrity sha512-gPzUZ+TxY8lDN1j4K90O3SVWBF1k870NuIePjgiymQqmKTMBGvBB6AswxSgbefakQjkgg+GsyQYGhoQMTtpcMA== +react-aria@3.22.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.22.0.tgz#824dbeac1760240b82359fd60c18bf68769d5815" + integrity sha512-GA+qwnVVTvSirdhB/PsYPwix24vFDlGeK5Lk3zUgB9Q5VHnTfMMJ4+tyu9G38UR0clLQ5SAG1ArNjgzmhexQYg== dependencies: - "@react-aria/breadcrumbs" "^3.4.0" - "@react-aria/button" "^3.6.3" - "@react-aria/calendar" "^3.0.4" - "@react-aria/checkbox" "^3.7.0" - "@react-aria/combobox" "^3.4.3" - "@react-aria/datepicker" "^3.2.0" - "@react-aria/dialog" "^3.4.1" - "@react-aria/dnd" "^3.0.0" - "@react-aria/focus" "^3.10.0" - "@react-aria/gridlist" "^3.1.1" - "@react-aria/i18n" "^3.6.2" - "@react-aria/interactions" "^3.13.0" - "@react-aria/label" "^3.4.3" - "@react-aria/link" "^3.3.5" - "@react-aria/listbox" "^3.7.1" - "@react-aria/menu" "^3.7.0" - "@react-aria/meter" "^3.3.3" - "@react-aria/numberfield" "^3.3.3" - "@react-aria/overlays" "^3.12.0" - "@react-aria/progress" "^3.3.3" - "@react-aria/radio" "^3.4.1" - "@react-aria/searchfield" "^3.4.3" - "@react-aria/select" "^3.8.3" - "@react-aria/selection" "^3.12.0" - "@react-aria/separator" "^3.2.5" - "@react-aria/slider" "^3.2.3" - "@react-aria/ssr" "^3.4.0" - "@react-aria/switch" "^3.3.0" - "@react-aria/table" "^3.6.0" - "@react-aria/tabs" "^3.3.3" - "@react-aria/textfield" "^3.8.0" - "@react-aria/tooltip" "^3.3.3" - "@react-aria/utils" "^3.14.1" - "@react-aria/visually-hidden" "^3.6.0" + "@react-aria/breadcrumbs" "^3.4.1" + "@react-aria/button" "^3.6.4" + "@react-aria/calendar" "^3.0.5" + "@react-aria/checkbox" "^3.7.1" + "@react-aria/combobox" "^3.4.4" + "@react-aria/datepicker" "^3.2.1" + "@react-aria/dialog" "^3.4.2" + "@react-aria/dnd" "^3.0.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/gridlist" "^3.1.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/link" "^3.3.6" + "@react-aria/listbox" "^3.7.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/meter" "^3.3.4" + "@react-aria/numberfield" "^3.3.4" + "@react-aria/overlays" "^3.12.1" + "@react-aria/progress" "^3.3.4" + "@react-aria/radio" "^3.4.2" + "@react-aria/searchfield" "^3.4.4" + "@react-aria/select" "^3.8.4" + "@react-aria/selection" "^3.12.1" + "@react-aria/separator" "^3.2.6" + "@react-aria/slider" "^3.2.4" + "@react-aria/ssr" "^3.4.1" + "@react-aria/switch" "^3.3.1" + "@react-aria/table" "^3.7.0" + "@react-aria/tabs" "^3.3.4" + "@react-aria/textfield" "^3.8.1" + "@react-aria/tooltip" "^3.3.4" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" react-dom@18.2.0: version "18.2.0" @@ -11418,26 +11098,26 @@ react-fast-compare@^3.0.1: resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-intersection-observer@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.0.tgz#f6b6e616e625f9bf255857c5cba9dbf7b1825ec7" - integrity sha512-v0403CmomOVlzhqFXlzOxg0ziLcVq8mfbP0AwAcEQWgZmR2OulOT79Ikznw4UlB3N+jlUYqLMe4SDHUOyp0t2A== +react-intersection-observer@9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz#4ccb21e16acd0b9cf5b28d275af7055bef878f6b" + integrity sha512-IXpIsPe6BleFOEHKzKh5UjwRUaz/JYS0lT/HPsupWEQou2hDqjhLMStc5zyE3eQVT4Fk3FufM8Fw33qW1uyeiw== -react-intl@6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.0.5.tgz#8adcb9108682c82e625a8ce7826283afd3537f62" - integrity sha512-nDZ3BosuE8WdovcGxsrjj1aIgJZklSL5aORs5oah+5tLQTzUdOEstzJEYQPM+sxl1dkDOu7RCuw0z9oI9ENf9g== +react-intl@6.2.5: + version "6.2.5" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.2.5.tgz#eb871145e0866916d0c9283b2c83a146c6121793" + integrity sha512-nz21POTKbE0sPEuEJU4o5YTZYY7VlIYCPNJaD6D2+xKyk6Noj6DoUK0LRO9LXuQNUuQ044IZl3m6ymzZRj8XFQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/intl" "2.3.1" - "@formatjs/intl-displaynames" "6.0.3" - "@formatjs/intl-listformat" "7.0.3" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/intl" "2.6.3" + "@formatjs/intl-displaynames" "6.2.3" + "@formatjs/intl-listformat" "7.1.7" "@types/hoist-non-react-statics" "^3.3.1" "@types/react" "16 || 17 || 18" hoist-non-react-statics "^3.3.2" - intl-messageformat "10.1.1" - tslib "2.4.0" + intl-messageformat "10.2.5" + tslib "^2.4.0" react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -11445,14 +11125,14 @@ react-is@^16.13.1, react-is@^16.7.0: integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-markdown@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" - integrity sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A== +react-markdown@8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.4.tgz#b5ff1f0f29ead71a7a6f98815eb1a70bcc2a036e" + integrity sha512-2oxHa6oDxc1apg/Gnc1Goh06t3B617xeywqI/92wmDV9FELI6ayRkwge7w7DoEqM0gRpZGTNU6xQG+YpJISnVg== dependencies: "@types/hast" "^2.0.0" "@types/prop-types" "^15.0.0" @@ -11487,30 +11167,32 @@ react-popper@^2.3.0: react-fast-compare "^3.0.1" warning "^4.0.2" -react-select@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.4.0.tgz#81f6ac73906126706f104751ee14437bd16798f4" - integrity sha512-CjE9RFLUvChd5SdlfG4vqxZd55AZJRrLrHzkQyTYeHlpOztqcgnyftYAolJ0SGsBev6zAs6qFrjm6KU3eo2hzg== +react-select@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.0.tgz#82921b38f1fcf1471a0b62304da01f2896cd8ce6" + integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" "@types/react-transition-group" "^4.4.0" - memoize-one "^5.0.0" + memoize-one "^6.0.0" prop-types "^15.6.0" react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" -react-spring@9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.5.2.tgz#b9929ad2806e56e6408b27189ec9cdf1dc003873" - integrity sha512-OGWNgKi2TSjpqsK67NCUspaCgEvWcG7HcpO9KAaDLFzFGNxWdGdN3YTXhhWUqCsLAx9I6LxPzmRuUPsMNqTgrw== +react-spring@9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.6.1.tgz#e715b2fa523c1a3acfdcf1aaa93e081620b8cc8e" + integrity sha512-BeP80R4SLb1bZHW/Q62nECoScHw/fH+jzGkD7dc892HNGa+lbGIJXURc6U7N8JfZ8peEO46nPxR57aUMuYzquQ== dependencies: - "@react-spring/core" "~9.5.2" - "@react-spring/konva" "~9.5.2" - "@react-spring/native" "~9.5.2" - "@react-spring/three" "~9.5.2" - "@react-spring/web" "~9.5.2" - "@react-spring/zdog" "~9.5.2" + "@react-spring/core" "~9.6.1" + "@react-spring/konva" "~9.6.1" + "@react-spring/native" "~9.6.1" + "@react-spring/three" "~9.6.1" + "@react-spring/web" "~9.6.1" + "@react-spring/zdog" "~9.6.1" react-toast-notifications@2.5.1: version "2.5.1" @@ -11521,9 +11203,9 @@ react-toast-notifications@2.5.1: react-transition-group "^4.4.1" react-transition-group@^4.3.0, react-transition-group@^4.4.1: - version "4.4.2" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" - integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -11540,10 +11222,10 @@ react-truncate-markup@5.1.2: prop-types "^15.6.0" resize-observer-polyfill "1.5.x" -react-use-clipboard@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/react-use-clipboard/-/react-use-clipboard-1.0.8.tgz#7c1a5bcb469a0841dd9d1242af78e51d2ab7221f" - integrity sha512-QbN2kFl9uWEsELU4ONpAM98WASllAUWPSGBocbEVzRlcl1PbSa9EIdgADm6XlrcjYw9g1YQBfnCUb/5HGTOY+w== +react-use-clipboard@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/react-use-clipboard/-/react-use-clipboard-1.0.9.tgz#d34d4d04500f77c606795d3756fc587ec93db8d2" + integrity sha512-OcMzc14usXhqQnAkvzmhCXAbW5WBT2LSgscVh2vKHXZfg72jFsSOsEearqdeC/nUj8YxEfLnziqe7AE7YkWFwA== dependencies: copy-to-clipboard "^3.3.1" @@ -11570,9 +11252,9 @@ read-cache@^1.0.0: pify "^2.3.0" read-cmd-shim@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" - integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== + version "3.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" @@ -11582,15 +11264,15 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^5.0.0, read-package-json@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.1.tgz#1ed685d95ce258954596b13e2e0e76c7d0ab4c26" - integrity sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== +read-package-json@^5.0.0, read-package-json@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== dependencies: glob "^8.0.1" json-parse-even-better-errors "^2.3.1" normalize-package-data "^4.0.0" - npm-normalize-package-bin "^1.0.1" + npm-normalize-package-bin "^2.0.0" read-pkg-up@^7.0.0, read-pkg-up@^7.0.1: version "7.0.1" @@ -11614,7 +11296,7 @@ read-pkg@^5.0.0, read-pkg@^5.2.0: read@1, read@^1.0.7, read@~1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" @@ -11643,7 +11325,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -11678,7 +11360,7 @@ redent@^3.0.0: redeyed@~2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs= + integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== dependencies: esprima "~4.0.0" @@ -11687,10 +11369,10 @@ reflect-metadata@0.1.13, reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -11704,19 +11386,14 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -11730,46 +11407,34 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== +regexpu-core@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" + integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + version "4.2.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" + integrity sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg== dependencies: - rc "^1.2.8" + rc "1.2.8" -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" @@ -11845,7 +11510,7 @@ request@^2.87.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -11860,7 +11525,7 @@ resize-observer-polyfill@1.5.x: resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -11882,7 +11547,7 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve@^1.1.7, resolve@^1.22.1: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -11891,31 +11556,15 @@ resolve@^1.1.7, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^2.0.0-next.3: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -11932,7 +11581,7 @@ ret@~0.1.10: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== retry@^0.13.1: version "0.13.1" @@ -11959,9 +11608,16 @@ rimraf@^3.0.0, rimraf@^3.0.2: rndm@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c" - integrity sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w= + integrity sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw== -run-async@^2.2.0, run-async@^2.4.0: +run-applescript@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-3.2.0.tgz#73fb34ce85d3de8076d511ea767c30d4fdfc918b" + integrity sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg== + dependencies: + execa "^0.10.0" + +run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== @@ -11973,24 +11629,10 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.4.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.1: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== - dependencies: - tslib "^2.1.0" - -rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.5.1, rxjs@^7.5.5: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" @@ -12016,10 +11658,19 @@ safe-identifier@^0.4.1: resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-stable-stringify@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" @@ -12078,6 +11729,13 @@ secure-random@^1.1.2: resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c" integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ== +selderee@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.10.0.tgz#ec83d6044d9026668dc9bd2561acfde99a4e3a1c" + integrity sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A== + dependencies: + parseley "^0.11.0" + selderee@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.6.0.tgz#f3bee66cfebcb6f33df98e4a1df77388b42a96f7" @@ -12092,10 +11750,10 @@ semantic-release-docker-buildx@1.0.1: dependencies: execa "^5.0.0" -semantic-release@19.0.3: - version "19.0.3" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-19.0.3.tgz#9291053ad9890052f28e7c5921d4741530d516fd" - integrity sha512-HaFbydST1cDKZHuFZxB8DTrBLJVK/AnDExpK0s3EqLIAAUAHUgnd+VSJCUtTYQKkAkauL8G9CucODrVCc7BuAA== +semantic-release@19.0.5: + version "19.0.5" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-19.0.5.tgz#d7fab4b33fc20f1288eafd6c441e5d0938e5e174" + integrity sha512-NMPKdfpXTnPn49FDogMBi36SiBfXkSOJqCkk0E4iWOY1tusvvgBwqUmxTX1kmlT6kIYed9YwNKD1sfPpqa5yaA== dependencies: "@semantic-release/commit-analyzer" "^9.0.2" "@semantic-release/error" "^3.0.0" @@ -12138,28 +11796,35 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.4.tgz#13053c0d4aa11d070a2f2872b6b1e3ae1e1971b4" integrity sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA== -"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0, semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.7, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" +semver@7.3.8, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -12192,7 +11857,7 @@ serve-static@1.15.0: set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.1.1: version "1.1.1" @@ -12212,6 +11877,13 @@ sha.js@^2.4.11: inherits "^2.0.1" safe-buffer "^5.0.1" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -12219,6 +11891,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -12250,14 +11927,14 @@ signale@^1.2.1: simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" simple-update-notifier@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" - integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== dependencies: semver "~7.0.0" @@ -12300,28 +11977,37 @@ slice-ansi@^5.0.0: slick@^1.12.2: version "1.12.2" resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" - integrity sha1-vQSN23TefRymkV+qSldXCzVQwtc= + integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz#f6b5229cc0cbd6f2f202d9695f09d871e951c85e" - integrity sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ== +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: agent-base "^6.0.2" debug "^4.3.3" socks "^2.6.2" socks@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: - ip "^1.1.5" + ip "^2.0.0" smart-buffer "^4.2.0" sort-keys@^4.0.0: @@ -12344,7 +12030,7 @@ source-map-js@^1.0.2: source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.1: version "0.6.1" @@ -12352,14 +12038,14 @@ source-map@^0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" - integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" - integrity sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk= + integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g== spdx-correct@^3.0.0: version "3.1.1" @@ -12383,9 +12069,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== split2@^3.0.0: version "3.2.2" @@ -12397,7 +12083,7 @@ split2@^3.0.0: split2@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" - integrity sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ= + integrity sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg== dependencies: through2 "~2.0.0" @@ -12411,12 +12097,12 @@ split@^1.0.0: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sqlite3@5.0.11: - version "5.0.11" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.11.tgz#102c835d70be66da9d95a383fd6ea084a082ef7f" - integrity sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA== +sqlite3@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.4.tgz#35f83d368963168b324ad2f0fffce09f3b8723a7" + integrity sha512-i0UlWAzPlzX3B5XP2cYuhWQJsTtlMD6obOa1PgeEQ4DHEXUuyJkgv50I3isqZAP5oFc2T8OFvakmDh2W6I+YpA== dependencies: "@mapbox/node-pre-gyp" "^1.0.0" node-addon-api "^4.2.0" @@ -12461,7 +12147,7 @@ stable@^0.1.8: stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== statuses@2.0.1: version "2.0.1" @@ -12471,17 +12157,17 @@ statuses@2.0.1: "statuses@>= 1.5.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" @@ -12505,14 +12191,6 @@ string-argv@^0.3.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -12522,37 +12200,37 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + regexp.prototype.flags "^1.4.3" side-channel "^1.0.4" -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string_decoder@^1.1.1: version "1.3.0" @@ -12564,7 +12242,7 @@ string_decoder@^1.1.1: string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" @@ -12573,20 +12251,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -12609,7 +12273,12 @@ strip-bom@4.0.0, strip-bom@^4.0.0: strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "2.0.0" @@ -12623,11 +12292,6 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -12636,7 +12300,7 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1. strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== style-to-object@^0.3.0: version "0.3.0" @@ -12645,15 +12309,15 @@ style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -styled-jsx@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.4.tgz#5b1bd0b9ab44caae3dd1361295559706e044aa53" - integrity sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ== +styled-jsx@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.7.tgz#be44afc53771b983769ac654d355ca8d019dff48" + integrity sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA== -stylis@4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== +stylis@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" @@ -12677,14 +12341,14 @@ supports-color@^8.1.1: has-flag "^4.0.0" supports-color@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" - integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== + version "9.3.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.3.1.tgz#34e4ad3c71c9a39dae3254ecc46c9b74e89e15a6" + integrity sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q== supports-hyperlinks@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -12713,14 +12377,14 @@ svgo@^2.8.0: stable "^0.1.8" swagger-ui-dist@>=4.11.0: - version "4.11.1" - resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.11.1.tgz#1e9c0e62bdac632f7b206c95ef9cbe986097606a" - integrity sha512-pf3kfSTYdF9mYFY2VnfJ51wnXlSVhEGdtymhpHzfbFw2jTbiEWgBoVz5EB9aW2EaJvUGTM1YHAXYZX7Jk4RdAQ== + version "4.15.5" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz#cda226a79db2a9192579cc1f37ec839398a62638" + integrity sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA== -swagger-ui-express@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.5.0.tgz#feb1314627092eb9c7e6b65ee018927011445530" - integrity sha512-DHk3zFvsxrkcnurGvQlAcLuTDacAVN1JHKDgcba/gr2NFRE4HGwP1YeHIXMiGznkWR4AeS7X5vEblNn4QljuNA== +swagger-ui-express@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.6.0.tgz#fc297d80c614c80f5d7def3dab50b56428cfe1c9" + integrity sha512-ZxpQFp1JR2RF8Ar++CyJzEDdvufa08ujNUJgMVTMWPi86CuQeVdBtvaeO/ysrz6dJAYXf9kbVNhWD7JWocwqsA== dependencies: swagger-ui-dist ">=4.11.0" @@ -12729,10 +12393,10 @@ swr@1.3.0: resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== -tailwindcss@3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" - integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== +tailwindcss@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250" + integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ== dependencies: arg "^5.0.2" chokidar "^3.5.3" @@ -12740,31 +12404,32 @@ tailwindcss@3.1.8: detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.2.11" + fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" lilconfig "^2.0.6" + micromatch "^4.0.5" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.14" + postcss "^8.4.18" postcss-import "^14.1.0" postcss-js "^4.0.0" postcss-load-config "^3.1.4" - postcss-nested "5.0.6" + postcss-nested "6.0.0" postcss-selector-parser "^6.0.10" postcss-value-parser "^4.2.0" quick-lru "^5.1.1" resolve "^1.22.1" tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -12798,12 +12463,12 @@ text-hex@1.0.x: text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" @@ -12837,7 +12502,7 @@ through2@^4.0.0: through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-relative-date@^1.3.0: version "1.3.0" @@ -12854,10 +12519,10 @@ titleize@2: resolved "https://registry.yarnpkg.com/titleize/-/titleize-2.1.0.tgz#5530de07c22147a0488887172b5bd94f5b30a48f" integrity sha512-m+apkYlfiQTKLW+sI4vqUkwMEzfgEUEYSqljx1voUE3Wz/z1ZsxyzSxvH2X8uKVrOp7QkByWt0rA6+gvhCKy6g== -tlds@1.231.0, tlds@^1.230.0: - version "1.231.0" - resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.231.0.tgz#93880175cd0a06fdf7b5b5b9bcadff9d94813e39" - integrity sha512-L7UQwueHSkGxZHQBXHVmXW64oi+uqNtzFt2x6Ssk7NVnpIbw16CRs4eb/jmKOZ9t2JnqZ/b3Cfvo97lnXqKrhw== +tlds@1.236.0, tlds@^1.230.0: + version "1.236.0" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.236.0.tgz#a118eebe33261c577e3a3025144faeabb7dd813c" + integrity sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA== tmp@^0.0.33: version "0.0.33" @@ -12876,7 +12541,7 @@ tmp@~0.2.1: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -12888,7 +12553,7 @@ to-regex-range@^5.0.1: toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toidentifier@1.0.0: version "1.0.0" @@ -12903,12 +12568,12 @@ toidentifier@1.0.1: token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== toposort@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== touch@^3.1.0: version "3.1.0" @@ -12928,18 +12593,23 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@~0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + version "0.6.7" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" + integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== treeverse@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -12955,7 +12625,7 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -ts-node@10.9.1: +ts-node@10.9.1, ts-node@^10.8.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -12974,29 +12644,10 @@ ts-node@10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-node@^10.8.0: - version "10.8.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce" - integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tsc-alias@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.7.0.tgz#733482751133a25b97608ee424f8a1f085fcaaef" - integrity sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg== +tsc-alias@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.8.2.tgz#3cd24bba7333a5e05cb7db3ac206d7bcec079630" + integrity sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg== dependencies: chokidar "^3.5.3" commander "^9.0.0" @@ -13005,12 +12656,12 @@ tsc-alias@1.7.0: normalize-path "^3.0.0" plimit-lit "^1.2.6" -tsconfig-paths@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" - integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== +tsconfig-paths@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz#4819f861eef82e6da52fb4af1e8c930a39ed979a" + integrity sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw== dependencies: - json5 "^2.2.1" + json5 "^2.2.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -13024,16 +12675,16 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.4.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + tsscmp@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" @@ -13049,14 +12700,14 @@ tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -13123,12 +12774,12 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typeorm@0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.7.tgz#5776ed5058f0acb75d64723b39ff458d21de64c1" - integrity sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q== +typeorm@0.3.11: + version "0.3.11" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.11.tgz#09b6ab0b0574bf33c1faf7344bab6c363cf28921" + integrity sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" @@ -13148,15 +12799,10 @@ typeorm@0.3.7: xml2js "^0.4.23" yargs "^17.3.1" -typescript@4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -typescript@^4.0, typescript@^4.5, typescript@^4.6.4: - version "4.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" - integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== +typescript@4.9.4, typescript@^4.0, typescript@^4.6.4, typescript@^4.7: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== uc.micro@^1.0.1: version "1.0.6" @@ -13164,9 +12810,9 @@ uc.micro@^1.0.1: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.15.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.5.tgz#2b10f9e0bfb3f5c15a8e8404393b6361eaeb33b3" - integrity sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ== + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== uid-safe@2.1.5, uid-safe@~2.1.5: version "2.1.5" @@ -13191,14 +12837,14 @@ undefsafe@^2.0.5: integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== underscore.deep@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/underscore.deep/-/underscore.deep-0.5.1.tgz#072671f48d68735c34223fcfef63e69e5276cc2b" - integrity sha1-ByZx9I1oc1w0Ij/P72PmnlJ2zCs= + version "0.5.3" + resolved "https://registry.yarnpkg.com/underscore.deep/-/underscore.deep-0.5.3.tgz#210969d58025339cecabd2a2ad8c3e8925e5c095" + integrity sha512-4OuSOlFNkiVFVc3khkeG112Pdu1gbitMj7t9B9ENb61uFmN70Jq7Iluhi3oflcSgexkKfDdJ5XAJET2gEq6ikA== underscore@~1.13.1: - version "1.13.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.3.tgz#54bc95f7648c5557897e5e968d0f76bc062c34ee" - integrity sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA== + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -13213,15 +12859,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@^10.0.0: version "10.1.2" @@ -13243,6 +12889,13 @@ unique-filename@^1.1.1: dependencies: unique-slug "^2.0.0" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" @@ -13250,6 +12903,13 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -13288,50 +12948,28 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== +unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" - unist-util-visit@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -13340,17 +12978,17 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" - integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -13370,7 +13008,12 @@ url-join@^4.0.0: urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" - integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= + integrity sha512-RtuPeMy7c1UrHwproMZN9gN6kiZ0SvJwRaEzwZY0j9MypEkFqyBaKv176jvlPtg58Zh36bOkS0NFABXMHvvGCA== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== use-sync-external-store@1.2.0: version "1.2.0" @@ -13380,12 +13023,12 @@ use-sync-external-store@1.2.0: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.0.0, uuid@^3.3.2: version "3.4.0" @@ -13398,9 +13041,9 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -13412,11 +13055,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - valid-data-url@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" @@ -13440,29 +13078,29 @@ validate-npm-package-name@^4.0.0: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" vfile-message@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" - integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.3.tgz#1360c27a99234bebf7bddbbbca67807115e6b0dd" + integrity sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.6" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.6.tgz#61b2e70690cc835a5d0d0fd135beae74e5a39546" + integrity sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -13472,7 +13110,7 @@ vfile@^5.0.0: void-elements@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== walk-up-path@^1.0.0: version "1.0.0" @@ -13517,15 +13155,27 @@ web-resource-inliner@^5.0.0: node-fetch "^2.6.0" valid-data-url "^3.0.0" +web-resource-inliner@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" + integrity sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A== + dependencies: + ansi-colors "^4.1.1" + escape-goat "^3.0.0" + htmlparser2 "^5.0.0" + mime "^2.4.6" + node-fetch "^2.6.0" + valid-data-url "^3.0.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -13541,7 +13191,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which@^1.2.14: +which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -13581,11 +13231,12 @@ winston-transport@^4.4.0, winston-transport@^4.5.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.1.tgz#76f15b3478cde170b780234e0c4cf805c5a7fb57" - integrity sha512-r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w== +winston@3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== dependencies: + "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" @@ -13615,7 +13266,7 @@ word-wrap@^1.0.3, word-wrap@^1.2.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^6.2.0: version "6.2.0" @@ -13638,7 +13289,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -13651,9 +13302,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" @@ -13673,7 +13324,7 @@ write-json-file@^4.3.0: xml2js@0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.16.tgz#f82fccd2f9540d7e0a9b5dac163e7471195c9db3" - integrity sha1-+C/M0vlUDX4Km12sFj50cRlcnbM= + integrity sha512-9rH7UTUNphxeDRCeJBi4Fxp/z0fd92WeXNQ1dtUYMpqO3PaK59hVDCuUmOGHRZvufJDzcX8TG+Kdty7ylM0t2w== dependencies: sax ">=0.6.0" xmlbuilder "^4.1.0" @@ -13697,7 +13348,7 @@ xml2js@0.4.23, xml2js@^0.4.23: xmlbuilder@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" - integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU= + integrity sha512-oEePiEefhQhAeUnwRnIBLBWmk/fsWWbQ53EEWsRuzECbQ3m5o/Esmq6H47CYYwSLW+Ynt0rS9hd0pd2ogMAWjg== dependencies: lodash "^4.0.0" @@ -13709,7 +13360,7 @@ xmlbuilder@~11.0.0: xmlbuilder@~9.0.1: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" @@ -13721,6 +13372,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -13752,10 +13408,10 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0: version "16.2.0" @@ -13771,17 +13427,17 @@ yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0: yargs-parser "^20.2.2" yargs@^17.0.0, yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yauzl@^2.10.0: version "2.10.0" From c4b16abc62647c74215155942a4230a31a238677 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jan 2023 22:08:29 +0900 Subject: [PATCH 11/65] fix(deps): pin dependency @headlessui/react to 1.7.7 (#3194) [skip ci] Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c5405d5bd..6d98f2edc 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@formatjs/intl-locale": "3.0.11", "@formatjs/intl-pluralrules": "5.1.8", "@formatjs/intl-utils": "3.8.4", - "@headlessui/react": "^1.7.7", + "@headlessui/react": "1.7.7", "@heroicons/react": "1.0.6", "@supercharge/request-ip": "1.2.0", "@svgr/webpack": "6.5.1", diff --git a/yarn.lock b/yarn.lock index c942fe24b..0f671095f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1591,7 +1591,7 @@ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@headlessui/react@^1.7.7": +"@headlessui/react@1.7.7": version "1.7.7" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.7.tgz#d6f8708d8943ae8ebb1a6929108234e4515ac7e8" integrity sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w== From dd48d59b20e2d1800ea30912116f4a4f1bb7928f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 01:06:02 +0000 Subject: [PATCH 12/65] fix(deps): update dependency @heroicons/react to v2 (#2970) * fix(deps): update dependency @heroicons/react to v2 * fix: update imports and fix icon name changes for heroicons * fix: also update MiniStatusBadge to use new check icon * fix: update last place with old import Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sct --- package.json | 2 +- src/components/CollectionDetails/index.tsx | 6 ++--- src/components/Common/Alert/index.tsx | 6 ++--- .../Common/ButtonWithDropdown/index.tsx | 2 +- .../Common/SensitiveInput/index.tsx | 4 ++-- src/components/Common/SlideOver/index.tsx | 4 ++-- .../Common/StatusBadgeMini/index.tsx | 12 ++++------ .../Discover/MovieGenreSlider/index.tsx | 4 ++-- .../Discover/PlexWatchlistSlider/index.tsx | 4 ++-- .../Discover/RecentRequestsSlider/index.tsx | 4 ++-- .../Discover/TvGenreSlider/index.tsx | 4 ++-- src/components/IssueBlock/index.tsx | 6 ++--- .../IssueDetails/IssueComment/index.tsx | 4 ++-- .../IssueDetails/IssueDescription/index.tsx | 7 ++++-- src/components/IssueDetails/index.tsx | 10 ++++----- src/components/IssueList/IssueItem/index.tsx | 2 +- src/components/IssueList/index.tsx | 10 ++++----- .../IssueModal/CreateIssueModal/index.tsx | 4 ++-- .../Layout/LanguagePicker/index.tsx | 4 ++-- src/components/Layout/Notifications/index.tsx | 2 +- src/components/Layout/SearchInput/index.tsx | 6 ++--- src/components/Layout/Sidebar/index.tsx | 10 ++++----- src/components/Layout/UserDropdown/index.tsx | 9 +++++--- src/components/Layout/VersionStatus/index.tsx | 10 ++++----- src/components/Layout/index.tsx | 6 ++--- src/components/Login/LocalLogin.tsx | 9 +++++--- src/components/Login/index.tsx | 2 +- src/components/ManageSlideOver/index.tsx | 10 ++++----- .../MediaSlider/ShowMoreCard/index.tsx | 4 ++-- src/components/MediaSlider/index.tsx | 4 ++-- src/components/MovieDetails/index.tsx | 14 ++++++------ src/components/PersonCard/index.tsx | 2 +- src/components/PlexLoginButton/index.tsx | 4 ++-- src/components/PullToRefresh/index.tsx | 6 ++--- src/components/RegionSelector/index.tsx | 2 +- src/components/RequestBlock/index.tsx | 6 ++--- src/components/RequestButton/index.tsx | 22 +++++++++---------- src/components/RequestCard/index.tsx | 16 +++++++------- .../RequestList/RequestItem/index.tsx | 12 +++++----- src/components/RequestList/index.tsx | 10 ++++----- .../RequestModal/AdvancedRequester/index.tsx | 2 +- .../RequestModal/QuotaDisplay/index.tsx | 2 +- .../ResetPassword/RequestResetLink.tsx | 4 ++-- src/components/ResetPassword/index.tsx | 4 ++-- src/components/Settings/CopyButton.tsx | 4 ++-- src/components/Settings/LibraryItem.tsx | 4 ++-- .../Notifications/NotificationsDiscord.tsx | 4 ++-- .../Notifications/NotificationsEmail.tsx | 4 ++-- .../NotificationsGotify/index.tsx | 4 ++-- .../NotificationsLunaSea/index.tsx | 4 ++-- .../NotificationsPushbullet/index.tsx | 4 ++-- .../NotificationsPushover/index.tsx | 4 ++-- .../NotificationsSlack/index.tsx | 4 ++-- .../Notifications/NotificationsTelegram.tsx | 4 ++-- .../NotificationsWebPush/index.tsx | 4 ++-- .../NotificationsWebhook/index.tsx | 11 ++++++---- .../Settings/SettingsAbout/Releases/index.tsx | 2 +- .../Settings/SettingsAbout/index.tsx | 2 +- .../Settings/SettingsJobsCache/index.tsx | 4 ++-- .../Settings/SettingsLogs/index.tsx | 18 +++++++-------- .../DiscoverOption/index.tsx | 6 ++--- .../DiscoverCustomization/index.tsx | 9 +++++--- .../Settings/SettingsMain/index.tsx | 8 +++---- .../Settings/SettingsNotifications.tsx | 6 ++--- src/components/Settings/SettingsPlex.tsx | 20 ++++++++++------- src/components/Settings/SettingsServices.tsx | 2 +- .../Settings/SettingsUsers/index.tsx | 4 ++-- src/components/Setup/SetupSteps.tsx | 2 +- src/components/Slider/index.tsx | 2 +- src/components/TitleCard/ErrorCard.tsx | 2 +- src/components/TitleCard/index.tsx | 9 ++++---- src/components/Toast/index.tsx | 10 ++++----- src/components/TvDetails/index.tsx | 14 ++++++------ src/components/UserList/index.tsx | 14 ++++++------ .../UserProfile/ProfileHeader/index.tsx | 2 +- .../UserGeneralSettings/index.tsx | 4 ++-- .../UserNotificationsDiscord.tsx | 4 ++-- .../UserNotificationsEmail.tsx | 4 ++-- .../UserNotificationsTelegram.tsx | 4 ++-- .../UserNotificationsWebPush.tsx | 4 ++-- .../UserNotificationSettings/index.tsx | 4 ++-- .../UserSettings/UserPasswordChange/index.tsx | 4 ++-- .../UserSettings/UserPermissions/index.tsx | 4 ++-- src/components/UserProfile/index.tsx | 6 ++--- src/pages/404.tsx | 4 ++-- src/pages/_error.tsx | 4 ++-- yarn.lock | 8 +++---- 87 files changed, 269 insertions(+), 253 deletions(-) diff --git a/package.json b/package.json index 6d98f2edc..2bd8143ae 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@formatjs/intl-pluralrules": "5.1.8", "@formatjs/intl-utils": "3.8.4", "@headlessui/react": "1.7.7", - "@heroicons/react": "1.0.6", + "@heroicons/react": "2.0.13", "@supercharge/request-ip": "1.2.0", "@svgr/webpack": "6.5.1", "@tanem/react-nprogress": "5.0.22", diff --git a/src/components/CollectionDetails/index.tsx b/src/components/CollectionDetails/index.tsx index 60ce94053..0136113a9 100644 --- a/src/components/CollectionDetails/index.tsx +++ b/src/components/CollectionDetails/index.tsx @@ -10,7 +10,7 @@ import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { DownloadIcon } from '@heroicons/react/outline'; +import { ArrowDownTrayIcon } from '@heroicons/react/24/outline'; import { MediaStatus } from '@server/constants/media'; import type { Collection } from '@server/models/Collection'; import { uniq } from 'lodash'; @@ -276,7 +276,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { }} text={ <> - + {intl.formatMessage( hasRequestable @@ -295,7 +295,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { setIs4k(true); }} > - + {intl.formatMessage(messages.requestcollection4k)} diff --git a/src/components/Common/Alert/index.tsx b/src/components/Common/Alert/index.tsx index 8ffb4a255..93ddd988f 100644 --- a/src/components/Common/Alert/index.tsx +++ b/src/components/Common/Alert/index.tsx @@ -1,8 +1,8 @@ import { - ExclamationIcon, + ExclamationTriangleIcon, InformationCircleIcon, XCircleIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; interface AlertProps { title?: React.ReactNode; @@ -16,7 +16,7 @@ const Alert = ({ title, children, type }: AlertProps) => { 'border border-yellow-500 backdrop-blur bg-yellow-400 bg-opacity-20', titleColor: 'text-yellow-100', textColor: 'text-yellow-300', - svg: , + svg: , }; switch (type) { diff --git a/src/components/Common/ButtonWithDropdown/index.tsx b/src/components/Common/ButtonWithDropdown/index.tsx index be6815b94..b5bc0cb64 100644 --- a/src/components/Common/ButtonWithDropdown/index.tsx +++ b/src/components/Common/ButtonWithDropdown/index.tsx @@ -1,7 +1,7 @@ import useClickOutside from '@app/hooks/useClickOutside'; import { withProperties } from '@app/utils/typeHelpers'; import { Transition } from '@headlessui/react'; -import { ChevronDownIcon } from '@heroicons/react/solid'; +import { ChevronDownIcon } from '@heroicons/react/24/solid'; import type { AnchorHTMLAttributes, ButtonHTMLAttributes } from 'react'; import { Fragment, useRef, useState } from 'react'; diff --git a/src/components/Common/SensitiveInput/index.tsx b/src/components/Common/SensitiveInput/index.tsx index 6652f5519..ae11b9517 100644 --- a/src/components/Common/SensitiveInput/index.tsx +++ b/src/components/Common/SensitiveInput/index.tsx @@ -1,4 +1,4 @@ -import { EyeIcon, EyeOffIcon } from '@heroicons/react/solid'; +import { EyeIcon, EyeSlashIcon } from '@heroicons/react/24/solid'; import { Field } from 'formik'; import { useState } from 'react'; @@ -43,7 +43,7 @@ const SensitiveInput = ({ as = 'input', ...props }: SensitiveInputProps) => { type="button" className="input-action" > - {isHidden ? : } + {isHidden ? : } ); diff --git a/src/components/Common/SlideOver/index.tsx b/src/components/Common/SlideOver/index.tsx index e7ccf7063..fd0ecb37a 100644 --- a/src/components/Common/SlideOver/index.tsx +++ b/src/components/Common/SlideOver/index.tsx @@ -1,7 +1,7 @@ /* eslint-disable jsx-a11y/click-events-have-key-events */ import { useLockBodyScroll } from '@app/hooks/useLockBodyScroll'; import { Transition } from '@headlessui/react'; -import { XIcon } from '@heroicons/react/outline'; +import { XMarkIcon } from '@heroicons/react/24/outline'; import { Fragment, useEffect, useRef, useState } from 'react'; import ReactDOM from 'react-dom'; @@ -83,7 +83,7 @@ const SlideOver = ({ className="text-gray-200 transition duration-150 ease-in-out hover:text-white" onClick={() => onClose()} > - +
diff --git a/src/components/Common/StatusBadgeMini/index.tsx b/src/components/Common/StatusBadgeMini/index.tsx index 0653c7d80..9404a93cb 100644 --- a/src/components/Common/StatusBadgeMini/index.tsx +++ b/src/components/Common/StatusBadgeMini/index.tsx @@ -1,9 +1,5 @@ -import { - BellIcon, - CheckIcon, - ClockIcon, - MinusSmIcon, -} from '@heroicons/react/solid'; +import { CheckCircleIcon } from '@heroicons/react/20/solid'; +import { BellIcon, ClockIcon, MinusSmallIcon } from '@heroicons/react/24/solid'; import { MediaStatus } from '@server/constants/media'; interface StatusBadgeMiniProps { @@ -22,7 +18,7 @@ const StatusBadgeMini = ({ status, is4k = false }: StatusBadgeMiniProps) => { break; case MediaStatus.AVAILABLE: badgeStyle.push('bg-green-500 ring-green-400'); - indicatorIcon = ; + indicatorIcon = ; break; case MediaStatus.PENDING: badgeStyle.push('bg-yellow-500 ring-yellow-400'); @@ -30,7 +26,7 @@ const StatusBadgeMini = ({ status, is4k = false }: StatusBadgeMiniProps) => { break; case MediaStatus.PARTIALLY_AVAILABLE: badgeStyle.push('bg-green-500 ring-green-400'); - indicatorIcon = ; + indicatorIcon = ; break; } diff --git a/src/components/Discover/MovieGenreSlider/index.tsx b/src/components/Discover/MovieGenreSlider/index.tsx index 4899d3496..b411a7d71 100644 --- a/src/components/Discover/MovieGenreSlider/index.tsx +++ b/src/components/Discover/MovieGenreSlider/index.tsx @@ -1,7 +1,7 @@ import { genreColorMap } from '@app/components/Discover/constants'; import GenreCard from '@app/components/GenreCard'; import Slider from '@app/components/Slider'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import React from 'react'; @@ -28,7 +28,7 @@ const MovieGenreSlider = () => { {intl.formatMessage(messages.moviegenres)} - +
diff --git a/src/components/Discover/PlexWatchlistSlider/index.tsx b/src/components/Discover/PlexWatchlistSlider/index.tsx index 02f4a47fe..76fba57ca 100644 --- a/src/components/Discover/PlexWatchlistSlider/index.tsx +++ b/src/components/Discover/PlexWatchlistSlider/index.tsx @@ -1,7 +1,7 @@ import Slider from '@app/components/Slider'; import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; import { UserType, useUser } from '@app/hooks/useUser'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -43,7 +43,7 @@ const PlexWatchlistSlider = () => { {intl.formatMessage(messages.plexwatchlist)} - +
diff --git a/src/components/Discover/RecentRequestsSlider/index.tsx b/src/components/Discover/RecentRequestsSlider/index.tsx index 30f5e19f3..96309d613 100644 --- a/src/components/Discover/RecentRequestsSlider/index.tsx +++ b/src/components/Discover/RecentRequestsSlider/index.tsx @@ -1,7 +1,7 @@ import { sliderTitles } from '@app/components/Discover/constants'; import RequestCard from '@app/components/RequestCard'; import Slider from '@app/components/Slider'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; import Link from 'next/link'; import { useIntl } from 'react-intl'; @@ -27,7 +27,7 @@ const RecentRequestsSlider = () => { {intl.formatMessage(sliderTitles.recentrequests)} - +
diff --git a/src/components/Discover/TvGenreSlider/index.tsx b/src/components/Discover/TvGenreSlider/index.tsx index 820012c32..f8c74195d 100644 --- a/src/components/Discover/TvGenreSlider/index.tsx +++ b/src/components/Discover/TvGenreSlider/index.tsx @@ -1,7 +1,7 @@ import { genreColorMap } from '@app/components/Discover/constants'; import GenreCard from '@app/components/GenreCard'; import Slider from '@app/components/Slider'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import React from 'react'; @@ -28,7 +28,7 @@ const TvGenreSlider = () => { {intl.formatMessage(messages.tvgenres)} - +
diff --git a/src/components/IssueBlock/index.tsx b/src/components/IssueBlock/index.tsx index c337c721c..d4cb9d0e0 100644 --- a/src/components/IssueBlock/index.tsx +++ b/src/components/IssueBlock/index.tsx @@ -3,10 +3,10 @@ import { issueOptions } from '@app/components/IssueModal/constants'; import { useUser } from '@app/hooks/useUser'; import { CalendarIcon, - ExclamationIcon, + ExclamationTriangleIcon, EyeIcon, UserIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; import type Issue from '@server/entity/Issue'; import Link from 'next/link'; import { useIntl } from 'react-intl'; @@ -31,7 +31,7 @@ const IssueBlock = ({ issue }: IssueBlockProps) => {
- + {intl.formatMessage(issueOption.name)} diff --git a/src/components/IssueDetails/IssueComment/index.tsx b/src/components/IssueDetails/IssueComment/index.tsx index b941c9f31..e1e265b0e 100644 --- a/src/components/IssueDetails/IssueComment/index.tsx +++ b/src/components/IssueDetails/IssueComment/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import Modal from '@app/components/Common/Modal'; import { Permission, useUser } from '@app/hooks/useUser'; import { Menu, Transition } from '@headlessui/react'; -import { DotsVerticalIcon } from '@heroicons/react/solid'; +import { EllipsisVerticalIcon } from '@heroicons/react/24/solid'; import type { default as IssueCommentType } from '@server/entity/IssueComment'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -104,7 +104,7 @@ const IssueComment = ({
Open options -
), instructionsPullToRefresh: ReactDOMServer.renderToString(
), diff --git a/src/components/RegionSelector/index.tsx b/src/components/RegionSelector/index.tsx index 5a714c742..d4ad76b56 100644 --- a/src/components/RegionSelector/index.tsx +++ b/src/components/RegionSelector/index.tsx @@ -1,6 +1,6 @@ import useSettings from '@app/hooks/useSettings'; import { Listbox, Transition } from '@headlessui/react'; -import { CheckIcon, ChevronDownIcon } from '@heroicons/react/solid'; +import { CheckIcon, ChevronDownIcon } from '@heroicons/react/24/solid'; import type { Region } from '@server/lib/settings'; import { hasFlag } from 'country-flag-icons'; import 'country-flag-icons/3x2/flags.css'; diff --git a/src/components/RequestBlock/index.tsx b/src/components/RequestBlock/index.tsx index e6a0c02bb..ca8cb5fa6 100644 --- a/src/components/RequestBlock/index.tsx +++ b/src/components/RequestBlock/index.tsx @@ -12,8 +12,8 @@ import { PencilIcon, TrashIcon, UserIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import axios from 'axios'; @@ -149,7 +149,7 @@ const RequestBlock = ({ request, onUpdate }: RequestBlockProps) => { onClick={() => updateRequest('decline')} disabled={isUpdating} > - + diff --git a/src/components/RequestButton/index.tsx b/src/components/RequestButton/index.tsx index f71589448..56e91810b 100644 --- a/src/components/RequestButton/index.tsx +++ b/src/components/RequestButton/index.tsx @@ -3,12 +3,12 @@ import RequestModal from '@app/components/RequestModal'; import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { DownloadIcon } from '@heroicons/react/outline'; +import { ArrowDownTrayIcon } from '@heroicons/react/24/outline'; import { CheckIcon, InformationCircleIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus, MediaStatus } from '@server/constants/media'; import type Media from '@server/entity/Media'; import type { MediaRequest } from '@server/entity/MediaRequest'; @@ -158,7 +158,7 @@ const RequestButton = ({ action: () => { modifyRequest(activeRequest, 'decline'); }, - svg: , + svg: , } ); } else if ( @@ -186,7 +186,7 @@ const RequestButton = ({ action: () => { modifyRequests(activeRequests, 'decline'); }, - svg: , + svg: , } ); } @@ -228,7 +228,7 @@ const RequestButton = ({ action: () => { modifyRequest(active4kRequest, 'decline'); }, - svg: , + svg: , } ); } else if ( @@ -256,7 +256,7 @@ const RequestButton = ({ action: () => { modifyRequests(active4kRequests, 'decline'); }, - svg: , + svg: , } ); } @@ -282,7 +282,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequestModal(true); }, - svg: , + svg: , }); } else if ( mediaType === 'tv' && @@ -301,7 +301,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequestModal(true); }, - svg: , + svg: , }); } @@ -327,7 +327,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequest4kModal(true); }, - svg: , + svg: , }); } else if ( mediaType === 'tv' && @@ -347,7 +347,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequest4kModal(true); }, - svg: , + svg: , }); } diff --git a/src/components/RequestCard/index.tsx b/src/components/RequestCard/index.tsx index 6efdb6a1f..a7a76beca 100644 --- a/src/components/RequestCard/index.tsx +++ b/src/components/RequestCard/index.tsx @@ -9,12 +9,12 @@ import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { withProperties } from '@app/utils/typeHelpers'; import { + ArrowPathIcon, CheckIcon, PencilIcon, - RefreshIcon, TrashIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import type { MovieDetails } from '@server/models/Movie'; @@ -441,7 +441,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { disabled={isRetrying} onClick={() => retryRequest()} > - @@ -483,7 +483,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="hidden sm:block" onClick={() => modifyRequest('decline')} > - + {intl.formatMessage(globalMessages.decline)} { className="sm:hidden" onClick={() => modifyRequest('decline')} > - +
@@ -540,7 +540,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="hidden sm:block" onClick={() => deleteRequest()} > - + {intl.formatMessage(globalMessages.cancel)} @@ -550,7 +550,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="sm:hidden" onClick={() => deleteRequest()} > - +
diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index 864ca7e4f..dbce03e54 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -8,12 +8,12 @@ import useDeepLinks from '@app/hooks/useDeepLinks'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { + ArrowPathIcon, CheckIcon, PencilIcon, - RefreshIcon, TrashIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import type { MovieDetails } from '@server/models/Movie'; @@ -601,7 +601,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { disabled={isRetrying} onClick={() => retryRequest()} > - @@ -642,7 +642,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { buttonType="danger" onClick={() => modifyRequest('decline')} > - + {intl.formatMessage(globalMessages.decline)} @@ -672,7 +672,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { confirmText={intl.formatMessage(globalMessages.areyousure)} className="w-full" > - + {intl.formatMessage(messages.cancelRequest)} )} diff --git a/src/components/RequestList/index.tsx b/src/components/RequestList/index.tsx index 0fa94d05d..bffd7c067 100644 --- a/src/components/RequestList/index.tsx +++ b/src/components/RequestList/index.tsx @@ -7,11 +7,11 @@ import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { + BarsArrowDownIcon, ChevronLeftIcon, ChevronRightIcon, - FilterIcon, - SortDescendingIcon, -} from '@heroicons/react/solid'; + FunnelIcon, +} from '@heroicons/react/24/solid'; import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; import Link from 'next/link'; import { useRouter } from 'next/router'; @@ -139,7 +139,7 @@ const RequestList = () => {
- + { type="submit" disabled={isSubmitting || !isValid} > - + {intl.formatMessage(messages.emailresetlink)} diff --git a/src/components/ResetPassword/index.tsx b/src/components/ResetPassword/index.tsx index dd6446424..4c8bcfa3a 100644 --- a/src/components/ResetPassword/index.tsx +++ b/src/components/ResetPassword/index.tsx @@ -3,7 +3,7 @@ import ImageFader from '@app/components/Common/ImageFader'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import LanguagePicker from '@app/components/Layout/LanguagePicker'; import globalMessages from '@app/i18n/globalMessages'; -import { SupportIcon } from '@heroicons/react/outline'; +import { LifebuoyIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import Link from 'next/link'; @@ -168,7 +168,7 @@ const ResetPassword = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/CopyButton.tsx b/src/components/Settings/CopyButton.tsx index da48fe5db..c50213d3b 100644 --- a/src/components/Settings/CopyButton.tsx +++ b/src/components/Settings/CopyButton.tsx @@ -1,4 +1,4 @@ -import { ClipboardCopyIcon } from '@heroicons/react/solid'; +import { ClipboardDocumentIcon } from '@heroicons/react/24/solid'; import { useEffect } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { useToasts } from 'react-toast-notifications'; @@ -32,7 +32,7 @@ const CopyButton = ({ textToCopy }: { textToCopy: string }) => { }} className="input-action" > - + ); }; diff --git a/src/components/Settings/LibraryItem.tsx b/src/components/Settings/LibraryItem.tsx index eba0de403..29a1030b2 100644 --- a/src/components/Settings/LibraryItem.tsx +++ b/src/components/Settings/LibraryItem.tsx @@ -1,4 +1,4 @@ -import { CheckIcon, XIcon } from '@heroicons/react/solid'; +import { CheckIcon, XMarkIcon } from '@heroicons/react/24/solid'; interface LibraryItemProps { isEnabled?: boolean; @@ -41,7 +41,7 @@ const LibraryItem = ({ isEnabled, name, onToggle }: LibraryItemProps) => { : 'opacity-100 duration-200 ease-in' } absolute inset-0 flex h-full w-full items-center justify-center transition-opacity`} > - + { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsEmail.tsx b/src/components/Settings/Notifications/NotificationsEmail.tsx index 242c0b859..46d10d6cc 100644 --- a/src/components/Settings/Notifications/NotificationsEmail.tsx +++ b/src/components/Settings/Notifications/NotificationsEmail.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import SettingsBadge from '@app/components/Settings/SettingsBadge'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -460,7 +460,7 @@ const NotificationsEmail = () => { type="submit" disabled={isSubmitting || !isValid || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsGotify/index.tsx b/src/components/Settings/Notifications/NotificationsGotify/index.tsx index 77fb21b8d..390d2ed94 100644 --- a/src/components/Settings/Notifications/NotificationsGotify/index.tsx +++ b/src/components/Settings/Notifications/NotificationsGotify/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/solid'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/solid'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -242,7 +242,7 @@ const NotificationsGotify = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx b/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx index 116363252..390cac3d2 100644 --- a/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx +++ b/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -247,7 +247,7 @@ const NotificationsLunaSea = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx b/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx index bf6a5956e..00cd179ae 100644 --- a/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx +++ b/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -239,7 +239,7 @@ const NotificationsPushbullet = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsPushover/index.tsx b/src/components/Settings/Notifications/NotificationsPushover/index.tsx index d2e90ac9c..93e4a285b 100644 --- a/src/components/Settings/Notifications/NotificationsPushover/index.tsx +++ b/src/components/Settings/Notifications/NotificationsPushover/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -272,7 +272,7 @@ const NotificationsPushover = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsSlack/index.tsx b/src/components/Settings/Notifications/NotificationsSlack/index.tsx index 09c634437..ac31d3c1a 100644 --- a/src/components/Settings/Notifications/NotificationsSlack/index.tsx +++ b/src/components/Settings/Notifications/NotificationsSlack/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -225,7 +225,7 @@ const NotificationsSlack = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsTelegram.tsx b/src/components/Settings/Notifications/NotificationsTelegram.tsx index 1959604e3..690731e6e 100644 --- a/src/components/Settings/Notifications/NotificationsTelegram.tsx +++ b/src/components/Settings/Notifications/NotificationsTelegram.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -321,7 +321,7 @@ const NotificationsTelegram = () => { type="submit" disabled={isSubmitting || !isValid || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsWebPush/index.tsx b/src/components/Settings/Notifications/NotificationsWebPush/index.tsx index 0f56c0c94..5ff7ebf5f 100644 --- a/src/components/Settings/Notifications/NotificationsWebPush/index.tsx +++ b/src/components/Settings/Notifications/NotificationsWebPush/index.tsx @@ -2,7 +2,7 @@ import Alert from '@app/components/Common/Alert'; import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useEffect, useState } from 'react'; @@ -149,7 +149,7 @@ const NotificationsWebPush = () => { type="submit" disabled={isSubmitting || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsWebhook/index.tsx b/src/components/Settings/Notifications/NotificationsWebhook/index.tsx index 375d869c8..14f1e672e 100644 --- a/src/components/Settings/Notifications/NotificationsWebhook/index.tsx +++ b/src/components/Settings/Notifications/NotificationsWebhook/index.tsx @@ -2,8 +2,11 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; -import { QuestionMarkCircleIcon, RefreshIcon } from '@heroicons/react/solid'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; +import { + ArrowPathIcon, + QuestionMarkCircleIcon, +} from '@heroicons/react/24/solid'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import dynamic from 'next/dynamic'; @@ -291,7 +294,7 @@ const NotificationsWebhook = () => { }} className="mr-2" > - + {intl.formatMessage(messages.resetPayload)} { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/SettingsAbout/Releases/index.tsx b/src/components/Settings/SettingsAbout/Releases/index.tsx index 601d4f449..93ffd6def 100644 --- a/src/components/Settings/SettingsAbout/Releases/index.tsx +++ b/src/components/Settings/SettingsAbout/Releases/index.tsx @@ -4,7 +4,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import Modal from '@app/components/Common/Modal'; import globalMessages from '@app/i18n/globalMessages'; import { Transition } from '@headlessui/react'; -import { DocumentTextIcon } from '@heroicons/react/outline'; +import { DocumentTextIcon } from '@heroicons/react/24/outline'; import dynamic from 'next/dynamic'; import { Fragment, useState } from 'react'; import { defineMessages, FormattedRelativeTime, useIntl } from 'react-intl'; diff --git a/src/components/Settings/SettingsAbout/index.tsx b/src/components/Settings/SettingsAbout/index.tsx index 1d3f05663..5c2a17ddd 100644 --- a/src/components/Settings/SettingsAbout/index.tsx +++ b/src/components/Settings/SettingsAbout/index.tsx @@ -6,7 +6,7 @@ import PageTitle from '@app/components/Common/PageTitle'; import Releases from '@app/components/Settings/SettingsAbout/Releases'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { InformationCircleIcon } from '@heroicons/react/solid'; +import { InformationCircleIcon } from '@heroicons/react/24/solid'; import type { SettingsAboutResponse, StatusResponse, diff --git a/src/components/Settings/SettingsJobsCache/index.tsx b/src/components/Settings/SettingsJobsCache/index.tsx index 2600115bc..cd9856195 100644 --- a/src/components/Settings/SettingsJobsCache/index.tsx +++ b/src/components/Settings/SettingsJobsCache/index.tsx @@ -9,8 +9,8 @@ import useLocale from '@app/hooks/useLocale'; import globalMessages from '@app/i18n/globalMessages'; import { formatBytes } from '@app/utils/numberHelpers'; import { Transition } from '@headlessui/react'; -import { PlayIcon, StopIcon, TrashIcon } from '@heroicons/react/outline'; -import { PencilIcon } from '@heroicons/react/solid'; +import { PlayIcon, StopIcon, TrashIcon } from '@heroicons/react/24/outline'; +import { PencilIcon } from '@heroicons/react/24/solid'; import type { CacheItem, CacheResponse, diff --git a/src/components/Settings/SettingsLogs/index.tsx b/src/components/Settings/SettingsLogs/index.tsx index fbf5d5e03..4b559e621 100644 --- a/src/components/Settings/SettingsLogs/index.tsx +++ b/src/components/Settings/SettingsLogs/index.tsx @@ -13,13 +13,13 @@ import { Transition } from '@headlessui/react'; import { ChevronLeftIcon, ChevronRightIcon, - ClipboardCopyIcon, - DocumentSearchIcon, - FilterIcon, + ClipboardDocumentIcon, + DocumentMagnifyingGlassIcon, + FunnelIcon, + MagnifyingGlassIcon, PauseIcon, PlayIcon, - SearchIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; import type { LogMessage, LogsResultsResponse, @@ -252,7 +252,7 @@ const SettingsLogs = () => {
- + {
- + { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx index 121018fcc..841e5f77f 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -156,7 +156,7 @@ const UserNotificationsDiscord = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx index 942ea707d..137c7f65c 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx @@ -8,7 +8,7 @@ import { OpenPgpLink } from '@app/components/Settings/Notifications/Notification import SettingsBadge from '@app/components/Settings/SettingsBadge'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Form, Formik } from 'formik'; @@ -151,7 +151,7 @@ const UserEmailSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx index 5f665fa60..94109713e 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -185,7 +185,7 @@ const UserTelegramSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx index 80a0ec72b..2c940d292 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx @@ -5,7 +5,7 @@ import NotificationTypeSelector, { } from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Form, Formik } from 'formik'; @@ -103,7 +103,7 @@ const UserWebPushSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx index 97f123699..b93c6da6c 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx @@ -9,7 +9,7 @@ import SettingsTabs from '@app/components/Common/SettingsTabs'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { CloudIcon, MailIcon } from '@heroicons/react/solid'; +import { CloudIcon, EnvelopeIcon } from '@heroicons/react/24/solid'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import { useRouter } from 'next/router'; import { defineMessages, useIntl } from 'react-intl'; @@ -41,7 +41,7 @@ const UserNotificationSettings = ({ text: intl.formatMessage(messages.email), content: ( - + {intl.formatMessage(messages.email)} ), diff --git a/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx b/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx index aea79f72d..bf65e8440 100644 --- a/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx +++ b/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx @@ -6,7 +6,7 @@ import SensitiveInput from '@app/components/Common/SensitiveInput'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import { useRouter } from 'next/router'; @@ -233,7 +233,7 @@ const UserPasswordChange = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserPermissions/index.tsx b/src/components/UserProfile/UserSettings/UserPermissions/index.tsx index 84b671b5f..889edaf75 100644 --- a/src/components/UserProfile/UserSettings/UserPermissions/index.tsx +++ b/src/components/UserProfile/UserSettings/UserPermissions/index.tsx @@ -6,7 +6,7 @@ import PermissionEdit from '@app/components/PermissionEdit'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import { useRouter } from 'next/router'; @@ -120,7 +120,7 @@ const UserPermissions = () => { type="submit" disabled={isSubmitting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/index.tsx b/src/components/UserProfile/index.tsx index c8bf3b2a6..bb0f7504e 100644 --- a/src/components/UserProfile/index.tsx +++ b/src/components/UserProfile/index.tsx @@ -8,7 +8,7 @@ import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; import ProfileHeader from '@app/components/UserProfile/ProfileHeader'; import { Permission, UserType, useUser } from '@app/hooks/useUser'; import Error from '@app/pages/_error'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { WatchlistResponse } from '@server/interfaces/api/discoverInterfaces'; import type { QuotaResponse, @@ -291,7 +291,7 @@ const UserProfile = () => { > {intl.formatMessage(messages.recentrequests)} - +
@@ -332,7 +332,7 @@ const UserProfile = () => { > {intl.formatMessage(messages.plexwatchlist)} - +
diff --git a/src/pages/404.tsx b/src/pages/404.tsx index 3df55fc1b..0b0a059f1 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -1,5 +1,5 @@ import PageTitle from '@app/components/Common/PageTitle'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -24,7 +24,7 @@ const Custom404 = () => { {intl.formatMessage(messages.returnHome)} - +
diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx index 2d5102c49..66d85fdbf 100644 --- a/src/pages/_error.tsx +++ b/src/pages/_error.tsx @@ -1,6 +1,6 @@ import PageTitle from '@app/components/Common/PageTitle'; import type { Undefinable } from '@app/utils/typeHelpers'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { NextPage } from 'next'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -47,7 +47,7 @@ const Error: NextPage = ({ statusCode }) => { {intl.formatMessage(messages.returnHome)} - +
diff --git a/yarn.lock b/yarn.lock index 0f671095f..7faef2d0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1598,10 +1598,10 @@ dependencies: client-only "^0.0.1" -"@heroicons/react@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324" - integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ== +"@heroicons/react@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.13.tgz#9b1cc54ff77d6625c9565efdce0054a4bcd9074c" + integrity sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" From 93afead92e497f2e5bce67a34fffdaa08d20c7f2 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Wed, 4 Jan 2023 10:42:30 +0900 Subject: [PATCH 13/65] fix: convert genre/studio to string in create slider (#3201) * fix: convert genre/studio to string in create slider * fix: fix typo in variable name for i18n message --- .../DiscoverCustomization/CreateSlider/index.tsx | 12 ++++++------ src/i18n/locale/en.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx index a2d0fdd2e..49ab90cd8 100644 --- a/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx +++ b/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx @@ -33,7 +33,7 @@ const messages = defineMessages({ validationTitlerequired: 'You must provide a title.', addcustomslider: 'Add Custom Slider', searchKeywords: 'Search keywords…', - seachGenres: 'Search genres…', + searchGenres: 'Search genres…', searchStudios: 'Search studios…', starttyping: 'Starting typing to search.', nooptions: 'No results.', @@ -254,9 +254,9 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { defaultOptions cacheOptions loadOptions={loadMovieGenreOptions} - placeholder={intl.formatMessage(messages.seachGenres)} + placeholder={intl.formatMessage(messages.searchGenres)} onChange={(value) => { - setFieldValue('data', value?.value); + setFieldValue('data', value?.value.toString()); }} /> ); @@ -270,9 +270,9 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { defaultOptions cacheOptions loadOptions={loadTvGenreOptions} - placeholder={intl.formatMessage(messages.seachGenres)} + placeholder={intl.formatMessage(messages.searchGenres)} onChange={(value) => { - setFieldValue('data', value?.value); + setFieldValue('data', value?.value.toString()); }} /> ); @@ -288,7 +288,7 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { loadOptions={loadCompanyOptions} placeholder={intl.formatMessage(messages.searchStudios)} onChange={(value) => { - setFieldValue('data', value?.value); + setFieldValue('data', value?.value.toString()); }} /> ); diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 14a680f69..d773f17e9 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -715,7 +715,7 @@ "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbnetwork": "Provide TMDB Network ID", "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbsearch": "Provide a search query", "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbstudio": "Provide TMDB Studio ID", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.seachGenres": "Search genres…", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchGenres": "Search genres…", "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchKeywords": "Search keywords…", "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchStudios": "Search studios…", "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.slidernameplaceholder": "Slider Name", From edf50106590b0f8dd19663ebfd42ff06faf7181a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 10:43:02 +0900 Subject: [PATCH 14/65] chore(deps): update dependency cypress to v12 (#3197) [skip ci] Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 2bd8143ae..8c64ab75d 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,7 @@ "commitizen": "4.2.6", "copyfiles": "2.4.1", "cy-mobile-commands": "0.3.0", - "cypress": "10.11.0", + "cypress": "12.3.0", "cz-conventional-changelog": "3.3.0", "eslint": "8.31.0", "eslint-config-next": "12.3.4", diff --git a/yarn.lock b/yarn.lock index 7faef2d0b..b6b479726 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5671,10 +5671,10 @@ cy-mobile-commands@0.3.0: resolved "https://registry.yarnpkg.com/cy-mobile-commands/-/cy-mobile-commands-0.3.0.tgz#2bf242093149154d846b755977da197b4730429e" integrity sha512-Bj5P2ylw88hPqolLu68xWB6euVH5uNt8zyh+Ju8sBukGv39mWZxpjp6LtnUX/LK/YMthwvILYHhvr9SG1TP+4w== -cypress@10.11.0: - version "10.11.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.11.0.tgz#e9fbdd7638bae3d8fb7619fd75a6330d11ebb4e8" - integrity sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA== +cypress@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.3.0.tgz#ae3fb0540aef4b5eab1ef2bcd0760caf2992b8bf" + integrity sha512-ZQNebibi6NBt51TRxRMYKeFvIiQZ01t50HSy7z/JMgRVqBUey3cdjog5MYEbzG6Ktti5ckDt1tfcC47lmFwXkw== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" From e084649878a58c296786141d12dd69a69a27ee85 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Wed, 4 Jan 2023 14:19:51 +0900 Subject: [PATCH 15/65] feat: add keywords to movie/series detail pages (#3204) --- server/api/themoviedb/index.ts | 2 +- server/api/themoviedb/interfaces.ts | 3 +++ server/models/Movie.ts | 6 ++++++ src/components/Common/Tag/index.tsx | 16 ++++++++++++++++ src/components/MovieDetails/index.tsx | 15 +++++++++++++++ src/components/TvDetails/index.tsx | 15 +++++++++++++++ 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/components/Common/Tag/index.tsx diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index bcfc06bb3..b6421edd5 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -242,7 +242,7 @@ class TheMovieDb extends ExternalAPI { params: { language, append_to_response: - 'credits,external_ids,videos,release_dates,watch/providers', + 'credits,external_ids,videos,keywords,release_dates,watch/providers', }, }, 43200 diff --git a/server/api/themoviedb/interfaces.ts b/server/api/themoviedb/interfaces.ts index a35154167..9a07d7697 100644 --- a/server/api/themoviedb/interfaces.ts +++ b/server/api/themoviedb/interfaces.ts @@ -171,6 +171,9 @@ export interface TmdbMovieDetails { id: number; results?: { [iso_3166_1: string]: TmdbWatchProviders }; }; + keywords: { + keywords: TmdbKeyword[]; + }; } export interface TmdbVideo { diff --git a/server/models/Movie.ts b/server/models/Movie.ts index 3c4686b2c..19f812dd1 100644 --- a/server/models/Movie.ts +++ b/server/models/Movie.ts @@ -9,6 +9,7 @@ import type { Crew, ExternalIds, Genre, + Keyword, ProductionCompany, WatchProviders, } from './common'; @@ -83,6 +84,7 @@ export interface MovieDetails { externalIds: ExternalIds; plexUrl?: string; watchProviders?: WatchProviders[]; + keywords: Keyword[]; } export const mapProductionCompany = ( @@ -142,4 +144,8 @@ export const mapMovieDetails = ( externalIds: mapExternalIds(movie.external_ids), mediaInfo: media, watchProviders: mapWatchProviders(movie['watch/providers']?.results ?? {}), + keywords: movie.keywords.keywords.map((keyword) => ({ + id: keyword.id, + name: keyword.name, + })), }); diff --git a/src/components/Common/Tag/index.tsx b/src/components/Common/Tag/index.tsx new file mode 100644 index 000000000..9a24c149a --- /dev/null +++ b/src/components/Common/Tag/index.tsx @@ -0,0 +1,16 @@ +import { TagIcon } from '@heroicons/react/24/outline'; + +type TagProps = { + content: string; +}; + +const Tag = ({ content }: TagProps) => { + return ( +
+ + {content} +
+ ); +}; + +export default Tag; diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index 787d81560..b91c7a2a6 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -9,6 +9,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import PageTitle from '@app/components/Common/PageTitle'; import type { PlayButtonLink } from '@app/components/Common/PlayButton'; import PlayButton from '@app/components/Common/PlayButton'; +import Tag from '@app/components/Common/Tag'; import Tooltip from '@app/components/Common/Tooltip'; import ExternalLinkBlock from '@app/components/ExternalLinkBlock'; import IssueModal from '@app/components/IssueModal'; @@ -453,6 +454,20 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => {
)} + {data.keywords.length > 0 && ( +
+ {data.keywords.map((keyword) => ( + + + + + + ))} +
+ )}
{data.collection && ( diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 8e26be4bd..e6b334afd 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -11,6 +11,7 @@ import PageTitle from '@app/components/Common/PageTitle'; import type { PlayButtonLink } from '@app/components/Common/PlayButton'; import PlayButton from '@app/components/Common/PlayButton'; import StatusBadgeMini from '@app/components/Common/StatusBadgeMini'; +import Tag from '@app/components/Common/Tag'; import Tooltip from '@app/components/Common/Tooltip'; import ExternalLinkBlock from '@app/components/ExternalLinkBlock'; import IssueModal from '@app/components/IssueModal'; @@ -482,6 +483,20 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
)} + {data.keywords.length > 0 && ( +
+ {data.keywords.map((keyword) => ( + + + + + + ))} +
+ )}

{intl.formatMessage(messages.seasonstitle)}

{data.seasons From 2179637d437999290eaa4152f6f37c71fc3d8ba3 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Wed, 4 Jan 2023 00:48:21 -0500 Subject: [PATCH 16/65] fix: series displayed an empty season with series list/request modal (#3147) * fix: series would show an empty season on season list or tv request modal * fix: request more would show even if all requestable seasons are already requested * fix: will check if request or season length is longer --- .../RequestModal/TvRequestModal.tsx | 9 ++- src/components/TvDetails/index.tsx | 56 ++++++++++++------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/components/RequestModal/TvRequestModal.tsx b/src/components/RequestModal/TvRequestModal.tsx index bd4ca37d9..4a6b25b86 100644 --- a/src/components/RequestModal/TvRequestModal.tsx +++ b/src/components/RequestModal/TvRequestModal.tsx @@ -232,7 +232,9 @@ const TvRequestModal = ({ const getAllSeasons = (): number[] => { return (data?.seasons ?? []) - .filter((season) => season.seasonNumber !== 0) + .filter( + (season) => season.seasonNumber !== 0 && season.episodeCount !== 0 + ) .map((season) => season.seasonNumber); }; @@ -555,7 +557,10 @@ const TvRequestModal = ({ {data?.seasons - .filter((season) => season.seasonNumber !== 0) + .filter( + (season) => + season.seasonNumber !== 0 && season.episodeCount !== 0 + ) .map((season) => { const seasonRequest = getSeasonRequest( season.seasonNumber diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index e6b334afd..47d549bf2 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -38,7 +38,7 @@ import { FilmIcon, PlayIcon, } from '@heroicons/react/24/outline'; -import { ChevronUpIcon } from '@heroicons/react/24/solid'; +import { ChevronDownIcon } from '@heroicons/react/24/solid'; import type { RTRating } from '@server/api/rottentomatoes'; import { ANIME_KEYWORD_ID } from '@server/api/themoviedb/constants'; import { IssueStatus } from '@server/constants/issue'; @@ -193,7 +193,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => { } const seasonCount = data.seasons.filter( - (season) => season.seasonNumber !== 0 + (season) => season.seasonNumber !== 0 && season.episodeCount !== 0 ).length; if (seasonCount) { @@ -221,25 +221,37 @@ const TvDetails = ({ tv }: TvDetailsProps) => { ); } - const isComplete = - seasonCount <= - ( - data.mediaInfo?.seasons.filter( - (season) => - season.status === MediaStatus.AVAILABLE || - season.status === MediaStatus.PARTIALLY_AVAILABLE - ) ?? [] - ).length; + const getAllRequestedSeasons = (is4k: boolean): number[] => { + const requestedSeasons = (data?.mediaInfo?.requests ?? []) + .filter( + (request) => + request.is4k === is4k && + request.status !== MediaRequestStatus.DECLINED + ) + .reduce((requestedSeasons, request) => { + return [ + ...requestedSeasons, + ...request.seasons.map((sr) => sr.seasonNumber), + ]; + }, [] as number[]); - const is4kComplete = - seasonCount <= - ( - data.mediaInfo?.seasons.filter( + const availableSeasons = (data?.mediaInfo?.seasons ?? []) + .filter( (season) => - season.status4k === MediaStatus.AVAILABLE || - season.status4k === MediaStatus.PARTIALLY_AVAILABLE - ) ?? [] - ).length; + (season[is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE || + season[is4k ? 'status4k' : 'status'] === + MediaStatus.PARTIALLY_AVAILABLE || + season[is4k ? 'status4k' : 'status'] === MediaStatus.PROCESSING) && + !requestedSeasons.includes(season.seasonNumber) + ) + .map((season) => season.seasonNumber); + + return [...requestedSeasons, ...availableSeasons]; + }; + + const isComplete = seasonCount <= getAllRequestedSeasons(false).length; + + const is4kComplete = seasonCount <= getAllRequestedSeasons(true).length; const streamingProviders = data?.watchProviders?.find((provider) => provider.iso_3166_1 === region) @@ -539,6 +551,10 @@ const TvDetails = ({ tv }: TvDetailsProps) => { ) && r.is4k ); + if (season.episodeCount === 0) { + return null; + } + return ( {({ open }) => ( @@ -709,7 +725,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
)} - Date: Wed, 4 Jan 2023 16:40:21 +0900 Subject: [PATCH 17/65] refactor: update titlecard to use StatusBadgeMini (#3205) --- .../Common/StatusBadgeMini/index.tsx | 22 +++++++++---- src/components/TitleCard/index.tsx | 33 +++++-------------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/components/Common/StatusBadgeMini/index.tsx b/src/components/Common/StatusBadgeMini/index.tsx index 9404a93cb..0071126c6 100644 --- a/src/components/Common/StatusBadgeMini/index.tsx +++ b/src/components/Common/StatusBadgeMini/index.tsx @@ -1,3 +1,4 @@ +import Spinner from '@app/assets/spinner.svg'; import { CheckCircleIcon } from '@heroicons/react/20/solid'; import { BellIcon, ClockIcon, MinusSmallIcon } from '@heroicons/react/24/solid'; import { MediaStatus } from '@server/constants/media'; @@ -5,31 +6,40 @@ import { MediaStatus } from '@server/constants/media'; interface StatusBadgeMiniProps { status: MediaStatus; is4k?: boolean; + inProgress?: boolean; } -const StatusBadgeMini = ({ status, is4k = false }: StatusBadgeMiniProps) => { - const badgeStyle = ['w-5 rounded-full p-0.5 text-white ring-1']; +const StatusBadgeMini = ({ + status, + is4k = false, + inProgress = false, +}: StatusBadgeMiniProps) => { + const badgeStyle = ['w-5 rounded-full p-0.5 ring-1 bg-opacity-80']; let indicatorIcon: React.ReactNode; switch (status) { case MediaStatus.PROCESSING: - badgeStyle.push('bg-indigo-500 ring-indigo-400'); + badgeStyle.push('bg-indigo-500 ring-indigo-400 text-indigo-100'); indicatorIcon = ; break; case MediaStatus.AVAILABLE: - badgeStyle.push('bg-green-500 ring-green-400'); + badgeStyle.push('bg-green-500 ring-green-400 text-green-100'); indicatorIcon = ; break; case MediaStatus.PENDING: - badgeStyle.push('bg-yellow-500 ring-yellow-400'); + badgeStyle.push('bg-yellow-500 ring-yellow-400 text-yellow-100'); indicatorIcon = ; break; case MediaStatus.PARTIALLY_AVAILABLE: - badgeStyle.push('bg-green-500 ring-green-400'); + badgeStyle.push('bg-green-500 ring-green-400 text-green-100'); indicatorIcon = ; break; } + if (inProgress) { + indicatorIcon = ; + } + return (
{indicatorIcon}
diff --git a/src/components/TitleCard/index.tsx b/src/components/TitleCard/index.tsx index f9a0faecc..6f15bc0ae 100644 --- a/src/components/TitleCard/index.tsx +++ b/src/components/TitleCard/index.tsx @@ -1,6 +1,7 @@ import Spinner from '@app/assets/spinner.svg'; import Button from '@app/components/Common/Button'; import CachedImage from '@app/components/Common/CachedImage'; +import StatusBadgeMini from '@app/components/Common/StatusBadgeMini'; import RequestModal from '@app/components/RequestModal'; import ErrorCard from '@app/components/TitleCard/ErrorCard'; import Placeholder from '@app/components/TitleCard/Placeholder'; @@ -9,9 +10,7 @@ import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { withProperties } from '@app/utils/typeHelpers'; import { Transition } from '@headlessui/react'; -import { CheckCircleIcon } from '@heroicons/react/20/solid'; import { ArrowDownTrayIcon } from '@heroicons/react/24/outline'; -import { BellIcon, ClockIcon } from '@heroicons/react/24/solid'; import { MediaStatus } from '@server/constants/media'; import type { MediaType } from '@server/models/Search'; import Link from 'next/link'; @@ -142,28 +141,14 @@ const TitleCard = ({ : intl.formatMessage(globalMessages.tvshow)}
-
- {(currentStatus === MediaStatus.AVAILABLE || - currentStatus === MediaStatus.PARTIALLY_AVAILABLE) && ( -
- -
- )} - {currentStatus === MediaStatus.PENDING && ( -
- -
- )} - {currentStatus === MediaStatus.PROCESSING && ( -
- {inProgress ? ( - - ) : ( - - )} -
- )} -
+ {currentStatus && ( +
+ +
+ )}
Date: Wed, 4 Jan 2023 17:29:48 +0900 Subject: [PATCH 18/65] fix: restore status badges on titles on actors page when hide available media enabled (#3206) --- server/routes/person.ts | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/server/routes/person.ts b/server/routes/person.ts index 009d62af7..7f5d62236 100644 --- a/server/routes/person.ts +++ b/server/routes/person.ts @@ -1,7 +1,5 @@ import TheMovieDb from '@server/api/themoviedb'; -import { MediaStatus } from '@server/constants/media'; import Media from '@server/entity/Media'; -import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { mapCastCredits, @@ -36,7 +34,6 @@ personRoutes.get('/:id', async (req, res, next) => { personRoutes.get('/:id/combined_credits', async (req, res, next) => { const tmdb = new TheMovieDb(); - const settings = getSettings(); try { const combinedCredits = await tmdb.getPersonCombinedCredits({ @@ -44,30 +41,14 @@ personRoutes.get('/:id/combined_credits', async (req, res, next) => { language: req.locale ?? (req.query.language as string), }); - let castMedia = await Media.getRelatedMedia( + const castMedia = await Media.getRelatedMedia( combinedCredits.cast.map((result) => result.id) ); - let crewMedia = await Media.getRelatedMedia( + const crewMedia = await Media.getRelatedMedia( combinedCredits.crew.map((result) => result.id) ); - if (settings.main.hideAvailable) { - castMedia = castMedia.filter( - (media) => - (media.mediaType === 'movie' || media.mediaType === 'tv') && - media.status !== MediaStatus.AVAILABLE && - media.status !== MediaStatus.PARTIALLY_AVAILABLE - ); - - crewMedia = crewMedia.filter( - (media) => - (media.mediaType === 'movie' || media.mediaType === 'tv') && - media.status !== MediaStatus.AVAILABLE && - media.status !== MediaStatus.PARTIALLY_AVAILABLE - ); - } - return res.status(200).json({ cast: combinedCredits.cast .map((result) => From 5ce59cc2eed3a39f933d318cb74eb041a2565fd4 Mon Sep 17 00:00:00 2001 From: Fallenbagel <98979876+Fallenbagel@users.noreply.github.com> Date: Thu, 5 Jan 2023 03:45:57 +0500 Subject: [PATCH 19/65] Revert to develop version [skip ci] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 49212b77b..4616ece9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jellyseerr", - "version": "1.3.0", + "version": "0.1.0", "private": true, "scripts": { "dev": "nodemon -e ts --watch server --watch overseerr-api.yml -e .json,.ts,.yml -x ts-node -r tsconfig-paths/register --files --project server/tsconfig.json server/index.ts", From 4e9be7a3f7304ee7be5ee6fd34b1ea8f6c0cf399 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Thu, 5 Jan 2023 10:30:05 +0900 Subject: [PATCH 20/65] fix: correct link to correct keyword results for series (#3208) --- src/components/TvDetails/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 47d549bf2..f704b8e39 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -499,7 +499,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
{data.keywords.map((keyword) => ( From 421029ebab66c9a6622ba47e56d7f6473524cce4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 11:05:46 +0900 Subject: [PATCH 21/65] fix(deps): update dependency axios to v1 (#3202) * fix(deps): update dependency axios to v1 * fix: deal with possibly undefined headers from axios Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sct --- package.json | 2 +- server/lib/imageproxy.ts | 6 ++++-- yarn.lock | 18 ++++++++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 8c64ab75d..c19abf865 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@svgr/webpack": "6.5.1", "@tanem/react-nprogress": "5.0.22", "ace-builds": "1.14.0", - "axios": "0.27.2", + "axios": "1.2.2", "axios-rate-limit": "1.3.0", "bcrypt": "5.1.0", "bowser": "2.11.0", diff --git a/server/lib/imageproxy.ts b/server/lib/imageproxy.ts index 34a097d5f..4ba6b97a7 100644 --- a/server/lib/imageproxy.ts +++ b/server/lib/imageproxy.ts @@ -192,9 +192,11 @@ class ImageProxy { const buffer = Buffer.from(response.data, 'binary'); const extension = path.split('.').pop() ?? ''; - const maxAge = Number(response.headers['cache-control'].split('=')[1]); + const maxAge = Number( + (response.headers['cache-control'] ?? '0').split('=')[1] + ); const expireAt = Date.now() + maxAge * 1000; - const etag = response.headers.etag.replace(/"/g, ''); + const etag = (response.headers.etag ?? '').replace(/"/g, ''); await this.writeToCacheDir( directory, diff --git a/yarn.lock b/yarn.lock index b6b479726..40727cd75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4483,13 +4483,14 @@ axios-rate-limit@1.3.0: resolved "https://registry.yarnpkg.com/axios-rate-limit/-/axios-rate-limit-1.3.0.tgz#03241d24c231c47432dab6e8234cfde819253c2e" integrity sha512-cKR5wTbU/CeeyF1xVl5hl6FlYsmzDVqxlN4rGtfO5x7J83UxKDckudsW0yW21/ZJRcO0Qrfm3fUFbhEbWTLayw== -axios@0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" + integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@^2.2.0: version "2.2.0" @@ -6945,7 +6946,7 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.14.9: +follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -10805,6 +10806,11 @@ proxy-from-env@1.0.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + psl@^1.1.28: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" From 042a1a950fdd4d4a61edf4bc19657f9b7a526da8 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Thu, 5 Jan 2023 12:09:08 +0900 Subject: [PATCH 22/65] fix: update StatusBadgeMini to shrink on title cards (and remove ring) (#3210) --- .../Common/StatusBadgeMini/index.tsx | 32 +++++++++++++++---- src/components/TitleCard/index.tsx | 5 +-- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/components/Common/StatusBadgeMini/index.tsx b/src/components/Common/StatusBadgeMini/index.tsx index 0071126c6..a7e24a378 100644 --- a/src/components/Common/StatusBadgeMini/index.tsx +++ b/src/components/Common/StatusBadgeMini/index.tsx @@ -7,31 +7,47 @@ interface StatusBadgeMiniProps { status: MediaStatus; is4k?: boolean; inProgress?: boolean; + // Should the badge shrink on mobile to a smaller size? (TitleCard) + shrink?: boolean; } const StatusBadgeMini = ({ status, is4k = false, inProgress = false, + shrink = false, }: StatusBadgeMiniProps) => { - const badgeStyle = ['w-5 rounded-full p-0.5 ring-1 bg-opacity-80']; + const badgeStyle = [ + `rounded-full bg-opacity-80 shadow-md ${ + shrink ? 'w-4 sm:w-5 border p-0' : 'w-5 ring-1 p-0.5' + }`, + ]; + let indicatorIcon: React.ReactNode; switch (status) { case MediaStatus.PROCESSING: - badgeStyle.push('bg-indigo-500 ring-indigo-400 text-indigo-100'); + badgeStyle.push( + 'bg-indigo-500 border-indigo-400 ring-indigo-400 text-indigo-100' + ); indicatorIcon = ; break; case MediaStatus.AVAILABLE: - badgeStyle.push('bg-green-500 ring-green-400 text-green-100'); + badgeStyle.push( + 'bg-green-500 border-green-400 ring-green-400 text-green-100' + ); indicatorIcon = ; break; case MediaStatus.PENDING: - badgeStyle.push('bg-yellow-500 ring-yellow-400 text-yellow-100'); + badgeStyle.push( + 'bg-yellow-500 border-yellow-400 ring-yellow-400 text-yellow-100' + ); indicatorIcon = ; break; case MediaStatus.PARTIALLY_AVAILABLE: - badgeStyle.push('bg-green-500 ring-green-400 text-green-100'); + badgeStyle.push( + 'bg-green-500 border-green-400 ring-green-400 text-green-100' + ); indicatorIcon = ; break; } @@ -41,7 +57,11 @@ const StatusBadgeMini = ({ } return ( -
+
{indicatorIcon}
{is4k && 4K}
diff --git a/src/components/TitleCard/index.tsx b/src/components/TitleCard/index.tsx index 6f15bc0ae..be5ad5fa8 100644 --- a/src/components/TitleCard/index.tsx +++ b/src/components/TitleCard/index.tsx @@ -129,7 +129,7 @@ const TitleCard = ({ />
{currentStatus && ( -
+
)} From 4de4a1a52cc97dcde983d9c3653147fd6e00a027 Mon Sep 17 00:00:00 2001 From: ceptonit Date: Thu, 5 Jan 2023 04:18:05 +0000 Subject: [PATCH 23/65] docs: removed 'available' from /request/{requestId}/{status} endpoint (#3098) [skip ci] --- overseerr-api.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/overseerr-api.yml b/overseerr-api.yml index fb4e91aff..9a6dc4457 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -1050,6 +1050,8 @@ components: nullable: true status: type: number + example: 0 + description: Availability of the media. 1 = `UNKNOWN`, 2 = `PENDING`, 3 = `PROCESSING`, 4 = `PARTIALLY_AVAILABLE`, 5 = `AVAILABLE` requests: type: array readOnly: true @@ -5021,7 +5023,7 @@ paths: required: true schema: type: string - enum: [pending, approve, decline, available] + enum: [approve, decline] responses: '200': description: Request status changed From 8220ea55ae243faba49622e83836c94496fbcba4 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 13:19:25 +0900 Subject: [PATCH 24/65] docs: add ceptonit as a contributor for doc (#3211) [skip ci] * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index faa3f7534..4edfe8a0d 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -755,6 +755,15 @@ "contributions": [ "doc" ] + }, + { + "login": "ceptonit", + "name": "ceptonit", + "avatar_url": "https://avatars.githubusercontent.com/u/12678743?v=4", + "profile": "https://github.com/ceptonit", + "contributions": [ + "doc" + ] } ], "badgeTemplate": "
\"All-orange.svg\"/>", diff --git a/README.md b/README.md index f2edc25a7..34c29ff86 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Translation status GitHub -All Contributors +All Contributors

@@ -179,6 +179,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d miknii
miknii

🌍 Mackenzie
Mackenzie

💻 soup
soup

📖 + ceptonit
ceptonit

📖 From 7fef48df635de9b6212bb9d5adaee328d4c2924e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 13:25:24 +0900 Subject: [PATCH 25/65] chore(deps): update dependency lint-staged to v13 (#2931) [skip ci] Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 124 +++++++++++++++++++++++++++++++++++---------------- 2 files changed, 87 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index c19abf865..9d4d1ab60 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "eslint-plugin-react-hooks": "4.6.0", "extract-react-intl-messages": "4.1.1", "husky": "8.0.2", - "lint-staged": "12.5.0", + "lint-staged": "13.1.0", "nodemon": "2.0.20", "postcss": "8.4.20", "prettier": "2.8.1", diff --git a/yarn.lock b/yarn.lock index 40727cd75..7fa4fe10d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5209,7 +5209,7 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" -colorette@^2.0.16: +colorette@^2.0.16, colorette@^2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -5267,7 +5267,7 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^9.0.0, commander@^9.3.0: +commander@^9.0.0, commander@^9.4.1: version "9.4.1" resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== @@ -6601,7 +6601,7 @@ execa@^0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -6616,6 +6616,21 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -7157,7 +7172,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -7619,6 +7634,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -8056,6 +8076,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -8540,12 +8565,7 @@ libqp@2.0.1: resolved "https://registry.yarnpkg.com/libqp/-/libqp-2.0.1.tgz#b8fed76cc1ea6c9ceff8888169e4e0de70cd5cf2" integrity sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg== -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@2.0.6, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== @@ -8569,25 +8589,24 @@ linkify-it@4.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@12.5.0: - version "12.5.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.5.0.tgz#d6925747480ae0e380d13988522f9dd8ef9126e3" - integrity sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g== +lint-staged@13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" + integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.16" - commander "^9.3.0" + colorette "^2.0.19" + commander "^9.4.1" debug "^4.3.4" - execa "^5.1.1" - lilconfig "2.0.5" - listr2 "^4.0.5" + execa "^6.1.0" + lilconfig "2.0.6" + listr2 "^5.0.5" micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" - pidtree "^0.5.0" + pidtree "^0.6.0" string-argv "^0.3.1" - supports-color "^9.2.2" - yaml "^1.10.2" + yaml "^2.1.3" listr2@^3.8.3: version "3.14.0" @@ -8603,17 +8622,17 @@ listr2@^3.8.3: through "^2.3.8" wrap-ansi "^7.0.0" -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== +listr2@^5.0.5: + version "5.0.6" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" + integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== dependencies: cli-truncate "^2.1.0" - colorette "^2.0.16" + colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.5" + rxjs "^7.5.7" through "^2.3.8" wrap-ansi "^7.0.0" @@ -9362,6 +9381,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -9950,6 +9974,13 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + npm-user-validate@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" @@ -10169,6 +10200,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + ono@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/ono/-/ono-7.1.3.tgz#a054e96a388f566a6c4c95e1e92b9b253722d286" @@ -10497,6 +10535,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -10542,10 +10585,10 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" - integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -11635,7 +11678,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.1, rxjs@^7.5.5: +rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.5.7: version "7.8.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== @@ -12291,6 +12334,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -12346,11 +12394,6 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^9.2.2: - version "9.3.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.3.1.tgz#34e4ad3c71c9a39dae3254ecc46c9b74e89e15a6" - integrity sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q== - supports-hyperlinks@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" @@ -13393,6 +13436,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + yamljs@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" From 19b4dc424f0cd1da183b6f38ca977a10701e62eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 13:35:13 +0900 Subject: [PATCH 26/65] chore(deps): update all non-major dependencies (#3195) [skip ci] Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +- yarn.lock | 218 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 139 insertions(+), 85 deletions(-) diff --git a/package.json b/package.json index 9d4d1ab60..2ebcf182f 100644 --- a/package.json +++ b/package.json @@ -98,8 +98,8 @@ }, "devDependencies": { "@babel/cli": "7.20.7", - "@commitlint/cli": "17.3.0", - "@commitlint/config-conventional": "17.3.0", + "@commitlint/cli": "17.4.0", + "@commitlint/config-conventional": "17.4.0", "@semantic-release/changelog": "6.0.2", "@semantic-release/commit-analyzer": "9.0.2", "@semantic-release/exec": "6.0.3", @@ -149,7 +149,7 @@ "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", "extract-react-intl-messages": "4.1.1", - "husky": "8.0.2", + "husky": "8.0.3", "lint-staged": "13.1.0", "nodemon": "2.0.20", "postcss": "8.4.20", diff --git a/yarn.lock b/yarn.lock index 7fa4fe10d..22f41e8e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1026,26 +1026,26 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@commitlint/cli@17.3.0": - version "17.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.3.0.tgz#d8497f03e27a5161178e802168d77de2941959a0" - integrity sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg== +"@commitlint/cli@17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.0.tgz#14a5f9b713a5b60ff1a0cfce66b0bb207954c1ad" + integrity sha512-SEY4sYe8yVlgxPP7X0wJb96DBAGBPsCsy6QbqJt/UECbIAjDeDV5xXBV4jnS7T/qMC10sk6Ub9kDhEX0VWvblw== dependencies: - "@commitlint/format" "^17.0.0" - "@commitlint/lint" "^17.3.0" - "@commitlint/load" "^17.3.0" - "@commitlint/read" "^17.2.0" - "@commitlint/types" "^17.0.0" + "@commitlint/format" "^17.4.0" + "@commitlint/lint" "^17.4.0" + "@commitlint/load" "^17.4.0" + "@commitlint/read" "^17.4.0" + "@commitlint/types" "^17.4.0" execa "^5.0.0" lodash.isfunction "^3.0.9" resolve-from "5.0.0" resolve-global "1.0.0" yargs "^17.0.0" -"@commitlint/config-conventional@17.3.0": - version "17.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz#77bcfabfed932bc80e97f31f2201ba05f504e145" - integrity sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw== +"@commitlint/config-conventional@17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.0.tgz#9188d793886d8a1c633834602f06a642dd16ed64" + integrity sha512-G4XBf45J4ZMspO4NwBFzY3g/1Kb+B42BcIxeikF8wucQxcyxcmhRdjeQpRpS1XEcBq5pdtEEQFipuB9IuiNFhw== dependencies: conventional-changelog-conventionalcommits "^5.0.0" @@ -1057,12 +1057,20 @@ "@commitlint/types" "^17.0.0" ajv "^8.11.0" -"@commitlint/ensure@^17.3.0": - version "17.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.3.0.tgz#d7bb60291a254152b468ccb2be8c0dc79667247e" - integrity sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg== +"@commitlint/config-validator@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.0.tgz#2cb229672a22476cf1f21bedbfcd788e5da5b54f" + integrity sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA== dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/types" "^17.4.0" + ajv "^8.11.0" + +"@commitlint/ensure@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.0.tgz#3de65768bfccb9956ec3a0ecd8a415421bf315e5" + integrity sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw== + dependencies: + "@commitlint/types" "^17.4.0" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.snakecase "^4.1.1" @@ -1074,33 +1082,38 @@ resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz#186e9261fd36733922ae617497888c4bdb6e5c92" integrity sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ== -"@commitlint/format@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.0.0.tgz#2c991ac0df3955fe5d7d4d733967bd17e6cfd9e0" - integrity sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA== +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== + +"@commitlint/format@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.0.tgz#1c80cf3a6274ff9b3d3c0dd150a97882d557aa0f" + integrity sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA== dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/types" "^17.4.0" chalk "^4.1.0" -"@commitlint/is-ignored@^17.2.0": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.2.0.tgz#07c329396e2457fd37e8707f990c3a49731a168d" - integrity sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg== +"@commitlint/is-ignored@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.0.tgz#7c1f35db20c409783935b9305ad695f378287b31" + integrity sha512-mkRuBlPUaBimvSvJyIHEHEW1/jP1SqEI7NOoaO9/eyJkMbsaiv5b1QgDYL4ZXlHdS64RMV7Y21MVVzuIceImDA== dependencies: - "@commitlint/types" "^17.0.0" - semver "7.3.7" + "@commitlint/types" "^17.4.0" + semver "7.3.8" -"@commitlint/lint@^17.3.0": - version "17.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.3.0.tgz#16506deaa347d61bd1195b17df1c6809a553d2a0" - integrity sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw== +"@commitlint/lint@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.0.tgz#ba3554692d8e156db04085caa75eab9d46908449" + integrity sha512-HG2YT4TUbQKs9v8QvpQjJ6OK+fhflsDB8M+D5tLrY79hbQOWA9mDKdRkABsW/AAhpNI9+zeGUWF3jj245jSHKw== dependencies: - "@commitlint/is-ignored" "^17.2.0" - "@commitlint/parse" "^17.2.0" - "@commitlint/rules" "^17.3.0" - "@commitlint/types" "^17.0.0" + "@commitlint/is-ignored" "^17.4.0" + "@commitlint/parse" "^17.4.0" + "@commitlint/rules" "^17.4.0" + "@commitlint/types" "^17.4.0" -"@commitlint/load@>6.1.1", "@commitlint/load@^17.3.0": +"@commitlint/load@>6.1.1": version "17.3.0" resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.3.0.tgz#ebfec0198dd1627627e32a2b2ae4744d297599a8" integrity sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw== @@ -1120,28 +1133,47 @@ ts-node "^10.8.1" typescript "^4.6.4" -"@commitlint/message@^17.2.0": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.2.0.tgz#c546b7a441b9f69493257f9fe0c3c8fc37933b27" - integrity sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q== - -"@commitlint/parse@^17.2.0": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.2.0.tgz#d87b09436ec741c2267b76a41972b34e53459a81" - integrity sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q== +"@commitlint/load@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.0.tgz#d0136d38f3d533e706340efbccc2fb38ebb97538" + integrity sha512-wDKNvAJqukqZqKmhRlf3KNo/12QGo1AQcd80EbV01SxtGvyHOsJ/g+/IbrZpopZv8rvzmEVktcpfDYH6ITepFA== dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/config-validator" "^17.4.0" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.4.0" + "@commitlint/types" "^17.4.0" + chalk "^4.1.0" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + ts-node "^10.8.1" + typescript "^4.6.4" + +"@commitlint/message@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.0.tgz#40779163d1cd7946b081077e1ef7f831baa577e5" + integrity sha512-USGJDU9PPxcgQjKXCzvPUal65KAhxWq3hp+MrU1pNCN2itWM654CLIoY2LMIQ7rScTli9B5dTLH3vXhzbItmzA== + +"@commitlint/parse@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.0.tgz#bb2a78dcad9abd12a53a9d50387a45c5b86afcff" + integrity sha512-x8opKc5p+Hgs+CrMbq3VAnW2L2foPAX6arW8u9c8nTzksldGgFsENT+XVyPmpSMLlVBswZ1tndcz1xyKiY9TJA== + dependencies: + "@commitlint/types" "^17.4.0" conventional-changelog-angular "^5.0.11" conventional-commits-parser "^3.2.2" -"@commitlint/read@^17.2.0": - version "17.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.2.0.tgz#7a67b7b611d978a344c2430cba030252c2170723" - integrity sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ== +"@commitlint/read@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.0.tgz#946def0be19a2af8fd1d09cd7ad7f33b3c30b610" + integrity sha512-pGDeZpbkyvhxK8ZoCDUacPPRpauKPWF3n2XpDBEnuGreqUF2clq2PVJpwMMaNN5cHW8iFKCbcoOjXhD01sln0A== dependencies: - "@commitlint/top-level" "^17.0.0" - "@commitlint/types" "^17.0.0" - fs-extra "^10.0.0" + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.0" + fs-extra "^11.0.0" git-raw-commits "^2.0.0" minimist "^1.2.6" @@ -1157,26 +1189,38 @@ resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^17.3.0": - version "17.3.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.3.0.tgz#4b31d6739f7eb8c7222b323b0bc2b63bd298a4ad" - integrity sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g== +"@commitlint/resolve-extends@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.0.tgz#9023da6c70c4ebd173b4b0995fe29f27051da2d3" + integrity sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ== dependencies: - "@commitlint/ensure" "^17.3.0" - "@commitlint/message" "^17.2.0" - "@commitlint/to-lines" "^17.0.0" - "@commitlint/types" "^17.0.0" + "@commitlint/config-validator" "^17.4.0" + "@commitlint/types" "^17.4.0" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.0.tgz#7814f9de38c10ba17b33dd16a05be8f181031538" + integrity sha512-lz3i1jet2NNjTWpAMwjjQjMZCPWBIHK1Kkja9o09UmUtMjRdALTb8uMLe8gCyeq3DiiZ5lLYOhbsoPK56xGQKA== + dependencies: + "@commitlint/ensure" "^17.4.0" + "@commitlint/message" "^17.4.0" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.0" execa "^5.0.0" -"@commitlint/to-lines@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.0.0.tgz#5766895836b8085b099a098482f88a03f070b411" - integrity sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ== +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== -"@commitlint/top-level@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.0.0.tgz#ebd0df4c703c026c2fbdc20fa746836334f4ed15" - integrity sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ== +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== dependencies: find-up "^5.0.0" @@ -1187,6 +1231,13 @@ dependencies: chalk "^4.1.0" +"@commitlint/types@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.0.tgz#c7c2b97b959f6175c164632bf26208ce417b3f31" + integrity sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA== + dependencies: + chalk "^4.1.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -5536,6 +5587,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + country-flag-icons@1.5.5: version "1.5.5" resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.5.5.tgz#04a41c83e2ea38ea28054d4e3eff9d1ce16aec1c" @@ -7646,10 +7707,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" - integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== +husky@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== i18n-locales@^0.0.5: version "0.0.5" @@ -11850,13 +11911,6 @@ semver-regex@^3.1.2: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - semver@7.3.8, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" From 0d8b390b678731e76bd1f0f8a0a4952c11e77f4d Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Thu, 5 Jan 2023 05:57:43 +0100 Subject: [PATCH 27/65] feat(lang): translations update from Hosted Weblate (#3030) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Spanish) Currently translated at 84.8% (955 of 1125 strings) Co-authored-by: Hosted Weblate Co-authored-by: Joseph Valderrama Palacios Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/es/ Translation: Overseerr/Overseerr Frontend * feat(lang): translated using Weblate (Romanian) Currently translated at 23.3% (263 of 1125 strings) feat(lang): translated using Weblate (Romanian) Currently translated at 23.3% (263 of 1125 strings) feat(lang): translated using Weblate (Romanian) Currently translated at 21.6% (243 of 1125 strings) feat(lang): translated using Weblate (Romanian) Currently translated at 17.6% (199 of 1125 strings) feat(lang): translated using Weblate (Romanian) Currently translated at 10.9% (123 of 1125 strings) Co-authored-by: DragoPrime Co-authored-by: Hosted Weblate Co-authored-by: Sergiu Pahontu Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ro/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Polish) Currently translated at 100.0% (1129 of 1129 strings) Co-authored-by: Hosted Weblate Co-authored-by: Patryk Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pl/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Russian) Currently translated at 87.7% (987 of 1125 strings) Co-authored-by: Hosted Weblate Co-authored-by: Sergey Moiseev Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ru/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Portuguese (Portugal)) Currently translated at 98.0% (1103 of 1125 strings) Co-authored-by: Hosted Weblate Co-authored-by: ssantos Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/pt_PT/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Danish) Currently translated at 100.0% (1125 of 1125 strings) Co-authored-by: Anders Ecklon Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/da/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (1126 of 1129 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 99.5% (1120 of 1125 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1120 of 1120 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1120 of 1120 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1120 of 1120 strings) feat(lang): translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (1118 of 1120 strings) Co-authored-by: Eric Co-authored-by: Hosted Weblate Co-authored-by: lkw123 <2020393267@qq.com> Co-authored-by: lkw123 Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/zh_Hans/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Hungarian) Currently translated at 96.7% (1083 of 1119 strings) feat(lang): translated using Weblate (Hungarian) Currently translated at 94.3% (1056 of 1119 strings) Co-authored-by: Hosted Weblate Co-authored-by: Nandor Rusz Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hu/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Dutch) Currently translated at 100.0% (1129 of 1129 strings) feat(lang): translated using Weblate (Dutch) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Dutch) Currently translated at 99.9% (1124 of 1125 strings) feat(lang): translated using Weblate (Dutch) Currently translated at 100.0% (1120 of 1120 strings) Co-authored-by: Hosted Weblate Co-authored-by: Kobe Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/nl/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Czech) Currently translated at 100.0% (1119 of 1119 strings) Co-authored-by: Hosted Weblate Co-authored-by: Smexhy Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/cs/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1120 of 1120 strings) Co-authored-by: Hosted Weblate Co-authored-by: TheCatLady Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/zh_Hant/ Translation: Overseerr/Overseerr Frontend * feat(lang): translated using Weblate (German) Currently translated at 98.0% (1152 of 1175 strings) Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (German) Currently translated at 100.0% (1129 of 1129 strings) Co-authored-by: Hosted Weblate Co-authored-by: Squizzy911 Co-authored-by: inkarnation <94744834+inkarnation@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/de/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (1120 of 1120 strings) Co-authored-by: Hosted Weblate Co-authored-by: exentler Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/nb_NO/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Swedish) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Swedish) Currently translated at 95.0% (1069 of 1125 strings) feat(lang): translated using Weblate (Swedish) Currently translated at 94.0% (1058 of 1125 strings) feat(lang): translated using Weblate (Swedish) Currently translated at 93.8% (1050 of 1119 strings) Co-authored-by: Hosted Weblate Co-authored-by: Micke Nilsson Co-authored-by: Mikael Nilsson Co-authored-by: Shjosan Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/sv/ Translation: Overseerr/Overseerr Frontend * feat(lang): translated using Weblate (Hebrew) Currently translated at 12.1% (137 of 1125 strings) Co-authored-by: Hosted Weblate Co-authored-by: Izik Avinoam Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/he/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Catalan) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Catalan) Currently translated at 100.0% (1120 of 1120 strings) Co-authored-by: Hosted Weblate Co-authored-by: dtalens Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ca/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Croatian) Currently translated at 100.0% (1129 of 1129 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 99.9% (1124 of 1125 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 100.0% (1120 of 1120 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 100.0% (1119 of 1119 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 98.3% (1100 of 1119 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 96.9% (1085 of 1119 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 96.0% (1075 of 1119 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 95.3% (1067 of 1119 strings) feat(lang): translated using Weblate (Croatian) Currently translated at 95.3% (1067 of 1119 strings) Co-authored-by: Hosted Weblate Co-authored-by: Milo Ivir Co-authored-by: lpispek Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/hr/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translation: Overseerr/Overseerr Frontend * Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. feat(lang): translated using Weblate (Albanian) Currently translated at 100.0% (1125 of 1125 strings) feat(lang): translated using Weblate (Albanian) Currently translated at 99.5% (1120 of 1125 strings) feat(lang): translated using Weblate (Albanian) Currently translated at 100.0% (1119 of 1119 strings) Co-authored-by: Denis Çerri Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/ Translate-URL: https://hosted.weblate.org/projects/overseerr/overseerr-frontend/sq/ Translation: Overseerr/Overseerr Frontend Co-authored-by: Joseph Valderrama Palacios Co-authored-by: DragoPrime Co-authored-by: Sergiu Pahontu Co-authored-by: Patryk Co-authored-by: Sergey Moiseev Co-authored-by: ssantos Co-authored-by: Anders Ecklon Co-authored-by: Eric Co-authored-by: lkw123 <2020393267@qq.com> Co-authored-by: lkw123 Co-authored-by: Nandor Rusz Co-authored-by: Kobe Co-authored-by: Smexhy Co-authored-by: TheCatLady Co-authored-by: Squizzy911 Co-authored-by: inkarnation <94744834+inkarnation@users.noreply.github.com> Co-authored-by: exentler Co-authored-by: Micke Nilsson Co-authored-by: Shjosan Co-authored-by: Izik Avinoam Co-authored-by: dtalens Co-authored-by: Milo Ivir Co-authored-by: lpispek Co-authored-by: Denis Çerri --- src/i18n/locale/ar.json | 27 - src/i18n/locale/ca.json | 35 +- src/i18n/locale/cs.json | 34 +- src/i18n/locale/da.json | 146 +++-- src/i18n/locale/de.json | 155 +++-- src/i18n/locale/el.json | 27 - src/i18n/locale/es.json | 31 +- src/i18n/locale/fr.json | 27 - src/i18n/locale/he.json | 140 ++++- src/i18n/locale/hr.json | 1134 +++++++++++++++++++++++++++++----- src/i18n/locale/hu.json | 113 +++- src/i18n/locale/it.json | 27 - src/i18n/locale/ja.json | 11 - src/i18n/locale/nb_NO.json | 30 +- src/i18n/locale/nl.json | 39 +- src/i18n/locale/pl.json | 104 +++- src/i18n/locale/pt_BR.json | 27 - src/i18n/locale/pt_PT.json | 359 +++++++++-- src/i18n/locale/ro.json | 258 +++++++- src/i18n/locale/ru.json | 65 +- src/i18n/locale/sq.json | 97 ++- src/i18n/locale/sr.json | 13 - src/i18n/locale/sv.json | 125 +++- src/i18n/locale/zh_Hans.json | 301 +++++---- src/i18n/locale/zh_Hant.json | 30 +- 25 files changed, 2411 insertions(+), 944 deletions(-) diff --git a/src/i18n/locale/ar.json b/src/i18n/locale/ar.json index e6d6c8159..a9a95b3f4 100644 --- a/src/i18n/locale/ar.json +++ b/src/i18n/locale/ar.json @@ -669,8 +669,6 @@ "components.Settings.SonarrModal.selectRootFolder": "إختار مجلد الحفظ", "components.Settings.SonarrModal.selecttags": "إختار العلامات", "components.Settings.menuGeneralSettings": "عام", - "components.Settings.generalsettingsDescription": "ضبط الإعدادات الإفتراضية والأساسية لـ أوفرسيرر.", - "components.Settings.locale": "لغة العرض", "components.Settings.manualscanDescription": "عادةً٫ سيتم عمل هذا الفحص مرة واحدة كل 24 ساعة. أوفرسيرر سيفحص المحتوى المضاف مؤخرا في مكتبة بليكس بشكل مكثف. إذا كانت هذه المرة الأولى التي تقوم بها بإعداد بليكس يستحسن أن تقوم بعمل فحص يدوي كامل لمرة واحدة!", "components.Settings.menuAbout": "حول", "components.Settings.plex": "بليكس", @@ -678,14 +676,12 @@ "components.Settings.noDefaultServer": "على الأقل {serverType} سيرفر واحد يجب أن يكون معدا كإفتراضي لإتاحة تنفيذ طلبات الـ {mediaType}.", "components.Settings.plexsettings": "إعدادات بليكس", "components.Settings.serviceSettingsDescription": "قم بإعداد {serverType} سيرفراتك بالإسفل. تستطيع الاتصال بأكثر من سيرفر {serverType} ولكن إثنان فقط يمكن إعدادهما كإفتراضيين واحد لمحتوى الفور كي والاخر لغير الفور كي. الذين يملكون إذونات مسؤول بإمكانهم تجاوز السيرفر المخصص لتنفيذ الطلبات الجديدة قبل الموافقة.", - "components.Settings.regionTip": "تصفية المحتوى حسب توفره بالمنطقة", "components.Settings.serverpresetManualMessage": "ضبط يدوي", "components.Settings.sonarrsettings": "إعدادات سونار", "components.Settings.tautulliSettingsDescription": "بشكل إختياري أضبط إعدادات سيرفرك الخاص بـ Tautulli.أوفرسيرر سيقوم بجلب بيانات سجل المشاهدة لمحتوى بليكس من Tautulli.", "components.Settings.webhook": "ويب هوك Webhook", "components.Settings.webpush": "ويب بوش Web Push", "components.Setup.configureplex": "إعداد بليكس", - "components.Settings.trustProxyTip": "السماح لأوفرسيرر لتسجيل عناوين الأي بي خلف اتصال بروكسي (يجب إعادة تحميل الصفحة لتطبيق هذا الخيار)", "components.Settings.SonarrModal.server4k": "سيرفر الـ 4K", "components.Settings.SonarrModal.servername": "إسم السيرفر", "components.Settings.SonarrModal.ssl": "إستخدم SSL", @@ -712,16 +708,8 @@ "components.Settings.addradarr": "إضافة سيرفر رادار", "components.Settings.address": "العناوين", "components.Settings.addsonarr": "إضافة سيرفر سونار", - "components.Settings.apikey": "مفتاح API", - "components.Settings.applicationTitle": "عنوان التطبيق", - "components.Settings.applicationurl": "عنوان إرتباط التطبيق", - "components.Settings.cacheImages": "تفعيل التخزين المؤقت للصور", - "components.Settings.cacheImagesTip": "موازنة وتخزين كل الصور محليا ( يستهلك مساحة كبيرة من قرص التخزين )", "components.Settings.cancelscan": "إلغاء الفحص", "components.Settings.copied": "نسخ مفتاح الـ API.", - "components.Settings.csrfProtection": "تفعيل حماية CSRF", - "components.Settings.csrfProtectionHoverTip": "لا تقم بتفعيل هذا الخيار الا اذا كنت مدركا ومطلعا على ماتقوم به!", - "components.Settings.csrfProtectionTip": "إعداد مفتاح API خارجي لاعطاء تصريح الاطلاع ( قراءة فقط ) يتطلب إتصال HTTPS وافرسيرر يحتاج لإعاة تحميل الصفحة لتطبيق هذا التغيير", "components.Settings.currentlibrary": "المكتبة الحالية: {name}", "components.Settings.default": "الإفتراضي", "components.Settings.default4k": "فور كي الإفتراضي", @@ -729,9 +717,6 @@ "components.Settings.email": "البريد الإلكتروني", "components.Settings.enablessl": "إستخدم SSL", "components.Settings.externalUrl": "عنوان الإرتباط الخارجي", - "components.Settings.general": "عام", - "components.Settings.generalsettings": "الإعدادات العامة", - "components.Settings.hideAvailable": "إخفاء المحتوى المتوفّر", "components.Settings.hostname": "عنوان المضيف أو رقم الأي بي", "components.Settings.is4k": "فور كي", "components.Settings.librariesRemaining": "المكتبات المتبقية: {count}", @@ -750,14 +735,10 @@ "components.Settings.notifications": "التنبيهات", "components.Settings.notificationsettings": "اعدادات التنبيهات", "components.Settings.notrunning": "لا يعمل", - "components.Settings.originallanguage": "لغة العرض الخاصة بـ إكتشف المحتوى", - "components.Settings.originallanguageTip": "تصفية المحتوى بحسب اللغة الأصلية", - "components.Settings.partialRequestsEnabled": "السماح بطلب المسلسلات بشكل جزئي", "components.Settings.plexlibrariesDescription": "المكتبات التي سيقوم أوفرسيرر بفحصها. قم بإعداد وحفظ إعدادات الإتصال ببليكس ثم قم بالضغط على الزر بالإسفل اذا لم تظهر مكتبات بليكس بالقائمة.", "components.Settings.plexsettingsDescription": "ضبط إعدادات سيرفر بليكس. أوفرسيرر سيفحص مكتبات بليكس للتأكد من توفر المحتوى من عدمه.", "components.Settings.port": "المنفذ", "components.Settings.radarrsettings": "إعدادات رادار", - "components.Settings.region": "المنطقة الخاصة بـ إكتشاف محتوى جديد", "components.Settings.scan": "دمج المكتبات", "components.Settings.scanning": "جاري الدمج…", "components.Settings.serverLocal": "محلي", @@ -772,24 +753,16 @@ "components.Settings.startscan": "إبدأ الفحص", "components.Settings.tautulliApiKey": "مفتاح API", "components.Settings.tautulliSettings": "إعدادات Tautulli", - "components.Settings.toastApiKeyFailure": "حدث خطأ ما أثناء محاولة توريد مفتاح API جديد.", - "components.Settings.toastApiKeySuccess": "تم توريد مفتاح API جديد بنجاح!", "components.Settings.toastPlexConnecting": "جاري محاولة الإتصال ببليكس…", "components.Settings.toastPlexConnectingFailure": "فشل الإتصال ببليكس.", "components.Settings.toastPlexConnectingSuccess": "تم الإتصال ببليكس بنجاح!", "components.Settings.toastPlexRefresh": "جاري جلب قائمة السيرفرات من بليكس…", "components.Settings.toastPlexRefreshFailure": "فشل جلب قائمة السيرفرات.", "components.Settings.toastPlexRefreshSuccess": "تم جلب قائمة السيرفرات من بليكس بنجاح!", - "components.Settings.toastSettingsFailure": "حدث خطأ ما أثناء حفظ الإعدادات.", - "components.Settings.toastSettingsSuccess": "تم حفظ الإعدادات بنجاح!", "components.Settings.toastTautulliSettingsFailure": "حدث خطأ ما أثناء حفظ إعدادات Tautulli.", "components.Settings.toastTautulliSettingsSuccess": "تم حفظ إعدادات Tautulli بنجاح !", - "components.Settings.trustProxy": "تفعيل دعم البروكسي", "components.Settings.urlBase": "عنوان الإرتباط الأساسي", "components.Settings.validationApiKey": "يجب كتابة مفتاح API", - "components.Settings.validationApplicationTitle": "يجب كتابة عنوان التطبيق", - "components.Settings.validationApplicationUrl": "يجب كتابة عنوان إرتباط صحيح", - "components.Settings.validationApplicationUrlTrailingSlash": "يجب أن لا ينتهي عنوان الإرتباط بعلامة السلاش", "components.Settings.validationHostnameRequired": "يجب كتابة إسم مضيف أو رقم أي بي صحيح", "components.Settings.validationPortRequired": "يجب كتابة رقم منفذ صحيح", "components.Settings.validationUrl": "يجب كتابة عنوان ارتباط صحيح", diff --git a/src/i18n/locale/ca.json b/src/i18n/locale/ca.json index 5199a2a52..8b3f56764 100644 --- a/src/i18n/locale/ca.json +++ b/src/i18n/locale/ca.json @@ -418,25 +418,16 @@ "components.Setup.finish": "Finalitza la configuració", "components.Setup.continue": "Continua", "components.Setup.configureservices": "Configureu els serveis", - "components.Settings.trustProxy": "Activeu l'assistència de servidor intermediari", "components.Settings.toastPlexRefresh": "S'està recuperant la llista de servidors de Plex…", "components.Setup.configureplex": "Configureu Plex", "components.Settings.webhook": "Webhook", "components.Settings.validationPortRequired": "Heu de proporcionar un número de port vàlid", "components.Settings.validationHostnameRequired": "Heu de proporcionar un nom d’amfitrió o una adreça IP vàlida", - "components.Settings.validationApplicationUrlTrailingSlash": "L'URL no pot acabar amb una barra inclinada final", - "components.Settings.validationApplicationUrl": "Heu de proporcionar un URL vàlid", - "components.Settings.validationApplicationTitle": "Heu de proporcionar un títol d'aplicació", - "components.Settings.trustProxyTip": "Permet a Overseerr registrar correctament les adreces IP del client darrere d’un servidor intermediari", - "components.Settings.toastSettingsSuccess": "La configuració s'ha desat correctament!", - "components.Settings.toastSettingsFailure": "S'ha produït un error en desar la configuració.", "components.Settings.toastPlexRefreshSuccess": "La llista de servidors Plex s'ha recuperat correctament!", "components.Settings.toastPlexRefreshFailure": "No s'ha pogut recuperar la llista de servidors Plex.", "components.Settings.toastPlexConnectingSuccess": "La connexió amb Plex s'ha establert correctament!", "components.Settings.toastPlexConnectingFailure": "No s'ha pogut connectar amb Plex.", "components.Settings.toastPlexConnecting": "S'està intentant connectar amb Plex…", - "components.Settings.toastApiKeySuccess": "Nova clau d'API generada correctament!", - "components.Settings.toastApiKeyFailure": "S'ha produït un error en generar una nova clau API.", "components.Settings.startscan": "Inicia l'exploració", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Configuració de Sonarr", @@ -450,8 +441,6 @@ "components.Settings.serverLocal": "local", "components.Settings.scanning": "S'està sincronitzant …", "components.Settings.scan": "Sincronitza les biblioteques", - "components.Settings.regionTip": "Filtra el contingut per disponibilitat regional", - "components.Settings.region": "Regió per a la secció \"Descobriu\"", "components.Settings.radarrsettings": "Configuració de Radarr", "components.Settings.port": "Port", "components.Settings.plexsettingsDescription": "Configureu la paràmetres del vostre servidor Plex. Overseerr explora les vostres biblioteques Plex per determinar la disponibilitat de continguts.", @@ -459,9 +448,6 @@ "components.Settings.plexlibrariesDescription": "Les biblioteques en les que Overseerr explora títols. Configureu i deseu la configuració de la connexió Plex i feu clic al botó següent si no apareix cap.", "components.Settings.plexlibraries": "Biblioteques Plex", "components.Settings.plex": "Plex", - "components.Settings.partialRequestsEnabled": "Permet sol·licituds parcials de Sèries", - "components.Settings.originallanguageTip": "Filtra el contingut per l'idioma original", - "components.Settings.originallanguage": "Idioma per a la secció \"Descobriu\"", "components.Settings.manualscanDescription": "Normalment, només s’executarà una vegada cada 24 hores. Overseerr comprovarà de forma més agressiva el contingut afegit recentment del seu servidor Plex. Si és la primera vegada que configureu Plex, es recomana fer una exploració manual completa de la biblioteca!", "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Exploració d'elements de Plex afegits recentment", "components.Settings.notrunning": "No s'està executant", @@ -474,33 +460,21 @@ "components.Settings.menuNotifications": "Notificacions", "components.Settings.menuLogs": "Registres", "components.Settings.menuJobs": "Tasques programades i memòria cau", - "components.Settings.hideAvailable": "Amaga els suports disponibles", - "components.Settings.generalsettingsDescription": "Configureu els paràmetres globals i predeterminats per a Overseerr.", "components.Settings.menuGeneralSettings": "General", "components.Settings.menuAbout": "Quant a", "components.Settings.manualscan": "Exploració manual de la biblioteca", "components.Settings.librariesRemaining": "Biblioteques restants: {count}", "components.Settings.hostname": "Nom de l’amfitrió o adreça IP", - "components.Settings.generalsettings": "Configuració general", - "components.Settings.general": "General", "components.Settings.deleteserverconfirm": "Esteu segur que voleu suprimir aquest servidor?", "components.Settings.currentlibrary": "Biblioteca actual: {name}", "components.Settings.cancelscan": "Cancel·la l'exploració", - "components.Settings.cacheImagesTip": "Posa en memòria cau i carrega imatges optimitzades (requereix una quantitat important d'espai en disc)", - "components.Settings.applicationTitle": "Títol de l'aplicació", "components.Settings.addsonarr": "Afegeix un servidor Sonarr", "components.Settings.activeProfile": "Perfil actiu", "components.Settings.enablessl": "Utilitza SSL", "components.Settings.email": "Adreça electrònica", "components.Settings.default4k": "4K predeterminat", "components.Settings.default": "Predeterminat", - "components.Settings.csrfProtectionTip": "Estableix l'accés a l'API externa de només lectura (requereix HTTPS)", - "components.Settings.csrfProtectionHoverTip": "NO activeu aquesta configuració tret que entengueu el que esteu fent!", - "components.Settings.csrfProtection": "Activeu la protecció CSRF", "components.Settings.copied": "S'ha copiat la clau API al porta-retalls.", - "components.Settings.cacheImages": "Activa la memòria cau d'imatges", - "components.Settings.applicationurl": "URL de l'aplicació", - "components.Settings.apikey": "Clau API", "components.Settings.address": "Adreça", "components.Settings.addradarr": "Afegeix un servidor Radarr", "components.Settings.SonarrModal.validationRootFolderRequired": "Heu de seleccionar una carpeta arrel", @@ -757,7 +731,6 @@ "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Idioma de visualització", "components.Settings.webpush": "Web Push", "components.Settings.noDefault4kServer": "Cal marcar un servidor 4K de {serverType} com a predeterminat per permetre als usuaris enviar sol·licituds de {mediaType} en 4K.", - "components.Settings.locale": "Idioma de visualització", "components.Settings.is4k": "4K", "components.Settings.SettingsUsers.newPlexLoginTip": "Permetre als usuaris de Plex iniciar la sessió sense haver-los importat prèviament", "components.Settings.SettingsUsers.newPlexLogin": "Activa nou inici de sessió de Plex", @@ -1117,5 +1090,11 @@ "components.RequestModal.requestmovie4ktitle": "Sol·licitud de pel·lícula en 4K", "components.RequestModal.requestmovietitle": "Sol·licitud de pel·lícula", "components.RequestModal.requestseriestitle": "Sol·licitud de sèries", - "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Freqüència actual" + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Freqüència actual", + "components.TvDetails.Season.noepisodes": "Llista d'episodis no disponible.", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Neteja de la memòria cau d'imatges", + "components.Settings.SettingsJobsCache.imagecache": "Memòria cau d'imatges", + "components.Settings.SettingsJobsCache.imagecachecount": "Imatges a la memòria cau", + "components.Settings.SettingsJobsCache.imagecachesize": "Mida total de la memòria cau", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Quan està activat a la configuració, Overseerr enviarà les imatges a la memòria cau de fonts externes preconfigurades. Les imatges emmagatzemades a la memòria cau es desen a la vostra carpeta de configuració. Podeu trobar els fitxers a {appDataPath}/cache/images." } diff --git a/src/i18n/locale/cs.json b/src/i18n/locale/cs.json index c4af1428d..37c3c85c5 100644 --- a/src/i18n/locale/cs.json +++ b/src/i18n/locale/cs.json @@ -1,11 +1,8 @@ { "components.Settings.notificationsettings": "Nastavení oznámení", - "components.Settings.locale": "Jazyk zobrazení", - "components.Settings.generalsettings": "Obecná nastavení", "components.Settings.enablessl": "Použít SSL", "components.Settings.default4k": "Výchozí 4K", "components.Settings.cancelscan": "Zrušit skenování", - "components.Settings.apikey": "API klíč", "components.Settings.activeProfile": "Aktivní profil", "components.Settings.SonarrModal.syncEnabled": "Povolit skenování", "components.Settings.SonarrModal.ssl": "Použít SSL", @@ -179,7 +176,6 @@ "components.Settings.mediaTypeSeries": "seriál", "components.Settings.mediaTypeMovie": "film", "components.Settings.is4k": "4K", - "components.Settings.general": "Obecné", "components.Settings.email": "E-mail", "components.Settings.default": "Výchozí", "components.Settings.address": "Adresy", @@ -408,22 +404,18 @@ "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {commit} other {commitů}} za", "components.Setup.configureplex": "Konfigurovat Plex", "components.Settings.serverpresetRefreshing": "Načítání serverů…", - "components.Settings.applicationTitle": "Název aplikace", - "components.Settings.originallanguage": "Jazyk pro vyhledávání", "components.Settings.plexsettings": "Nastavení Plexu", "components.Settings.scan": "Synchronizovat knihovny", "components.Settings.plexlibraries": "Plex knihovny", - "components.Settings.applicationurl": "Adresa URL aplikace", "components.Settings.notrunning": "Není spuštěno", "components.Settings.radarrsettings": "Nastavení Radarru", - "components.Settings.region": "Region pro vyhledávání", "components.Settings.startscan": "Spustit skenování", "components.Settings.serverpresetManualMessage": "Manuální konfigurace", "components.Settings.sonarrsettings": "Nastavení Sonarru", "components.StatusBadge.status": "{status}", "components.IssueDetails.IssueDescription.description": "Popis", "components.IssueDetails.comments": "Komentáře", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekvence", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Nová frekvence", "components.IssueModal.issueOther": "Jiný", "components.RequestModal.requestadmin": "Tato žádost bude schválena automaticky.", "components.IssueModal.issueAudio": "Zvuk", @@ -629,17 +621,13 @@ "components.Settings.SonarrModal.testFirstRootFolders": "Test připojení pro načtení kořenových složek", "components.Settings.SonarrModal.validationApiKeyRequired": "Musíte zadat klíč API", "components.Settings.SonarrModal.validationApplicationUrl": "Musíte zadat platnou adresu URL", - "components.Settings.csrfProtectionTip": "Nastavení externího přístupu k rozhraní API pouze pro čtení (vyžaduje protokol HTTPS)", "components.Settings.deleteserverconfirm": "Opravdu chcete tento server odstranit?", "components.Settings.menuJobs": "Práce a mezipaměť", - "components.Settings.toastApiKeyFailure": "Při generování nového klíče API se něco pokazilo.", - "components.Settings.toastApiKeySuccess": "Nový klíč API byl úspěšně vygenerován!", "components.TvDetails.similar": "Podobné série", "components.TvDetails.streamingproviders": "V současné době streamuje na", "components.UserList.nouserstoimport": "Neexistují žádní uživatelé systému Plex, které by bylo možné importovat.", "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Nastavení úspěšně uloženo!", "components.Settings.SettingsJobsCache.nextexecution": "Další spuštení", - "components.Settings.generalsettingsDescription": "Konfigurace globálních a výchozích nastavení pro Overseerr.", "components.TvDetails.nextAirDate": "Další datum vysílání", "components.TvDetails.viewfullcrew": "Zobrazit celé obsazení", "components.UserList.displayName": "Zobrazené jméno", @@ -704,15 +692,11 @@ "components.Settings.SonarrModal.toastSonarrTestFailure": "Nepodařilo se připojit k systému Sonarr.", "components.Settings.SonarrModal.toastSonarrTestSuccess": "Připojení Sonarr úspěšně navázáno!", "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Základní adresa URL musí mít na začátku lomítko", - "components.Settings.cacheImages": "Povolení ukládání obrázků do mezipaměti", - "components.Settings.cacheImagesTip": "Ukládat do mezipaměti a poskytovat optimalizované obrazy (vyžaduje značné množství místa na disku)", "components.Settings.manualscanDescription": "Obvykle se provádí pouze jednou za 24 hodin. Overseerr bude kontrolovat nedávno přidané položky vašeho serveru Plex agresivněji. Pokud Plex konfigurujete poprvé, doporučujeme provést jednorázovou úplnou ruční kontrolu knihovny!", - "components.Settings.originallanguageTip": "Filtrování obsahu podle původního jazyka", "components.Settings.urlBase": "Základní adresa URL", "components.Settings.tautulliSettingsDescription": "Volitelně nakonfigurujte nastavení serveru Tautulli. Overseerr načte data historie sledování pro vaše média Plex z Tautulli.", "components.Settings.toastPlexConnecting": "Pokus o připojení k systému Plex…", "components.Settings.validationApiKey": "Musíte zadat klíč API", - "components.Settings.validationApplicationUrlTrailingSlash": "Adresa URL nesmí končit koncovým lomítkem", "components.Settings.validationHostnameRequired": "Musíte zadat platný název hostitele nebo IP adresu", "components.Settings.validationPortRequired": "Musíte zadat platné číslo portu", "components.Settings.validationUrl": "Musíte zadat platnou adresu URL", @@ -799,18 +783,12 @@ "components.Settings.addradarr": "Přidání serveru Radarr", "components.Settings.addsonarr": "Adding a Radarr server", "components.Settings.copied": "Zkopírování klíče API do schránky.", - "components.Settings.csrfProtection": "Povolení ochrany CSRF", "components.Settings.externalUrl": "Externí adresa URL", - "components.Settings.hideAvailable": "Skrýt dostupná média", "components.Settings.hostname": "Název hostitele nebo IP adresa", "components.Settings.manualscan": "Manuální skenování knihovny", - "components.Settings.partialRequestsEnabled": "Povolení požadavků na částečné série", "components.Settings.plexlibrariesDescription": "Knihovny Overseerr vyhledává tituly. Nastavte a uložte nastavení připojení k systému Plex a poté klikněte na tlačítko níže, pokud nejsou v seznamu uvedeny žádné knihovny.", "components.Settings.serverpresetLoad": "Stisknutím tlačítka načtete dostupné servery", - "components.Settings.toastSettingsSuccess": "Nastavení úspěšně uloženo!", "components.Settings.toastTautulliSettingsFailure": "Při ukládání nastavení Tautulli se něco pokazilo.", - "components.Settings.validationApplicationTitle": "Musíte uvést název žádosti", - "components.Settings.validationApplicationUrl": "Musíte zadat platnou adresu URL", "components.Settings.webAppUrl": "Webová aplikace Adresa URL", "components.Settings.validationUrlTrailingSlash": "Adresa URL nesmí končit koncovým lomítkem", "components.Settings.webAppUrlTip": "Volitelné přesměrování uživatelů na webovou aplikaci na vašem serveru namísto hostované webové aplikace", @@ -818,7 +796,7 @@ "components.Setup.scanbackground": "Skenování bude probíhat na pozadí. Mezitím můžete pokračovat v procesu nastavení.", "components.Setup.welcome": "Vítejte v Overseerr", "components.Setup.signinMessage": "Skenování bude probíhat na pozadí. Mezitím můžete pokračovat v procesu nastavení", - "components.TvDetails.TvCrew.fullseriescrew": "Posádka celé série", + "components.TvDetails.TvCrew.fullseriescrew": "Štáb celé série", "components.UserList.autogeneratepassword": "Automatické generování hesla", "components.UserList.autogeneratepasswordTip": "Zaslání hesla vygenerovaného serverem uživateli e-mailem", "components.UserList.deleteconfirm": "Opravdu chcete tohoto uživatele odstranit? Všechny údaje o jeho žádosti budou trvale odstraněny.", @@ -860,10 +838,7 @@ "components.Settings.noDefault4kServer": "Server 4K {serverType} musí být označen jako výchozí, aby uživatelé mohli odesílat požadavky 4K {mediaType}.", "components.Settings.noDefaultNon4kServer": "Pokud máte pouze jeden server {serverType} pro obsah jiný než 4K i 4K (nebo pokud stahujete pouze obsah 4K), váš server {serverType} by neměl být označen jako server 4K.", "components.Settings.noDefaultServer": "Aby mohly být zpracovány požadavky typu {mediaType}, musí být alespoň jeden server typu {serverType} označen jako výchozí.", - "components.Settings.regionTip": "Filtrování obsahu podle regionální dostupnosti", "components.Settings.plexsettingsDescription": "Knihovny Overseerr vyhledává tituly. Nastavte a uložte nastavení připojení k systému Plex a poté klikněte na tlačítko níže, pokud nejsou v seznamu uvedeny žádné knihovny.", - "components.Settings.toastSettingsFailure": "Při ukládání nastavení se něco pokazilo.", - "components.Settings.trustProxy": "Povolení podpory proxy serveru", "components.Settings.toastPlexRefresh": "Získání seznamu serverů z aplikace Plex…", "components.Settings.toastPlexRefreshSuccess": "Seznam serverů Plex úspěšně načten!", "components.UserList.passwordinfodescription": "Nakonfigurujte adresu URL aplikace a povolte e-mailová oznámení, která umožní automatické generování hesla.", @@ -889,7 +864,6 @@ "components.RequestCard.failedretry": "Při opakovaném pokusu o zadání požadavku se něco pokazilo.", "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Vyžaduje se pouze v případě, že nepoužíváte profil default", "components.RequestCard.mediaerror": "{mediaType} Nenalezeno", - "components.Settings.trustProxyTip": "Povolit Overseerr správně registrovat IP adresy klientů za proxy serverem", "components.RequestList.RequestItem.mediaerror": "{mediaType} Nenalezeno", "components.RequestModal.QuotaDisplay.allowedRequests": "Můžete požádat o {limit} {type} každé {days} dny.", "components.RequestModal.SearchByNameModal.notvdbiddescription": "Tuto sérii jsme nemohli automaticky spárovat. Níže prosím vyberte správnou shodu.", @@ -971,7 +945,6 @@ "components.Settings.SonarrModal.validationLanguageProfileRequired": "Je třeba vybrat jazykový profil", "components.Settings.SonarrModal.validationNameRequired": "Je třeba zadat název serveru", "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Zobrazované jméno", - "components.Settings.csrfProtectionHoverTip": "Toto nastavení NEPOVOLUJTE, pokud nerozumíte tomu, co děláte!", "components.Settings.tautulliSettings": "Tautulli Nastavení", "components.Settings.toastTautulliSettingsSuccess": "Nastavení Tautulli úspěšně uloženo!", "components.UserProfile.UserSettings.unauthorizedDescription": "Nemáte oprávnění měnit nastavení tohoto uživatele.", @@ -1116,5 +1089,6 @@ "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Automaticky vyžádat sérii", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Automaticky vyžádat filmy", "components.UserProfile.plexwatchlist": "Plex Watchlist", - "components.UserProfile.emptywatchlist": "Zde se zobrazí média přidaná do vašeho Plex Watchlistu." + "components.UserProfile.emptywatchlist": "Zde se zobrazí média přidaná do vašeho Plex Watchlistu.", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuální frekvence" } diff --git a/src/i18n/locale/da.json b/src/i18n/locale/da.json index 3df86ad8f..a25547820 100644 --- a/src/i18n/locale/da.json +++ b/src/i18n/locale/da.json @@ -89,7 +89,7 @@ "components.RequestButton.approverequest4k": "Godkend 4K Forespørgsel", "components.RequestButton.approverequests": "Godkend {requestCount, plural, one {Forespørgsel} other {{requestCount} Forespørgsler}}", "components.RequestList.RequestItem.editrequest": "Redigér Forespørgsel", - "components.RequestList.RequestItem.mediaerror": "Den forbundne titel for denne forespørgsel er ikke længere tilgængelig.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} Ikke fundet", "components.RequestList.RequestItem.modified": "Ændret", "components.RequestList.RequestItem.modifieduserdate": "{date} af {user}", "components.RequestList.RequestItem.requesteddate": "Forespurgt", @@ -224,7 +224,7 @@ "components.PermissionEdit.requestTvDescription": "Bliv notificeret når problemer er genåbnet af andre brugere.", "components.RegionSelector.regionServerDefault": "Standard ({region})", "components.RequestCard.deleterequest": "Slet Forespørgsel", - "components.RequestCard.mediaerror": "Den forbundne titel for denne forespørgsel er ikke længere tilgængelig.", + "components.RequestCard.mediaerror": "{mediaType} Ikke fundet", "components.RequestCard.seasons": "{seasonCount, plural, one {Sæson} other {Sæsoner}}", "components.RequestList.RequestItem.cancelRequest": "Annullér Forespørgsel", "components.RequestList.RequestItem.deleterequest": "Slet Forespørgsel", @@ -290,7 +290,7 @@ "components.RequestModal.errorediting": "Noget gik galt under redigeringen af forespørgslen.", "components.RequestModal.extras": "Ekstra", "components.RequestModal.numberofepisodes": "Antal Episoder", - "components.RequestModal.pending4krequest": "Afventende 4K Forespørgsler", + "components.RequestModal.pending4krequest": "Afventende 4K forespørgsler", "components.RequestModal.pendingapproval": "Din forespørgsel afventer godkendelse.", "components.ResetPassword.resetpasswordsuccessmessage": "Kodeord er nulstillet!", "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profilnavn", @@ -403,8 +403,8 @@ "components.PermissionEdit.manageissuesDescription": "Giv tilladelse til at administrere medieproblemer.", "components.RequestCard.failedretry": "Noget gik galt ved nyt forsøg på forespørgslen.", "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Ingen} other {#}} {type} {remaining, plural, one {forespørgsel} other {forespørgsler}} tilbage", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Vi kunne ikke automatisk matche din forespørgsel. Vælg venligst det korrekte match fra listen nedenfor.", - "components.RequestModal.pendingrequest": "Afventende Forespørgsel", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Vi kunne ikke automatisk matche denne serie. Vælg venligst det rigtige match nedenfor.", + "components.RequestModal.pendingrequest": "Afventende forespørgsel", "components.Settings.Notifications.NotificationsPushover.userToken": "Bruger- eller Gruppenøgle", "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Dit 30-tegns bruger- eller gruppe-ID", "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Du skal angive en gyldig bruger- eller gruppenøgle", @@ -506,9 +506,9 @@ "components.Settings.SettingsJobsCache.canceljob": "Annullér Job", "components.Settings.SettingsJobsCache.download-sync": "Downloadsynkronisering", "components.Settings.SettingsJobsCache.editJobSchedule": "Modificér Job", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekvens", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Hvert {jobScheduleHours}. time", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Hvert {jobScheduleMinutes}. minut", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Ny frekvens", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Hvert {jobScheduleHours}, plural, one {time} other {{jobScheduleHours} timer}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Hvert {jobScheduleMinutes}, plural, one {minut} other {{jobScheduleMinutes} minutter}}", "components.Settings.Notifications.authUser": "SMTP Brugernavn", "components.Settings.Notifications.botAPI": "Bot Autorisationstoken", "components.Settings.Notifications.encryptionImplicitTls": "Brug implicit TLS", @@ -602,13 +602,7 @@ "components.Settings.SonarrModal.validationRootFolderRequired": "Du skal angive en rodmappe", "components.Settings.address": "Adresse", "components.Settings.addsonarr": "Tilføj Sonarr Server", - "components.Settings.apikey": "API-nøgle", - "components.Settings.applicationTitle": "Applikationstitel", - "components.Settings.applicationurl": "Applikations-URL", - "components.Settings.cacheImagesTip": "Optimér og gem alle billeder lokalt (anvender en betydelig mængde diskplads)", "components.Settings.copied": "API-nøgle er kopieret til udklipsholder.", - "components.Settings.csrfProtection": "Aktivér CSRF Beskyttelse", - "components.Settings.csrfProtectionHoverTip": "Aktivér IKKE denne indstilling hvis ikke du forstår hvad du gør!", "components.Settings.currentlibrary": "Nuværende Bibliotek: {name}", "components.Settings.email": "Email", "components.Settings.enablessl": "Benyt SSL", @@ -626,17 +620,9 @@ "components.Settings.noDefaultServer": "Mindst én {serverType}server skal markeres som standard for at {mediaType}forespørgsler kan afvikles.", "components.Settings.notificationAgentSettingsDescription": "Konfigurér og aktivér notifikationsagenter.", "components.Settings.notifications": "Notifikationer", - "components.Settings.originallanguage": "Udforsk Sprog", - "components.Settings.originallanguageTip": "Filtrer indhold efter originalsprog", - "components.Settings.partialRequestsEnabled": "Tillad Delvise Serieforespørgsler", "components.Settings.plex": "Plex", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Jobbet er blevet redigeret!", - "components.Settings.csrfProtectionTip": "Sæt ekstern API-adgang til skrivebeskyttet (kræver HTTPS)", - "components.Settings.generalsettingsDescription": "Konfigurér global- og standardindstillinger for Overseerr.", - "components.Settings.general": "Generelt", - "components.Settings.hideAvailable": "Skjul Tilgængelige Medier", "components.Settings.hostname": "Domænenavn eller IP Adresse", - "components.Settings.generalsettings": "Generelle Indstillinger", "components.Settings.menuAbout": "Om", "components.Settings.SettingsLogs.label": "Label", "components.Settings.SettingsLogs.level": "Alvorlighed", @@ -644,8 +630,6 @@ "components.Settings.SonarrModal.baseUrl": "URL Base", "components.Settings.SonarrModal.create4ksonarr": "Tilføj Ny 4K Sonarr Server", "components.Settings.SonarrModal.loadingprofiles": "Indlæser kvalitetsprofiler…", - "components.Settings.cacheImages": "Aktivér billede-caching", - "components.Settings.locale": "Grænsefladesprog", "components.Settings.manualscan": "Manuel Biblioteksskanning", "components.Settings.mediaTypeMovie": "film", "components.Settings.mediaTypeSeries": "serier", @@ -714,8 +698,6 @@ "components.Settings.sonarrsettings": "Sonarr-indstillinger", "components.Settings.ssl": "SSL", "components.Settings.startscan": "Start Skanning", - "components.Settings.toastApiKeySuccess": "Ny API-nøgle er blevet genereret!", - "components.Settings.validationApplicationUrl": "Du skal angive en gyldig URL", "components.Settings.webAppUrlTip": "Brugere dirigeres som alternativ til web-app'en på din server i stedet for den \"hostede\" web-app", "components.Settings.webAppUrl": "Web-App-URL", "components.Settings.webhook": "Webhook", @@ -727,7 +709,7 @@ "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutter", "components.TvDetails.originallanguage": "Originalsprog", "components.TvDetails.originaltitle": "Originaltitel", - "components.UserList.importedfromplex": "{userCount, plural, one {# ny bruger} other {# nye brugere}} er blevet importeret fra Plex!", + "components.UserList.importedfromplex": "{userCount} Plex {userCount, plural, one {bruger} other {brugere}} importeret med succes!", "components.UserList.localLoginDisabled": "Indstillingen Aktivér Lokal Login er i øjeblikket deaktiveret.", "components.UserList.validationpasswordminchars": "Kodeordet er for kort; det skal mindst bestå af 8 tegn", "components.UserProfile.ProfileHeader.settings": "Redigér Indstillinger", @@ -751,9 +733,6 @@ "components.Settings.plexlibrariesDescription": "Bibliotekerne Overseerr skanner for titler. Konfigurér og gem dine Plex-forbindelsesindstillinger og klik på knappen nedenfor hvis der ikke er vist nogle biblioteker.", "components.Settings.plexsettingsDescription": "Konfigurér indstillingerne for din Plex server. Overseerr skanner dine Plex-biblioteker for at afgøre tilgængeligheden af indhold.", "components.Settings.radarrsettings": "Radarr-indstillinger", - "components.Settings.region": "Udforsk Region", - "components.Settings.trustProxy": "Aktivér Proxy-understøttelse", - "components.Settings.trustProxyTip": "Tillad Overseerr at registrere klienters IP addresser korrekt bag en proxy", "components.TvDetails.nextAirDate": "Næste Udsendelsesdato", "components.TvDetails.playonplex": "Afspil i Plex", "components.TvDetails.recommendations": "Anbefalinger", @@ -776,7 +755,7 @@ "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Indstillingerne er blevet gemt!", "components.UserProfile.UserSettings.UserGeneralSettings.user": "Bruger", "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Bruger-ID", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "ID-nummeret for din brugerkonto", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "The flercifret ID number knyttet til din brugerkonto", "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Notifikationsindstillingerne for Discord kunne ikke gemmes.", "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Kryptér emailbeskeder ved hjælp af OpenPGP", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Adgangstoken", @@ -792,7 +771,6 @@ "components.Settings.serverSecure": "sikker", "components.Settings.serverpresetLoad": "Klik på knappen for at indlæse tilgængelige servere", "components.Settings.services": "Tjenester", - "components.Settings.toastSettingsSuccess": "Indstillingerne er blevet gemt!", "components.Settings.webpush": "Web Push", "components.UserList.userlist": "Brugerliste", "components.Settings.plexsettings": "Plex-indstillinger", @@ -805,20 +783,15 @@ "components.TvDetails.showtype": "Serietype", "components.UserList.sortCreated": "Tilmeldingsdato", "components.UserList.deleteconfirm": "Er du sikker på at du vil slette denne bruger? Alle deres forespørgselsdata vil blive slettet permanent.", - "components.Settings.regionTip": "Filtrer indhold efter regional tilgængelighed", "components.Settings.serverpresetManualMessage": "Manuel konfiguration", "components.Settings.serverpresetRefreshing": "Henter servere…", "components.Settings.serviceSettingsDescription": "Konfigurér dine {serverType}server(e) nedenfor. Du kan forbinde til flere forskellige {serverType}servere men kun to af dem kan markeres som standard (én ikke-4K og én 4K). Administratorer kan ændre på serveren der bruges til at behandle nye forespørgsler inden godkendelse.", "components.Settings.settingUpPlexDescription": "For at sætte Plex op skal du enten indtaste oplysningerne manuelt eller vælge en server som hentes fra plex.tv. Klik på knappen til højre for rullemenuen for at hente en liste af tilgængelige servere.", - "components.Settings.toastApiKeyFailure": "Noget gik galt under genereringen af en nye API-nøgle.", "components.Settings.toastPlexConnectingFailure": "Kunne ikke forbinde til Plex.", "components.Settings.toastPlexConnectingSuccess": "Plex forbindelse er etableret!", "components.Settings.toastPlexRefresh": "Henter serverliste fra Plex…", "components.Settings.toastPlexRefreshFailure": "Kunne ikke hente Plex-serverliste.", "components.Settings.toastPlexRefreshSuccess": "Plex-serverliste er blevet hentet!", - "components.Settings.toastSettingsFailure": "Noget gik galt under opdateringen af indstillingerne.", - "components.Settings.validationApplicationTitle": "Du skal angive en applikationstitel", - "components.Settings.validationApplicationUrlTrailingSlash": "URL'en må ikke afsluttes med en skråstreg", "components.Settings.validationHostnameRequired": "Du skal angive et gyldigt domænenavn eller en gyldig IP adresse", "components.Setup.configureplex": "Konfigurér Plex", "components.Settings.validationPortRequired": "Du skal angive et gyldigt port-nummer", @@ -1026,5 +999,102 @@ "components.UserList.newplexsigninenabled": "Indstillingen Aktiver nyt Plex-login er i øjeblikket aktiveret. Plex-brugere med biblioteksadgang behøver ikke at blive importeret for at kunne logge ind.", "components.Settings.SettingsAbout.appDataPath": "Data mappe", "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Kanal tag", - "i18n.importing": "Importerer…" + "i18n.importing": "Importerer…", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuel frekvens", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Oprydning af billedcache", + "components.Settings.SettingsJobsCache.imagecache": "Billedcache", + "components.Settings.experimentalTooltip": "Aktivering af denne indstilling kan resultere i uventet programadfærd", + "components.TvDetails.Season.noepisodes": "Episodelisten er ikke tilgængelig.", + "components.RequestBlock.edit": "Rediger forespørgsel", + "components.TitleCard.tmdbid": "TMDB ID", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Din Plex Watchlist", + "components.Layout.UserDropdown.requests": "Forespørgsler", + "components.MovieDetails.physicalrelease": "Fysisk udgivelse", + "components.PermissionEdit.autorequestSeries": "Forespørg automatisk serier", + "components.RequestCard.cancelrequest": "Annuller forespørgsel", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestModal.requestcollectiontitle": "Anmod samling", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Når det er aktiveret i indstillinger, vil Overseerr proxy og cache billeder fra forudkonfigurerede eksterne kilder. Cachelagrede billeder gemmes i din konfigurationsmappe. Du kan finde filerne i {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Cachelagrede billeder", + "components.Settings.SettingsLogs.viewdetails": "Se detaljer", + "components.Settings.SettingsJobsCache.imagecachesize": "Samlet cachestørrelse", + "components.StatusChecker.appUpdated": "{applicationTitle} Opdateret", + "components.StatusChecker.appUpdatedDescription": "Klik på knappen nedenfor for at genindlæse applikationen.", + "components.StatusChecker.reloadApp": "Genindlæs {applicationTitle}", + "components.TitleCard.cleardata": "Ryd data", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.RequestModal.requestmovie4ktitle": "Forespørg film i 4K", + "components.Settings.restartrequiredTooltip": "Overseerr skal genstartes for at ændringer til denne indstilling kan træde i kraft", + "components.StatusChecker.restartRequiredDescription": "Genstart venligst serveren for at anvende de opdaterede indstillinger.", + "components.UserProfile.emptywatchlist": "Medier føjet til din Plex Watchlist vises her.", + "components.MovieDetails.theatricalrelease": "Biografpremiere", + "components.PermissionEdit.viewrecent": "Vis nyligt tilføjet", + "components.PermissionEdit.viewrecentDescription": "Giv tilladelse til at se listen over nyligt tilføjede medier.", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.tvdbid": "TVDB ID", + "components.StatusChecker.restartRequired": "Server genstart påkrævet", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.MovieDetails.digitalrelease": "Digital udgivelse", + "components.PermissionEdit.autorequest": "Automatisk forespørgsel", + "components.PermissionEdit.autorequestMovies": "Forespørg film automatisk", + "components.Settings.deleteServer": "Slet {serverType} server", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Forespørg automatisk film", + "components.ManageSlideOver.alltime": "Hele tiden", + "components.Settings.Notifications.enableMentions": "Aktiver omtaler", + "components.TvDetails.manageseries": "Administrer serier", + "components.MovieDetails.reportissue": "Rapporter et problem", + "components.MovieDetails.managemovie": "Administrer film", + "components.PermissionEdit.autorequestMoviesDescription": "Giv tilladelse til automatisk at indsende forespørgsler om ikke-4K-film via Plex Watchlist.", + "components.PermissionEdit.autorequestSeriesDescription": "Giv tilladelse til automatisk at indsende forespørgsler om ikke-4K-serier via Plex Watchlist.", + "components.TitleCard.mediaerror": "{mediaType} Ikke fundet", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.plexwatchlist": "Din Plex Watchlist", + "components.NotificationTypeSelector.mediaautorequested": "Forespørgsel indsendt automatisk", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Få besked, når der automatisk indsendes nye medieanmodninger for emner på din Plex Watchlist.", + "components.PermissionEdit.viewwatchlists": "Se Plex Watchlists", + "components.Settings.advancedTooltip": "Forkert konfiguration af denne indstilling kan resultere i ødelagt funktionalitet", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Forespørg automatisk serier på dinPlex Watchlist", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Film forespørgsler", + "components.AirDateBadge.airedrelative": "Sendt {relativeTime}", + "components.AirDateBadge.airsrelative": "Sendes {relativeTime}", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes publikumsscore", + "components.PermissionEdit.viewwatchlistsDescription": "Giv tilladelse til at se andre brugeres Plex Watchlists.", + "components.RequestBlock.approve": "Godkend forespørgsel", + "components.RequestBlock.decline": "Afvis forespørgsel", + "components.RequestBlock.lastmodifiedby": "Sidst ændret af", + "components.RequestBlock.requestdate": "Forespørg dato", + "components.RequestCard.declinerequest": "Afvis forespørgsel", + "components.RequestCard.editrequest": "Rediger forespørgsel", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Synkronisering af Plex Watchlist", + "components.StatusBadge.managemedia": "Administrer {mediaType}", + "components.StatusBadge.openinarr": "Åbn i {arr}", + "components.StatusBadge.playonplex": "Spil i Plex", + "components.TvDetails.Season.somethingwentwrong": "Noget gik galt under hentning af sæsondata.", + "components.TvDetails.reportissue": "Rapporter et problem", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# episode} other {# episoder}}", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumsresultat", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.RequestBlock.languageprofile": "Sprogprofil", + "i18n.restartRequired": "Genstart påkrævet", + "components.Discover.emptywatchlist": "Medier, der er tilføjet til din Plex Watchlist, vises her.", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.tmdbuserscore": "TMDB brugerscore", + "components.RequestBlock.delete": "Slet forespørgsel", + "components.RequestBlock.requestedby": "Forespurgt af", + "components.RequestCard.approverequest": "Godkend forespørgsel", + "components.RequestModal.SearchByNameModal.nomatches": "Vi var ikke i stand til at finde et match for denne serie.", + "components.RequestModal.requestcollection4ktitle": "Anmod om samling i 4K", + "components.RequestModal.requestmovietitle": "Forespørg film", + "components.RequestModal.requestseries4ktitle": "Forespørg serie i 4K", + "components.RequestModal.requestseriestitle": "Forespørg serie", + "components.TvDetails.seasonnumber": "Sæson {seasonNumber}", + "components.TvDetails.seasonstitle": "Sæsoner", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.tmdbuserscore": "TMDB brugerscore", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serie forespørgsler", + "components.PermissionEdit.autorequestDescription": "Giv tilladelse til automatisk at indsende forespørgsler om ikke-4K-medier via Plex Watchlist.", + "components.ManageSlideOver.plays": "{playCount, antal} {playCount, plural, one {spil} other{spiller}}", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Forespørg automatisk film på din Plex Watchlist", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Forespørg automatisk serier" } diff --git a/src/i18n/locale/de.json b/src/i18n/locale/de.json index 5c96a7151..58ffdd113 100644 --- a/src/i18n/locale/de.json +++ b/src/i18n/locale/de.json @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Radarr-Server hinzufügen", "components.Settings.address": "Adresse", "components.Settings.addsonarr": "Sonarr-Server hinzufügen", - "components.Settings.apikey": "API-Schlüssel", - "components.Settings.applicationurl": "Anwendungs-URL", "components.Settings.cancelscan": "Durchsuchung abbrechen", "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", "components.Settings.default": "Standardmäßig", "components.Settings.default4k": "Standard-4K", "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", - "components.Settings.generalsettings": "Allgemeine Einstellungen", - "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Overseerr-Einstellungen.", "components.Settings.hostname": "Hostname oder IP-Adresse", "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", @@ -189,7 +185,7 @@ "i18n.deleting": "Löschen …", "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", - "components.UserList.deleteuser": "Benutzer löschen", + "components.UserList.deleteuser": "Delete User", "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", @@ -201,12 +197,8 @@ "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", "components.TvDetails.anime": "Anime", - "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", "components.TvDetails.showtype": "Serientyp", "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", - "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", @@ -331,9 +323,8 @@ "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", "components.RequestModal.autoapproval": "Automatische Genehmigung", "i18n.experimental": "Experimentell", - "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten diese Serie nicht automatisch zuordnen. Bitte wähle unten eine korrekte Übereinstimmung aus.", "components.Login.signinwithplex": "Benutze dein Plex-Konto", "components.Login.signinheader": "Anmelden um fortzufahren", "components.Login.signingin": "Anmelden …", @@ -364,8 +355,6 @@ "components.Settings.serverpreset": "Server", "components.Settings.serverRemote": "entfernt", "components.Settings.serverLocal": "lokal", - "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus)", - "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", "components.PermissionEdit.usersDescription": "Autorisierung zur Benutzerverwaltung erteilen. Benutzer mit dieser Berechtigung können keine Benutzer mit Admin-Recht ändern oder das Admin-Recht gewähren.", @@ -390,8 +379,6 @@ "components.MovieDetails.playonplex": "Auf Plex abspielen", "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", - "components.Settings.trustProxyTip": "Erlaubt es Overseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren", - "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", "components.Settings.SettingsJobsCache.jobtype": "Art", @@ -418,8 +405,6 @@ "components.UserList.users": "Benutzer", "components.TvDetails.nextAirDate": "Nächstes Sendedatum", "components.Setup.setup": "Einrichtung", - "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", @@ -447,13 +432,10 @@ "components.PermissionEdit.viewrequestsDescription": "Autorisierung zur Anzeige der von anderen Benutzern eingereichten Medienanfragen.", "components.PermissionEdit.viewrequests": "Anfragen anzeigen", "components.Login.forgotpassword": "Passwort vergessen?", - "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", "components.Settings.SettingsJobsCache.command": "Befehl", "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", "components.Discover.discover": "Entdecken", - "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", - "components.Settings.applicationTitle": "Anwendungstitel", "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", @@ -515,16 +497,12 @@ "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die mehrstellige ID-Nummer die mit deinem Benutzerkonto verbunden ist", "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", - "components.Settings.region": "Region Entdecken", - "components.Settings.originallanguage": "Sprache Entdecken", "components.Discover.upcomingtv": "Kommende Serien", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", "components.Settings.webhook": "Webhook", - "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", "components.Settings.email": "E-Mail", "components.RegionSelector.regionDefault": "Alle Regionen", "components.RegionSelector.regionServerDefault": "Standard ({region})", @@ -582,7 +560,6 @@ "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Sie können Ihre eigenen Berechtigungen nicht ändern.", "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", "components.TvDetails.episodeRuntime": "Episodenlaufzeit", - "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", "components.Settings.Notifications.pgpPassword": "PGP Passwort", "components.RequestModal.alreadyrequested": "Bereits Angefragt", @@ -607,10 +584,7 @@ "components.Settings.services": "Dienstleistungen", "components.Settings.plex": "Plex", "components.Settings.notifications": "Benachrichtigungen", - "components.Settings.general": "Allgemein", "components.Settings.enablessl": "SSL aktivieren", - "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", - "components.Settings.cacheImages": "Bild-Caching aktivieren", "components.Settings.SettingsUsers.users": "Benutzer", "components.Settings.SettingsLogs.time": "Zeitstempel", "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", @@ -639,7 +613,7 @@ "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", "i18n.view": "Anzeigen", - "i18n.tvshow": "Serien", + "i18n.tvshow": "Serie", "i18n.testing": "Testen…", "i18n.test": "Test", "i18n.status": "Status", @@ -803,7 +777,6 @@ "components.UserList.displayName": "Anzeigename", "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", - "components.Settings.locale": "Sprache darstellen", "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", @@ -864,14 +837,14 @@ "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", "components.IssueDetails.IssueDescription.description": "Beschreibung", "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", - "components.IssueDetails.allepisodes": "Alle Folgen", + "components.IssueDetails.allepisodes": "Alle Episoden", "components.IssueDetails.allseasons": "Alle Staffeln", "components.IssueDetails.closeissue": "Problem schließen", "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", "components.IssueDetails.comments": "Kommentare", "components.IssueDetails.deleteissue": "Problem löschen", "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", - "components.IssueDetails.episode": "Folge {episodeNumber}", + "components.IssueDetails.episode": "Episode {episodeNumber}", "components.IssueDetails.issuepagetitle": "Problem", "components.IssueDetails.issuetype": "Art", "components.IssueDetails.lastupdated": "Letzte Aktualisierung", @@ -903,7 +876,7 @@ "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Neue Häufigkeit", "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", @@ -1043,7 +1016,7 @@ "components.TitleCard.tmdbid": "TMDB-ID", "components.TitleCard.tvdbid": "TheTVDB-ID", "components.Discover.DiscoverWatchlist.discoverwatchlist": "Deine Plex-Watchlist", - "components.Discover.plexwatchlist": "Deine Plex-Watchlist", + "components.Discover.plexwatchlist": "Deine Plex Watchlist", "components.PermissionEdit.autorequest": "Automatische Anfrage", "components.PermissionEdit.autorequestSeries": "Auto-Anfrage-Serien", "components.PermissionEdit.autorequestMoviesDescription": "Autorisierung zur automatischen Anfrage von Nicht-4K-Medien über die Plex Watchlist.", @@ -1065,5 +1038,117 @@ "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatisch Serien auf deiner Plex Watchlist anfragen", "components.NotificationTypeSelector.mediaautorequestedDescription": "Erhalten eine Benachrichtigung, wenn neue Medienanfragen für Objekte auf deiner Plex Watchlist automatisch übermittelt werden.", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatisch Filme auf deiner Plex Watchlist anfordern", - "components.NotificationTypeSelector.mediaautorequested": "Automatisch übermittelte Anfrage" + "components.NotificationTypeSelector.mediaautorequested": "Automatisch übermittelte Anfrage", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuelle Häufigkeit", + "components.StatusBadge.openinarr": "In {arr} öffnen", + "components.StatusBadge.playonplex": "Auf Plex abspielen", + "components.TvDetails.Season.somethingwentwrong": "Beim Datenabruf der Staffel ist etwas schief gelaufen.", + "components.UserProfile.emptywatchlist": "Hier erscheinen deine zur Plex Watchlist hinzugefügte Medien.", + "components.TvDetails.manageseries": "Serie verwalten", + "components.MovieDetails.managemovie": "Film verwalten", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.MovieDetails.reportissue": "Problem melden", + "components.Settings.SettingsLogs.viewdetails": "Details anzeigen", + "components.Settings.advancedTooltip": "Bei falscher Konfiguration dieser Einstellung, kann dies zu einer Funktionsstörung führen", + "components.Settings.restartrequiredTooltip": "Overseerr muss neu gestartet werden, damit Änderungen an dieser Einstellung wirksam werden", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.TvDetails.status4k": "4K {status}", + "components.PermissionEdit.viewwatchlists": "Plex Watchlist anzeigen", + "components.AirDateBadge.airedrelative": "Ausgestrahlt {relativeTime}", + "components.AirDateBadge.airsrelative": "Ausstrahlung {relativeTime}", + "components.Layout.UserDropdown.requests": "Anfragen", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.MovieDetails.tmdbuserscore": "TMDB-Nutzerwertung", + "components.RequestCard.cancelrequest": "Anfrage abbrechen", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Episode} other {# Episoden}}", + "components.DownloadBlock.formattedTitle": "{title}: Staffel {seasonNumber} Episode {episodeNumber}", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Film-Anfragen", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serien-Anfragen", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.PermissionEdit.viewwatchlistsDescription": "Autorisierung zur Anzeige von Plex Watchlists anderer Benutzer.", + "components.RequestBlock.approve": "Anfrage genehmigen", + "components.RequestBlock.decline": "Anfrage ablehnen", + "components.RequestBlock.delete": "Anfrage löschen", + "components.RequestBlock.edit": "Anfrage bearbeiten", + "components.RequestBlock.lastmodifiedby": "Zuletzt geändert von", + "components.RequestBlock.requestedby": "Angefragt von", + "components.RequestBlock.requestdate": "Anfrage-Datum", + "components.RequestCard.approverequest": "Anfrage genehmigen", + "components.RequestCard.declinerequest": "Anfrage ablehnen", + "components.RequestCard.editrequest": "Anfrage bearbeiten", + "components.RequestList.RequestItem.unknowntitle": "Unbekannter Titel", + "components.RequestModal.requestcollection4ktitle": "Sammlung in 4k anfragen", + "components.RequestModal.requestcollectiontitle": "Sammlung anfragen", + "components.RequestModal.requestmovie4ktitle": "Film in 4k anfragen", + "components.RequestModal.requestmovietitle": "Film anfragen", + "components.RequestModal.requestseries4ktitle": "Serie in 4k anfragen", + "components.RequestModal.requestseriestitle": "Serie anfragen", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Bild-Cache-Bereinigung", + "components.Settings.SettingsJobsCache.imagecache": "Bild-Cache", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Wenn diese Funktion in den Einstellungen aktiviert ist, wird Overseerr Bilder aus vorkonfigurierten externen Quellen im Proxy-Cache zwischenspeichern. Bilder im Zwischenspeicher werden in deinem Konfigurationsordner gespeichert. Du findest die Dateien unter {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Bilder im Cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Gesamtgröße des Caches", + "components.Settings.experimentalTooltip": "Die Aktivierung dieser Einstellung kann zu einem unerwarteten Verhalten der Anwendung führen", + "components.StatusBadge.managemedia": "{mediaType} verwalten", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}F{episodeNumber}", + "components.TvDetails.reportissue": "Problem melden", + "components.TvDetails.seasonnumber": "Staffel {seasonNumber}", + "components.TvDetails.seasonstitle": "Staffeln", + "components.Discover.emptywatchlist": "Hier erscheinen deine zur Plex Watchlist hinzugefügte Medien.", + "components.RequestCard.unknowntitle": "Unbekannter Titel", + "components.RequestModal.SearchByNameModal.nomatches": "Wir konnten keine Übereinstimmung für diese Serie finden.", + "components.TvDetails.Season.noepisodes": "Liste der Episoden nicht verfügbar.", + "components.TvDetails.tmdbuserscore": "TMDB-Nutzerwertung", + "components.Discover.DiscoverTvKeyword.keywordSeries": "{keywordTitle} Serien", + "components.Discover.RecentlyAddedSlider.recentlyAdded": "Kürzlich hinzugefügt", + "components.Discover.moviegenres": "Film Genre", + "components.Discover.studios": "Studios", + "components.Discover.tmdbmoviegenre": "TMDB Film Genre", + "components.Discover.tmdbtvgenre": "TMDB Serien Genre", + "components.Discover.tmdbtvkeyword": "TMDB Serien Keyword", + "components.Discover.tvgenres": "Serien Genre", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addSlider": "Slider hinzufügen", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addcustomslider": "Benutzerdefinierten Slider hinzufügen", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addfail": "Slider konnte nicht erstellt werden.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.needresults": "Um den Slider zu speichern, benötigt Ihre Suche mindestens ein gültiges Resultat.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.nooptions": "Keine Ergebnisse.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbgenreid": "Gebe die TMDB Genre ID ein", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbkeywordid": "Gebe die TMDB Keyword ID ein", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbsearch": "Spezifiziere die Suchanfrage", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbstudio": "Spezifiziere die TMDB Studio ID", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchKeywords": "Keywörter suchen…", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletefail": "Konnte den Slider nicht löschen.", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.remove": "Entfernen", + "components.Settings.SettingsMain.apikey": "API Schlüssel", + "components.Settings.SettingsMain.csrfProtection": "Aktivere CSRF Schutz", + "components.Settings.SettingsMain.applicationTitle": "Anwendungstitel", + "components.Settings.SettingsMain.csrfProtectionTip": "Limitiere externen API Zugriff auf Lese-Operationen (erfordert HTTPS)", + "components.Settings.SettingsMain.general": "Allgemein", + "components.Settings.SettingsMain.generalsettings": "Allgemeine Einstellungen", + "components.Settings.SettingsMain.locale": "Anzeigesprache", + "components.Settings.SettingsMain.hideAvailable": "Verfügbare Medien ausblenden", + "components.Settings.SettingsMain.toastApiKeySuccess": "Neuer API Schlüssel erfolgreich generiert!", + "components.Settings.SettingsMain.trustProxy": "Proxyunterstützung aktivieren", + "components.Settings.SettingsMain.validationApplicationUrl": "Du musst eine valide URL spezifizieren", + "components.Settings.SettingsMain.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem Slash \"/\" enden", + "components.Discover.DiscoverMovieKeyword.keywordMovies": "{keywordTitle} Filme", + "components.Discover.PlexWatchlistSlider.plexwatchlist": "Deine Plex Watchlist", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.validationTitlerequired": "Du musst einen Titel spezifizieren.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addsuccess": "Slider erstellt und benutzerdefinierte Discover Einstellungen gespeichert.", + "components.Discover.tmdbsearch": "TMDB Suche", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.starttyping": "Tippe um zu suchen.", + "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchGenres": "Genre suchen…", + "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletesuccess": "Slider erfolgreich gelöscht.", + "components.Settings.SettingsMain.DiscoverCustomization.resettodefault": "Zurücksetzen", + "components.Settings.SettingsMain.DiscoverCustomization.resetwarning": "Alle Slider zurücksetzen. Benutzerdefinierte Slider werden gelöscht!", + "components.Settings.SettingsMain.discovercustomizationDescription": "Erstelle oder entferne Slider auf der Entdecken Seite.", + "components.Settings.SettingsMain.toastApiKeyFailure": "Etwas ist schiefgelaufen während der Generierung eines neuen API Schlüssels.", + "components.Settings.SettingsMain.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.Discover.tmdbmoviekeyword": "TMDB Film Keyword", + "components.Settings.SettingsMain.validationApplicationTitle": "Du musst einen Anwendungstitel spezifizieren", + "components.Discover.PlexWatchlistSlider.emptywatchlist": "Medien in deiner Plex Watchlist erscheinen hier.", + "components.Settings.SettingsMain.cacheImagesTip": "Cache extern gehostete Bilder (erfordert eine beträchtliche Menge an Speicherplatz)", + "components.Settings.SettingsMain.csrfProtectionHoverTip": "Aktiviere diese Einstellung nur wenn du weißt was du tust!" } diff --git a/src/i18n/locale/el.json b/src/i18n/locale/el.json index 729ee4279..95323380e 100644 --- a/src/i18n/locale/el.json +++ b/src/i18n/locale/el.json @@ -646,21 +646,12 @@ "components.Settings.webAppUrlTip": "Προαιρετικά κατεύθυνε τους χρήστες στην εφαρμογή ιστού στον διακομιστή σας αντί για την εφαρμογή ιστού που \"φιλοξενείται\"", "components.Settings.webAppUrl": "Web App διεύθυνση URL", "components.Settings.validationPortRequired": "Πρέπει να δώσεις έναν έγκυρο αριθμό θύρας", - "components.Settings.validationApplicationUrlTrailingSlash": "Η διεύθυνση URL δεν πρέπει να τελειώνει με κάθετο", - "components.Settings.validationApplicationUrl": "Πρέπει να βάλεις μια έγκυρη διεύθυνση URL", - "components.Settings.validationApplicationTitle": "Πρέπει να δώσεις έναν τίτλο εφαρμογής", - "components.Settings.trustProxyTip": "Επίτρεψε στο Overseerr να καταχωρίζει σωστά τις διευθύνσεις IP του πελάτη πίσω από έναν διακομιστή μεσολάβησης", - "components.Settings.trustProxy": "Ενεργοποίηση υποστήριξης διαμεσολαβητή", - "components.Settings.toastSettingsSuccess": "Οι ρυθμίσεις αποθηκεύτηκαν με επιτυχία!", - "components.Settings.toastSettingsFailure": "Κάτι πήγε στραβά κατά την αποθήκευση των ρυθμίσεων.", "components.Settings.toastPlexRefreshSuccess": "Η λίστα διακομιστών Plex ανακτήθηκε με επιτυχία!", "components.Settings.toastPlexRefreshFailure": "Απέτυχε η ανάκτηση της λίστας με τους διακομιστές Plex.", "components.Settings.toastPlexRefresh": "Ανάκτηση λίστας διακομιστών από το Plex…", "components.Settings.toastPlexConnectingSuccess": "Η σύνδεση Plex δημιουργήθηκε με επιτυχία!", "components.Settings.toastPlexConnectingFailure": "Απέτυχε να συνδεθεί στο Plex.", "components.Settings.toastPlexConnecting": "Προσπάθεια σύνδεσης στο Plex…", - "components.Settings.toastApiKeySuccess": "Δημιουργήθηκε νέο κλειδί API με επιτυχία!", - "components.Settings.toastApiKeyFailure": "Κάτι πήγε στραβά κατά τη δημιουργία νέου κλειδιού API.", "components.Settings.startscan": "Έναρξη σάρωσης", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Ρυθμίσεις Sonarr", @@ -676,8 +667,6 @@ "components.Settings.serverLocal": "τοπικά", "components.Settings.scanning": "Συγχρονίζει…", "components.Settings.scan": "Συγχρονισμός των βιβλιοθήκων", - "components.Settings.regionTip": "Φιλτράρει το περιεχόμενο βάσει της διαθεσιμότητας του περιεχομένου", - "components.Settings.region": "Ανακάλυψε βάσει την περιοχή", "components.Settings.radarrsettings": "Ρυθμίσεις Radarr", "components.Settings.port": "Θύρα", "components.Settings.plexsettingsDescription": "Διαμόρφωσε τις ρυθμίσεις του Plex διακομιστή σου. Το Overseerr σαρώνει τις βιβλιοθήκες του Plex για να προσδιορίσει τη διαθεσιμότητα περιεχομένου.", @@ -685,9 +674,6 @@ "components.Settings.plexlibrariesDescription": "Οι βιβλιοθήκες που το Overseerr θα σαρώνει για τίτλους. Ρύθμισε και αποθήκευσε τις ρυθμίσεις της σύνδεσης του Plex και, στη συνέχεια, κάνε κλικ στο παρακάτω κουμπί, εάν δεν εμφανιστύν οι βιβλιοθήκες.", "components.Settings.plexlibraries": "Βιβλιοθήκες Plex", "components.Settings.plex": "Plex", - "components.Settings.partialRequestsEnabled": "Να επιτρέπονται τα εν μέρει αιτήματα για τις Σειρές", - "components.Settings.originallanguage": "Ανακάλυψη με βάση την γλώσσα", - "components.Settings.originallanguageTip": "Φίλτραρε το περιεχόμενο με βάση την αρχική γλώσσα", "components.Settings.notrunning": "Δεν τρέχει", "components.Settings.notificationsettings": "Ρυθμίσεις Ειδοποιήσεων", "components.Settings.notifications": "Ειδοποιήσεις", @@ -707,29 +693,17 @@ "components.Settings.mediaTypeMovie": "ταινία", "components.Settings.manualscanDescription": "Κανονικά, αυτό εκτελείται μόνο μία φορά κάθε 24 ώρες. Το Overseerr θα ελέγχει πιο επιθετικά τις προσθήκες που έγιναν πρόσφατα στον διακομιστή Plex. Εάν αυτή είναι η πρώτη φορά που ρυθμίζεις το Plex, συνιστάται μια εφάπαξ πλήρης χειροκίνητη σάρωση βιβλιοθήκης!", "components.Settings.manualscan": "Χειροκίνητη σάρωση βιβλιοθήκης", - "components.Settings.locale": "Προβολή Γλώσσας", "components.Settings.librariesRemaining": "Βιβλιοθήκες που απομένουν: {count}", "components.Settings.is4k": "4K", "components.Settings.hostname": "Όνομα κεντρικού υπολογιστή ή διεύθυνση IP", - "components.Settings.hideAvailable": "Απόκρυψη διαθέσιμων μέσων", - "components.Settings.generalsettings": "Γενικές Ρυθμίσεις", - "components.Settings.general": "Γενικές", "components.Settings.enablessl": "Χρήση SSL", "components.Settings.email": "Email", "components.Settings.deleteserverconfirm": "Είσαι σίγουρος ότι θες να διαγράψεις αυτόν τον διακομιστή;", "components.Settings.default4k": "Προεπιλεγμένο 4K", "components.Settings.default": "Προκαθορισμένο", "components.Settings.currentlibrary": "Τρέχουσα βιβλιοθήκη: {name}", - "components.Settings.csrfProtectionTip": "Ορισμός εξωτερικής πρόσβασης API σε μόνο για ανάγνωση (απαιτείται HTTPS)", - "components.Settings.csrfProtectionHoverTip": "ΜΗΝ ενεργοποιήσεις αυτή τη ρύθμιση αν δεν καταλαβαίνεις τι κάνεις!", - "components.Settings.csrfProtection": "Ενεργοποίηση της προστασίας CSRF", "components.Settings.copied": "Αντιγράφηκε το κλειδί API στο πρόχειρο.", "components.Settings.cancelscan": "Ακύρωση σάρωσης", - "components.Settings.cacheImagesTip": "Βελτιστοποίηση και αποθήκευση όλων των εικόνων τοπικά (καταναλώνει σημαντικό χώρο στο δίσκο)", - "components.Settings.cacheImages": "Ενεργοποίηση προσωρινής αποθήκευσης εικόνων", - "components.Settings.applicationurl": "Διεύθυνση URL εφαρμογής", - "components.Settings.applicationTitle": "Τίτλος εφαρμογής", - "components.Settings.apikey": "Κλειδί API", "components.Settings.addsonarr": "Προσθήκη διακομιστή Sonarr", "components.Settings.address": "Διεύθυνση", "components.Settings.addradarr": "Προσθήκη διακομιστή Radarr", @@ -788,7 +762,6 @@ "components.Settings.SonarrModal.add": "Προσθήκη διακομιστή", "components.Settings.SettingsUsers.users": "Χρήστες", "components.Settings.SettingsUsers.userSettings": "Ρυθμίσεις χρήστη", - "components.Settings.generalsettingsDescription": "Διαμόρφωση των γενικών και προεπιλεγμένων ρυθμίσεων του Overseerr.", "components.Settings.SettingsUsers.userSettingsDescription": "Διαμόρφωση των γενικών και προεπιλεγμένων ρυθμίσεων του χρήστη.", "components.Settings.SettingsUsers.tvRequestLimitLabel": "Καθολικό όριο των αιτημάτων στις Σειρές", "components.Settings.SettingsUsers.toastSettingsSuccess": "Οι ρυθμίσεις του χρήστη αποθηκεύτηκαν επιτυχώς!", diff --git a/src/i18n/locale/es.json b/src/i18n/locale/es.json index a86022542..aef7e6fd0 100644 --- a/src/i18n/locale/es.json +++ b/src/i18n/locale/es.json @@ -175,16 +175,12 @@ "components.Settings.manualscan": "Escaneo Manual de Biblioteca", "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", "components.Settings.hostname": "Nombre de host o Dirección IP", - "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Overseerr.", - "components.Settings.generalsettings": "Configuración general", "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", "components.Settings.default4k": "4K predeterminado", "components.Settings.default": "Predeterminado", "components.Settings.currentlibrary": "Biblioteca actual: {name}", "components.Settings.copied": "Clave API copiada en el portapapeles.", "components.Settings.cancelscan": "Cancelar Escaneo", - "components.Settings.applicationurl": "URL de la aplicación", - "components.Settings.apikey": "Clave API", "components.Setup.tip": "Consejo", "i18n.deleting": "Eliminando…", "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", @@ -204,10 +200,6 @@ "components.TvDetails.showtype": "Tipos de Series", "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", "components.TvDetails.anime": "Anime", - "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", - "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", - "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", "components.Settings.SettingsAbout.timezone": "Zona horaria", @@ -331,7 +323,6 @@ "components.RequestModal.autoapproval": "Aprobación Automática", "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", "i18n.experimental": "Experimental", - "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", "components.Login.signingin": "Iniciando sesión…", "components.Login.signin": "Iniciar Sesión", "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", @@ -505,11 +496,6 @@ "components.Setup.setup": "Configuración", "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", "components.Settings.webhook": "Webhook", - "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", - "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un proxy", - "components.Settings.trustProxy": "Habilitar soporte Proxy", "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", @@ -525,18 +511,9 @@ "components.Settings.serverLocal": "local", "components.Settings.scanning": "Sincronizando…", "components.Settings.scan": "Sincronizar Bibliotecas", - "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.Settings.region": "Región para la sección \"Descubrir\"", - "components.Settings.originallanguage": "Idioma para la sección Descubrir", - "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", - "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", "components.Settings.menuUsers": "Usuarios", "components.Settings.email": "Email", - "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS)", - "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", - "components.Settings.csrfProtection": "Habilitar Protección CSRF", - "components.Settings.applicationTitle": "Título de la Aplicación", "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", @@ -590,7 +567,6 @@ "components.Settings.services": "Servicios", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notificaciones", - "components.Settings.general": "General", "components.Settings.SettingsUsers.users": "Usuarios", "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", "components.Settings.SettingsAbout.about": "Acerca de", @@ -625,8 +601,6 @@ "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", "components.Settings.enablessl": "Usar SSL", - "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", - "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", "components.Settings.SettingsLogs.logDetails": "Detalles del Log", "components.Settings.SettingsLogs.extraData": "Datos Adicionales", "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", @@ -818,7 +792,6 @@ "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", "components.Settings.webAppUrl": "Url de la Web App", - "components.Settings.locale": "Idioma en Pantalla", "components.UserList.displayName": "Nombre en Pantalla", "components.Settings.Notifications.encryption": "Método de Encriptación", "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", @@ -973,5 +946,7 @@ "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", - "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta" + "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta", + "i18n.import": "Importar", + "i18n.importing": "Importando…" } diff --git a/src/i18n/locale/fr.json b/src/i18n/locale/fr.json index ccf6f0595..46d5dd7e5 100644 --- a/src/i18n/locale/fr.json +++ b/src/i18n/locale/fr.json @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Ajouter un serveur Radarr", "components.Settings.address": "Adresse", "components.Settings.addsonarr": "Ajouter un serveur Sonarr", - "components.Settings.apikey": "Clé d'API", - "components.Settings.applicationurl": "URL de l'application", "components.Settings.cancelscan": "Annuler le scan", "components.Settings.copied": "Clé d'API copiée dans le presse-papier.", "components.Settings.currentlibrary": "Bibliothèque actuelle : {name}", "components.Settings.default": "Par défaut", "components.Settings.default4k": "4K par défaut", "components.Settings.deleteserverconfirm": "Êtes-vous sûr(e) de vouloir supprimer ce serveur ?", - "components.Settings.generalsettings": "Paramètres généraux", - "components.Settings.generalsettingsDescription": "Configurer les paramètres généraux et par défaut pour Overseerr.", "components.Settings.hostname": "Nom d'hôte ou adresse IP", "components.Settings.librariesRemaining": "Bibliothèques restantes : {count}", "components.Settings.manualscan": "Scan manuel des bibliothèques", @@ -203,10 +199,6 @@ "components.TvDetails.showtype": "Type de séries", "components.TvDetails.network": "{networkCount, plural, one {Diffuseur} other {Diffuseurs}}", "components.TvDetails.anime": "Animé", - "components.Settings.toastSettingsSuccess": "Les paramètres ont été enregistrés avec succès !", - "components.Settings.toastSettingsFailure": "Une erreur s'est produite durant l'enregistrement des paramètres.", - "components.Settings.toastApiKeySuccess": "Nouvelle clé API générée avec succès !", - "components.Settings.toastApiKeyFailure": "Une erreur s'est produite lors de la génération de la nouvelle clé API.", "components.Settings.SonarrModal.animerootfolder": "Dossier racine pour anime", "components.Settings.SonarrModal.animequalityprofile": "Profil qualité pour anime", "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", @@ -331,7 +323,6 @@ "components.NotificationTypeSelector.mediadeclined": "Demande refusée", "components.NotificationTypeSelector.mediadeclinedDescription": "Envoyer des notifications lorsqu'une demande de média est refusée.", "i18n.experimental": "Expérimentale", - "components.Settings.hideAvailable": "Masquer les médias disponibles", "components.RequestModal.requesterror": "Une erreur s'est produite lors de la demande.", "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nous n'avons pas pu associer cette série automatiquement. Veuillez sélectionner l'association correcte dans la liste ci-dessous.", "components.Login.signinwithplex": "Utilisez votre compte Plex", @@ -343,8 +334,6 @@ "components.PlexLoginButton.signingin": "Connexion en cours…", "components.UserList.userssaved": "Les permissions d'utilisateur ont été enregistrées avec succès !", "components.UserList.bulkedit": "Modification en masse", - "components.Settings.csrfProtectionTip": "Définir l'accès à l'API externe en lecture seule (nécessite HTTPS)", - "components.Settings.csrfProtection": "Activer la protection CSRF", "components.PermissionEdit.usersDescription": "Autorise à gérer les utilisateurs. Les utilisateurs avec cette autorisation ne peuvent pas modifier les utilisateurs dotés de privilèges d'administrateur ni les accorder.", "components.PermissionEdit.users": "Gérer les utilisateurs", "components.PermissionEdit.requestDescription": "Autorise à demander des médias non-4K.", @@ -392,8 +381,6 @@ "components.MovieDetails.mark4kavailable": "Marquer comme disponible en 4K", "components.MovieDetails.playonplex": "Lire sur Plex", "components.MovieDetails.play4konplex": "Lire en 4K sur Plex", - "components.Settings.trustProxyTip": "Permettre Overseerr à enregistrer correctement les adresses IP des clients derrière un proxy", - "components.Settings.trustProxy": "Activer la prise en charge proxy", "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr effectue certaines tâches de maintenance comme des tâches planifiées régulièrement, mais elles peuvent également être déclenchées manuellement ci-dessous. L'exécution manuelle d'une tâche ne modifiera pas sa planification.", "components.Settings.SettingsJobsCache.cachemisses": "Manqués", "components.Settings.SettingsJobsCache.runnow": "Exécuter", @@ -413,13 +400,9 @@ "components.Settings.SettingsJobsCache.cacheflushed": "Cache de {cachename} vidé.", "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr met en cache les demandes aux points de terminaison d'API externes pour optimiser les performances et éviter de faire des appels d'API inutiles.", "components.Settings.SettingsJobsCache.cache": "Cache", - "components.Settings.applicationTitle": "Titre de l'application", "i18n.advanced": "Avancés", "components.UserList.users": "Utilisateurs", "components.Setup.setup": "Configuration", - "components.Settings.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", - "components.Settings.validationApplicationUrl": "Vous devez fournir une URL valide", - "components.Settings.csrfProtectionHoverTip": "N'activez PAS ce paramètre à moins que vous ne compreniez ce que vous faites !", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", "components.Settings.SonarrModal.validationApplicationUrl": "Vous devez fournir une URL valide", "components.Settings.SettingsAbout.preferredmethod": "Préféré", @@ -454,7 +437,6 @@ "components.Login.forgotpassword": "Mot de passe oublié ?", "components.Settings.SettingsJobsCache.process": "Processus", "components.Settings.SettingsJobsCache.command": "Commande", - "components.Settings.validationApplicationTitle": "Vous devez fournir un titre d'application", "components.Settings.SonarrModal.validationLanguageProfileRequired": "Vous devez sélectionner un profil de langue", "components.Settings.SonarrModal.testFirstLanguageProfiles": "Tester la connexion pour charger les profils de langue", "components.Settings.SonarrModal.selectLanguageProfile": "Sélectionnez le profil de langue", @@ -519,11 +501,7 @@ "components.UserProfile.UserSettings.UserGeneralSettings.region": "Région à découvrir", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrer le contenu par langue d’origine", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Langue à découvrir", - "components.Settings.regionTip": "Filtrer le contenu par disponibilité régionale", - "components.Settings.region": "Région à découvrir", - "components.Settings.originallanguageTip": "Filtrer le contenu par langue d’origine", "components.Discover.upcomingtv": "Séries à venir", - "components.Settings.originallanguage": "Langue à découvrir", "components.RegionSelector.regionDefault": "Toutes les régions", "components.Settings.webhook": "Webhook", "components.Settings.email": "E-mail", @@ -587,7 +565,6 @@ "components.TvDetails.episodeRuntime": "Durée d'un épisode", "components.Settings.Notifications.pgpPassword": "PGP mot de passe", "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.Settings.partialRequestsEnabled": "Permettre les demandes partielles des séries", "components.RequestModal.alreadyrequested": "Déjà demandé", "components.Discover.TvGenreSlider.tvgenres": "Genres de séries", "components.Discover.TvGenreList.seriesgenres": "Genres de séries", @@ -612,7 +589,6 @@ "components.Settings.services": "Applications", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notifications", - "components.Settings.general": "Général", "components.Settings.enablessl": "Utiliser SSL", "components.Settings.SettingsUsers.users": "Utilisateurs", "components.Settings.SettingsLogs.showall": "Afficher tous les journaux", @@ -621,8 +597,6 @@ "components.ResetPassword.passwordreset": "Réinitialiser le mot de passe", "pages.internalservererror": "Erreur interne du serveur", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Un problème est survenu lors de l'enregistrement du mot de passe. Votre mot de passe actuel a-t-il été saisi correctement ?", - "components.Settings.cacheImagesTip": "Met en cache localement et utilise des images optimisées (nécessite une quantité considérable d'espace disque)", - "components.Settings.cacheImages": "Activer la mise en cache d'image", "components.Settings.SettingsLogs.time": "Horodatage", "components.Settings.SettingsLogs.resumeLogs": "Résumer", "components.Settings.SettingsLogs.message": "Message", @@ -808,7 +782,6 @@ "components.Settings.webAppUrlTip": "Dirigez éventuellement les utilisateurs vers l'application Web sur votre serveur au lieu de l'application Web « hébergée »", "components.Settings.webAppUrl": "URL Application Web", "components.Settings.noDefault4kServer": "Un serveur 4K {serverType} doit être marqué par défaut afin de permettre aux utilisateurs de soumettre des requêtes 4K {mediaType}.", - "components.Settings.locale": "Langue d'affichage", "components.Settings.is4k": "4K", "components.Settings.SettingsUsers.newPlexLoginTip": "Autoriser les utilisateurs de Plex à se connecter sans être d'abord importés", "components.Settings.SettingsUsers.newPlexLogin": "Autoriser nouvelle connexion Plex", diff --git a/src/i18n/locale/he.json b/src/i18n/locale/he.json index 4f1942b42..61f728758 100644 --- a/src/i18n/locale/he.json +++ b/src/i18n/locale/he.json @@ -1,5 +1,141 @@ { - "components.ManageSlideOver.alltime": "על הזמן", + "components.ManageSlideOver.alltime": "כל הזמנים", "components.Login.validationemailrequired": "חובה לספק כתובת מייל חוקית", - "components.NotificationTypeSelector.userissuereopenedDescription": "קבל התראה כשבעיות שפתחת נפתחות מחדש." + "components.NotificationTypeSelector.userissuereopenedDescription": "קבל התראה כשבעיות שפתחת נפתחות מחדש.", + "components.AppDataWarning.dockerVolumeMissingDescription": "ה {appDataPath} אחסון לא הוגדר כראוי. כל המידע יוסר כאשר הקונטיינר יעצור או יותחל מחדש.", + "components.CollectionDetails.overview": "תצוגה כללית", + "components.CollectionDetails.numberofmovies": "{כמות} סרטים", + "components.CollectionDetails.requestcollection": "אוסף בקשות", + "components.CollectionDetails.requestcollection4k": "אוסף בקשות ב4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "סרטי {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} סרטים", + "components.Discover.DiscoverNetwork.networkSeries": "{network} סדרות", + "components.Discover.DiscoverStudio.studioMovies": "{studio} סרטים", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} סדרות", + "components.Discover.DiscoverTvLanguage.languageSeries": "{language} סדרות", + "components.IssueDetails.commentplaceholder": "הוסף תגובה …", + "components.IssueDetails.comments": "תגובות", + "components.IssueDetails.deleteissue": "מחק מקרה", + "components.IssueDetails.deleteissueconfirm": "האם אתה בטוח שאתה רוצה למחוק את המקרה?", + "components.AirDateBadge.airsrelative": "ישודר בעוד {relativeTime}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "רשימת הצפייה שלך", + "components.Discover.MovieGenreList.moviegenres": "סוגי סרטים", + "components.Discover.StudioSlider.studios": "אולפנים", + "components.Discover.TvGenreList.seriesgenres": "סוגי סדרות", + "components.Discover.TvGenreSlider.tvgenres": "סוגי סדרות", + "components.Discover.recentlyAdded": "נוספו לאחרונה", + "components.Discover.recentrequests": "בקשות אחרונות", + "components.Discover.trending": "חמים", + "components.Discover.upcoming": "סרטים שיצאו בקרוב", + "components.Discover.upcomingmovies": "סרטים שיצאו בקרוב", + "components.Discover.upcomingtv": "סדרות שיצאו בקרוב", + "components.DownloadBlock.estimatedtime": "{time} משוער", + "components.IssueDetails.IssueComment.delete": "מחיקת תגובה", + "components.IssueDetails.IssueComment.areyousuredelete": "האם תרצה למחוק את התגובה?", + "components.IssueDetails.IssueComment.edit": "לערוך תגובה", + "components.IssueDetails.IssueDescription.edit": "ערוך תיאור", + "components.IssueDetails.allepisodes": "כל הפרקים", + "components.IssueDetails.allseasons": "כל העונות", + "components.IssueDetails.closeissue": "סגור מקרה", + "components.IssueDetails.closeissueandcomment": "סגור עם תגובה", + "components.IssueDetails.episode": "פרק {episodeNumber}", + "components.IssueDetails.issuepagetitle": "מקרה", + "components.IssueDetails.playonplex": "הפעל בפלקס", + "components.IssueDetails.play4konplex": "הפעל 4K בפלקס", + "components.IssueDetails.problemepisode": "פרק מושפע", + "components.IssueDetails.toastissuedeleted": "מקרה נמחק בהצלחה!", + "components.IssueList.IssueItem.issuetype": "סוג", + "components.IssueList.IssueItem.opened": "נפתח", + "components.IssueList.IssueItem.openeduserdate": "{date} ע\"י {user}", + "components.IssueModal.issueSubtitles": "כתוביות", + "components.IssueModal.issueVideo": "וידאו", + "components.Layout.Sidebar.dashboard": "לגלות", + "components.Login.signingin": "התחברות…", + "components.Login.signinheader": "התחבר בשביל להמשיך", + "components.Login.signinwithoverseerr": "השתמש בחשבון {applicationTitle} שלך", + "components.Login.signinwithplex": "השתמש בחשבון הפלקס שלך", + "components.ManageSlideOver.downloadstatus": "הורדות", + "components.Discover.DiscoverWatchlist.watchlist": "רשימת צפייה", + "components.Discover.MovieGenreSlider.moviegenres": "סוגי סרטים", + "components.Discover.populartv": "סדרות פופולריות", + "components.IssueDetails.IssueComment.postedby": "פורסם לפני {relativeTime} ע\"י {username}", + "components.IssueDetails.IssueComment.postedbyedited": "פורסם לפני {relativeTime} ע\"י {username} (נערך)", + "components.IssueDetails.IssueDescription.description": "תיאור", + "components.IssueDetails.openedby": "#{issueId} נפתח לפני {relativeTime} ע\"י {username}", + "components.IssueDetails.openin4karr": "נפתח ב4K {arr}", + "components.IssueDetails.openinarr": "פתח ב {arr}", + "components.IssueList.IssueItem.problemepisode": "פרק מושפע", + "components.IssueList.sortAdded": "הכי עדכני", + "components.IssueList.sortModified": "עודכן לאחרונה", + "components.IssueModal.CreateIssueModal.allepisodes": "כל הפרקים", + "components.IssueModal.CreateIssueModal.providedetail": "אנא תפרט אודות המקרה שחווית.", + "components.IssueModal.CreateIssueModal.submitissue": "הגש מקרה", + "components.LanguageSelector.originalLanguageDefault": "כל השפות", + "components.Layout.Sidebar.requests": "בקשות", + "components.Layout.Sidebar.settings": "הגדרות", + "components.Layout.Sidebar.users": "משתמשים", + "components.Layout.UserDropdown.myprofile": "פרופיל", + "components.Layout.UserDropdown.settings": "הגדרות", + "components.Layout.VersionStatus.streamdevelop": "Overseerr פיתוח", + "components.AirDateBadge.airedrelative": "שודר ב-{relativeTime}", + "components.Discover.NetworkSlider.networks": "רשתות שידור", + "components.Discover.discover": "לגלות", + "components.Discover.discovermovies": "סרטים פופולרים", + "components.Discover.discovertv": "סדרות פופולריות", + "components.Discover.plexwatchlist": "רשימת הצפייה שלך", + "components.Discover.popularmovies": "סרטים פופולרים", + "components.IssueDetails.IssueComment.validationComment": "אנא הכנס הודעה", + "components.IssueDetails.IssueDescription.deleteissue": "מחק מקרה", + "components.IssueDetails.issuetype": "סוג", + "components.IssueDetails.lastupdated": "עודכן לאחרונה", + "components.IssueDetails.leavecomment": "תגובה", + "components.IssueDetails.nocomments": "אין תגובות.", + "components.IssueDetails.problemseason": "עונה מושפעת", + "components.IssueDetails.reopenissue": "פתח מקרה מחדש", + "components.IssueDetails.reopenissueandcomment": "פתח מחדש עם תגובה", + "components.IssueDetails.season": "עונה {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "משהו השתבש בזמן עריכת תיאור המקרה.", + "components.IssueDetails.toasteditdescriptionsuccess": "תיאור המקרה נערך בהצלחה!", + "components.IssueDetails.toastissuedeletefailed": "משהו השתבש בזמן מחיקת המקרה.", + "components.IssueDetails.toaststatusupdated": "סטאטוס המקרה עודכן בהצלחה!", + "components.IssueDetails.toaststatusupdatefailed": "משהו השתבש בזמן עדכון סטאטוס המקרה.", + "components.IssueDetails.unknownissuetype": "לא ידוע", + "components.IssueList.IssueItem.issuestatus": "סטאטוס", + "components.IssueList.IssueItem.unknownissuetype": "לא ידוע", + "components.IssueList.IssueItem.viewissue": "צפה במקרה", + "components.IssueList.issues": "מקרים", + "components.IssueList.showallissues": "הצג את כל המקרים", + "components.IssueModal.CreateIssueModal.allseasons": "כל העונות", + "components.IssueModal.CreateIssueModal.episode": "פרק {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "תוספות", + "components.IssueModal.CreateIssueModal.problemepisode": "פרק מושפע", + "components.IssueModal.CreateIssueModal.season": "עונה {seasonNumber}", + "components.IssueModal.CreateIssueModal.problemseason": "עונה מושפעת", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "משהו השתבש בזמן הגשת מקרה.", + "components.IssueModal.CreateIssueModal.reportissue": "דווח על מקרה", + "components.IssueModal.CreateIssueModal.whatswrong": "מה השתבש?", + "components.IssueModal.issueAudio": "שמע/אודיו", + "components.IssueModal.issueOther": "אחר", + "components.IssueModal.CreateIssueModal.toastviewissue": "צפה במקרה", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "אנא כתוב תיאור", + "components.Layout.LanguagePicker.displaylanguage": "שפת תצוגה", + "components.Layout.SearchInput.searchPlaceholder": "חיפוש סרטים וסדרות", + "components.LanguageSelector.languageServerDefault": "ברירת מחדל({language})", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "בקשות סרטים", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "בקשות סדרות", + "components.Login.forgotpassword": "שכחת סיסמה?", + "components.Layout.VersionStatus.streamstable": "Overseerr יציבה", + "components.Login.email": "כתובת אימייל", + "components.ManageSlideOver.manageModalAdvanced": "מתקדם", + "components.ManageSlideOver.manageModalClearMedia": "מחק מידע", + "components.Discover.emptywatchlist": "מדיה נוספה לתוך רשימת צפייה תוצג פה.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "דווח מקרה של {title} הוגש בהצלחה!", + "components.Layout.Sidebar.issues": "מקרים", + "components.Layout.UserDropdown.requests": "בקשות", + "components.Layout.UserDropdown.signout": "התנתק", + "components.Layout.VersionStatus.outofdate": "לא מעודכן", + "components.Login.loginerror": "משהו השתבש בזמן ההתחברות.", + "components.Login.password": "סיסמה", + "components.Login.signin": "התחברות", + "components.Login.validationpasswordrequired": "חובה לכתוב סיסמה" } diff --git a/src/i18n/locale/hr.json b/src/i18n/locale/hr.json index 710ba1fbd..7730a4dae 100644 --- a/src/i18n/locale/hr.json +++ b/src/i18n/locale/hr.json @@ -1,33 +1,33 @@ { - "components.CollectionDetails.numberofmovies": "{count} Filmovi", + "components.CollectionDetails.numberofmovies": "{count} filmova", "components.CollectionDetails.overview": "Pregled", - "components.CollectionDetails.requestcollection4k": "Zahtjev za serijalom u 4K", - "components.CollectionDetails.requestcollection": "Zahtjev za serijalom", - "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Filmovi", - "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} Filmovi", - "components.Discover.DiscoverNetwork.networkSeries": "{network} Serije", - "components.Discover.DiscoverStudio.studioMovies": "{studio} Filmovi", + "components.CollectionDetails.requestcollection4k": "Zahtjev za zbirkom u 4K", + "components.CollectionDetails.requestcollection": "Zahtjev za zbirkom", + "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} filmovi", + "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} filmovi", + "components.Discover.DiscoverNetwork.networkSeries": "{network} serije", + "components.Discover.DiscoverStudio.studioMovies": "{studio} filmovi", "components.Discover.discover": "Otkrivanje", - "components.Discover.discovermovies": "Popularni Filmovi", - "components.Discover.discovertv": "Popularne Serije", - "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Serije", - "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Serije", - "components.Discover.DiscoverWatchlist.discoverwatchlist": "Vaš Plex popis za gledanje", - "components.Discover.MovieGenreList.moviegenres": "Filmski Žanrovi", + "components.Discover.discovermovies": "Popularni filmovi", + "components.Discover.discovertv": "Popularne serije", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} serije", + "components.Discover.DiscoverTvLanguage.languageSeries": "{language} serije", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Tvoj Plex popis gledanja", + "components.Discover.MovieGenreList.moviegenres": "Filmski žanrovi", "components.Discover.StudioSlider.studios": "Studio", - "components.Discover.TvGenreList.seriesgenres": "Serijski Žanrovi", - "components.Discover.TvGenreSlider.tvgenres": "Serijski Žanrovi", - "components.Discover.plexwatchlist": "Vaš Plex popis za gledanje", - "components.Discover.popularmovies": "Popularni Filmovi", - "components.Discover.recentlyAdded": "Nedavno Dodano", - "components.Discover.recentrequests": "Nedavni Zahtjevi", - "components.Discover.trending": "Popularno", - "components.IssueDetails.IssueComment.edit": "Uredi Komentar", + "components.Discover.TvGenreList.seriesgenres": "Serijski žanrovi", + "components.Discover.TvGenreSlider.tvgenres": "Serijski žanrovi", + "components.Discover.plexwatchlist": "Tvoj Plex popis gledanja", + "components.Discover.popularmovies": "Popularni filmovi", + "components.Discover.recentlyAdded": "Nedavno dodani", + "components.Discover.recentrequests": "Nedavni zahtjevi", + "components.Discover.trending": "U trendu", + "components.IssueDetails.IssueComment.edit": "Uredi komentar", "components.IssueDetails.IssueDescription.deleteissue": "Izbriši problem", "components.IssueDetails.IssueDescription.description": "Opis", "components.IssueDetails.IssueDescription.edit": "Uredi opis", - "components.IssueDetails.allepisodes": "Sve Epizode", - "components.IssueDetails.closeissue": "Zatvori Problem", + "components.IssueDetails.allepisodes": "Sve epizode", + "components.IssueDetails.closeissue": "Zatvori problem", "components.IssueDetails.closeissueandcomment": "Zatvori s komentarom", "components.IssueDetails.commentplaceholder": "Dodaj komentar…", "components.IssueDetails.comments": "Komentari", @@ -37,28 +37,28 @@ "components.AppDataWarning.dockerVolumeMissingDescription": "Navedeni {appDataPath} mapirani volumen nije ispravno podešen. Svi podaci će biti izbrisani kada se spremnik (container) zaustavi ili ponovno pokrene.", "components.Discover.DiscoverWatchlist.watchlist": "Plex popis za gledanje", "components.Discover.emptywatchlist": "Filmovi dodani na Vaš popis za gledanje pojaviti će se ovdje.", - "components.Discover.MovieGenreSlider.moviegenres": "Filmski Žanrovi", - "components.Discover.NetworkSlider.networks": "Striming servisi", - "components.Discover.populartv": "Popularne Serije", - "components.Discover.upcomingtv": "Nadolazeće Serije", - "components.Discover.upcoming": "Nadolazeći Filmovi", - "components.Discover.upcomingmovies": "Nadolazeći Filmovi", + "components.Discover.MovieGenreSlider.moviegenres": "Filmski žanrovi", + "components.Discover.NetworkSlider.networks": "Mreže", + "components.Discover.populartv": "Popularne serije", + "components.Discover.upcomingtv": "Nadolazeće serije", + "components.Discover.upcoming": "Nadolazeći filmovi", + "components.Discover.upcomingmovies": "Nadolazeći filmovi", "components.DownloadBlock.estimatedtime": "Procijenjeno {time}", - "components.IssueDetails.IssueComment.areyousuredelete": "Jeste li sigurni da želite izbrisati ovaj komentar?", - "components.IssueDetails.IssueComment.delete": "Izbriši Komentar", - "components.IssueDetails.IssueComment.postedby": "Objavljeno u {relativeTime} od korisnika {username}", - "components.IssueDetails.IssueComment.validationComment": "Morate unijeti poruku", - "components.IssueDetails.IssueComment.postedbyedited": "Objavljeno u {relativeTime} od korisnika {username} (Uređeno)", - "components.IssueDetails.allseasons": "Sve Sezone", - "components.IssueDetails.episode": "Epizode {episodeNumber}", - "components.IssueDetails.deleteissueconfirm": "Jeste li sigurni da želite izbrisati ovaj problem?", + "components.IssueDetails.IssueComment.areyousuredelete": "Stvarno želiš izbrisati ovaj komentar?", + "components.IssueDetails.IssueComment.delete": "Izbriši komentar", + "components.IssueDetails.IssueComment.postedby": "Objavljeno {relativeTime}, autor: {username}", + "components.IssueDetails.IssueComment.validationComment": "Moraš upisati poruku", + "components.IssueDetails.IssueComment.postedbyedited": "Objavljeno {relativeTime}, autor: {username} (promijenjeno)", + "components.IssueDetails.allseasons": "Sve sezone", + "components.IssueDetails.episode": "Epizoda {episodeNumber}", + "components.IssueDetails.deleteissueconfirm": "Stvarno želiš izbrisati ovaj problem?", "components.IssueDetails.lastupdated": "Zadnje ažurirano", "components.IssueDetails.leavecomment": "Komentar", - "components.IssueDetails.nocomments": "Bez komentara.", - "components.IssueDetails.openedby": "#{issueId} otvoren u {relativeTime} od korisnka {username}", - "components.IssueDetails.openin4karr": "Otvoren u 4K {arr}", - "components.IssueDetails.openinarr": "Otvoren u {arr}", - "components.IssueDetails.toasteditdescriptionfailed": "Nešto nije u redu prilikom uređivanja opisa problema.", + "components.IssueDetails.nocomments": "Nema komentara.", + "components.IssueDetails.openedby": "Problem #{issueId} otvoren {relativeTime}, autor: {username}", + "components.IssueDetails.openin4karr": "Otvori u 4K {arr}", + "components.IssueDetails.openinarr": "Otvori u {arr}", + "components.IssueDetails.toasteditdescriptionfailed": "Dogodila se greška prilikom uređivanja opisa problema.", "components.IssueModal.CreateIssueModal.allepisodes": "Sve epizode", "components.IssueDetails.toastissuedeleted": "Problem je uspješno izbrisan!", "components.IssueDetails.unknownissuetype": "Nepoznato", @@ -69,19 +69,19 @@ "components.IssueModal.issueAudio": "Zvuk", "components.IssueModal.issueSubtitles": "Podnaslov", "components.IssueModal.issueVideo": "Video", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {sezona} few {sezone} other {sezona}}", "components.Layout.UserDropdown.myprofile": "Profil", "components.Layout.UserDropdown.requests": "Zahtjevi", - "components.Layout.VersionStatus.streamstable": "Overseerr Stabilan", - "components.Login.password": "Zaporka", + "components.Layout.VersionStatus.streamstable": "Overseerr stablina verzija", + "components.Login.password": "Lozinka", "components.ManageSlideOver.openarr4k": "Otvori 4K u {arr}-u", "components.ManageSlideOver.pastdays": "Proteklih {days, number} dana", - "components.Login.signinwithplex": "Koristite svoj Plex račun", + "components.Login.signinwithplex": "Koristi tvoj Plex račun", "components.ManageSlideOver.movie": "film", - "components.Login.validationemailrequired": "Morate unijeti valjanu adresu e-pošte", + "components.Login.validationemailrequired": "Moraš zadati valjanju e‑mail adresu", "components.ManageSlideOver.manageModalRequests": "Zahtjevi", "components.ManageSlideOver.manageModalClearMediaWarning": "* Ovo će nepovratno ukloniti sve podatke za ovaj {mediaType}, uključujući sve zahtjeve. Ako ova stavka postoji u vašoj Plex biblioteci, informacije o medijima ponovno će se stvoriti tijekom sljedećeg skeniranja.", - "components.ManageSlideOver.manageModalMedia4k": "4K Mediji", + "components.ManageSlideOver.manageModalMedia4k": "4K mediji", "components.ManageSlideOver.manageModalNoRequests": "Nema zahtjeva.", "components.ManageSlideOver.manageModalMedia": "Mediji", "components.ManageSlideOver.manageModalTitle": "Upravljanje {mediaType}", @@ -89,69 +89,69 @@ "components.MovieDetails.originaltitle": "Izvorni naslov", "components.MovieDetails.overview": "Pregled", "components.ManageSlideOver.openarr": "Otvori u {arr}-u", - "components.MovieDetails.cast": "Postava", + "components.MovieDetails.cast": "Glumci", "components.MovieDetails.budget": "Proračun", "components.ManageSlideOver.opentautulli": "Otvori u Tautulli-u", "components.MediaSlider.ShowMoreCard.seemore": "Vidi više", "components.MovieDetails.markavailable": "Označi kao dostupno", "components.ManageSlideOver.tvshow": "serije", - "components.MovieDetails.productioncountries": "{countryCount, plural, one {Država produkcije} other {Države produkcije}}", - "components.MovieDetails.managemovie": "Upravljanje filmom", + "components.MovieDetails.productioncountries": "{countryCount, plural, one {zemlja produkcije} few {zemlje produkcije} other {zemalja produkcije}}", + "components.MovieDetails.managemovie": "Upravljaj filmom", "components.MovieDetails.playonplex": "Reproduciraj na Plex-u", "components.MovieDetails.overviewunavailable": "Pregled nedostupan.", "components.MovieDetails.reportissue": "Prijavi problem", "components.MovieDetails.revenue": "Prihod", - "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes ocjena publike", + "components.MovieDetails.rtaudiencescore": "Ocjena publike na Rotten Tomatoes", "components.MovieDetails.showless": "Prikaži manje", "components.MovieDetails.showmore": "Prikaži više", "components.MovieDetails.similar": "Slični naslovi", - "components.MovieDetails.streamingproviders": "Trenutačno se prikacuje na", - "components.NotificationTypeSelector.issuecommentDescription": "Pošaljite obavijest kada problemi dobiju nove komentare.", + "components.MovieDetails.streamingproviders": "Trenutačno se prikazuje na", + "components.NotificationTypeSelector.issuecommentDescription": "Pošalji obavijest kada problemi dobiju nove komentare.", "components.NotificationTypeSelector.issueresolved": "Problem riješen", "components.NotificationTypeSelector.issuereopened": "Problem ponovno otvoren", "components.NotificationTypeSelector.issueresolvedDescription": "Pošalji obavijest kada se problem riješi.", "components.NotificationTypeSelector.issuereopenedDescription": "Pošalji obavijest kada se problem ponovno otvori.", - "components.NotificationTypeSelector.mediaAutoApproved": "Automatsko odobravanje zahtjeva", + "components.NotificationTypeSelector.mediaAutoApproved": "Zahtjev je automatski odobren", "components.IssueDetails.issuepagetitle": "Problem", - "components.IssueDetails.issuetype": "Tip", + "components.IssueDetails.issuetype": "Vrsta", "components.IssueDetails.play4konplex": "Reproduciraj u 4K na Plex-u", "components.IssueDetails.playonplex": "Reproduciraj na Plex-u", - "components.IssueDetails.problemseason": "Zahvaćene Sezone", - "components.IssueDetails.problemepisode": "Zahvaćene Epizode", - "components.IssueDetails.reopenissue": "Ponovno otvorite problem", - "components.IssueDetails.reopenissueandcomment": "Ponovno otvori s komentarom", + "components.IssueDetails.problemseason": "Zahvaćena sezona", + "components.IssueDetails.problemepisode": "Zahvaćena epizoda", + "components.IssueDetails.reopenissue": "Ponovo otvori problem", + "components.IssueDetails.reopenissueandcomment": "Ponovo otvori s komentarom", "components.IssueDetails.season": "Sezona {seasonNumber}", "components.IssueDetails.toasteditdescriptionsuccess": "Opis problema je uspješno uređen!", - "components.IssueDetails.toastissuedeletefailed": "Nešto nije u redu prilikom brisanja problema.", - "components.IssueDetails.toaststatusupdated": "Status problema je uspješno ažuriran!", - "components.IssueDetails.toaststatusupdatefailed": "Nešto nije u redu prilikom ažuriranja statusa problema.", - "components.IssueList.IssueItem.issuestatus": "Status", + "components.IssueDetails.toastissuedeletefailed": "Dogodila se greška prilikom brisanja problema.", + "components.IssueDetails.toaststatusupdated": "Stanje problema je uspješno ažurirano!", + "components.IssueDetails.toaststatusupdatefailed": "Dogodila se greška prilikom ažuriranja stanja problema.", + "components.IssueList.IssueItem.issuestatus": "Stanje", "components.IssueList.IssueItem.issuetype": "Vrsta", "components.IssueList.IssueItem.opened": "Otvoren", - "components.IssueList.IssueItem.problemepisode": "Zahvaćene Epizode", + "components.IssueList.IssueItem.problemepisode": "Zahvaćena epizoda", "components.IssueList.IssueItem.unknownissuetype": "Nepoznato", "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Epizoda} other {Epizode}}", - "components.IssueList.IssueItem.viewissue": "Pogledaj problem", + "components.IssueList.IssueItem.viewissue": "Prikaz problema", "components.IssueList.showallissues": "Prikaži sve probleme", "components.IssueList.sortAdded": "Najnoviji", - "components.IssueList.sortModified": "Zadnje promjene", + "components.IssueList.sortModified": "Zadnja promjena", "components.IssueModal.CreateIssueModal.episode": "Epizoda {episodeNumber}", "components.IssueModal.CreateIssueModal.extras": "Dodaci", - "components.IssueModal.CreateIssueModal.problemepisode": "Zahvaćene epizode", - "components.IssueModal.CreateIssueModal.problemseason": "Zahvaćene sezone", - "components.IssueModal.CreateIssueModal.providedetail": "Navedite detaljno objašnjenje problema na koji ste naišli.", - "components.IssueModal.CreateIssueModal.reportissue": "Prijavite problem", + "components.IssueModal.CreateIssueModal.problemepisode": "Zahvaćena epizoda", + "components.IssueModal.CreateIssueModal.problemseason": "Zahvaćena sezona", + "components.IssueModal.CreateIssueModal.providedetail": "Navedi detaljno objašnjenje pronađenog problema.", + "components.IssueModal.CreateIssueModal.reportissue": "Prijavi problem", "components.IssueModal.CreateIssueModal.season": "Sezona {seasonNumber}", "components.IssueModal.CreateIssueModal.submitissue": "Pošalji problem", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Nešto nije u redu prilikom slanja problema.", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Dogodila se greška prilikom slanja problema.", "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problem prijavljen za {title} je uspješno predan!", - "components.IssueModal.CreateIssueModal.toastviewissue": "Pogledaj problem", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Morate unijeti opis", + "components.IssueModal.CreateIssueModal.toastviewissue": "Prikaz problema", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Moraš navesti opis", "components.IssueModal.CreateIssueModal.whatswrong": "Što nije u redu?", - "components.LanguageSelector.languageServerDefault": "Default ({language})", + "components.LanguageSelector.languageServerDefault": "Zadano ({language})", "components.LanguageSelector.originalLanguageDefault": "Svi jezici", "components.Layout.LanguagePicker.displaylanguage": "Jezik prikaza", - "components.Layout.SearchInput.searchPlaceholder": "Pretražite filmove i TV", + "components.Layout.SearchInput.searchPlaceholder": "Pretraži filmove i TV", "components.Layout.Sidebar.dashboard": "Otkrivanje", "components.Layout.Sidebar.issues": "Problemi", "components.Layout.Sidebar.requests": "Zahtjevi", @@ -161,104 +161,944 @@ "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Zahtjevi za filmove", "components.Layout.UserDropdown.settings": "Postavke", "components.Layout.UserDropdown.signout": "Odjavi se", - "components.Layout.VersionStatus.outofdate": "Zastarjelo", - "components.Layout.VersionStatus.streamdevelop": "Overseerr Razvoj", - "components.Login.email": "Adresa e-pošte", - "components.Login.forgotpassword": "Zaboravljena lozinka?", - "components.Login.loginerror": "Nešto nije u redu prilikom pokušaja prijave.", - "components.Login.signin": "Prijavite se", + "components.Layout.VersionStatus.outofdate": "Zastarjela verzija", + "components.Layout.VersionStatus.streamdevelop": "Overseerr razvojna verzija", + "components.Login.email": "E-mail adresa", + "components.Login.forgotpassword": "Ne sječaš se lozinke?", + "components.Login.loginerror": "Dogodila se greška prilikom pokušaja prijave.", + "components.Login.signin": "Prijavi se", "components.Login.signingin": "Prijava…", - "components.Layout.VersionStatus.commitsbehind": "", - "components.Login.signinheader": "Prijavite se za nastavak", - "components.Login.signinwithoverseerr": "Koristite svoj {applicationTitle} račun", - "components.Login.validationpasswordrequired": "Morate unijeti lozinku", - "components.ManageSlideOver.alltime": "Cijelo vrijeme", + "components.Layout.VersionStatus.commitsbehind": "Verzija ne sadrži {commitsBehind} {commitsBehind, plural, one {promjenu} few {promjene} other {promjena}}", + "components.Login.signinheader": "Prijavi se za nastavak", + "components.Login.signinwithoverseerr": "Koristi tvoj {applicationTitle} račun", + "components.Login.validationpasswordrequired": "Moraš navesti lozinku", + "components.ManageSlideOver.alltime": "Svo vrijeme", "components.ManageSlideOver.downloadstatus": "Preuzimanja", - "components.ManageSlideOver.manageModalAdvanced": "Napredna", - "components.ManageSlideOver.manageModalClearMedia": "Obriši podatke", + "components.ManageSlideOver.manageModalAdvanced": "Napredno", + "components.ManageSlideOver.manageModalClearMedia": "Izbriši podatke", "components.ManageSlideOver.manageModalIssues": "Otvoreni problemi", "components.ManageSlideOver.markallseasons4kavailable": "Označi sve sezone kao dostupne u 4K", "components.ManageSlideOver.markallseasonsavailable": "Označi sve sezone kao dostupne", "components.ManageSlideOver.markavailable": "Označi kao dostupno", "components.ManageSlideOver.playedby": "Reproducirano od", - "components.ManageSlideOver.plays": "{playCount, broj} {playCount, plural, one {reproducirano} other {reproducirano}}", - "components.MovieDetails.MovieCast.fullcast": "Glumačka postava", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {reprodukcija} few {reprodukcije} other {reprodukcija}}", + "components.MovieDetails.MovieCast.fullcast": "Svi glumci", "components.MovieDetails.digitalrelease": "Digitalno izdanje", - "components.MovieDetails.mark4kavailable": "Označi kao dostupno u 4K", + "components.MovieDetails.mark4kavailable": "Označi kao dostupno u 4K rezoluciji", "components.MovieDetails.originallanguage": "Izvorni jezik", - "components.MovieDetails.MovieCrew.fullcrew": "Filmska postava", + "components.MovieDetails.MovieCrew.fullcrew": "Svi suradnici", "components.MovieDetails.physicalrelease": "Fizičko izdanje", "components.MovieDetails.play4konplex": "Reproduciraj u 4K na Plex-u", "components.MovieDetails.recommendations": "Preporuke", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Datum Izlaska} other {Datumi izlaska}}", - "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", - "components.MovieDetails.runtime": "{minutes} minute", - "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studiji}}", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Datum izlaska} other {Datumi izlaska}}", + "components.MovieDetails.rtcriticsscore": "Tomatometer na Rotten Tomatoes", + "components.MovieDetails.runtime": "{minutes} min", + "components.MovieDetails.studio": "{studioCount, plural, one {studio} few {studija} other {studija}}", "components.MovieDetails.theatricalrelease": "Izdanje u kinima", - "components.MovieDetails.tmdbuserscore": "Ocjena korisnika TMDB-a", - "components.MovieDetails.viewfullcrew": "Pogledajte cijelu filmsku postavu", - "components.MovieDetails.watchtrailer": "Pogledajte najavu", - "components.NotificationTypeSelector.adminissuecommentDescription": "Primite obavijest kada drugi korisnici komentiraju probleme.", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Primite obavijest kada problem ponovno otvore drugi korisnici.", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Primite obavijest kada drugi korisnici riješe probleme.", - "components.NotificationTypeSelector.issuecomment": "Komentiraj problem", + "components.MovieDetails.tmdbuserscore": "TMDB ocjena korisnika", + "components.MovieDetails.viewfullcrew": "Prikaz svih suradnika", + "components.MovieDetails.watchtrailer": "Gledaj najavu", + "components.NotificationTypeSelector.adminissuecommentDescription": "Primi obavijest kad drugi korisnici komentiraju probleme.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Primi obavijest kad drugi korisnici ponovno otvore probleme.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Primi obavijest kad drugi korisnici riješe probleme.", + "components.NotificationTypeSelector.issuecomment": "Komentar za problem", "components.NotificationTypeSelector.issuecreated": "Problem prijavljen", "components.NotificationTypeSelector.issuecreatedDescription": "Pošalji obavijest kada se problem prijavi.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Primite obavijest kada problemi koje ste prijavili budu riješeni.", - "components.NotificationTypeSelector.mediaavailableDescription": "Slanje obavijesti kada medijski zahtjevi postanu dostupni.", - "components.NotificationTypeSelector.mediadeclinedDescription": "Slanje obavijesti kada su medijski zahtjevi odbijeni.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Primi obavijest kad se tvoji prijavljeni problemi riješe.", + "components.NotificationTypeSelector.mediaavailableDescription": "Pošalji obavijesti kada medijski zahtjevi postanu dostupni.", + "components.NotificationTypeSelector.mediadeclinedDescription": "Pošalji obavijesti kada su medijski zahtjevi odbijeni.", "components.NotificationTypeSelector.mediarequested": "Zahtjev čeka odobrenje", - "components.NotificationTypeSelector.mediarequestedDescription": "Slanje obavijesti kada korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", + "components.NotificationTypeSelector.mediarequestedDescription": "Pošalji obavijesti kada korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", "components.NotificationTypeSelector.mediaautorequested": "Zahtjev je automatski poslan", "components.NotificationTypeSelector.mediaavailable": "Zahtjev dostupan", - "components.NotificationTypeSelector.mediafailedDescription": "Slanje obavijesti kada se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", - "components.NotificationTypeSelector.userissuecommentDescription": "Primite obavijest kada problemi koje ste prijavili dobiju nove komentare.", - "components.PermissionEdit.autoapprove4kSeries": "Automatsko odobravanje serija u 4K", - "components.NotificationTypeSelector.usermediafailedDescription": "Primite obavijest kada se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", - "components.NotificationTypeSelector.usermediarequestedDescription": "Primite obavijest kada drugi korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Primite obavijest kada drugi korisnici pošalju nove medijske zahtjeve koji se automatski odobravaju.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Primite obavijest kada vaši medijski zahtjevi budu odbijeni.", - "components.PermissionEdit.adminDescription": "Potpuni administratorski pristup. Zaobilazi sve druge provjere dopuštenja.", + "components.NotificationTypeSelector.mediafailedDescription": "Pošalji obavijesti kada se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", + "components.NotificationTypeSelector.userissuecommentDescription": "Primi obavijest kad tvoji prijavljeni problemi dobiju nove komentare.", + "components.PermissionEdit.autoapprove4kSeries": "Automatsko odobravanje 4K serija", + "components.NotificationTypeSelector.usermediafailedDescription": "Primi obavijest kad se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Primi obavijest kad drugi korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Primi obavijest kad drugi korisnici pošalju nove medijske zahtjeve koji se automatski odobravaju.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Primi obavijest kad se tvoji medijski zahtjevi odbiju.", + "components.PermissionEdit.adminDescription": "Potpun administratorski pristup. Zaobilazi sve druge provjere dozvola.", "components.PermissionEdit.advancedrequest": "Napredni zahtjevi", "components.PermissionEdit.autoapprove4k": "Automatsko odobravanje 4K", - "components.PermissionEdit.autoapproveSeriesDescription": "Dozvolite automatsko odobravanje zahtjeva za serijale koji nisu u 4K.", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Dozvolite automatsko odobravanje zahtjeva za filmove u 4K.", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Dozvolite automatsko odobravanje zahtjeva za serije u 4K.", - "components.QuotaSelector.days": "{count, plural, one {danu} other {danu}}", - "components.QuotaSelector.movies": "{count, plural, one {film} other {filmova}}", - "components.PermissionEdit.autoapproveMoviesDescription": "Dozvolite automatsko odobravanje zahtjeva za filmove koji nisu u 4K.", - "components.RequestButton.approve4krequests": "Odobriti {requestCount, plural, one {4K Zahtjev} other {{requestCount} 4K Zahtjeve}}", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {film} other {filmova}}", - "components.RequestButton.approverequests": "Odobriti {requestCount, plural, one {Zatjev} other {{requestCount} Zahtjeve}}", - "components.QuotaSelector.seasons": "{count, plural, one {sezona} other {sezone}}", - "components.RequestCard.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", - "components.RequestButton.decline4krequests": "Odbiti {requestCount, plural, one {4K Zahtjev} other {{requestCount} 4K Zahtjeve}}", + "components.PermissionEdit.autoapproveSeriesDescription": "Dozvoli automatsko odobravanje zahtjeva za serije koji nisu u 4K rezoluciji.", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Dozvoli automatsko odobravanje zahtjeva za filmove u 4K rezoluciji.", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Dozvoli automatsko odobravanje zahtjeva za serije u 4K rezoluciji.", + "components.QuotaSelector.days": "{count, plural, one {dan} few {dana} other {dana}}", + "components.QuotaSelector.movies": "{count, plural, one {film} few {filma} other {filmova}}", + "components.PermissionEdit.autoapproveMoviesDescription": "Dozvoli automatsko odobravanje zahtjeva za filmove koji nisu u 4K rezoluciji.", + "components.RequestButton.approve4krequests": "Odobri {requestCount, plural, one {4K zahtjev} few {{requestCount} 4K zahtjeva} other {{requestCount} 4K zahtjeva}}", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {film} few {filma} other {filmova}}", + "components.RequestButton.approverequests": "Odobri {requestCount, plural, one {zahtjev} few {{requestCount} zahtjeva} other {{requestCount} zahtjeva}}", + "components.QuotaSelector.seasons": "{count, plural, one {sezona} few {sezone} other {sezona}}", + "components.RequestCard.seasons": "{seasonCount, plural, one {sezona} few {sezone} other {sezona}}", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {sezona} few {sezone} other {sezona}}", + "components.RequestBlock.seasons": "{seasonCount, plural, one {sezona} few {sezone} other {sezona}}", + "components.RequestButton.decline4krequests": "Odbij {requestCount, plural, one {4K zahtjev} few {{requestCount} 4K zahtjeva} other {{requestCount} 4K zahtjeva}}", "components.RequestModal.QuotaDisplay.requiredquotaUser": "Ovaj korisnik treba imati još barem {seasons} {seasons, plural, one {jedan zahtjev za sezonu} other {nekoliko zahtjeva za sezone}} kako bi mogao preadti zahtjev za ovu seriju.", - "components.RequestModal.QuotaDisplay.requiredquota": "Morate imati još barem {seasons} {seasons, plural, one {jedan zahtjev za sezonu} other {nekoliko zahtjeva za sezone}} kako bi mogli preadti zahtjev za ovu seriju.", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {sezona} other {sezona/e}}", - "components.RequestModal.requestmovies": "{count} {count, plural, one {Zahtjev za film} other {Zahtjevi za filmove}}", - "components.RequestModal.requestmovies4k": "{count} {count, plural, one {Zahtjev za film} other {Zahtejvi za filmove}} u 4K", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Slanje obavijesti kada korisnici pošalju novi medijski zahtjev koji se automatski odobrava.", + "components.RequestModal.QuotaDisplay.requiredquota": "Moraš imati još barem {seasons} {seasons, plural, one {zahtjev za sezonu} few {zahtjeva za sezone} other {zahtjeva za sezone}} za slanje zahtjeva za ovu seriju.", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {sezona} few {sezone} other {sezona}}", + "components.RequestModal.requestmovies": "Zatraži {count} {count, plural, one {film} few {filma} other {filmova}}", + "components.RequestModal.requestmovies4k": "Zatraži {count} {count, plural, one {film} few {filma} other {filmova}} u 4K", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Pošalji obavijesti kada korisnici pošalju novi medijski zahtjev koji se automatski odobrava.", "components.NotificationTypeSelector.mediaapproved": "Zahtjev odobren", - "components.NotificationTypeSelector.mediaapprovedDescription": "Slanje obavijesti kada se medijski zahtjev ručno odobri.", - "components.NotificationTypeSelector.mediaautorequestedDescription": "Primite obavijest kada se automatski pošalje novi medijski zahtjevi za stavke na vašoj Plex listi koju pratite.", + "components.NotificationTypeSelector.mediaapprovedDescription": "Pošalji obavijesti kada se medijski zahtjev ručno odobri.", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Primi obavijest kad se novi medijski zahtjevi automatski podnesu za stavke u tvom Plex popisu gledanja.", "components.NotificationTypeSelector.mediadeclined": "Zahtjev je odbijen", "components.NotificationTypeSelector.mediafailed": "Obrada zahtjeva nije uspjela", "components.NotificationTypeSelector.notificationTypes": "Vrste obavijesti", - "components.NotificationTypeSelector.userissuecreatedDescription": "Primite obavijest kada drugi korisnici prijave probleme.", - "components.NotificationTypeSelector.userissuereopenedDescription": "Primite obavijest kada se problemi koje ste prijavili ponovno otvore.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Primite obavijest kada vaši zahtjevi za medije budu odobreni.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Primite obavijest kada vaši medijski zahtjevi postanu dostupni.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Primi obavijest kad drugi korisnici prijave probleme.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Primi obavijest kad se tvoji prijavljeni problemi ponovno otvore.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Primi obavijest kad se tvoji zahtjevi za medije odobre.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Primi obavijest kad tvoji medijski zahtjevi postanu dostupni.", "components.PermissionEdit.admin": "Administrator", - "components.PermissionEdit.advancedrequestDescription": "Dodajte dozvolu za izmjenu naprednih opcija zahtjeva za medije.", + "components.PermissionEdit.advancedrequestDescription": "Dozvoli mijenjanje naprednih opcija medijskih zahtjeva.", "components.PermissionEdit.autoapprove": "Automatsko odobravanje", "components.PermissionEdit.autoapprove4kMovies": "Automatsko odobravanje 4K filmova", - "components.PermissionEdit.autoapprove4kDescription": "Dozvolite automatsko odobravanje svih zahtjeva za 4K medije.", - "components.PermissionEdit.autoapproveDescription": "Dozvolite automatsko odobravanje svih zahtjeva koji nisu u 4K mediji.", + "components.PermissionEdit.autoapprove4kDescription": "Dozvoli automatsko odobravanje svih zahtjeva za medije u 4K rezoluciji.", + "components.PermissionEdit.autoapproveDescription": "Dozvoli automatsko odobravanje svih zahtjeva za medije koji nisu u 4K rezoluciji.", "components.PermissionEdit.autoapproveMovies": "Automatsko odobravanje filmova", - "components.PermissionEdit.autoapproveSeries": "Automatsko odobravanje serijala", - "components.RequestButton.declinerequests": "Odbiti {requestCount, plural, one {Zahtjev} other {{requestCount} Zahtjeve}}", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {zahtjev preostalo} other {zahtjeva preostala}}" + "components.PermissionEdit.autoapproveSeries": "Automatsko odobravanje serija", + "components.RequestButton.declinerequests": "Odbij {requestCount, plural, one {zahtjev} few {{requestCount} zahtjeva} other {{requestCount} zahtjeva}}", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {zahtjev preostalo} other {zahtjeva preostala}}", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktualna učestalost", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Nova učestalost", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "{jobScheduleHours, plural, one {Svaki sat} few {Svaka {jobScheduleHours} sata} other {Svakih {jobScheduleHours} sati}}", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Dogodila se greška prilikom spremanja zadatka.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Zadatak uspješno promijenjen!", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Sinkronizacija Plex popisa gledanja", + "components.Settings.SettingsJobsCache.runnow": "Pokreni sada", + "components.Settings.SettingsJobsCache.unknownJob": "Nepoznat zadatak", + "components.Settings.SettingsLogs.extraData": "Dodatni podaci", + "components.Settings.SettingsLogs.copiedLogMessage": "Poruka zapisnika je kopirana u međuspremnik.", + "components.Settings.SettingsLogs.filterDebug": "Otklanjanje grešaka", + "components.Settings.SettingsLogs.filterError": "Greška", + "components.Settings.SettingsLogs.filterInfo": "Informacije", + "components.Settings.SettingsLogs.filterWarn": "Upozorenje", + "components.Settings.SettingsLogs.label": "Etiketa", + "components.Settings.SettingsLogs.level": "Važnost", + "components.Settings.SettingsLogs.logDetails": "Detalji zapisa", + "components.Settings.SettingsLogs.logs": "Zapisi", + "components.Settings.SettingsLogs.resumeLogs": "Nastavi", + "components.Settings.SettingsLogs.showall": "Prikaži sve zapise", + "components.Settings.SettingsLogs.time": "Vremenska oznaka", + "components.Settings.SettingsLogs.viewdetails": "Prikaz detalja", + "components.Settings.SettingsUsers.defaultPermissions": "Zadane dozvole", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Početne dozvole dodijeljene novim korisnicima", + "components.Settings.SettingsUsers.localLogin": "Aktiviraj lokalnu prijavu", + "components.Settings.SettingsUsers.localLoginTip": "Dozvoli korisnicima da se prijave koristeći svoju e-mail adresu i lozinku, umjesto Plex OAutha", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globalno ograničenje zahtjeva za filmove", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Korisničke postavke su uspješno spremljene!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globalno ograničenje zahtjeva za serije", + "components.Settings.SettingsUsers.userSettings": "Korisničke postavke", + "components.Settings.SettingsUsers.userSettingsDescription": "Konfiguriraj globalne i zadane korisničke postavke.", + "components.Settings.SettingsUsers.users": "Korisnici", + "components.Settings.SonarrModal.add": "Dodaj poslužitelj", + "components.Settings.SonarrModal.animeTags": "Anime oznake", + "components.Settings.SonarrModal.animelanguageprofile": "Anime profil jezika", + "components.Settings.SonarrModal.animequalityprofile": "Anime profil kvalitete", + "components.Settings.SonarrModal.animerootfolder": "Anime početna mapa", + "components.Settings.SonarrModal.apiKey": "API ključ", + "components.Settings.SonarrModal.baseUrl": "Osnovni URL", + "components.Settings.SonarrModal.create4ksonarr": "Dodaj novi 4K Sonarr poslužitelj", + "components.Settings.SonarrModal.createsonarr": "Dodaj novi Sonarr poslužitelj", + "components.Settings.SonarrModal.default4kserver": "Zadani 4K poslužitelj", + "components.Settings.SonarrModal.defaultserver": "Zadani poslužitelj", + "components.Settings.SonarrModal.edit4ksonarr": "Uredi 4K Sonarr poslužitelj", + "components.Settings.SonarrModal.editsonarr": "Uredi Sonarr poslužitelj", + "components.Settings.SonarrModal.enableSearch": "Aktiviraj automatsku pretragu", + "components.Settings.SonarrModal.externalUrl": "Eksterni URL", + "components.Settings.SonarrModal.hostname": "Ime računala ili IP adresa", + "components.Settings.SonarrModal.languageprofile": "Profil jezika", + "components.Settings.SonarrModal.loadingTags": "Učitavanje oznaka …", + "components.Settings.SonarrModal.loadingprofiles": "Učitavanje profila kvalitete …", + "components.Settings.SonarrModal.loadingrootfolders": "Učitavanje početnih mapa …", + "components.Settings.SonarrModal.notagoptions": "Nema oznaka.", + "components.Settings.SonarrModal.port": "Priključak", + "components.Settings.SonarrModal.rootfolder": "Početna mapa", + "components.Settings.SonarrModal.qualityprofile": "Profil kvalitete", + "components.Settings.SonarrModal.seasonfolders": "Mape za sezone", + "components.Settings.SonarrModal.selectLanguageProfile": "Odaberi profil jezika", + "components.Settings.SonarrModal.selectQualityProfile": "Odaberi profil kvalitete", + "components.Settings.SonarrModal.selectRootFolder": "Odaberi početnu mapu", + "components.Settings.SonarrModal.selecttags": "Odaberi oznake", + "components.Settings.SonarrModal.server4k": "4K poslužitelj", + "components.Settings.SonarrModal.servername": "Ime poslužitelja", + "components.Settings.SonarrModal.ssl": "Koristi SSL", + "components.Settings.SonarrModal.tags": "Oznake", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Provjeri vezu za učitavanje profila kvalitete", + "components.Settings.SonarrModal.testFirstRootFolders": "Provjeri vezu za učitavanje početnih mapa", + "components.Settings.SonarrModal.testFirstTags": "Provjeri vezu za učitavanje oznaka", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr veza je uspješno uspostavljena!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Moraš navesti valjani API ključ", + "components.Settings.SonarrModal.validationApplicationUrl": "Moraš navesti valjani URL", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Osnovni URL mora početi s kosom crtom", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Osnovni URL ne smije završiti s kosom crtom", + "components.Settings.SonarrModal.validationHostnameRequired": "Moraš navesti valjano ime računala ili IP adresu", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Moraš odabrati profil jezika", + "components.Settings.SonarrModal.validationNameRequired": "Moraš navesti ime poslužitelja", + "components.Settings.SonarrModal.validationPortRequired": "Moraš navesti valjani broj priključka", + "components.Settings.SonarrModal.validationProfileRequired": "Moraš odabrati profil kvalitete", + "components.Settings.SonarrModal.validationRootFolderRequired": "Moraš odabrati početnu mapu", + "components.Settings.activeProfile": "Aktivni profil", + "components.Settings.addradarr": "Dodaj Radarr poslužitelj", + "components.Settings.address": "Adresa", + "components.Settings.addsonarr": "Dodaj Sonarr poslužitelj", + "components.Settings.copied": "API ključ je kopiran u međuspremnik.", + "components.Settings.currentlibrary": "Aktualna biblioteka: {name}", + "components.Settings.default": "Zadano", + "components.Settings.default4k": "Zadano 4K", + "components.Settings.deleteServer": "Izbriši {serverType} poslužitelj", + "components.Settings.deleteserverconfirm": "Stvarno želiš izbrisati ovaj poslužitelj?", + "components.Settings.email": "E-mail", + "components.Settings.enablessl": "Koristi SSL", + "components.Settings.experimentalTooltip": "Aktiviranjem ove postavke može doći do neočekivanog ponašanja programa", + "components.Settings.externalUrl": "Eksterni URL", + "components.Settings.hostname": "Ime računala ili IP adresa", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Preostale biblioteke: {count}", + "components.Settings.menuAbout": "Informacije", + "components.Settings.menuGeneralSettings": "Opće", + "components.Settings.menuJobs": "Zadaci i predmemorija", + "components.Settings.menuLogs": "Zapisi", + "components.Settings.menuNotifications": "Obavijesti", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Usluge", + "components.Settings.menuUsers": "Korisnici", + "components.Settings.noDefault4kServer": "4K {serverType} poslužitelj mora biti označen kao zadani kako bi se korisnicima omogućilo slanje zahtjeva za 4K {mediaType}.", + "components.Settings.noDefaultServer": "Najmanje jedan {serverType} poslužitelj mora biti označen kao zadani kako bi se zahtjevi za {mediaType} mogli obraditi.", + "components.Settings.notificationAgentSettingsDescription": "Konfiguriraj i aktiviraj agente obavijesti.", + "components.Settings.notifications": "Obavijesti", + "components.Settings.notificationsettings": "Postavke obavijesti", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Plex biblioteke", + "components.Settings.plexsettings": "Plex postavke", + "components.Settings.plexsettingsDescription": "Konfiguriraj postavke za tvoj Plex poslužitelj. Overseerr skenira tvoje Plex biblioteke kako bi utvrdio dostupnost sadržaja.", + "components.Settings.port": "Priključak", + "components.Settings.radarrsettings": "Radarr postavke", + "components.Settings.restartrequiredTooltip": "Overseerr se mora ponovo pokrenuti kako bi promjene ove postavke stupile na snagu", + "components.Settings.scan": "Sinkronizraj biblioteke", + "components.Settings.scanning": "Sinkronizacija …", + "components.Settings.serverLocal": "lokalni", + "components.Settings.serverSecure": "sigurno", + "components.Settings.serverpreset": "Poslužitelj", + "components.Settings.serverpresetRefreshing": "Dohvaćanje poslužitelja …", + "components.Settings.serviceSettingsDescription": "Dolje donfiguriraj svoje {serverType} poslužitelje. Možeš povezati više {serverType} poslužitelja, ali samo dva od njih mogu biti označena kao zadana (jedan ne-4K i jedan 4K). Administratori mogu promijeniti poslužitelj koji se koristi za obradu novih zahtjeva prije odobrenja.", + "components.Settings.serverpresetLoad": "Pritisni gumb za učitavanje dostupnih polsužitelja", + "components.Settings.serverpresetManualMessage": "Ručna konfiguracija", + "components.Settings.services": "Usluge", + "components.Settings.settingUpPlexDescription": "Za postavljanje Plexa, unesi detalje ručno ili odaberi poslužitelj preuzet s plex.tv. Pritisni gumb desno od padajućeg izbornika za dohvaćanje popisa dostupnih poslužitelja.", + "components.Settings.sonarrsettings": "Sonarr postavke", + "components.Settings.ssl": "SSL", + "components.Settings.tautulliApiKey": "API ključ", + "components.Settings.tautulliSettingsDescription": "Opcionalno konfiguriraj postavke za tvoj Tautulli poslužitelj. Overseerr dohvaća podatke o povijesti gledanja za tvoje Plex medije od Tautullija.", + "components.Settings.toastPlexConnecting": "Pokušaj povezivanja na Plex …", + "components.Settings.toastPlexConnectingFailure": "Neuspjelo povezivanje na Plex.", + "components.Settings.toastPlexConnectingSuccess": "Plex veza je uspješno uspostavljena!", + "components.Settings.toastPlexRefresh": "Dohvaćanje popisa poslužitelja od Plexa …", + "components.Settings.toastPlexRefreshFailure": "Neuspjelo dohvaćanje popisa Plex poslužitelja.", + "components.Settings.toastPlexRefreshSuccess": "Popis Plex poslužitelja je uspješno dohvaćen!", + "components.Settings.urlBase": "Osnovni URL", + "components.Settings.validationApiKey": "Moraš navesti valjani API ključ", + "components.Settings.webpush": "Web Push", + "components.Setup.continue": "Nastavi", + "components.Setup.finish": "Završi postavljanje", + "components.Setup.tip": "Savjet", + "components.Setup.welcome": "Overseerr dobrodošlica", + "components.Setup.finishing": "Završavanje…", + "components.Setup.loginwithplex": "Prijavi se s Plexom", + "components.Setup.setup": "Postavljanje", + "components.Setup.signinMessage": "Za postavljanje se prijavi s tvojim Plex računom", + "components.StatusBadge.managemedia": "Upravljaj {mediaType}", + "components.StatusBadge.openinarr": "Otvori u {arr}", + "components.StatusBadge.playonplex": "Reproduciraj na Plex-u", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChecker.appUpdated": "{applicationTitle} ažuriran", + "components.TvDetails.TvCast.fullseriescast": "Svi glumci serije", + "components.TvDetails.TvCrew.fullseriescrew": "Svi suradnici serije", + "components.TvDetails.cast": "Glumci", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# epizoda} few {# epizode} other {# epizoda}}", + "components.TvDetails.seasons": "{seasonCount, plural, one {# sezona} few {# sezone} other {# sezona}}", + "components.TvDetails.seasonstitle": "Sezone", + "components.UserList.creating": "Stvaranje …", + "components.UserList.edituser": "Uredi korisničke dozvole", + "components.UserList.email": "E-mail adresa", + "components.UserList.importedfromplex": "{userCount} Plex {userCount, plural, one {korisnik je uspješno uvezen} few {korisnika su uspješno uvezena} other {korisnika su uspješno uvezeni}}!", + "components.UserList.importfromplex": "Uvezi Plex korisnike", + "components.UserList.localuser": "Lokalni korisnik", + "components.UserList.newplexsigninenabled": "Postavka Aktiviraj novu Plex prijavu je trenutačno dektivirana. Plex korisnici s pristupom biblioteci se ne moraju uvesti da bi se mogli prijaviti.", + "components.UserList.owner": "Vlasnik", + "components.UserList.password": "Lozinka", + "components.UserList.passwordinfodescription": "Konfiguriraj URL programa i aktiviraj e-mail obavijesti za dozvoljavanje automatskog generiranja lozinke.", + "components.UserList.plexuser": "Plex korisnik", + "components.UserList.role": "Uloga", + "components.UserList.sortCreated": "Datum pridruživanja", + "components.UserList.sortDisplayName": "Prikazano ime", + "components.UserList.sortRequests": "Broj zahtjeva", + "components.UserList.totalrequests": "Zahtjevi", + "components.UserList.user": "Korisnik", + "components.UserList.usercreatedfailed": "Dogodila se greška prilikom stvaranja korisnika.", + "components.UserList.usercreatedfailedexisting": "Navedenu e-mail adresu koristi već jedan drugi korisnik.", + "components.UserList.userdeleteerror": "Dogodila se greška prilikom brisanja korisnika.", + "components.UserProfile.ProfileHeader.joindate": "Datum pridruživanja: {joindate}", + "components.UserProfile.ProfileHeader.userid": "ID korisnika: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Vrsta računa", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrator", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Jezik prikaza", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Korisnički ID na Discordu", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Višeznamenkasti ID broj povezan s tvojim korisničkim računom na Discordu", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Prikazano ime", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Mijenjanje globalnih ograničenja", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Opće", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Opće postavke", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Zadano ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtriraj sadržaj prema izvornom jeziku", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Otkrij jezik", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex korisnik", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Automatsko zahtijevanje filmova", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatski zatraži filmove na tvom Plex popisu gledanja", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Automatsko zahtijevanje serija", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Ograničenje zahtjeva za serije", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtriraj sadržaj prema regionalnoj dostupnosti", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Uloga", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-mail", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Neuspjelo spremanje e-mail postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-mail postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Obavijesti", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Postavke za obavijesti", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token za pristup", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API token programa", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registriraj jedan program za korištenje s {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Pošalji tiho", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Pošalji obavijesti bez zvuka", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat ID", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Započni chat, dodaj @get_id_bot zadaj naredbu /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Neuspjelo spremanje Telegram postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktualna lozinka", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Ovaj korisnički račun trenutačno nema postavljenu lozinku. Dolje konfiguriraj lozinku kako bi se ovom računu omogućila prijava kao „lokalni korisnik”.", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tvoj račun trenutačno nema postavljenu lozinku. Konfiguriraj lozinku za omogućavanje prijave kao „lokalni korisnik” koristeći tvoju e-mail adresu.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Nemaš dozvole za mijenjenje lozinke ovog korisnika.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Lozinka", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Dogodila se greška prilikom spremanja lozinke.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Dogodila se greška prilikom spremanja lozinke. Je li vaša aktualna lozinka bila ispravno upisana?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Lozinka je uspješno spremljena!", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Moraš navesti tvoju aktualnu lozinku", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Moraš navesti novu lozinku", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Lozinka je prekratka; mora sadržati barem 8 znakova", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Dogodila se greška prilikom spremanja postavki.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Dozvole su uspješno spremljene!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Ne možeš promijeniti vlastite dozvole.", + "components.UserProfile.UserSettings.menuGeneralSettings": "Opće", + "components.UserProfile.UserSettings.menuNotifications": "Obavijesti", + "components.UserProfile.UserSettings.menuPermissions": "Dozvole", + "components.UserProfile.UserSettings.unauthorizedDescription": "Nemaš dozvole za mijenjenje postavki ovog korisnika.", + "components.UserProfile.emptywatchlist": "Mediji koji su dodani u tvoj popis gledanja na Plexu pojavit će se ovdje.", + "components.UserProfile.movierequests": "Zahtjevi za filmove", + "components.UserProfile.pastdays": "{type} (zadnjih {days} dana)", + "components.UserProfile.plexwatchlist": "Popis gledanja na Plexu", + "components.UserProfile.seriesrequest": "Zahtjevi za serije", + "components.UserProfile.totalrequests": "Ukupno zahtjeva", + "components.UserProfile.unlimited": "Neograničeno", + "i18n.available": "Dostupno", + "i18n.back": "Natrag", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Uredi", + "i18n.experimental": "Eksperimentalno", + "i18n.pending": "Na čekanju", + "i18n.previous": "Prethodno", + "i18n.processing": "Obrada", + "i18n.request": "Zahtjev", + "i18n.request4k": "Zatraži u 4K", + "i18n.requested": "Zatraženo", + "i18n.resultsperpage": "Prikaži {pageSize} rezultata po stranici", + "i18n.retrying": "Pokušaj se ponavlja …", + "i18n.requesting": "Zahtijevanje …", + "i18n.resolved": "Riješeno", + "i18n.save": "Spremi promjene", + "i18n.saving": "Spremanje …", + "i18n.settings": "Postavke", + "i18n.showingresults": "Prikaz {from} do {to} od {total} rezultata", + "i18n.test": "Provjeri", + "i18n.testing": "Provjeravanje …", + "i18n.tvshow": "Serije", + "i18n.tvshows": "Serije", + "i18n.unavailable": "Nedostupno", + "i18n.usersettings": "Korisničke postavke", + "i18n.view": "Prikaz", + "pages.errormessagewithcode": "{statusCode} – {error}", + "pages.internalservererror": "Interna greška poslužitelja", + "pages.pagenotfound": "Stranica nije pronađena", + "pages.returnHome": "Vrati se na početnu stranicu", + "pages.serviceunavailable": "Usluga nije dostupna", + "pages.somethingwentwrong": "Dogodila se greška", + "components.PermissionEdit.requestTv": "Zahtjev za serijama", + "components.PermissionEdit.users": "Upravljanje korisnicima", + "components.PermissionEdit.viewissues": "Prikaz problema", + "components.PermissionEdit.viewrecent": "Prikaz nedavno dodanih", + "components.PermissionEdit.viewrequests": "Prikaz zahtjeva", + "components.PermissionEdit.viewwatchlists": "Prikaz Plex popisa gledanja", + "components.PersonDetails.alsoknownas": "Poznat/a i kao: {names}", + "components.PersonDetails.appearsin": "Nastupanja", + "components.PersonDetails.ascharacter": "kao {character}", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Prijava…", + "components.PlexLoginButton.signinwithplex": "Prijavi se", + "components.QuotaSelector.unlimited": "Neograničeno", + "components.RegionSelector.regionDefault": "Sve regije", + "components.RegionSelector.regionServerDefault": "Zadano ({region})", + "components.RequestBlock.approve": "Odobri zahtjev", + "components.RequestBlock.decline": "Odbij zahtjev", + "components.RequestBlock.delete": "Izbriši zahtjev", + "components.RequestBlock.edit": "Uredi zahtjev", + "components.RequestBlock.server": "Odredišni poslužitelj", + "components.RequestButton.approverequest": "Odobri zahtjev", + "components.RequestButton.approverequest4k": "Odobri 4K zahtjev", + "components.RequestButton.requestmore": "Zatraži više", + "components.RequestButton.requestmore4k": "Zatraži više u 4K", + "components.RequestButton.viewrequest": "Prikaz zahtjeva", + "components.RequestButton.viewrequest4k": "Prikaz 4K zahtjeva", + "components.RequestCard.approverequest": "Odobri zahtjev", + "components.RequestCard.cancelrequest": "Prekini zahtjev", + "components.RequestCard.declinerequest": "Odbij zahtjev", + "components.RequestCard.deleterequest": "Izbriši zahtjev", + "components.RequestCard.editrequest": "Uredi zahtjev", + "components.RequestCard.failedretry": "Dogodila se greška prilikom ponovnog pokušaja slanja zahtjeva.", + "components.RequestCard.mediaerror": "{mediaType} nije pronađen", + "components.RequestList.RequestItem.requested": "Zatraženo", + "components.RequestList.requests": "Zahtjevi", + "components.RequestList.showallrequests": "Prikaži sve zahtjeve", + "components.RequestList.sortModified": "Zadnja promjena", + "components.RequestModal.AdvancedRequester.advancedoptions": "Napredno", + "components.RequestModal.AdvancedRequester.requestas": "Zatraži kao", + "components.RequestModal.AdvancedRequester.selecttags": "Odaberi oznake", + "components.RequestModal.AdvancedRequester.tags": "Oznake", + "components.RequestModal.QuotaDisplay.movie": "film", + "components.RequestModal.errorediting": "Dogodila se greška prilikom uređivanja zahtjeva.", + "components.RequestModal.extras": "Dodaci", + "components.RequestModal.numberofepisodes": "Broj epizoda", + "components.RequestModal.pending4krequest": "4K zahtjeva na čekanju", + "components.RequestModal.pendingapproval": "Tvoj zahtjev čeka na odobrenje.", + "components.RequestCard.tvdbid": "TVDB ID", + "components.RequestModal.pendingrequest": "Zahtjevai na čekanju", + "components.RequestModal.requestApproved": "Zahtjev za {title} je odobren!", + "components.RequestModal.requestcancelled": "Zahtjev za {title} je prekinut.", + "components.RequestModal.requestcollection4ktitle": "Zahtjev za zbirkom u 4K", + "components.RequestModal.requestcollectiontitle": "Zahtjev za zbirkom", + "components.RequestModal.requesterror": "Dogodila se greška prilikom slanja zahtjeva.", + "components.RequestModal.requestfrom": "Zahtjev korisnika {username} čeka na odobrenje.", + "components.RequestModal.requestmovie4ktitle": "Zatraži film u 4K", + "components.RequestModal.requestseries4ktitle": "Zatraži serije u 4K", + "components.RequestModal.requestseriestitle": "Zatraži serije", + "components.RequestModal.season": "Sezona", + "components.RequestModal.seasonnumber": "Sezona {number}", + "components.RequestModal.selectmovies": "Odaberi filmove", + "components.RequestModal.selectseason": "Odaberi sezone", + "components.ResetPassword.gobacklogin": "Vrati se na stranicu za prijavu", + "components.ResetPassword.validationpasswordmatch": "Lozinke se moraju poklapati", + "components.ResetPassword.validationpasswordminchars": "Lozinka je prekratka; mora sadržati barem 8 znakova", + "components.ResetPassword.validationpasswordrequired": "Moraš navesti lozinku", + "components.Search.searchresults": "Rezultati pretrage", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Neuspjelo spremanje postavki Gotify obavijesti.", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Slanje Gotify obavijesti provjere …", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsGotify.token": "Token programa", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsGotify.url": "URL poslužitelja", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL ne smije završiti s kosom crtom", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Ime profila", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Potrebno je samo ako se ne koristi zadani profil", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Neuspjelo slanje LunaSea obavijesti provjere.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Slanje LunaSea obavijesti provjere …", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token za pristup", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Neuspjelo spremanje postavki Pushbullet obavijesti.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Neuspjelo slanje Pushbullet obavijesti provjere.", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Moraš navesti valjani token za pristup", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsPushover.accessToken": "API token programa", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriraj jedan program za korištenje s Overseerr", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Neuspjelo spremanje Pushover postavki obavijesti.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Neuspjelo slanje Pushover obavijesti provjere.", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Moraš navesti valjani token programa", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Moraš navesti valjani ključ korisnika ili grupe", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Neuspjelo spremanje Slack postavki obavijesti.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Neuspjelo slanje Slack obavijesti provjere.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slanje Slack obavijesti provjere …", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Slanje webhook obavijesti provjere …", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Moraš navesti valjani URL", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook URL", + "components.Settings.Notifications.allowselfsigned": "Dozvoli samopotpisane certifikate", + "components.Settings.Notifications.authPass": "SMTP lozinka", + "components.Settings.Notifications.authUser": "SMTP korisničko ime", + "components.Settings.Notifications.botAPI": "Token autorizacije bota", + "components.Settings.Notifications.botAvatarUrl": "URL avatara bota", + "components.Settings.Notifications.botUsername": "Korisničko ime bota", + "components.Settings.Notifications.botUsernameTip": "Dozvoli korisnicima da započnu chat s tvojim botom i da konfiguriraju vlastite obavijesti", + "components.Settings.Notifications.encryption": "Metoda šifriranja", + "components.Settings.Notifications.encryptionDefault": "Koristi STARTTLS ako je dostupno", + "components.Settings.Notifications.encryptionImplicitTls": "Koristi implicitni TLS", + "components.Settings.Notifications.encryptionNone": "Ništa", + "components.Settings.Notifications.encryptionOpportunisticTls": "Uvijek koristi STARTTLS", + "components.Settings.Notifications.encryptionTip": "U većini slučajeva implicitni TLS koristi priključak 465, a STARTTLS priključak 587", + "components.Settings.Notifications.pgpPassword": "PGP lozinka", + "components.Settings.Notifications.sendSilentlyTip": "Pošalji obavijesti bez zvuka", + "components.Settings.Notifications.senderName": "Ime pošiljatelja", + "components.Settings.Notifications.smtpHost": "SMTP računalo", + "components.Settings.Notifications.smtpPort": "SMTP priključak", + "components.Settings.Notifications.telegramsettingsfailed": "Neuspjelo spremanje Telegram postavki obavijesti.", + "components.Settings.Notifications.telegramsettingssaved": "Telegram postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.toastEmailTestFailed": "Neuspjelo slanje e-mail obavijesti provjere.", + "components.Settings.Notifications.toastEmailTestSending": "Slanje e-mail obavijesti provjere …", + "components.Settings.Notifications.toastEmailTestSuccess": "E-mail obavijest provjere je poslana!", + "components.Settings.Notifications.toastTelegramTestFailed": "Neuspjelo slanje Telegram obavijesti provjere.", + "components.Settings.Notifications.validationBotAPIRequired": "Moraš navesti token autorizacije za bot", + "components.Settings.Notifications.validationChatIdRequired": "Moraš navesti valjani chat ID", + "components.Settings.RadarrModal.baseUrl": "Osnovni URL", + "components.Settings.RadarrModal.create4kradarr": "Dodaj novi 4K Radarr poslužitelj", + "components.Settings.RadarrModal.createradarr": "Dodaj novi Radarr poslužitelj", + "components.Settings.RadarrModal.default4kserver": "Zadani 4K poslužitelj", + "components.Settings.RadarrModal.editradarr": "Uredi Radarr poslužitelj", + "components.Settings.RadarrModal.enableSearch": "Aktiviraj automatsku pretragu", + "components.Settings.RadarrModal.externalUrl": "Eksterni URL", + "components.Settings.RadarrModal.hostname": "Ime računala ili IP adresa", + "components.Settings.RadarrModal.inCinemas": "U kinima", + "components.Settings.RadarrModal.notagoptions": "Nema oznaka.", + "components.Settings.RadarrModal.selectQualityProfile": "Odaberi profil kvalitete", + "components.Settings.RadarrModal.port": "Priključak", + "components.Settings.RadarrModal.selectRootFolder": "Odaberi početnu mapu", + "components.Settings.RadarrModal.selecttags": "Odaberi oznake", + "components.Settings.RadarrModal.server4k": "4K poslužitelj", + "components.Settings.RadarrModal.servername": "Ime poslužitelja", + "components.Settings.RadarrModal.ssl": "Koristi SSL", + "components.Settings.RadarrModal.testFirstRootFolders": "Provjeri vezu za učitavanje početnih mapa", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr veza je uspješno uspostavljena!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Moraš navesti valjani API ključ", + "components.Settings.RadarrModal.validationApplicationUrl": "Moraš navesti valjani URL", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "URL ne smije završiti s kosom crtom", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Osnovni URL mora početi s kosom crtom", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Moraš odabrati najmanju dostupnost", + "components.Settings.RadarrModal.validationPortRequired": "Moraš navesti valjani broj priključka", + "components.Settings.RadarrModal.validationProfileRequired": "Moraš odabrati profil kvalitete", + "components.Settings.SettingsAbout.Releases.currentversion": "Aktualno", + "components.Settings.SettingsAbout.Releases.latestversion": "Najnovije", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Podaci izdanja trenutačno nisu nedostupni.", + "components.Settings.SettingsAbout.Releases.versionChangelog": "{version} – zapisnik promjena", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Prikaz zapisnika promjena", + "components.Settings.SettingsAbout.Releases.viewongithub": "Prikaz na GitHubu", + "components.Settings.SettingsAbout.about": "Informacije", + "components.Settings.SettingsAbout.appDataPath": "Mapa podataka", + "components.Settings.SettingsAbout.betawarning": "Ovo je BETA softver. Značajke su možda pokvarene i/ili nestabilne. Prijavi sve probleme na GitHub!", + "components.Settings.SettingsAbout.overseerrinformation": "Overseerr informacije", + "components.Settings.SettingsAbout.totalrequests": "Ukupno zahtjeva", + "components.Settings.SettingsAbout.uptodate": "Aktualno", + "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr sprema zahtjeve na eksterne točke pristupa API-u za optimiranje izvedbe i izbjegavanje upućivanja nepotrebnih API poziva.", + "components.Settings.SettingsJobsCache.cacheflushed": "Predmemorija {cachename} je ispražnjena.", + "components.Settings.SettingsJobsCache.cachehits": "Pogodci", + "components.Settings.SettingsUsers.newPlexLogin": "Aktiviraj novu Plex prijavu", + "components.Settings.SettingsUsers.toastSettingsFailure": "Dogodila se greška prilikom spremanja postavki.", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Učitavanje profila jezika …", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Neuspjelo povezivanje na Sonarr.", + "components.Settings.manualscan": "Ručno skeniranje biblioteke", + "components.Settings.mediaTypeSeries": "serija", + "components.Settings.tautulliSettings": "Tautulli postavke", + "components.Settings.validationUrlBaseLeadingSlash": "Osnovni URL mora početi s kosom crtom", + "components.Settings.webAppUrlTip": "Opcionalno usmjeri korisnike na web program na tvom poslužitelju umjesto na „hostirani” web program", + "components.StatusChecker.appUpdatedDescription": "Pritisni donji gumb za ponovno pokretanje programa.", + "components.StatusChecker.restartRequiredDescription": "Ponovo pokreni poslužitelja kako bi se ažurirane postavke primijenile.", + "components.TvDetails.episodeRuntime": "Trajanje epizode", + "components.TvDetails.nextAirDate": "Datum sljedećeg emitiranja", + "components.TvDetails.rtaudiencescore": "Ocjena publike na Rotten Tomatoes", + "components.TvDetails.seasonnumber": "Sezona {seasonNumber}", + "components.UserList.createlocaluser": "Stvori lokalnog korisnika", + "components.UserList.deleteuser": "Izbriši korisnika", + "components.UserList.displayName": "Prikazano ime", + "components.UserList.importfromplexerror": "Dogodila se greška prilikom uvoza Plex korisnika.", + "components.UserList.localLoginDisabled": "Postavka Aktiviraj lokalnu prijavu je trenutačno deaktivirana.", + "components.UserList.nouserstoimport": "Nema Plex korisnika za uvoz.", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Javni PGP ključ", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Šifriraj e-mail poruke koristeći OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Moraš navesti valjani chat ID", + "components.UserProfile.limit": "{remaining} od {limit}", + "components.RequestList.RequestItem.tvdbid": "TVDB ID", + "components.PermissionEdit.autorequest": "Automatsko zahtijevanje", + "components.PermissionEdit.autorequestMovies": "Automatsko zahtijevanje filmova", + "components.PermissionEdit.autorequestSeries": "Automatsko zahtijevanje serija", + "components.PermissionEdit.createissues": "Prijavljivanje problema", + "components.PermissionEdit.manageissues": "Upravljanje problemima", + "components.PermissionEdit.managerequests": "Upravljanje zahtjevima", + "components.PermissionEdit.request": "Zahtjev", + "components.PermissionEdit.request4k": "Zahtjev za 4K", + "components.PermissionEdit.request4kMovies": "Zahtjev za 4K filmove", + "components.PermissionEdit.request4kTv": "Zahtjev za 4K serije", + "components.PermissionEdit.requestMovies": "Zahtjev za filmovima", + "components.PersonDetails.birthdate": "Datum rođenja {birthdate}", + "components.PersonDetails.crewmember": "Suradnik", + "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} po {quotaDays} {days}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} po {quotaDays} {days}", + "components.RequestBlock.languageprofile": "Profil jezika", + "components.RequestBlock.lastmodifiedby": "Zadnja promjena od", + "components.RequestBlock.profilechanged": "Profil kvalitete", + "components.RequestBlock.requestdate": "Datum zahtjeva", + "components.RequestBlock.requestedby": "Podnositelj zahtjeva", + "components.RequestBlock.requestoverrides": "Promjene zahtjeva", + "components.RequestBlock.rootfolder": "Početna mapa", + "components.RequestButton.declinerequest": "Odbij zahtjev", + "components.RequestButton.declinerequest4k": "Odbij 4K zahtjev", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.cancelRequest": "Prekini zahtjev", + "components.RequestList.RequestItem.deleterequest": "Izbriši zahtjev", + "components.RequestList.RequestItem.editrequest": "Uredi zahtjev", + "components.RequestList.RequestItem.failedretry": "Dogodila se greška prilikom ponovnog pokušaja slanja zahtjeva.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} nije pronađen", + "components.RequestList.RequestItem.modified": "Promijenjeno", + "components.RequestList.RequestItem.modifieduserdate": "{date}, korisnik: {user}", + "components.RequestList.RequestItem.requesteddate": "Zatraženo", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.sortAdded": "Najnoviji", + "components.RequestModal.AdvancedRequester.animenote": "* Ovo je serija anime filmova.", + "components.RequestModal.AdvancedRequester.default": "{name} (zadano)", + "components.RequestModal.AdvancedRequester.destinationserver": "Odredišni poslužitelj", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Profil jezika", + "components.RequestModal.AdvancedRequester.notagoptions": "Nema oznaka.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Profil kvalitete", + "components.RequestModal.AdvancedRequester.rootfolder": "Početna mapa", + "components.RequestModal.QuotaDisplay.season": "sezona", + "components.RequestModal.alreadyrequested": "Već zatraženo", + "components.RequestModal.approve": "Odobri zahtjev", + "components.RequestModal.autoapproval": "Automatsko odobravanje", + "components.RequestModal.cancel": "Prekini zahtjev", + "components.RequestModal.edit": "Uredi zahtjev", + "components.RequestModal.requestCancel": "Zahtjev za {title} je prekinut.", + "components.RequestModal.requestSuccess": "{title} je uspješno zatražen!", + "components.RequestModal.requestedited": "Zahtjev za {title} je uspješno uređen!", + "components.RequestModal.requestmovietitle": "Zatraži film", + "components.RequestModal.requestseasons": "Zatraži {seasonCount} {seasonCount, plural, one {sezonu} few {sezone} other {sezona}}", + "components.RequestModal.requestseasons4k": "Zatraži {seasonCount} {seasonCount, plural, one {sezonu} few {sezone} other {sezona}} u 4K", + "components.ResetPassword.confirmpassword": "Potvrdi lozinku", + "components.ResetPassword.email": "E-mail adresa", + "components.ResetPassword.password": "Lozinka", + "components.ResetPassword.passwordreset": "Ponovo postavljanje lozinke", + "components.ResetPassword.requestresetlinksuccessmessage": "Poveznica za ponovno postavljanje lozinke bit će poslana na navedenu e-mail adresu ako je povezana s valjanim korisnikom.", + "components.ResetPassword.resetpassword": "Obnovni svoju lozinku", + "components.ResetPassword.resetpasswordsuccessmessage": "Lozinka je uspješno ponovno postavljena!", + "components.ResetPassword.validationemailrequired": "Moraš zadati valjanju e‑mail adresu", + "components.Search.search": "Pretraga", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Neuspjelo slanje Gotify obavijesti provjere.", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Moraš navesti token programa", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Moraš navesti valjani URL", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Neuspjelo spremanje postavki LunaSea obavijesti.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Moraš navesti valjani URL", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Stvori token iz tvojih postavki računa", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Oznaka kanala", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Slanje Pushbullet obavijesti provjere …", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Slanje Pushover obavijesti provjere …", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Ključ korisnika ili grupe", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tvoj identifikator korisnika ili grupe s 30 znakova", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Moraš navesti valjani URL", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Stvori ulaznu Webhook integraciju", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Neuspjelo slanje Web push obavijesti provjere.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Slanje web push obavijesti provjere …", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push obavijest provjere je poslana!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Neuspjelo spremanje Web push postavki obavijesti.", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Zaglavlje autorizacije", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Vrati na zadane vrijednosti", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Neuspjelo slanje Webhook obavijesti provjere.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Neuspjelo spremanje Webhook postavki obavijesti.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.agentenabled": "Aktiviraj agenta", + "components.Settings.Notifications.botApiTip": "Stvori bot za korištenje s Overseerr", + "components.Settings.Notifications.chatId": "Chat ID", + "components.Settings.Notifications.discordsettingsfailed": "Neuspjelo spremanje Discord postavki za obavijesti.", + "components.Settings.Notifications.discordsettingssaved": "Discord postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.emailsender": "Adresa pošiljatelja", + "components.Settings.Notifications.emailsettingsfailed": "Neuspjelo spremanje e-mail postavki obavijesti.", + "components.Settings.Notifications.emailsettingssaved": "E-mail postavke obavijesti su uspješno spremljene!", + "components.Settings.Notifications.enableMentions": "Aktiviraj spominjanja", + "components.Settings.Notifications.pgpPasswordTip": "Potpiši šifrirane e-mail poruke koristeći OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "Privatni PGP ključ", + "components.Settings.Notifications.pgpPrivateKeyTip": "Potpiši šifrirane e-mail poruke koristeći OpenPGP", + "components.Settings.Notifications.sendSilently": "Pošalji tiho", + "components.Settings.Notifications.toastDiscordTestFailed": "Neuspjelo slanje Discord obavijesti provjere.", + "components.Settings.Notifications.toastDiscordTestSending": "Slanje Discord obavijesti provjere …", + "components.Settings.Notifications.toastDiscordTestSuccess": "Discord obavijest provjere je poslana!", + "components.Settings.Notifications.toastTelegramTestSending": "Slanje Telegram obavijesti provjere …", + "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram obavijest provjere je poslana!", + "components.Settings.Notifications.validationEmail": "Moraš navesti valjanju e‑mail adresu", + "components.Settings.Notifications.validationPgpPassword": "Moraš navesti PGP lozinku", + "components.Settings.Notifications.validationPgpPrivateKey": "Moraš navesti valjan privatni PGP ključ", + "components.Settings.Notifications.validationSmtpHostRequired": "Moraš navesti valjano ime računala ili IP adresu", + "components.Settings.Notifications.validationSmtpPortRequired": "Moraš navesti valjani broj priključka", + "components.Settings.Notifications.validationTypes": "Moraš odabrati barem jednu vrstu obavijesti", + "components.Settings.Notifications.validationUrl": "Moraš navesti valjani URL", + "components.Settings.Notifications.webhookUrl": "Webhook URL", + "components.Settings.Notifications.webhookUrlTip": "Stvori webhook integraciju u tvom poslužitelju", + "components.Settings.RadarrModal.add": "Dodaj poslužitelj", + "components.Settings.RadarrModal.announced": "Najavljeno", + "components.Settings.RadarrModal.apiKey": "API ključ", + "components.Settings.RadarrModal.defaultserver": "Zadani poslužitelj", + "components.Settings.RadarrModal.edit4kradarr": "Uredi 4K Radarr poslužitelj", + "components.Settings.RadarrModal.loadingTags": "Učitavanje oznaka …", + "components.Settings.RadarrModal.loadingprofiles": "Učitavanje profila kvalitete …", + "components.Settings.RadarrModal.loadingrootfolders": "Učitavanje početnih mapa …", + "components.Settings.RadarrModal.minimumAvailability": "Najmanja dostupnost", + "components.Settings.RadarrModal.qualityprofile": "Profil kvalitete", + "components.Settings.RadarrModal.released": "Objavljeno", + "components.Settings.RadarrModal.rootfolder": "Početna mapa", + "components.Settings.RadarrModal.selectMinimumAvailability": "Odaberi najmanju dostupnost", + "components.Settings.RadarrModal.tags": "Oznake", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Provjeri vezu za učitavanje profila kvalitete", + "components.Settings.RadarrModal.testFirstTags": "Provjeri vezu za učitavanje oznaka", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Neuspjelo povezivanje na Radarr.", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Osnovni URL ne smije završiti s kosom crtom", + "components.Settings.RadarrModal.validationHostnameRequired": "Moraš navesti valjano ime računala ili IP adresu", + "components.Settings.RadarrModal.validationNameRequired": "Moraš navesti ime poslužitelja", + "components.Settings.RadarrModal.validationRootFolderRequired": "Moraš odabrati početnu mapu", + "components.Settings.SettingsAbout.Releases.releases": "Izdanja", + "components.Settings.SettingsAbout.documentation": "Dokumentacija", + "components.Settings.SettingsAbout.gettingsupport": "Dobivanje pomoći", + "components.Settings.SettingsAbout.githubdiscussions": "Rasprave na GitHubu", + "components.Settings.SettingsAbout.helppaycoffee": "Pomogni platiti kavu", + "components.Settings.SettingsAbout.outofdate": "Zastarjela verzija", + "components.Settings.SettingsAbout.preferredmethod": "Preferirano", + "components.Settings.SettingsAbout.runningDevelop": "Pokrećeš razvojnu Overseerr granu, koja se preporučuje samo onima koji doprinose razvoju ili pomažu najnovijem testiranju.", + "components.Settings.SettingsAbout.supportoverseerr": "Podrži Overseerr", + "components.Settings.SettingsAbout.timezone": "Vremenska zona", + "components.Settings.SettingsAbout.totalmedia": "Ukupno medija", + "components.Settings.SettingsAbout.version": "Verzija", + "components.Settings.SettingsJobsCache.cache": "Predmemorija", + "components.Settings.SettingsJobsCache.cachekeys": "Ukupno ključeva", + "components.Settings.SettingsJobsCache.cacheksize": "Veličina ključa", + "components.Settings.SettingsJobsCache.cachemisses": "Promašaji", + "components.Settings.SettingsJobsCache.cachename": "Ime predmemorije", + "components.Settings.SettingsJobsCache.cachevsize": "Veličina vrijednosti", + "components.Settings.SettingsJobsCache.canceljob": "Prekini zadatak", + "components.Settings.SettingsJobsCache.command": "Naredba", + "components.Settings.SettingsJobsCache.download-sync": "Sinkronizacija preuzimanja", + "components.Settings.SettingsJobsCache.download-sync-reset": "Resetiraj sinkronizaciju preuzimanja", + "components.Settings.SettingsJobsCache.editJobSchedule": "Promijeni zadatak", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "{jobScheduleHours, plural, one {Svake minute} few {Svake {jobScheduleHours} minute} other {Svakih {jobScheduleHours} minuta}}", + "components.Settings.SettingsJobsCache.flushcache": "Isprazni predmemoriju", + "components.Settings.SettingsJobsCache.jobcancelled": "Zadatak {jobname} prekinut.", + "components.Settings.SettingsJobsCache.jobname": "Ime zadatka", + "components.Settings.SettingsJobsCache.jobs": "Zadaci", + "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr obavlja određene zadatke održavanja kao redovito planirane zadatke, ali oni se također mogu dolje ručno pokrenuti. Ručno pokretanje zadatka neće promijeniti njegov plan.", + "components.Settings.SettingsJobsCache.jobtype": "Vrsta", + "components.Settings.SettingsJobsCache.jobsandcache": "Zadaci i predmemorija", + "components.Settings.SettingsJobsCache.jobstarted": "Zadatak {jobname} je pokrenut.", + "components.Settings.SettingsJobsCache.nextexecution": "Sljedeće izvršavanje", + "components.Settings.SettingsJobsCache.process": "Obrada", + "components.Settings.SettingsLogs.copyToClipboard": "Kopiraj u međuspremnik", + "components.Settings.SettingsLogs.logsDescription": "Ove zapise možeš izravno vidjeti i putem stdout ili u {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.message": "Poruka", + "components.Settings.SettingsLogs.pauseLogs": "Zaustavi", + "components.Settings.SettingsUsers.newPlexLoginTip": "Dozvoli Plex korisnicima da se prijave bez da se prethodno uvezu", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Provjeri vezu za učitavanje profila jezika", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "URL ne smije završiti s kosom crtom", + "components.Settings.mediaTypeMovie": "film", + "components.Settings.toastTautulliSettingsFailure": "Dogodila se greška prilikom spremanja Tautulli postavki.", + "components.Settings.toastTautulliSettingsSuccess": "Tautulli postavke su uspješno spremljene!", + "components.Settings.validationHostnameRequired": "Moraš navesti valjano ime računala ili IP adresu", + "components.Settings.validationPortRequired": "Moraš navesti valjani broj priključka", + "components.Settings.validationUrl": "Moraš navesti valjani URL", + "components.Settings.validationUrlBaseTrailingSlash": "Osnovni URL ne smije završiti s kosom crtom", + "components.Settings.validationUrlTrailingSlash": "URL ne smije završiti s kosom crtom", + "components.Settings.webAppUrl": "URL web programa", + "components.Settings.webhook": "Webhook", + "components.Setup.configureplex": "Konfiguriraj Plex", + "components.Setup.configureservices": "Konfiguriraj usluge", + "components.StatusChecker.reloadApp": "Ponovo pokreni {applicationTitle}", + "components.StatusChecker.restartRequired": "Zahtijeva ponovno pokretanje poslužitelja", + "components.TitleCard.tvdbid": "TVDB ID", + "components.TitleCard.cleardata": "Izbriši podatke", + "components.TitleCard.mediaerror": "{mediaType} nije pronađen", + "components.TitleCard.tmdbid": "TMDB ID", + "components.TvDetails.Season.somethingwentwrong": "Dogodila se greška prilikom preuzimanja podataka sezona.", + "components.TvDetails.anime": "Anime", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} min", + "components.TvDetails.firstAirDate": "Datum prvog emitiranja", + "components.TvDetails.manageseries": "Upravljaj serijama", + "components.TvDetails.network": "{networkCount, plural, one {mreža} few {mreže} other {mreža}}", + "components.TvDetails.originallanguage": "Izvorni jezik", + "components.TvDetails.originaltitle": "Izvorni naslov", + "components.TvDetails.overview": "Pregled", + "components.TvDetails.overviewunavailable": "Pregled nedostupan.", + "components.TvDetails.play4konplex": "Reproduciraj u 4K na Plex-u", + "components.TvDetails.playonplex": "Reproduciraj na Plex-u", + "components.TvDetails.productioncountries": "{countryCount, plural, one {zemlja produkcije} few {zemlje produkcije} other {zemalja produkcije}}", + "components.TvDetails.recommendations": "Preporuke", + "components.TvDetails.reportissue": "Prijavi problem", + "components.TvDetails.rtcriticsscore": "Tomatometer na Rotten Tomatoes", + "components.TvDetails.showtype": "Vrste serija", + "components.TvDetails.similar": "Slične serije", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.streamingproviders": "Trenutačno se prikazuje na", + "components.TvDetails.tmdbuserscore": "TMDB ocjena korisnika", + "components.TvDetails.viewfullcrew": "Prikaz svih suradnika", + "components.TvDetails.watchtrailer": "Gledaj najavu", + "components.UserList.autogeneratepassword": "Automatski generiraj lozinku", + "components.UserList.autogeneratepasswordTip": "Pošalji korisniku e-mail s lozinkom koju je generirao poslužitelj", + "components.UserList.bulkedit": "Grupno uređivanje", + "components.UserList.accounttype": "Vrsta", + "components.UserList.admin": "Administrator", + "components.UserList.create": "Stvori", + "components.UserList.created": "Pridruživanje", + "components.UserList.deleteconfirm": "Stvarno želiš izbrisati ovog korisnika? Svi podaci njegovih zahtjeva će se trajno ukloniti.", + "components.UserList.usercreatedsuccess": "Korisnik je uspješno stvoren!", + "components.UserList.userdeleted": "Korisnik je uspješno izbrisan!", + "components.UserList.userfail": "Dogodila se greška prilikom spremanja korisničkih dozvola.", + "components.UserList.userlist": "Popis korisnika", + "components.UserList.users": "Korisnici", + "components.UserList.userssaved": "Korisničke dozvole su uspješno spremljene!", + "components.UserList.validationEmail": "Moraš zadati valjanju e‑mail adresu", + "components.UserList.validationpasswordminchars": "Lozinka je prekratka; mora sadržati barem 8 znakova", + "components.UserProfile.ProfileHeader.profile": "Prikaz profila", + "components.UserProfile.ProfileHeader.settings": "Uredi postavke", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokalni korisnik", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Ograničenje zahtjeva za filmove", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Vlasnik", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatski zatraži serije na tvom Plex popisu gledanja", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Otkrij regiju", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Dogodila se greška prilikom spremanja postavki.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Postavke su uspješno spremljene!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Korisnik", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Moraš navesti valjani Discord korisnički ID", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID korisnika", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Višeznamenkasti ID broj povezan s tvojim korisničkim računom", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Neuspjelo spremanje Discord postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Stvori token iz tvojih postavki računa", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Neuspjelo spremanje Pushbullet postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Ključ korisnika ili grupe", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tvoj identifikator korisnika ili grupe s 30 znakova", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Neuspjelo spremanje Pushover postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Moraš navesti valjani korisnički ID", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Moraš navesti valjani javni ključ stvoren PGP-om", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Moraš navesti valjani token za pristup", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Moraš navesti valjani token programa", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Moraš navesti valjani ključ korisnika ili grupe", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Neuspjelo spremanje Web push postavki obavijesti.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push postavke obavijesti su uspješno spremljene!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Potvrdi lozinku", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nova lozinka", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Moraš potvrditi novu lozinku", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Lozinke se moraju poklapati", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Dozvole", + "components.UserProfile.UserSettings.menuChangePass": "Lozinka", + "components.UserProfile.recentrequests": "Nedavni zahtjevi", + "components.UserProfile.recentlywatched": "Nedavno gledano", + "components.UserProfile.requestsperdays": "{limit} preostalo", + "i18n.advanced": "Napredno", + "i18n.all": "Sve", + "i18n.approve": "Odobri", + "i18n.approved": "Odobreno", + "i18n.areyousure": "Sigurno?", + "i18n.cancel": "Odustani", + "i18n.canceling": "Prekidanje …", + "i18n.close": "Zatvori", + "i18n.decline": "Odbij", + "i18n.declined": "Odbijeno", + "i18n.delete": "Izbriši", + "i18n.deleting": "Brisanje …", + "i18n.failed": "Neuspjelo", + "i18n.import": "Uvezi", + "i18n.importing": "Uvoz …", + "i18n.loading": "Učitavanje …", + "i18n.movie": "Film", + "i18n.movies": "Filmovi", + "i18n.next": "Dalje", + "i18n.noresults": "Nema rezultata.", + "i18n.notrequested": "Nije zatraženo", + "i18n.open": "Otvori", + "i18n.partiallyavailable": "Djelomično dostupno", + "i18n.restartRequired": "Zahtijeva ponovno pokretanje", + "i18n.retry": "Pokušaj ponovo", + "i18n.status": "Stanje", + "pages.oops": "Ups", + "components.Settings.advancedTooltip": "Neispravno konfiguriranje ove postavke može pokvariti funkcionalnost", + "components.Settings.noDefaultNon4kServer": "Ako imate samo jedan {serverType} poslužitelj za ne-4K i za 4K sadržaj (ili ako preuzimaš samo 4K sadržaj), tvoj {serverType} poslužitelj NE bi trebao biti određen kao 4K poslužitelj.", + "components.PermissionEdit.requestMoviesDescription": "Dozvoli automatsko slanje zahtjeva za filmove koje nisu u 4K rezoluciji.", + "components.PermissionEdit.autorequestDescription": "Dozvoli automatsko slanje zahtjeva za medije koji nisu u 4K rezoluciji putem Plex popisa gledanja.", + "components.PermissionEdit.autorequestMoviesDescription": "Dozvoli automatsko slanje zahtjeva za filmove koji nisu u 4K rezoluciji putem Plex popisa gledanja.", + "components.PermissionEdit.autorequestSeriesDescription": "Dozvoli automatsko slanje zahtjeva za serije koje nisu u 4K rezoluciji putem Plex popisa gledanja.", + "components.PermissionEdit.requestDescription": "Dozvoli automatsko slanje zahtjeva za medije koje nisu u 4K rezoluciji.", + "components.PermissionEdit.requestTvDescription": "Dozvoli automatsko slanje zahtjeva za serije koje nisu u 4K rezoluciji.", + "components.PermissionEdit.viewrecentDescription": "Dozvoli prikaz za pregled popisa nedavno dodanih medija.", + "components.PermissionEdit.createissuesDescription": "Dozvoli prijavljivanje problema s medijima.", + "components.PermissionEdit.manageissuesDescription": "Dozvoli upravljanje problemima s medijima.", + "components.PermissionEdit.request4kDescription": "Dozvoli slanje zahtjeva za medije u 4K rezoluciji.", + "components.PermissionEdit.request4kMoviesDescription": "Dozvoli slanje zahtjeva za filmove u 4K rezoluciji.", + "components.PermissionEdit.request4kTvDescription": "Dozvoli slanje zahtjeva za serijama u 4K rezoluciji.", + "components.PermissionEdit.usersDescription": "Dozvoli upravljanje korisnicima. Korisnici s ovom dozvolom ne mogu mijenjati korisnike s administratorskom privilegijom ili dozvoliti administratorske privilegije.", + "components.PermissionEdit.viewissuesDescription": "Dozvoli prikaz problema s medijima koje su prijavili drugi korisnici.", + "components.PermissionEdit.viewrequestsDescription": "Dozvoli prikaz medijskih zahtjeva koje su prijavili drugi korisnici.", + "components.PermissionEdit.viewwatchlistsDescription": "Dozvoli prikaz Plex popisa gledanja drugih korisnika.", + "components.Settings.notrunning": "Ne pokreće se", + "components.Settings.serverRemote": "udaljeni", + "components.RequestModal.QuotaDisplay.quotaLink": "Sažetak tvojih ograničenja zahtjeva možeš vidjeti na tvojoj stranici profila.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Sažetak ograničenja zahtjeva korisničkih zahtjeva možeš vidjeti na njihovoj stranici profila.", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Nema dovoljno preostalih zahtjeva za sezonama", + "components.RequestModal.SearchByNameModal.nomatches": "Nismo uspjeli pronaći seriju koja odgovara ovoj seriji.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nismo uspjeli automatski naći odgovarajuću seriju. Dolje odaberi odgovarajuću seriju.", + "components.RequestModal.requestadmin": "Ovaj će se zahtjev automatski prihvatiti.", + "components.ResetPassword.emailresetlink": "E-mail poveznica za obnavljanje lozinke", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tvoj korisničke ili na osnovi uređaja webhook URL obavijesti", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Za primanje web push obavijesti, Overseerr se mora posluživati putem HTTPS-a.", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Pomoć za varijablu predloška", + "components.Settings.Notifications.chatIdTip": "Započni chat s tvojim botom, dodaj @get_id_bot i zadaj naredbu /my_id", + "components.Settings.SettingsJobsCache.radarr-scan": "Radarr pretraživanje", + "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr pretraživanje", + "components.Settings.SonarrModal.syncEnabled": "Aktiviraj pretraživanje", + "components.Settings.cancelscan": "Prekini pretraživanje", + "components.Settings.manualscanDescription": "Obično će se to pokrenuti samo jednom svaka 24 sata. Overseerr će agresivnije provjeriti tvoj Plex poslužitelj za nedavno dodanim. Ako po prvi put konfiguriraš Plex, preporučuje se jednom ručno pretražiti cijelu biblioteku!", + "components.Settings.plexlibrariesDescription": "Biblioteke u kojima će Overseerr tražiti naslove. Postavi i spremi tvoje postavke Plex veze, a zatim pritisni gumb ispod ako je popis biblioteka prazan.", + "components.Settings.startscan": "Pokreni pretraživanje", + "components.Setup.scanbackground": "Pretraživanje se pokreće u pozadini. U međuvremenu možeš nastaviti s postupkom postavljanja.", + "components.PermissionEdit.managerequestsDescription": "Dozvoli upravljanje zahtjevima za medijima. Svi zahtjevi korisnika s ovom dozvolom će se automatski odobriti.", + "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON sadržaj", + "components.Settings.SettingsJobsCache.plex-full-scan": "Pretraživanje cijele Plex biblioteke", + "components.RequestModal.QuotaDisplay.allowedRequests": "Smiješ zatražiti {limit} {type} svakih {days} dana.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Ovaj korisnik smije zatražiti {limit} {type} svakih {days} dana.", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON sadržaj je uspješno resetiran!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Moraš zadati valjani JSON sadržaj", + "components.Settings.RadarrModal.syncEnabled": "Aktiviraj pretraživanje", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Pretraživanje nedavno dodanih u Plex biblioteku", + "components.TvDetails.Season.noepisodes": "Popis epizoda nije dostupan.", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Brisanje predmemorije slika", + "components.Settings.SettingsJobsCache.imagecache": "Predmemorija slika", + "components.Settings.SettingsJobsCache.imagecachesize": "Ukupna veličina predmemorije", + "components.Settings.SettingsJobsCache.imagecachecount": "Slike spremljene u predmemoriju", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Kad je u postavkama aktivirano, Overseerr će služiti kao posrednik i predmemorirati slike iz unaprijed konfiguriranih vanjskih izvora. Predmemorirane slike spremaju se u mapu konfiguracije. Datoteke možeš pronaći u {appDataPath}/cache/images.", + "components.DownloadBlock.formattedTitle": "{title}: Sezona {seasonNumber} Episoda {episodeNumber}", + "components.RequestCard.unknowntitle": "Nepoznat naslov", + "components.RequestList.RequestItem.unknowntitle": "Nepoznat naslov", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}" } diff --git a/src/i18n/locale/hu.json b/src/i18n/locale/hu.json index 56b052698..bb4d6c9c1 100644 --- a/src/i18n/locale/hu.json +++ b/src/i18n/locale/hu.json @@ -162,15 +162,15 @@ "components.UserList.password": "Jelszó", "components.UserList.localuser": "Helyi felhasználó", "components.UserList.importfromplexerror": "Hiba történt a felhasználók Plex-ről történő importálása közben.", - "components.UserList.importfromplex": "Felhasználók importálása Plex-ről", - "components.UserList.importedfromplex": "{userCount, plural, =0 {Nem lett új} one {# új} other {# új}} felhasználó importálva Plex-ről!", + "components.UserList.importfromplex": "Plex felhasználók importálása", + "components.UserList.importedfromplex": "{userCount} Plex {userCount, plural, one {user} {users}} sikeresen importálva!", "components.UserList.email": "E-mail-cím", "components.UserList.deleteuser": "Felhasználó törlése", "components.UserList.deleteconfirm": "Biztos vagy benne, hogy törlöd ezt a felhasználót? A felhasználó összes adata törlődni fog.", "components.UserList.creating": "Létrehozás…", "components.UserList.createlocaluser": "Helyi felhasználó létrehozása", "components.UserList.admin": "Adminisztrátor", - "components.UserList.created": "Létrehozva", + "components.UserList.created": "Csatlakozott", "components.UserList.create": "Létrehozás", "components.UserList.bulkedit": "Tömeges szerkesztés", "components.UserList.autogeneratepassword": "Jelszó generálása automatikusan", @@ -204,7 +204,7 @@ "components.RequestModal.requestSuccess": "{title} kérés elküldve!", "components.RequestModal.requestCancel": "{title} kérése visszavonva.", "components.RequestModal.pendingrequest": "Elbírálásra váró kérelem", - "components.RequestModal.pending4krequest": "", + "components.RequestModal.pending4krequest": "Függőben lévő 4K-kérés", "components.RequestModal.autoapproval": "Automatikus jóváhagyás", "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nem sikerült azonosítani a kérésed. Kérlek, válaszd ki a megfelelő találatot az alábbi listából.", "components.RequestBlock.profilechanged": "Minőség profil", @@ -302,21 +302,12 @@ "components.Settings.webAppUrl": "Web App URL", "components.Settings.validationPortRequired": "Érvényes portszámot kell megadnia", "components.Settings.validationHostnameRequired": "Érvényes host-nevet vagy IP-címet kell megadnia", - "components.Settings.validationApplicationUrlTrailingSlash": "Az URL-nek nem lehet vége perjellel", - "components.Settings.validationApplicationUrl": "Érvényes URL-t kell megadnia", - "components.Settings.validationApplicationTitle": "Meg kell adnia egy alkalmazás címet", - "components.Settings.trustProxyTip": "Lehetővé teszi az Overseerr számára, hogy helyesen regisztrálja az ügyfelek IP-címeit proxy mögött", - "components.Settings.trustProxy": "Proxy-támogatás engedélyezése", - "components.Settings.toastSettingsSuccess": "A beállítások sikeresen mentve!", - "components.Settings.toastSettingsFailure": "Valami elromlott a beállítások mentése közben.", "components.Settings.toastPlexRefreshSuccess": "Plex szerverlista sikeresen lekérdezve!", "components.Settings.toastPlexRefreshFailure": "Nem sikerült lekérni a Plex szerverek listáját.", "components.Settings.toastPlexRefresh": "Szerverlista lekérése a Plexből…", "components.Settings.toastPlexConnectingSuccess": "A Plex kapcsolat sikeresen létrejött!", "components.Settings.toastPlexConnectingFailure": "Nem sikerült csatlakozni a Plexhez.", "components.Settings.toastPlexConnecting": "Csatlakozási kísérlet a Plexhez …", - "components.Settings.toastApiKeySuccess": "Az új API kulcs sikeresen generálódott!", - "components.Settings.toastApiKeyFailure": "Valami hiba történt az új API-kulcs generálása során.", "components.Settings.startscan": "Szkennelés indítása", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Sonarr beállítások", @@ -332,8 +323,6 @@ "components.Settings.serverLocal": "helyi", "components.Settings.scanning": "Szinkronizálás…", "components.Settings.scan": "Könyvtárak szinkronizálása", - "components.Settings.regionTip": "A tartalom szűrése a regionális elérhetőség szerint", - "components.Settings.region": "Fedezzen fel régiót", "components.Settings.radarrsettings": "Radarr beállítások", "components.Settings.port": "Port", "components.Settings.plexsettingsDescription": "Konfigurálja a Plex szerver beállításait. Az Overseerr átvizsgálja a Plex könyvtárakat a tartalom elérhetőségének meghatározása érdekében.", @@ -341,9 +330,6 @@ "components.Settings.plexlibrariesDescription": "Az Overseerr könyvtár címeket keres. Állítsa be és mentse el a Plex kapcsolati beállításokat, majd kattintson az alábbi gombra, ha nincsenek könyvtárak.", "components.Settings.plexlibraries": "Plex könyvtárak", "components.Settings.plex": "Plex", - "components.Settings.partialRequestsEnabled": "Részleges sorozatkérések engedélyezése", - "components.Settings.originallanguageTip": "Tartalom szűrése eredeti nyelv szerint", - "components.Settings.originallanguage": "Nyelv felfedezése", "components.Settings.notrunning": "Nem fut", "components.Settings.notificationsettings": "Értesítési beállítások", "components.Settings.notifications": "Értesítések", @@ -363,29 +349,16 @@ "components.Settings.mediaTypeMovie": "film", "components.Settings.manualscanDescription": "Normális esetben ez csak 24 óránként egyszer fut le. Az Overseerr agresszívebben ellenőrzi a Plex szerver \"nemrégiben hozzáadottakat\" könyvtárat. Ha ez az első alkalom a Plex konfigurálásában, egyszeri teljes kézi könyvtárellenőrzés ajánlott!", "components.Settings.manualscan": "Kézi könyvtári beolvasás", - "components.Settings.locale": "Megjelenítési nyelv", "components.Settings.librariesRemaining": "Fennmaradó könyvtárak: {count}", "components.Settings.is4k": "4K", - "components.Settings.hideAvailable": "Elérhető média elrejtése", - "components.Settings.generalsettingsDescription": "Az Overseerr globális és alapértelmezett beállításainak konfigurálása.", - "components.Settings.generalsettings": "Általános beállítások", - "components.Settings.general": "Általános", "components.Settings.enablessl": "Használjon SSL-t", "components.Settings.email": "E-mail-cím", "components.Settings.deleteserverconfirm": "Biztos, hogy törölni szeretné ezt a szervert?", "components.Settings.default4k": "Alapértelmezett 4K", "components.Settings.default": "Alapértelmezett", "components.Settings.currentlibrary": "Jelenlegi könyvtár: {name}", - "components.Settings.csrfProtectionTip": "Külső API-hozzáférés beállítása csak olvashatóra (HTTPS szükséges)", - "components.Settings.csrfProtectionHoverTip": "NE engedélyezze ezt a beállítást, csak ha megérti, mit csinál!", - "components.Settings.csrfProtection": "Engedélyezze a CSRF-védelmet", "components.Settings.copied": "API-kulcs másolva a vágólapra.", "components.Settings.cancelscan": "Beolvasás megszakítása", - "components.Settings.cacheImagesTip": "Optimalizálja és helyben tárolja az összes képet (jelentős mennyiségű lemezterületet fogyaszt)", - "components.Settings.cacheImages": "Képek gyorsítótárazásának engedélyezése", - "components.Settings.applicationurl": "Alkalmazás URL címe", - "components.Settings.applicationTitle": "Alkalmazás címe", - "components.Settings.apikey": "API kulcs", "components.Settings.addsonarr": "Sonarr szerver hozzáadása", "components.Settings.address": "Cím", "components.Settings.addradarr": "Radarr szerver hozzáadása", @@ -1018,7 +991,7 @@ "components.RequestCard.cancelrequest": "Kérés visszavonása", "components.RequestCard.declinerequest": "Kérelem elutasítása", "components.RequestCard.editrequest": "Kérelem szerkesztése", - "components.Discover.DiscoverWatchlist.discoverwatchlist": "", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Az Ön Plex figyelőlistája", "components.PermissionEdit.autorequest": "Automatikus kérés", "components.NotificationTypeSelector.mediaautorequested": "A kérelem automatikusan elküldve", "components.MovieDetails.reportissue": "Probléma bejelentése", @@ -1038,5 +1011,79 @@ "components.RequestCard.approverequest": "Kérelem jóváhagyása", "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmkérések", "components.Layout.UserDropdown.requests": "Kérések", - "components.RequestModal.requestcollectiontitle": "Gyűjtemény kérése" + "components.RequestModal.requestcollectiontitle": "Gyűjtemény kérése", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuális frekvencia", + "components.Settings.restartrequiredTooltip": "Az Overseerr-t újra kell indítani, hogy a beállítás módosításai életbe lépjenek", + "components.StatusBadge.managemedia": "{mediaType} kezelése", + "components.StatusBadge.openinarr": "Nyitás itt: {arr}", + "components.StatusChecker.appUpdatedDescription": "Kérjük, kattintson az alábbi gombra az alkalmazás újratöltéséhez.", + "components.TitleCard.mediaerror": "{mediaType} Nem található", + "components.TvDetails.Season.somethingwentwrong": "Hiba történt az évadadatok lekérésekor.", + "components.StatusBadge.playonplex": "Lejátszás Plexen", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes közönségpontszám", + "components.TvDetails.seasonstitle": "Évadok", + "components.TvDetails.seasonnumber": "{seasonNumber} Évad", + "components.TvDetails.tmdbuserscore": "TMDB felhasználói pontszám", + "components.UserProfile.emptywatchlist": "Itt jelennek meg a Plex figyelőlistájához hozzáadott médiák.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Felhasználói vagy csoportkulcs", + "components.StatusChecker.appUpdated": "{applicationTitle} Frissítve", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "A(z) {title} problémajelentése sikeresen elküldve!", + "components.PermissionEdit.viewrecentDescription": "Adjon engedélyt a nemrég hozzáadott médialista megtekintéséhez.", + "components.MovieDetails.theatricalrelease": "Színházi kiadás", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Értesítést kaphat, ha a rendszer automatikusan új médiakérelmeket küld a Plex figyelőlistáján szereplő elemekhez.", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex figyelőlista szinkronizálása", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Filmek automatikus kérése a Plex figyelőlistán", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Automatikus sorozat kérés", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Filmek automatikus kérése", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Sorozatok automatikus kérése a Plex figyelőlistán", + "components.PermissionEdit.viewwatchlists": "Plex figyelőlisták megtekintése", + "components.Settings.experimentalTooltip": "A beállítás engedélyezése váratlan alkalmazási viselkedést eredményezhet", + "components.Settings.deleteServer": "Törölje a {serverType} szervert", + "components.StatusChecker.reloadApp": "{applicationTitle} újratöltése", + "components.StatusChecker.restartRequired": "Szerver újraindítása szükséges", + "components.StatusChecker.restartRequiredDescription": "Kérjük, indítsa újra a szervert a frissített beállítások alkalmazásához.", + "components.TitleCard.cleardata": "Adatok törlése", + "components.UserProfile.plexwatchlist": "Plex figyelőlista", + "components.TvDetails.manageseries": "Sorozatok kezelése", + "components.Settings.advancedTooltip": "A beállítás helytelen konfigurálása a funkció meghibásodását eredményezheti", + "components.Discover.DiscoverWatchlist.watchlist": "Plex figyelőlista", + "components.Settings.SettingsLogs.viewdetails": "Részletek megtekintése", + "components.TvDetails.reportissue": "Probléma bejelentése", + "components.PermissionEdit.viewwatchlistsDescription": "Adjon engedélyt más felhasználók Plex figyelőlistájának megtekintéséhez.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Az Ön 30 karakteres felhasználó- vagy csoportazonosítója", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Meg kell adnia egy érvényes felhasználói vagy csoportkulcsot", + "components.Discover.plexwatchlist": "Az Ön Plex figyelőlistája", + "components.RequestModal.SearchByNameModal.nomatches": "Nem találtunk megfelelőt ehhez a sorozathoz.", + "components.RequestModal.requestmovie4ktitle": "Film kérése 4K-ban", + "components.RequestModal.requestmovietitle": "Film kérése", + "components.RequestModal.requestseries4ktitle": "Sorozat kérése 4K-ban", + "components.Discover.emptywatchlist": "Itt jelennek meg a Plex figyelőlistájához hozzáadott médiák.", + "components.RequestModal.requestseriestitle": "Sorozat kérelem", + "components.PermissionEdit.autorequestDescription": "Adjon engedélyt a nem 4K-s médiára vonatkozó kérések automatikus benyújtására a Plex figyelőlistán keresztül.", + "components.PermissionEdit.autorequestMoviesDescription": "Adjon engedélyt nem 4K-s filmekre vonatkozó kérelmek automatikus benyújtására a Plex figyelőlistán keresztül.", + "components.AirDateBadge.airedrelative": "Adott {relativeTime}", + "components.AirDateBadge.airsrelative": "Sugárzott {relativeTime}", + "components.PermissionEdit.autorequestSeriesDescription": "Adjon engedélyt a nem 4K sorozatokra vonatkozó kérelmek automatikus benyújtására a Plex figyelőlistán keresztül.", + "components.RequestModal.requestseasons4k": "Kérés {seasonCount} {seasonCount, plural, one {Season} other {Seasons}} 4K-ban", + "components.TitleCard.tmdbid": "TMDB azonosító", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Episode} other {# Episodes}}", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatomérő", + "components.TvDetails.status4k": "4K {status}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Minden {jobScheduleMinutes, plural, one {minute} other {{jobScheduleMinutes} minutes}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Minden {jobScheduleHours, plural, one {hour} other {{jobScheduleHours} hours}}", + "components.PermissionEdit.viewrecent": "Nemrég hozzáadott megtekintése", + "components.TitleCard.tvdbid": "TheTVDB azonosító", + "components.MovieDetails.productioncountries": "Gyártás {countryCount, plural, one {Country} other {Countries}}", + "components.TvDetails.productioncountries": "Gyártás {countryCount, plural, one {Country} other {Countries}}", + "components.UserList.newplexsigninenabled": "Az Új Plex bejelentkezés engedélyezése beállítás jelenleg engedélyezve van. A könyvtár-hozzáféréssel rendelkező Plex-felhasználókat nem kell importálni a bejelentkezéshez.", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatomérő", + "components.RequestBlock.requestedby": "Kérte", + "components.RequestModal.requestmovies": "Kérés {count} {count, plural, one {Movie} other {Movies}}", + "components.RequestModal.requestmovies4k": "Kérés {count} {count, plural, one {Movie} other {Movies}} 4K-ban", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Alkalmazás regisztrálása a(z) {applicationTitle} alkalmazáshoz", + "components.RequestCard.tmdbid": "TMDB azonosító", + "components.RequestCard.tvdbid": "TheTVDB azonosító", + "components.RequestList.RequestItem.tmdbid": "TMDB azonosító", + "components.RequestList.RequestItem.tvdbid": "TheTVDB azonosító", + "components.RequestModal.requestcollection4ktitle": "Gyűjtemény kérés 4K-ban" } diff --git a/src/i18n/locale/it.json b/src/i18n/locale/it.json index f7ff46a7d..97ffe9133 100644 --- a/src/i18n/locale/it.json +++ b/src/i18n/locale/it.json @@ -101,7 +101,6 @@ "components.Setup.configureplex": "Configurare Plex", "components.Settings.validationPortRequired": "È necessario fornire un numero di porta valido", "components.Settings.validationHostnameRequired": "È necessario fornire un valido hostname o indirizzo IP", - "components.Settings.toastSettingsSuccess": "Impostazioni salvate correttamente!", "components.Settings.startscan": "Avvia la scansione", "components.Settings.ssl": "SSL", "components.Settings.radarrsettings": "Impostazioni Radarr", @@ -117,16 +116,12 @@ "components.Settings.manualscan": "Scansione manuale della libreria", "components.Settings.librariesRemaining": "Biblioteche rimanenti: {count}", "components.Settings.hostname": "Hostname o indirizzo IP", - "components.Settings.generalsettingsDescription": "Configura le impostazioni globali e predefinite per Overseerr.", - "components.Settings.generalsettings": "Impostazioni Generali", "components.Settings.deleteserverconfirm": "Sei sicuro/a di voler eliminare questo server?", "components.Settings.default4k": "4K predefinito", "components.Settings.default": "Predefinito", "components.Settings.currentlibrary": "Libreria corrente: {name}", "components.Settings.copied": "Chiave API copiata negli appunti.", "components.Settings.cancelscan": "Annulla l'analisi", - "components.Settings.applicationurl": "URL applicazione", - "components.Settings.apikey": "Chiave API", "components.Settings.addsonarr": "Aggiungi un server Sonarr", "components.Settings.addradarr": "Aggiungi un server Radarr", "components.Settings.activeProfile": "Profilo attivo", @@ -202,9 +197,6 @@ "components.Settings.plexlibraries": "Librerie Plex", "components.Settings.manualscanDescription": "Normalmente, questo verrà eseguito ogni 24 ore. Overseerr controllerà in modo più aggressivo i server Plex aggiunti di recente. Se è la prima volta che configuri Plex, si consiglia una scansione manuale completa della libreria!", "components.Settings.port": "Porta", - "components.Settings.toastSettingsFailure": "Qualcosa è andato storto nel salvare le impostazioni.", - "components.Settings.toastApiKeySuccess": "Nuova chiave API generata correttamente!", - "components.Settings.toastApiKeyFailure": "Qualcosa è andato storto generando una nuova chiave API.", "components.Setup.configureservices": "Configura i servizi", "components.Setup.finish": "Termina la configurazione", "components.Setup.continue": "Continua", @@ -311,7 +303,6 @@ "i18n.experimental": "Sperimentale", "i18n.edit": "Modifica", "components.StatusBadge.status4k": "4K {status}", - "components.Settings.hideAvailable": "Nascondi i media disponibili", "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Impostazioni di Webhook salvate con successo!", "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Impossibile salvare le impostazioni di Webhook.", "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL del webhook", @@ -360,10 +351,6 @@ "components.Settings.serverRemote": "remoto", "components.Settings.serverLocal": "locale", "components.Settings.notificationAgentSettingsDescription": "Configura e abilita gli agenti di notifica.", - "components.Settings.csrfProtectionTip": "Imposta l'accesso alle API esterne in sola lettura (richiede HTTPS)", - "components.Settings.csrfProtectionHoverTip": "NON abilitate questa opzione se non sapete cosa state facendo!", - "components.Settings.csrfProtection": "Abilita protezione CSRF", - "components.Settings.applicationTitle": "Titolo dell'applicazione", "components.Settings.SonarrModal.validationLanguageProfileRequired": "È necessario selezionare un profilo lingua", "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "L'URL di base non deve terminare con una barra obliqua", "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "L'URL di base deve avere una barra obliqua", @@ -448,10 +435,6 @@ "components.TvDetails.playonplex": "Riproduci su Plex", "components.TvDetails.play4konplex": "Riproduci in 4K su Plex", "components.Setup.setup": "Impostazione", - "components.Settings.validationApplicationUrlTrailingSlash": "L'URL non deve finire con una barra finale", - "components.Settings.validationApplicationUrl": "Devi fornire un URL valido", - "components.Settings.validationApplicationTitle": "È necessario fornire un titolo di applicazione", - "components.Settings.trustProxy": "Abilita il supporto proxy", "components.Settings.toastPlexRefreshSuccess": "Elenco dei server Plex recuperato con successo!", "components.Settings.toastPlexRefreshFailure": "Impossibile recuperare l'elenco dei server Plex.", "components.Settings.toastPlexRefresh": "Recupero dell'elenco dei server da Plex…", @@ -461,7 +444,6 @@ "components.Settings.serverpresetRefreshing": "Recupero di server…", "components.Settings.serverpresetManualMessage": "Configurazione manuale", "components.TvDetails.nextAirDate": "Prossima data di messa in onda", - "components.Settings.trustProxyTip": "Permette a Overseerr di registrare correttamente gli indirizzi IP dei client dietro un proxy", "components.Settings.settingUpPlexDescription": "Per impostare Plex, potete inserire i dati manualmente o selezionare un server recuperato da plex.tv. Premi il pulsante a destra del menu a tendina per recuperare la lista di server disponibili.", "components.Settings.Notifications.sendSilentlyTip": "Invia notifiche senza suono", "components.Settings.Notifications.sendSilently": "Invia silenziosamente", @@ -518,14 +500,10 @@ "components.UserProfile.UserSettings.UserGeneralSettings.region": "Regione da scoprire", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Lingua da scoprire", "components.Settings.webhook": "Webhook", - "components.Settings.region": "Regione da scoprire", - "components.Settings.originallanguage": "Lingua da scoprire", "components.Settings.email": "E-mail", "components.RegionSelector.regionDefault": "Tutte le regioni", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtra i contenuti per disponibilità regionale", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtra i contenuti per lingua originale", - "components.Settings.regionTip": "Filtra i contenuti per disponibilità regionale", - "components.Settings.originallanguageTip": "Filtra i contenuti per lingua originale", "components.Discover.upcomingtv": "Serie in uscita", "components.RegionSelector.regionServerDefault": "Predefinito ({region})", "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Non hai il permesso di modificare la password di questo utente.", @@ -588,7 +566,6 @@ "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Non è possibile modificare le proprie autorizzazioni.", "components.TvDetails.episodeRuntimeMinutes": "{runtime} minuti", "components.TvDetails.episodeRuntime": "Durata di un episodio", - "components.Settings.partialRequestsEnabled": "Consente richieste di serie parziali", "components.RequestModal.alreadyrequested": "Già richiesto", "components.Discover.TvGenreList.seriesgenres": "Generi serie", "components.Discover.MovieGenreList.moviegenres": "Generi film", @@ -606,9 +583,6 @@ "components.Settings.services": "Servizi", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notifiche", - "components.Settings.general": "Generali", - "components.Settings.cacheImagesTip": "Ottimizza e archivia tutte le immagini localmente (consuma una notevole quantità di spazio su disco)", - "components.Settings.cacheImages": "Abilita la memorizzazione cache delle immagini", "components.Settings.SettingsLogs.logs": "Registri", "components.Settings.SettingsUsers.users": "Utenti", "components.Settings.SettingsLogs.time": "Data e ora", @@ -813,7 +787,6 @@ "components.Settings.webAppUrlTip": "Indirizza opzionalmente gli utenti alla web app sul tuo server invece che alla web app \"ospitata\"", "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "La tua notifica webhook URL basata su utente o dispositivo", "components.Settings.webAppUrl": "URL Web App", - "components.Settings.locale": "Lingua Interfaccia", "components.Settings.SettingsUsers.newPlexLoginTip": "Permetti agli utenti di Plex di accedere senza essere prima importati", "components.Settings.SettingsUsers.newPlexLogin": "Abilita nuovo accesso con Plex", "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Per ricevere le notifiche web push, Overseerr deve essere servito su HTTPS.", diff --git a/src/i18n/locale/ja.json b/src/i18n/locale/ja.json index db85347be..66126419c 100644 --- a/src/i18n/locale/ja.json +++ b/src/i18n/locale/ja.json @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Radarr サーバーを追加", "components.Settings.address": "アドレス", "components.Settings.addsonarr": "Sonarr サーバーを追加", - "components.Settings.apikey": "API キー", - "components.Settings.applicationurl": "アプリケーション URL", "components.Settings.cancelscan": "スキャンをキャンセル", "components.Settings.copied": "API キーをクリップボードにコピーされた。", "components.Settings.currentlibrary": "現在のライブラリー:{name}", "components.Settings.default": "デフォルト", "components.Settings.default4k": "デフォルト 4K", "components.Settings.deleteserverconfirm": "このサーバーを削除しますか?", - "components.Settings.generalsettings": "一般設定", - "components.Settings.generalsettingsDescription": "Overseerr の構成に関する設定です。", "components.Settings.hostname": "ホスト名・IP アドレス", "components.Settings.librariesRemaining": "残りのライブラリー:{count}", "components.Settings.manualscan": "手動ライブラリースキャン", @@ -194,10 +190,6 @@ "components.TvDetails.network": "テレビ局", "components.TvDetails.anime": "アニメ", "components.Setup.tip": "ヒント", - "components.Settings.toastSettingsSuccess": "設定の変更は保存しました。", - "components.Settings.toastSettingsFailure": "設定保存中に問題が発生しました。", - "components.Settings.toastApiKeySuccess": "新しい API キーが生成されました。", - "components.Settings.toastApiKeyFailure": "新しい API キーの生成中に問題が発生しました。", "components.Settings.SonarrModal.testFirstRootFolders": "ルートフォルダーをロードするには先に接続をテストしてください", "components.Settings.SonarrModal.testFirstQualityProfiles": "画質プロファイルをロードするには先に接続をテストしてください", "components.Settings.SonarrModal.loadingrootfolders": "ルートフォルダー読込中…", @@ -286,7 +278,6 @@ "components.UserProfile.UserSettings.menuGeneralSettings": "一般", "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "一般設定", "components.UserProfile.UserSettings.UserGeneralSettings.general": "一般", - "components.Settings.general": "一般", "pages.internalservererror": "内部サーバーエラー", "pages.somethingwentwrong": "チケットが発生しました", "pages.serviceunavailable": "サービスが利用できません", @@ -497,7 +488,6 @@ "components.Settings.SonarrModal.loadinglanguageprofiles": "言語プロフィール読込中…", "components.Settings.SonarrModal.validationLanguageProfileRequired": "言語プロフィールを選択してください", "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "表示言語", - "components.Settings.locale": "表示言語", "components.StatusBadge.status": "{status}", "components.ManageSlideOver.downloadstatus": "ダウンロード", "components.ManageSlideOver.manageModalClearMedia": "データを消去", @@ -669,7 +659,6 @@ "components.Settings.Notifications.validationUrl": "有効な URL を入力してください", "components.Settings.SonarrModal.validationApplicationUrl": "有効な URL を入力してください", "components.Settings.urlBase": "URL のベース", - "components.Settings.validationApplicationUrl": "有効な URL を入力してください", "components.Settings.validationUrl": "有効な URL を入力してください", "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "有効な URL を入力してください" } diff --git a/src/i18n/locale/nb_NO.json b/src/i18n/locale/nb_NO.json index d9b78a448..28d36d5f2 100644 --- a/src/i18n/locale/nb_NO.json +++ b/src/i18n/locale/nb_NO.json @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Legg til Radarr-tjener", "components.Settings.address": "Adresse", "components.Settings.addsonarr": "Legg til Sonarr-tjener", - "components.Settings.apikey": "API-nøkkel", - "components.Settings.applicationurl": "Nettsadresse for Overseerr", "components.Settings.cancelscan": "Avbryt skanning", "components.Settings.copied": "API-nøkkel kopiert til utklippstavle.", "components.Settings.currentlibrary": "Nåværende bibliotek: {name}", "components.Settings.default": "Standard", "components.Settings.default4k": "Standard 4K", "components.Settings.deleteserverconfirm": "Er du sikker på at du vil slette denne tjeneren?", - "components.Settings.generalsettings": "Generelle innstilinger", - "components.Settings.generalsettingsDescription": "Konfigurer generelle innstillinger for Overseerr.", "components.Settings.hostname": "Vertsnavn eller IP-adresse", "components.Settings.librariesRemaining": "Bibliotek som gjenstår: {count}", "components.Settings.manualscan": "Manuell skanning av Biblioteket", @@ -368,24 +364,17 @@ "i18n.all": "Alle", "components.UserList.deleteconfirm": "Er du sikker på at du ønsker å slette denne brukeren? All forespørseldata for denne brukeren vil bli slettet.", "components.UserList.autogeneratepassword": "Generer passord automagisk", - "components.Settings.originallanguageTip": "Filtrer innhold basert på originalspråk", - "components.Settings.originallanguage": "Utforskelsesspråk", "components.Settings.SettingsLogs.showall": "Vis all logg", "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr mellomlagrer forespørsler til eksterne APIer for å optimalisere ytelsen samt unngå unødvendige API-kall.", "components.Settings.Notifications.allowselfsigned": "Godta selvsignerte sertifikater", "components.RequestModal.SearchByNameModal.notvdbiddescription": "Vi klarte ikke å koble denne serien automagisk. Vennligst velg riktig serie under.", "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Denne brukeren har tillatelse til å forespørre {limit} {type} hver {days}. dag.", "components.RequestModal.QuotaDisplay.allowedRequests": "Du har tillatelse til å forespørre {limit} {type} hver {days}. dag.", - "components.Settings.partialRequestsEnabled": "Godta ufullstendige serieforespørsler", "components.Settings.SettingsUsers.tvRequestLimitLabel": "Global begrensning av Serieforespørseler", "components.RequestModal.QuotaDisplay.requiredquotaUser": "Denne brukeren trenger minst {seasons} gjenværende {seasons, plural, one {sesongforespørsel} other {sesongforespørsler}} for å sende en forespørsel for denne serien.", "components.RequestModal.QuotaDisplay.requiredquota": "Du trenger minst {seasons} gjenværende {seasons, plural, one {sesongforespørsel} other {sesongforespørsler}} for å sende en forespørsel for denne serien.", "i18n.advanced": "Avansert", "i18n.experimental": "Eksperimentelt", - "components.Settings.hideAvailable": "Skjul tilgjengelige titler", - "components.Settings.trustProxy": "Aktiver Proxy-støtte", - "components.Settings.validationApplicationTitle": "Du må oppgi en applikasjonstittel", - "components.Settings.applicationTitle": "Applikasjonstittel", "i18n.movie": "Film", "components.UserProfile.movierequests": "Filmforespørsler", "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Begrensning av Filmforespørseler", @@ -455,11 +444,6 @@ "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kan se en oppsummering av denne brukerens forespørselbegrensninger på profilsiden deres.", "components.RequestModal.QuotaDisplay.quotaLink": "Du kan se en oppsummering av dine forespørselbegrensninger på profilsiden.", "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Ikke nok gjenværende sesongforespørsler", - "components.Settings.csrfProtectionTip": "Sett ekstern API-tilgang til skrivebeskyttet modus (krever HTTPS)", - "components.Settings.csrfProtectionHoverTip": "Ikke aktiver denne instillingen med mindre du vet hva du gjør!", - "components.Settings.csrfProtection": "Aktiver CSRF-beskyttelse", - "components.Settings.cacheImages": "Aktiver mellomlagring av bilder", - "components.Settings.region": "Utforskelsesregion", "components.UserList.owner": "Eier", "components.UserList.sortDisplayName": "Visningsnavn", "components.UserList.sortRequests": "Antall forespørsler", @@ -490,10 +474,8 @@ "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du må oppgi en gyldig nettadresse", "components.Settings.scanning": "Synkroniserer…", "components.Settings.scan": "Synkroniser bibliotek", - "components.Settings.regionTip": "Filtrer innhold basert på region", "components.Settings.plex": "Plex", "components.Settings.notifications": "Varsler", - "components.Settings.general": "Generelle innstillinger", "components.Settings.enablessl": "Aktiver SSL", "components.Settings.email": "E-post", "components.Settings.SonarrModal.validationNameRequired": "Du må oppgi et tjenernavn", @@ -633,7 +615,6 @@ "components.DownloadBlock.estimatedtime": "Estimert {time}", "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Tillatelsene ble lagret!", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passord laget!", - "components.Settings.toastSettingsSuccess": "Innstillingene ble lagret!", "i18n.save": "Lagre", "components.Settings.Notifications.NotificationsPushover.validationTypes": "Du må velge minst én varseltype", "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Du må velge minst én varseltype", @@ -740,7 +721,6 @@ "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Test-varsel ble sendt med Pushover!", "components.Settings.Notifications.encryptionTip": "I de fleste tilfeller bruker Implisitt TLS port 465 og STARTTLS bruker port 587", "components.Settings.RadarrModal.inCinemas": "På Kino", - "components.Settings.validationApplicationUrl": "Du må oppgi en gyldig nettadresse", "components.Settings.validationHostnameRequired": "Du må oppgi et gyldig vertsnavn eller IP-adresse", "components.Setup.tip": "Tips", "components.UserProfile.pastdays": "{type} (siste {days} dager)", @@ -778,7 +758,6 @@ "components.Settings.SettingsJobsCache.cachekeys": "Totalt antall nøkkler", "components.MovieDetails.productioncountries": "Produksjonsland", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Nettadressen kan ikke slutte med en skråstrek", - "components.Settings.validationApplicationUrlTrailingSlash": "Nettadressen kan ikke slutte med en skråstrek", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register en tjeneste til bruk sammen med {applicationTitle}", "components.Settings.serverRemote": "eksternt", "components.Settings.serverpreset": "Tjener", @@ -786,7 +765,6 @@ "components.Settings.serverpresetManualMessage": "Manuelt oppsett", "components.Settings.serverpresetRefreshing": "Henter tjenere…", "components.Settings.settingUpPlexDescription": "For å sette opp Plex, kan du enten fylle inn instillingene manuelt eller du kan velge en tjener hentet fra plex.tv. Trykk på knappen til høyre for å hente oversikten over tilgjenglige tjenere.", - "components.Settings.toastApiKeyFailure": "Noe gikk galt under generering av en ny API-nøkkel.", "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover mislykkes å sende test-varsel.", "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover sender test-varsel…", "components.IssueList.IssueItem.issuestatus": "Status", @@ -858,10 +836,8 @@ "components.Settings.SettingsUsers.newPlexLoginTip": "Tillat Plex brukere å logge inn uten å være importert på forhånd", "components.Settings.SonarrModal.validationApplicationUrl": "Du må oppgi en gyldig nettadresse", "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Base URL kan ikke slutte med en skråstrek", - "components.Settings.locale": "Visningsspråk", "components.Settings.mediaTypeMovie": "film", "components.Settings.mediaTypeSeries": "serier", - "components.Settings.toastApiKeySuccess": "Ny API-nøkkel er generert!", "components.Settings.toastPlexConnecting": "Forsøker å koble til Plex…", "components.Settings.toastPlexConnectingSuccess": "Forbindelse til Plex ble opprettet!", "components.Settings.toastPlexRefresh": "Henter listen over tjenere fra Plex…", @@ -950,7 +926,6 @@ "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du må oppgi en gyldig JSON payload", "components.Settings.Notifications.pgpPasswordTip": "BrukOpenPGP til å signere krypterte E-postmeldinger", "components.Settings.Notifications.toastDiscordTestFailed": "Discord mislykkes med å sende test-varsel.", - "components.Settings.toastSettingsFailure": "Noe gikk galt under lagring av innstillingene.", "components.Settings.webAppUrl": "Web-tjeneste nettadresse", "components.Settings.webpush": "Web Push", "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Offentlig PGP-nøkkel", @@ -978,13 +953,11 @@ "components.Settings.Notifications.toastEmailTestSuccess": "Test-varsel ble sendt med E-post!", "components.Settings.Notifications.toastTelegramTestFailed": "Telegram mislykkes med å sende test-varsel.", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Noe gikk galt under lagring av oppgaven.", - "components.Settings.cacheImagesTip": "Mellomlagrer og serverer optimaliserte bilder (Dette tar veldig mye diskplass)", "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Din konto har ikke noe passord på nåværende tidspunkt. Lag et passord under for å kunne logge inn med din E-postadresse som \"lokal-bruker\".", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Noe gikk galt under lagring av passordet. Var ditt nåværende passord skrevet korrekt?", "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON payload tilbakestilt!", "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Din 30-tegns bruker- eller gruppe-nøkkel", "components.Settings.SettingsJobsCache.cachevsize": "Verdistørrelse", - "components.Settings.trustProxyTip": "Tillatt Overseerr å registrere klienters IP addresser korrekt bak en proxy", "components.Settings.serviceSettingsDescription": "Konfigurer dine {serverType}tjener(e) nedenfor. Du kan koble til flere forskellige {serverType}tjenere men kun to av dem kan markeres som standard (en som ikke er 4K og en 4K). Administratorer kan endre hvilken tjener som brukes før godkjennelse av nye forespørsler.", "components.ManageSlideOver.manageModalClearMediaWarning": "* Dette vil slette all data for denne tittelen uten mulighet for å bli gjennopprettet, det inkluderer alle forespørsler, avvik osv. Hvis denne tittelen finnes i ditt Plex bibliotek vil medieinformasjon bli opprettet på nytt under neste skanning.", "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisasjonshode", @@ -1117,5 +1090,6 @@ "components.Discover.emptywatchlist": "Matriale som du legger til via Plex Watchlist vil dukke opp her.", "components.UserProfile.emptywatchlist": "Matriale som du legger til via Plex Watchlist vil dukke opp her.", "components.RequestModal.SearchByNameModal.nomatches": "Vi klarte ikke å koble denne serien med et søkbart treff.", - "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Nåværende frekvens" + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Nåværende frekvens", + "components.TvDetails.Season.noepisodes": "Episode-oversikten er ikke tilgjengelig." } diff --git a/src/i18n/locale/nl.json b/src/i18n/locale/nl.json index de695af03..f3705ae5d 100644 --- a/src/i18n/locale/nl.json +++ b/src/i18n/locale/nl.json @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Radarr-server toevoegen", "components.Settings.address": "Adres", "components.Settings.addsonarr": "Sonarr-server toevoegen", - "components.Settings.apikey": "API-sleutel", - "components.Settings.applicationurl": "Applicatie-URL", "components.Settings.cancelscan": "Scan annuleren", "components.Settings.copied": "API-sleutel gekopieerd naar klembord.", "components.Settings.currentlibrary": "Huidige bibliotheek: {name}", "components.Settings.default": "Standaard", "components.Settings.default4k": "Standaard 4K", "components.Settings.deleteserverconfirm": "Weet je zeker dat je deze server wilt verwijderen?", - "components.Settings.generalsettings": "Algemene instellingen", - "components.Settings.generalsettingsDescription": "Algemene en standaardinstellingen van Overseerr configureren.", "components.Settings.hostname": "Hostnaam of IP-adres", "components.Settings.librariesRemaining": "Resterende bibliotheken: {count}", "components.Settings.manualscan": "Handmatige bibliotheekscan", @@ -222,10 +218,6 @@ "components.TvDetails.network": "{networkCount, plural, one {Netwerk} other {Netwerken}}", "components.TvDetails.firstAirDate": "Datum eerste uitzending", "components.TvDetails.anime": "Anime", - "components.Settings.toastSettingsSuccess": "Instellingen succesvol opgeslagen!", - "components.Settings.toastSettingsFailure": "Er ging iets mis bij het opslaan van de instellingen.", - "components.Settings.toastApiKeySuccess": "Nieuwe API-sleutel succesvol gegenereerd!", - "components.Settings.toastApiKeyFailure": "Er ging iets mis bij het genereren van een nieuwe API-sleutel.", "components.Settings.SonarrModal.animerootfolder": "Hoofdmap anime", "components.Settings.SonarrModal.animequalityprofile": "Kwaliteitsprofiel anime", "components.Settings.SettingsAbout.timezone": "Tijdzone", @@ -331,7 +323,6 @@ "components.NotificationTypeSelector.mediadeclined": "Verzoek geweigerd", "components.RequestModal.autoapproval": "Automatische goedkeuring", "i18n.experimental": "Experimenteel", - "components.Settings.hideAvailable": "Beschikbare media verbergen", "components.RequestModal.requesterror": "Er ging iets mis bij het aanvragen.", "components.RequestModal.SearchByNameModal.notvdbiddescription": "We kunnen deze serie niet automatisch matchen. Selecteer hieronder de juiste match.", "components.Login.signinwithplex": "Plex-account gebruiken", @@ -358,8 +349,6 @@ "components.Settings.serverpreset": "Server", "components.Settings.serverRemote": "extern", "components.Settings.serverLocal": "lokaal", - "components.Settings.csrfProtectionTip": "Externe API-toegang instellen op alleen-lezen (vereist HTTPS)", - "components.Settings.csrfProtection": "CSRF-bescherming inschakelen", "components.PermissionEdit.usersDescription": "Toestemming geven om gebruikers te beheren. Gebruikers met deze toestemming kunnen gebruikers met beheerdersrechten niet wijzigen of die rechten verlenen.", "components.PermissionEdit.users": "Gebruikers beheren", "components.PermissionEdit.requestDescription": "Toestemming geven om niet-4K-media aan te vragen.", @@ -392,14 +381,11 @@ "components.MovieDetails.play4konplex": "Afspelen in 4K op Plex", "components.MovieDetails.mark4kavailable": "Als beschikbaar in 4K markeren", "components.MovieDetails.markavailable": "Als beschikbaar markeren", - "components.Settings.trustProxyTip": "Overseerr toestaan om IP-adressen van clients correct te registreren achter een proxy", - "components.Settings.trustProxy": "Proxy-ondersteuning inschakelen", "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} cache leeggemaakt.", "components.Settings.SettingsJobsCache.cache": "Cache", "components.Settings.SettingsJobsCache.cachemisses": "Ontbreekt", "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr voert bepaalde onderhoudstaken uit als regelmatig ingeplande taken, maar ze kunnen hieronder ook handmatig worden gestart. Het handmatig uitvoeren van een taak verandert de planning niet.", "i18n.advanced": "Geavanceerd", - "components.Settings.csrfProtectionHoverTip": "Deze instelling NIET inschakelen tenzij je begrijpt wat je doet!", "components.Settings.SettingsJobsCache.runnow": "Nu uitvoeren", "components.Settings.SettingsJobsCache.process": "Proces", "components.Settings.SettingsJobsCache.nextexecution": "Volgende uitvoering", @@ -419,15 +405,11 @@ "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr cachet verzoeken aan externe API-eindpunten om prestatie te optimaliseren en onnodige API-aanroepen te vermijden.", "components.Settings.SettingsAbout.preferredmethod": "Voorkeur", "components.UserList.users": "Gebruikers", - "components.Settings.applicationTitle": "Toepassingstitel", "components.Search.search": "Zoeken", "components.Setup.setup": "Configuratie", "components.RequestModal.AdvancedRequester.requestas": "Aanvragen als", "components.Discover.discover": "Ontdekken", - "components.Settings.validationApplicationTitle": "Je moet een toepassingstitel opgeven", "components.AppDataWarning.dockerVolumeMissingDescription": "De volumekoppeling {appDataPath} was niet correct geconfigureerd. Alle gegevens zullen worden gewist wanneer de container wordt gestopt of opnieuw wordt gestart.", - "components.Settings.validationApplicationUrlTrailingSlash": "URL mag niet eindigen op een schuine streep", - "components.Settings.validationApplicationUrl": "Je moet een geldige URL opgeven", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "URL mag niet eindigen op een schuine streep", "components.Settings.SonarrModal.validationApplicationUrl": "Je moet een geldige URL opgeven", "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "URL mag niet eindigen op een schuine streep", @@ -520,10 +502,6 @@ "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Inhoud filteren op oorspronkelijke taal", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Taal van Ontdekken", "components.Settings.webhook": "Webhook", - "components.Settings.regionTip": "Inhoud filteren op regionale beschikbaarheid", - "components.Settings.region": "Regio van Ontdekken", - "components.Settings.originallanguageTip": "Inhoud filteren op oorspronkelijke taal", - "components.Settings.originallanguage": "Taal van Ontdekken", "components.Settings.email": "E-mail", "components.RegionSelector.regionDefault": "Alle regio’s", "components.Discover.upcomingtv": "Verwachte series", @@ -589,7 +567,6 @@ "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", "components.Discover.TvGenreSlider.tvgenres": "Seriegenres", "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", - "components.Settings.partialRequestsEnabled": "Gedeeltelijke serieverzoeken toestaan", "components.RequestModal.alreadyrequested": "Al aangevraagd", "components.Discover.TvGenreList.seriesgenres": "Seriegenres", "components.Discover.MovieGenreList.moviegenres": "Filmgenres", @@ -619,13 +596,10 @@ "components.Settings.services": "Diensten", "components.Settings.plex": "Plex", "components.Settings.notifications": "Meldingen", - "components.Settings.general": "Algemeen", "components.Settings.SettingsUsers.users": "Gebruikers", "components.Settings.SettingsJobsCache.jobsandcache": "Taken en cache", "components.Settings.SettingsAbout.about": "Over", "components.ResetPassword.passwordreset": "Wachtwoord opnieuw instellen", - "components.Settings.cacheImagesTip": "Geoptimaliseerde afbeeldingen cachen en hosten (vereist veel schijfruimte)", - "components.Settings.cacheImages": "Afbeeldingscaching inschakelen", "components.Settings.SettingsLogs.logDetails": "Loggegevens", "components.Settings.SettingsLogs.extraData": "Aanvullende gegevens", "components.Settings.SettingsLogs.copyToClipboard": "Naar klembord kopiëren", @@ -797,7 +771,6 @@ "components.PermissionEdit.requestTv": "Series aanvragen", "components.PermissionEdit.requestMovies": "Films aanvragen", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standaard ({language})", - "components.Settings.locale": "Weergavetaal", "components.DownloadBlock.estimatedtime": "Geschat {time}", "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Maak een inkomende webhookintegratie aan", "components.Settings.Notifications.botApiTip": "Maak een bot om te gebruiken met Overseerr", @@ -1117,5 +1090,15 @@ "components.RequestBlock.lastmodifiedby": "Laatst gewijzigd door", "components.RequestBlock.requestdate": "Aanvraagdatum", "components.RequestBlock.requestedby": "Aangevraagd door", - "components.RequestCard.approverequest": "Verzoek goedkeuren" + "components.RequestCard.approverequest": "Verzoek goedkeuren", + "components.TvDetails.Season.noepisodes": "Afleveringenlijst niet beschikbaar.", + "components.Settings.SettingsJobsCache.imagecache": "Afbeeldingcache", + "components.Settings.SettingsJobsCache.imagecachecount": "Afbeeldingen in cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Totale cachegrootte", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Afbeeldingcache legen", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Wanneer ingeschakeld in de instellingen, zal Overseerr afbeeldingen proxyen en cachen van vooraf geconfigureerde externe bronnen. Gecachete afbeeldingen worden opgeslagen in je configuratiemap. Je kan de bestanden vinden in {appDataPath}/cache/images.", + "components.DownloadBlock.formattedTitle": "{title}: seizoen {seasonNumber} aflevering {episodeNumber}", + "components.RequestCard.unknowntitle": "Onbekende titel", + "components.RequestList.RequestItem.unknowntitle": "Onbekende titel", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}" } diff --git a/src/i18n/locale/pl.json b/src/i18n/locale/pl.json index 1488ce330..d41bcdd8b 100644 --- a/src/i18n/locale/pl.json +++ b/src/i18n/locale/pl.json @@ -410,7 +410,7 @@ "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} na {quotaDays} {days}", "components.QuotaSelector.movies": "{count, plural, one {film} other {filmy}}", "components.RequestButton.declinerequests": "Odrzuć {requestCount, plural, one {prośbę} other {{requestCount} prośby}}", - "components.RequestCard.mediaerror": "Tytuł skojarzony z tą prośbą nie jest już dostępny.", + "components.RequestCard.mediaerror": "Nie znaleziono {mediaType}", "components.RequestModal.QuotaDisplay.quotaLinkUser": "Możesz wyświetlić podsumowanie limitów próśb tego użytkownika na jego stronie profilu.", "components.Settings.Notifications.validationSmtpPortRequired": "Musisz podać prawidłowy numer portu", "components.Settings.RadarrModal.create4kradarr": "Dodaj nowy serwer 4K Radarr", @@ -436,7 +436,7 @@ "components.PermissionEdit.requestTv": "Poproś o serial", "components.RequestCard.seasons": "{seasonCount, plural, one {Sezon} other {Sezony}}", "components.RequestList.RequestItem.failedretry": "Coś poszło nie tak podczas ponawiania prośby.", - "components.RequestList.RequestItem.mediaerror": "Tytuł powiązany z tą prośbą nie jest już dostępny.", + "components.RequestList.RequestItem.mediaerror": "Nie znaleziono {mediaType}", "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {sezon} other {sezony}}", "components.RequestList.requests": "Prośby", "components.RequestModal.AdvancedRequester.animenote": "* Ta seria to anime.", @@ -449,7 +449,7 @@ "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Brak wystarczającej liczby próśb o sezon", "components.RequestModal.QuotaDisplay.requiredquotaUser": "Aby przesłać prośbę o ten serial, ten użytkownik musi mieć co najmniej {seasons} {seasons, plural, one {prośbę} other {prośby}}.", "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {sezon} other {sezony}}", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nie mogliśmy automatycznie spełnić Twojej prośby. Wybierz odpowiednie dopasowanie z poniższej listy.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nie udało nam się automatycznie dopasować tej serii. Wybierz odpowiednie dopasowanie z poniższej listy.", "components.RequestModal.alreadyrequested": "Już poproszono", "components.RequestModal.autoapproval": "Automatyczne zatwierdzenie", "components.RequestModal.edit": "Edytuj prośbę", @@ -515,7 +515,7 @@ "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Bazowy URL nie może być zakończony ukośnikiem", "components.Settings.RadarrModal.validationHostnameRequired": "Musisz podać prawidłową nazwę hosta lub adres IP", "components.Settings.SettingsJobsCache.editJobSchedule": "Zmodyfikuj zadanie", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Częstotliwość", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Nowa częstotliwość", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Co{jobScheduleHours, plural, one {godzinę} other {{jobScheduleHours} godzin}}", "components.Settings.SettingsJobsCache.flushcache": "Opróżnij pamięć podręczną", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Co {jobScheduleMinutes, plural, one {minutę} other {{jobScheduleMinutes} minut}}", @@ -624,24 +624,15 @@ "components.Settings.SonarrModal.validationNameRequired": "Musisz podać nazwę serwera", "components.Settings.SonarrModal.validationRootFolderRequired": "Musisz wybrać folder główny", "components.Settings.activeProfile": "Aktywny profil", - "components.Settings.applicationTitle": "Tytuł aplikacji", - "components.Settings.applicationurl": "Adres URL aplikacji", - "components.Settings.cacheImages": "Włącz buforowanie obrazów", - "components.Settings.csrfProtection": "Włącz ochronę CSRF", "components.Settings.copied": "Skopiowano klucz API do schowka.", - "components.Settings.csrfProtectionHoverTip": "NIE włączaj tego ustawienia, chyba że rozumiesz, co robisz!", "components.Settings.default": "Domyślny", "components.Settings.default4k": "Domyślne 4K", "components.Settings.deleteserverconfirm": "Czy na pewno chcesz usunąć ten serwer?", "components.Settings.email": "E-mail", "components.Settings.enablessl": "Użyj SSL", - "components.Settings.generalsettingsDescription": "Skonfiguruj globalne i domyślne ustawienia dla Overseerr.", - "components.Settings.hideAvailable": "Ukryj dostępne multimedia", - "components.Settings.generalsettings": "Ustawienia ogólne", "components.Settings.librariesRemaining": "Pozostałe biblioteki: {count}", "components.Settings.hostname": "Nazwa hosta lub adres IP", "components.Settings.is4k": "4K", - "components.Settings.locale": "Język wyświetlania", "components.Settings.manualscan": "Ręczne skanowanie biblioteki", "components.Settings.manualscanDescription": "Zwykle będzie to uruchamiane tylko raz na 24 godziny. Overseerr sprawdzi ostatnio dodane serwery Plex bardziej agresywnie. Jeśli konfigurujesz Plex po raz pierwszy, zalecane jest jednorazowe pełne ręczne skanowanie biblioteki!", "components.Settings.mediaTypeMovie": "film", @@ -656,14 +647,10 @@ "components.Settings.notifications": "Powiadomienia", "components.Settings.notificationsettings": "Ustawienia powiadomień", "components.Settings.notrunning": "Nie działa", - "components.Settings.originallanguage": "Odkryj język", - "components.Settings.originallanguageTip": "Filtruj zawartość według języka oryginału", "components.Settings.plexlibraries": "Biblioteki Plex", "components.Settings.plexlibrariesDescription": "Biblioteki, które Overseerr skanuje w poszukiwaniu tytułów. Skonfiguruj i zapisz ustawienia połączenia Plex, a następnie kliknij przycisk poniżej, jeśli na liście nie ma żadnych bibliotek.", "components.Settings.plexsettings": "Ustawienia Plex", "components.Settings.radarrsettings": "Ustawienia Radarr", - "components.Settings.region": "Odkryj Region", - "components.Settings.regionTip": "Filtruj zawartość według dostępności regionalnej", "components.Settings.scanning": "Synchronizacja…", "components.Settings.serverLocal": "lokalny", "components.Settings.serverRemote": "zdalny", @@ -675,9 +662,7 @@ "components.Settings.services": "Usługi", "components.Settings.settingUpPlexDescription": "Aby skonfigurować aplikację Plex, możesz wprowadzić szczegóły ręcznie lub wybrać serwer pobrany z witryny plex.tv. Naciśnij przycisk znajdujący się po prawej stronie listy rozwijanej, aby wyświetlić listę dostępnych serwerów.", "components.Settings.toastPlexRefresh": "Pobieranie listy serwerów z Plex…", - "components.Settings.toastSettingsFailure": "Coś poszło nie tak podczas zapisywania ustawień.", "components.Settings.validationHostnameRequired": "Musisz podać prawidłową nazwę hosta lub adres IP", - "components.Settings.validationApplicationUrlTrailingSlash": "Adres URL nie może kończyć się ukośnikiem", "components.Settings.webAppUrl": " Adres URL aplikacji internetowej", "components.Setup.finishing": "Kończenie…", "components.Setup.signinMessage": "Zacznij logując się na swoje konto Plex", @@ -749,11 +734,8 @@ "components.Settings.plexsettingsDescription": "Skonfiguruj ustawienia serwera Plex. Overseerr skanuje biblioteki Plex, aby określić dostępność treści.", "components.Settings.port": "Port", "components.Settings.scan": "Synchronizuj biblioteki", - "components.Settings.toastApiKeySuccess": "Nowy klucz API został pomyślnie wygenerowany!", "components.Settings.toastPlexConnecting": "Próba połączenia z Plex…", "components.Settings.toastPlexConnectingFailure": "Nie udało się połączyć z Plex.", - "components.Settings.validationApplicationTitle": "Należy podać tytuł aplikacji", - "components.Settings.validationApplicationUrl": "Musisz podać poprawny adres URL", "components.Settings.validationPortRequired": "Musisz podać prawidłowy numer portu", "components.Settings.webhook": "Webhooki", "components.Setup.configureplex": "Skonfiguruj Plex", @@ -794,8 +776,6 @@ "components.Settings.SonarrModal.enableSearch": "Włącz automatyczne wyszukiwanie", "components.Settings.menuLogs": "Logi", "components.Settings.SonarrModal.externalUrl": "Zewnętrzny adres URL", - "components.Settings.apikey": "Klucz API", - "components.Settings.general": "Ogólne", "components.Settings.menuNotifications": "Powiadomienia", "components.Settings.plex": "Plex", "components.UserList.users": "Użytkownicy", @@ -902,7 +882,6 @@ "components.Settings.SonarrModal.animerootfolder": "Folder główny anime", "components.Settings.SonarrModal.selectQualityProfile": "Wybierz profil jakości", "components.Settings.SonarrModal.selecttags": "Wybierz tagi", - "components.Settings.csrfProtectionTip": "Ustaw zewnętrzny dostęp api na tylko do odczytu (wymaga HTTPS)", "components.Settings.toastPlexRefreshFailure": "Nie udało się pobrać listy serwerów Plex.", "components.Settings.SonarrModal.apiKey": "Klucz API", "components.Settings.cancelscan": "Anuluj skanowanie", @@ -915,21 +894,15 @@ "components.Settings.addradarr": "Dodaj serwer Radarr", "components.Settings.SonarrModal.servername": "Nazwa serwera", "components.Settings.SonarrModal.syncEnabled": "Włącz skanowanie", - "components.Settings.cacheImagesTip": "Optymalizacja i przechowywanie wszystkich obrazów lokalnie (zużywa znaczną ilość miejsca na dysku)", "components.Settings.menuPlexSettings": "Plex", "components.Settings.menuUsers": "Użytkownicy", "components.Settings.currentlibrary": "Bieżąca biblioteka: {name}", "components.Settings.menuServices": "Usługi", - "components.Settings.partialRequestsEnabled": "Zezwalaj na prośby o część serialu", "components.Settings.sonarrsettings": "Ustawienia Sonarr", "components.Settings.ssl": "Protokół SSL", - "components.Settings.trustProxyTip": "Pozwól Overseerr poprawnie rejestrować adresy IP klientów za serwerem proxy", "components.Settings.toastPlexConnectingSuccess": "Połączenie Plex nawiązane pomyślnie!", - "components.Settings.toastSettingsSuccess": "Ustawienia zostały zapisane pomyślnie!", "components.Settings.serviceSettingsDescription": "Skonfiguruj poniżej swój serwer(y) {serverType}. Możesz podłączyć wiele serwerów {serverType}, ale tylko dwa z nich mogą być oznaczone jako domyślne (jeden nie-4K i jeden 4K). Administratorzy mogą zmienić serwer używany do przetwarzania nowych żądań przed zatwierdzeniem.", - "components.Settings.toastApiKeyFailure": "Coś poszło nie tak podczas generowania nowego klucza API.", "components.Settings.toastPlexRefreshSuccess": "Lista serwerów Plex została pobrana pomyślnie!", - "components.Settings.trustProxy": "Włącz obsługę proxy", "components.Settings.startscan": "Rozpocznij skanowanie", "components.Setup.finish": "Zakończ konfigurację", "components.Setup.scanbackground": "Skanowanie będzie działać w tle. W międzyczasie możesz kontynuować proces konfiguracji.", @@ -1060,5 +1033,72 @@ "components.Layout.UserDropdown.requests": "Prośby", "components.MovieDetails.rtaudiencescore": "Ocena Rotten Tomatoes", "components.MovieDetails.rtcriticsscore": "Tomatometer Rotten Tomatoes", - "components.MovieDetails.tmdbuserscore": "Ocena użytkowników TMDB" + "components.MovieDetails.tmdbuserscore": "Ocena użytkowników TMDB", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Bieżąca częstotliwość", + "components.TvDetails.seasonnumber": "Sezon {seasonNumber}", + "components.TvDetails.seasonstitle": "Sezony", + "components.Settings.SettingsJobsCache.imagecache": "Pamięć podręczna obrazów", + "components.PermissionEdit.viewrecent": "Wyświetl ostatnio dodane", + "components.PermissionEdit.viewrecentDescription": "Przyznaj uprawnienia do przeglądania listy ostatnio dodanych multimediów.", + "components.TitleCard.cleardata": "Wyczyść dane", + "components.RequestList.RequestItem.tmdbid": "Identyfikator TMDB", + "components.RequestList.RequestItem.tvdbid": "Identyfikator TVDB", + "components.TitleCard.tmdbid": "Identyfikator TMDB", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Synchronizacja listy obserwowanych Plex", + "components.TitleCard.mediaerror": "Nie znaleziono {mediaType}", + "components.TitleCard.tvdbid": "Identyfikator TVDB", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatyczne zamawianie filmów z listy obserwowanych Plex", + "components.PermissionEdit.autorequestSeriesDescription": "Udziel zgody na automatyczne przesyłanie próśb dotyczących multimediów innych niż 4K za pośrednictwem listy obserwowanych Plex.", + "components.PermissionEdit.viewwatchlists": "Wyświetlanie list obserwacyjnych Plex", + "components.PermissionEdit.viewwatchlistsDescription": "Przyznaj uprawnienia do przeglądania list obserwowanych Plex innych użytkowników.", + "components.RequestCard.tmdbid": "Identyfikator TMDB", + "components.RequestCard.tvdbid": "Identyfikator TVDB", + "components.Settings.SettingsLogs.viewdetails": "Zobacz szczegóły", + "components.Settings.restartrequiredTooltip": "Overseerr musi zostać ponownie uruchomiony, aby zmiany tego ustawienia zaczęły obowiązywać", + "components.TvDetails.reportissue": "Zgłoś problem", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Automatyczna prośba o serial", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatyczne zamawianie filmów z listy obserwowanych Plex", + "components.UserProfile.plexwatchlist": "Lista obserwowanych Plex", + "components.RequestCard.cancelrequest": "Anuluj prośbę", + "components.RequestCard.declinerequest": "Odrzuć prośbę", + "components.RequestCard.approverequest": "Zatwierdź prośbę", + "components.DownloadBlock.formattedTitle": "{title}: Sezon {seasonNumber} Odcinek {episodeNumber}", + "components.RequestBlock.approve": "Zatwierdź prośbę", + "components.RequestBlock.decline": "Odrzuć prośbę", + "components.RequestBlock.delete": "Usuń prośbę", + "components.RequestBlock.edit": "Edytuj prośbę", + "components.RequestBlock.lastmodifiedby": "Ostatnio zmodyfikowane przez", + "components.RequestBlock.requestdate": "Data złożenia prośby", + "components.RequestBlock.requestedby": "Prośba zgłoszona przez", + "components.RequestCard.editrequest": "Edytuj prośbę", + "components.RequestModal.requestcollection4ktitle": "Poproś o kolekcję w 4K", + "components.RequestModal.requestcollectiontitle": "Poproś o kolekcję", + "components.RequestModal.requestmovie4ktitle": "Poproś o film w 4K", + "components.RequestModal.requestmovietitle": "Poproś o film", + "components.RequestModal.requestseries4ktitle": "Poproś o serial w 4K", + "components.RequestModal.requestseriestitle": "Poproś o serial", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Czyszczenie pamięci podręcznej obrazów", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Po włączeniu w ustawieniach Overseerr będzie pośredniczyć i buforować obrazy ze wstępnie skonfigurowanych źródeł zewnętrznych. Obrazy z pamięci podręcznej są zapisywane w folderze konfiguracji. Możesz znaleźć pliki w {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Obrazy zapisane w pamięci podręcznej", + "components.Settings.SettingsJobsCache.imagecachesize": "Całkowity rozmiar pamięci podręcznej", + "components.Settings.advancedTooltip": "Nieprawidłowe skonfigurowanie tego ustawienia może spowodować nieprawidłowe działanie", + "components.Settings.experimentalTooltip": "Włączenie tego ustawienia może spowodować nieoczekiwane zachowanie aplikacji", + "components.TvDetails.rtaudiencescore": "Ocena publiczności Rotten Tomatoes", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometr", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.tmdbuserscore": "Ocena użytkowników TMDB", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Filmy z próśb automatycznych", + "components.UserProfile.emptywatchlist": "W tym miejscu pojawią się multimedia dodane do listy obserwowanych Plex.", + "components.RequestCard.unknowntitle": "Nieznany tytuł", + "components.RequestList.RequestItem.unknowntitle": "Nieznany tytuł", + "components.StatusBadge.playonplex": "Odtwórz na Plex", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", + "components.TvDetails.Season.noepisodes": "Lista odcinków jest niedostępna.", + "components.TvDetails.Season.somethingwentwrong": "Coś poszło nie tak podczas pobierania danych o sezonie.", + "components.TvDetails.manageseries": "Zarządzaj serialem", + "components.Discover.emptywatchlist": "W tym miejscu pojawią się multimedia dodane do listy obserwowanych Plex.", + "components.RequestModal.SearchByNameModal.nomatches": "Nie udało nam się znaleźć dopasowania do tej serii.", + "components.StatusBadge.managemedia": "Zarządzaj {mediaType}", + "components.StatusBadge.openinarr": "Otwórz w {arr}", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Odcinek} other {# Odcinki}}" } diff --git a/src/i18n/locale/pt_BR.json b/src/i18n/locale/pt_BR.json index 58aaf2086..a46c10ed7 100644 --- a/src/i18n/locale/pt_BR.json +++ b/src/i18n/locale/pt_BR.json @@ -45,8 +45,6 @@ "components.Settings.manualscan": "Varredura Manual da Biblioteca", "components.Settings.librariesRemaining": "Bibliotecas Restantes: {count}", "components.Settings.hostname": "Nome ou IP do Servidor", - "components.Settings.generalsettingsDescription": "Defina configurações globais e padrões para o Overseerr.", - "components.Settings.generalsettings": "Configurações Gerais", "components.Settings.deleteserverconfirm": "Tem certeza que deseja apagar esse servidor?", "i18n.deleting": "Apagando…", "i18n.delete": "Apagar", @@ -55,8 +53,6 @@ "components.Settings.currentlibrary": "Biblioteca Atual: {name}", "components.Settings.copied": "Chave de API copiada.", "components.Settings.cancelscan": "Cancelar Escaneamento", - "components.Settings.applicationurl": "URL da Aplicação", - "components.Settings.apikey": "Chave de API", "components.Settings.addsonarr": "Adicionar Servidor Sonarr", "components.Settings.address": "Endereço", "components.Settings.addradarr": "Adicionar Servidor Radarr", @@ -156,10 +152,6 @@ "components.Setup.configureplex": "Configurar Plex", "components.Settings.validationPortRequired": "Você deve prover uma porta válida", "components.Settings.validationHostnameRequired": "Você deve prover o Nome ou IP do Servidor", - "components.Settings.toastSettingsSuccess": "Configurações salvas com sucesso!", - "components.Settings.toastSettingsFailure": "Algo de errado ao salvar configurações.", - "components.Settings.toastApiKeySuccess": "Nova chave de API gerada com sucesso!", - "components.Settings.toastApiKeyFailure": "Algo deu errado ao gerar a nova chave de API.", "components.Settings.startscan": "Iniciar Varredura", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Configurações do Sonarr", @@ -331,7 +323,6 @@ "components.RequestBlock.profilechanged": "Perfil de Qualidade", "i18n.edit": "Editar", "i18n.experimental": "Experimental", - "components.Settings.hideAvailable": "Ocultar Títulos Disponíveis", "components.RequestModal.requesterror": "Algo deu errado ao solicitar mídia.", "components.RequestModal.SearchByNameModal.notvdbiddescription": "Não conseguimos correlacionar sua solicitação automaticamente. Por favor selecione a correspondência correta na lista abaixo.", "components.Login.signin": "Entrar", @@ -351,8 +342,6 @@ "components.Settings.serverRemote": "remoto", "components.Settings.serverLocal": "local", "components.Settings.notificationAgentSettingsDescription": "Configure e habilite agentes de notificação.", - "components.Settings.csrfProtectionTip": "Define acesso externo à API como apenas leitura (Requer HTTPS)", - "components.Settings.csrfProtection": "Habilitar Proteção Contra CSRF", "components.PlexLoginButton.signinwithplex": "Entrar", "components.Login.signingin": "Autenticando…", "components.PlexLoginButton.signingin": "Autenticando…", @@ -392,8 +381,6 @@ "components.MovieDetails.play4konplex": "Assistir em 4K no Plex", "components.MovieDetails.markavailable": "Marcar como Disponível", "components.MovieDetails.mark4kavailable": "Marcar como Disponível em 4K", - "components.Settings.trustProxy": "Habilitar Suporte a Proxy", - "components.Settings.trustProxyTip": "Permite que Overseerr exiba o IP correto do cliente atrás de um proxy", "components.Settings.SettingsJobsCache.cacheflushed": "Cache {cachename} limpo.", "components.Settings.SettingsJobsCache.cache": "Cache", "components.Settings.SettingsJobsCache.cachevsize": "Tamanho do Valor", @@ -403,7 +390,6 @@ "components.Settings.SettingsJobsCache.cachehits": "Encontrado", "components.Settings.SettingsJobsCache.cachename": "Nome do Cache", "i18n.advanced": "Avançado", - "components.Settings.csrfProtectionHoverTip": "NÃO habilite essa opção se você não sabe o que está fazendo!", "components.Settings.SettingsJobsCache.runnow": "Executar Agora", "components.Settings.SettingsJobsCache.process": "Processo", "components.Settings.SettingsJobsCache.nextexecution": "Próxima Execução", @@ -418,16 +404,12 @@ "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarefa", "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr armazena temporariamente as solicitações à APIs externas para otimizar performance e evitar novas chamadas desnecessárias.", "components.Settings.SettingsAbout.preferredmethod": "Preferido", - "components.Settings.applicationTitle": "Título da Aplicação", "components.UserList.users": "Usuários", "components.Setup.setup": "Configurar", - "components.Settings.validationApplicationTitle": "Você deve prover um título para a aplicação", "components.Search.search": "Pesquisar", "components.RequestModal.AdvancedRequester.requestas": "Solicitar Como", "components.Discover.discover": "Explorar", "components.AppDataWarning.dockerVolumeMissingDescription": "O ponto de montagem{appDataPath} não foi corretamente configurado. Todos dados serão perdidos quando o container parar ou reiniciar.", - "components.Settings.validationApplicationUrlTrailingSlash": "A URL não pode terminar com uma barra", - "components.Settings.validationApplicationUrl": "Você deve prover uma URL válida", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "A URL não pode terminar com uma barra", "components.Settings.SonarrModal.validationApplicationUrl": "Você deve prover uma URL válida", "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "A URL não pode terminar com uma barra", @@ -518,15 +500,11 @@ "components.UserProfile.UserSettings.UserGeneralSettings.region": "Região de Exploração", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de Exploração", "components.Settings.webhook": "Webhook", - "components.Settings.region": "Região de Exploração", - "components.Settings.originallanguage": "Idioma de Exploração", "components.Settings.email": "E-mail", "components.RegionSelector.regionDefault": "Todas Regiões", "components.Discover.upcomingtv": "Séries em Breve", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtra conteúdo por disponibilidade na região", - "components.Settings.regionTip": "Filtra conteúdo por disponibilidade na região", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtra conteúdo pela língua original", - "components.Settings.originallanguageTip": "Filtra conteúdo pela língua original", "components.RegionSelector.regionServerDefault": "Padrão ({region})", "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Você não tem permissão para modificar a senha desse usuário.", "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuário", @@ -591,13 +569,11 @@ "components.Discover.TvGenreList.seriesgenres": "Gêneros de Séries", "components.Discover.MovieGenreSlider.moviegenres": "Gêneros de Filmes", "components.Discover.MovieGenreList.moviegenres": "Gêneros de Filmes", - "components.Settings.partialRequestsEnabled": "Permitir Solicitações Parciais de Séries", "components.RequestModal.alreadyrequested": "Já Solicitado", "pages.errormessagewithcode": "{statusCode} - {error}", "components.ResetPassword.passwordreset": "Redefinir Senha", "components.Settings.SettingsLogs.logDetails": "Detalhes do Log", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo deu errado ao salvar sua senha. Sua senha foi digitada corretamente?", - "components.Settings.cacheImagesTip": "Armazena em cache e distribui imagens otimizadas (requer um espaço significante no disco)", "pages.somethingwentwrong": "Algo deu errado", "pages.serviceunavailable": "Serviço Indisponível", "pages.pagenotfound": "Página Não Encontrada", @@ -609,9 +585,7 @@ "components.Settings.services": "Serviços", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notificações", - "components.Settings.general": "Geral", "components.Settings.enablessl": "Usar SSL", - "components.Settings.cacheImages": "Habilitar Cache de Imagens", "components.Settings.SettingsUsers.users": "Usuários", "components.Settings.SettingsLogs.time": "Data e Hora", "components.Settings.SettingsLogs.showall": "Exibir Todas Mensagens", @@ -753,7 +727,6 @@ "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Padrão ({language})", "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Idioma da Interface", "components.Settings.webpush": "Web Push", - "components.Settings.locale": "Idioma da Interface", "components.Settings.is4k": "4K", "components.Settings.SettingsUsers.newPlexLoginTip": "Permite que novos usuários do Plex entrem sem terem que ser importados", "components.Settings.SettingsUsers.newPlexLogin": "Habilitar Novo Método de Início de Sessão do Plex", diff --git a/src/i18n/locale/pt_PT.json b/src/i18n/locale/pt_PT.json index ba83cdd8b..c59f780c3 100644 --- a/src/i18n/locale/pt_PT.json +++ b/src/i18n/locale/pt_PT.json @@ -92,7 +92,7 @@ "components.RequestModal.AdvancedRequester.animenote": "* Esta série é um anime.", "components.RequestModal.AdvancedRequester.advancedoptions": "Avançado", "components.RequestList.sortModified": "Última Alteração", - "components.RequestList.sortAdded": "Data do Pedido", + "components.RequestList.sortAdded": "Mais Recente", "components.RequestList.showallrequests": "Mostrar Todos os Pedidos", "components.RequestList.requests": "Pedidos", "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", @@ -120,14 +120,14 @@ "components.PersonDetails.appearsin": "Presenças", "components.NotificationTypeSelector.mediafailedDescription": "Enviar notificações quando os pedidos de multimédia não forem adicionados ao Radarr ou Sonarr.", "components.NotificationTypeSelector.mediarequestedDescription": "Enviar notificações quando os utilizadores enviam novos pedidos de multimédia que requerem aprovação.", - "components.NotificationTypeSelector.mediarequested": "Multimédia Pedida", - "components.NotificationTypeSelector.mediafailed": "Multimédia Falhou", + "components.NotificationTypeSelector.mediarequested": "Solicitação com Aprovação Pendente", + "components.NotificationTypeSelector.mediafailed": "Falha ao Processar Solicitação", "components.NotificationTypeSelector.mediadeclinedDescription": "Envia uma notificação quando um pedido de multimédia é rejeitado.", - "components.NotificationTypeSelector.mediadeclined": "Multimédia Rejeitada", + "components.NotificationTypeSelector.mediadeclined": "Solicitação Recusada", "components.NotificationTypeSelector.mediaavailableDescription": "Enviar notificações quando os pedidos da multimédia ficarem disponíveis.", - "components.NotificationTypeSelector.mediaavailable": "Multimédia Disponível", + "components.NotificationTypeSelector.mediaavailable": "Solicitação Disponível", "components.NotificationTypeSelector.mediaapprovedDescription": "Enviar notificações quando os pedidos de multimédia são aprovados manualmente.", - "components.NotificationTypeSelector.mediaapproved": "Multimédia Aprovada", + "components.NotificationTypeSelector.mediaapproved": "Solicitação Aprovada", "components.MovieDetails.watchtrailer": "Ver Trailer", "components.MovieDetails.viewfullcrew": "Ver Equipa Técnica Completa", "components.MovieDetails.studio": "{studioCount, plural, one {Estúdio} other {Estúdios}}", @@ -191,14 +191,14 @@ "components.UserList.usercreatedsuccess": "Utilizador criado com sucesso!", "components.UserList.usercreatedfailed": "Ocorreu um erro ao criar o utilizador.", "components.UserList.user": "Utilizador", - "components.UserList.totalrequests": "Pedidos", + "components.UserList.totalrequests": "Solicitações", "components.UserList.role": "Função", "components.UserList.plexuser": "Utilizador Plex", "components.UserList.passwordinfodescription": "Configurar um URL de aplicação e ativar as notificações por e-mail para permitir a geração automática de palavra-passe.", "components.UserList.localuser": "Utilizador Local", - "components.UserList.importfromplexerror": "Ocorreu um erro ao importar utilizadores do Plex.", + "components.UserList.importfromplexerror": "Algo deu errado ao importar utilizadores do Plex.", "components.UserList.importfromplex": "Importar Utilizadores do Plex", - "components.UserList.importedfromplex": "{userCount, plural, one {# novo utilizador} other {# novos utilizadores}} importados do Plex com sucesso!", + "components.UserList.importedfromplex": "{userCount} {userCount, plural, one {utilizador Plex importado} other {utilizadores Plex importados}} com sucesso!", "components.UserList.email": "Endereço de E-mail", "components.UserList.deleteuser": "Apagar Utilizador", "components.UserList.deleteconfirm": "Tem certeza que deseja apagar este utilizador? Todos os seus dados de pedidos serão removidos permanentemente.", @@ -213,10 +213,6 @@ "components.Setup.continue": "Continuar", "components.Setup.configureservices": "Configurar Serviços", "components.Setup.configureplex": "Configurar Plex", - "components.Settings.toastSettingsSuccess": "Definições gravadas com sucesso!", - "components.Settings.toastSettingsFailure": "Ocorreu um erro ao gravar as definições.", - "components.Settings.toastApiKeySuccess": "Nova chave API gerada com sucesso!", - "components.Settings.toastApiKeyFailure": "Ocorreu um erro ao gerar uma nova chave API.", "components.Settings.startscan": "Iniciar Sincronização", "components.Settings.sonarrsettings": "Definições do Sonarr", "components.Settings.radarrsettings": "Definições Radarr", @@ -238,10 +234,7 @@ "components.Settings.cancelscan": "Cancelar Sincronização", "components.Settings.librariesRemaining": "Bibliotecas Restantes: {count}", "components.Settings.hostname": "Nome do hospedeiro ou endereço IP", - "components.Settings.hideAvailable": "Esconder Multimédia Disponível", - "components.Settings.generalsettingsDescription": "Configure as definições globais e predefinidas para o Overseerr.", "components.Settings.menuGeneralSettings": "Geral", - "components.Settings.generalsettings": "Definições Gerais", "i18n.edit": "Modificar", "components.Settings.deleteserverconfirm": "Tem certeza que deseja eliminar este servidor?", "i18n.delete": "Eliminar", @@ -249,8 +242,6 @@ "components.Settings.default": "Predefinição", "components.Settings.currentlibrary": "Biblioteca Atual: {name}", "components.Settings.copied": "Chave API copiada.", - "components.Settings.applicationurl": "URL da Aplicação", - "components.Settings.apikey": "Chave API", "components.Settings.addsonarr": "Adicionar Servidor Sonarr", "components.Settings.address": "Endereço", "components.Settings.addradarr": "Adicionar Servidor Radarr", @@ -258,8 +249,8 @@ "components.Settings.SonarrModal.validationRootFolderRequired": "Deve selecionar uma pasta raiz", "components.Settings.SonarrModal.validationProfileRequired": "Deve selecionar um perfil de qualidade", "components.Settings.SonarrModal.validationNameRequired": "Deve fornecer o nome do servidor", - "components.Settings.RadarrModal.validationHostnameRequired": "Deve fornecer um nome de hospedeiro ou endereço IP", - "components.Settings.SonarrModal.validationHostnameRequired": "Deve fornecer um nome de hospedeiro ou endereço IP", + "components.Settings.RadarrModal.validationHostnameRequired": "Deve prover o nome ou IP do servidor", + "components.Settings.SonarrModal.validationHostnameRequired": "Deve prover o nome ou IP do servidor", "components.Settings.SonarrModal.validationPortRequired": "Deve fornecer um número de porta válido", "components.Settings.validationPortRequired": "Deve fornecer um número de porta válido", "components.Settings.validationHostnameRequired": "Deve fornecer um nome de hospedeiro ou endereço IP válido", @@ -295,11 +286,11 @@ "components.Settings.SettingsAbout.documentation": "Documentação", "components.Settings.SettingsAbout.Releases.viewongithub": "Ver no GitHub", "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver Mudanças", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Mudanças Nesta Versão", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Mudanças em {version}", "components.Settings.SettingsAbout.Releases.releases": "Versões", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informações de versão indisponíveis. O GitHub está abaixo?", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informações de versão indisponíveis.", "components.Settings.SettingsAbout.Releases.latestversion": "Mais Recente", - "components.Settings.SettingsAbout.Releases.currentversion": "Versão Atual", + "components.Settings.SettingsAbout.Releases.currentversion": "Atual", "components.Settings.RadarrModal.validationRootFolderRequired": "Deve selecionar uma pasta raiz", "components.Settings.RadarrModal.validationProfileRequired": "Deve selecionar um perfil de qualidade", "components.Settings.RadarrModal.validationPortRequired": "Deve fornecer um número de porta válido", @@ -323,7 +314,7 @@ "components.TvDetails.overviewunavailable": "Sinopse indisponível.", "components.TvDetails.overview": "Sinopse", "components.TvDetails.originallanguage": "Língua original", - "components.TvDetails.network": "{networkCount, plural, one {Emissor} other {Emissores}}", + "components.TvDetails.network": "{networkCount, plural, one {Emissora} other {Emissoras}}", "components.TvDetails.firstAirDate": "Data da Estreia", "i18n.decline": "Rejeitar", "components.TvDetails.cast": "Elenco", @@ -356,27 +347,25 @@ "components.Settings.serverpreset": "Servidor", "components.Settings.serverRemote": "remoto", "components.Settings.serverLocal": "local", - "components.Settings.csrfProtectionTip": "Definir o acesso externo API para somente leitura (requer HTTPS)", - "components.Settings.csrfProtection": "Ativar Proteção CSRF", - "components.PermissionEdit.usersDescription": "Conceder permissão para gerir utilizadores Overseerr. Os utilizadores com essa permissão não podem modificar os utilizadores ou conceder o privilégio de administrador.", + "components.PermissionEdit.usersDescription": "Concede permissão para gerir utilizadores. Utilizadores com essa permissão não podem modificar utilizadores com acesso Administrativo, ou condecer tal permissão.", "components.PermissionEdit.users": "Gerir Utilizadores", - "components.PermissionEdit.requestDescription": "Conceder permissão para pedir multimédia não 4K.", - "components.PermissionEdit.request4kTvDescription": "Conceder permissão para pedir séries em 4K.", + "components.PermissionEdit.requestDescription": "Concede permissão para solicitar mídia não 4K.", + "components.PermissionEdit.request4kTvDescription": "Concede permissão para solicitar séries em 4K.", "components.PermissionEdit.request4kTv": "Pedir Séries 4K", - "components.PermissionEdit.request4kMoviesDescription": "Conceder permissão para pedir filmes em 4K.", + "components.PermissionEdit.request4kMoviesDescription": "Concede permissão para solicitar filmes em 4K.", "components.PermissionEdit.request4kMovies": "Pedir Filmes 4K", - "components.PermissionEdit.request4kDescription": "Conceder permissão para pedir multimédia 4K.", + "components.PermissionEdit.request4kDescription": "Concede permissão para solicitar mídia em 4K.", "components.PermissionEdit.request4k": "Pedir 4K", "components.PermissionEdit.request": "Pedir", - "components.PermissionEdit.managerequestsDescription": "Conceder permissão para gerir pedidos Overseerr. Todas os pedidos feitos por um utilizador com essa permissão serão aprovados automaticamente.", + "components.PermissionEdit.managerequestsDescription": "Concede permissão para gerir solicitações de mídia. Todas solicitações feitas por um utilizador com esse perfil serão automaticamente aprovadas.", "components.PermissionEdit.managerequests": "Gerir Pedidos", "components.PermissionEdit.autoapproveSeriesDescription": "Conceder aprovação automática para pedidos de séries não 4K.", "components.PermissionEdit.autoapproveSeries": "Aprovar Séries Automaticamente", "components.PermissionEdit.autoapproveMoviesDescription": "Conceder aprovação automática para pedidos de filmes não 4K.", "components.PermissionEdit.autoapproveMovies": "Aprovar Filmes Automaticamente", "components.PermissionEdit.autoapprove": "Aprovação Automática", - "components.PermissionEdit.autoapproveDescription": "Conceder aprovação automática para todas os pedidos não 4K.", - "components.PermissionEdit.advancedrequestDescription": "Conceder permissão para fazer pedidos avançados.", + "components.PermissionEdit.autoapproveDescription": "Concede aprovação automática para todas solicitações de mídia não 4K.", + "components.PermissionEdit.advancedrequestDescription": "Concede permissão para alterar solicitações avançadas de mídia.", "components.PermissionEdit.advancedrequest": "Pedidos Avançados", "components.PermissionEdit.adminDescription": "Acesso total de administrador. Ignora todas as outras verificações de permissão.", "components.PermissionEdit.admin": "Administrador", @@ -390,13 +379,10 @@ "components.TvDetails.play4konplex": "Ver em 4K no Plex", "components.MovieDetails.play4konplex": "Ver em 4K no Plex", "components.MovieDetails.playonplex": "Ver no Plex", - "components.Settings.trustProxyTip": "Permitir que o Overseerr registe corretamente os endereços IP do cliente por trás de um proxy", - "components.Settings.trustProxy": "Ativar Suporte de Proxy", "components.MovieDetails.markavailable": "Marcar como Disponível", "components.MovieDetails.mark4kavailable": "Marcar como Disponível em 4K", "components.Settings.SettingsJobsCache.cachehits": "Acertos", "i18n.advanced": "Avançado", - "components.Settings.csrfProtectionHoverTip": "NÃO ative esta definição a menos que entenda o que está a fazer!", "components.Settings.SettingsJobsCache.runnow": "Executar Agora", "components.Settings.SettingsJobsCache.process": "Processo", "components.Settings.SettingsJobsCache.nextexecution": "Próxima Execução", @@ -420,17 +406,13 @@ "components.Settings.SettingsAbout.preferredmethod": "Preferido", "components.UserList.users": "Utilizadores", "components.Search.search": "Pesquisar", - "components.Settings.applicationTitle": "Título da Aplicação", "components.Setup.setup": "Configurar", - "components.Settings.validationApplicationTitle": "Deve fornecer um título de aplicação", "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "A URL não deve terminar com uma barra final", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "A URL não deve terminar com uma barra final", - "components.Settings.validationApplicationUrlTrailingSlash": "A URL não deve terminar com uma barra final", "components.Settings.SonarrModal.validationApplicationUrl": "Deve fornecer um URL valido", - "components.Settings.validationApplicationUrl": "Deve fornecer um URL valido", "components.Settings.RadarrModal.validationApplicationUrl": "Deve fornecer um URL valido", "components.RequestModal.AdvancedRequester.requestas": "Pedir Como", - "components.PermissionEdit.viewrequestsDescription": "Conceder permissão para ver pedidos de outros utilizadores.", + "components.PermissionEdit.viewrequestsDescription": "Concede permissão para visualizar solicitações de mídia feita por outros utilizadores.", "components.PermissionEdit.viewrequests": "Ver Pedidos", "components.Discover.discover": "Descobrir", "components.AppDataWarning.dockerVolumeMissingDescription": "O ponto de montagem {appDataPath} não foi configurado corretamente . Todos dados serão perdidos quando o contentor parar ou reiniciar.", @@ -452,7 +434,7 @@ "components.ResetPassword.password": "Palavra-passe", "components.ResetPassword.gobacklogin": "Voltar a Página de Inicio de Sessão", "components.ResetPassword.resetpassword": "Repor a sua Palavra-passe", - "components.ResetPassword.emailresetlink": "Link de Recuperação por E-mail", + "components.ResetPassword.emailresetlink": "Envie uma ligação de Recuperação", "components.ResetPassword.email": "Endereço E-mail", "components.ResetPassword.confirmpassword": "Confirmar Palavra-passe", "components.Login.forgotpassword": "Esqueceu a Palavra-passe?", @@ -472,7 +454,7 @@ "components.PermissionEdit.autoapprove4kSeries": "Aprovar Séries 4K Automaticamente", "components.PermissionEdit.autoapprove4kMoviesDescription": "Conceder aprovação automática para pedidos de filmes 4K.", "components.PermissionEdit.autoapprove4kMovies": "Aprovar Filmes 4K Automaticamente", - "components.PermissionEdit.autoapprove4kDescription": "Conceder aprovação automática para todas os pedidos 4K.", + "components.PermissionEdit.autoapprove4kDescription": "Concede aprovação automática para todas solicitações de mídia em 4K.", "components.PermissionEdit.autoapprove4k": "Aprovar 4K Automaticamente", "components.UserProfile.recentrequests": "Pedidos Recentes", "components.UserProfile.UserSettings.menuPermissions": "Permissões", @@ -509,7 +491,7 @@ "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Palavra-passe muito curta; necessário ter no mínimo 8 caracteres", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Ocorreu um erro ao gravar a palavra-passe.", "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Deve fornecer um ID de utilizador válido", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "O número de ID da sua conta de utilizador", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "O número de identificação correspondente ao seu utilizador", "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Utilizador", "components.UserList.userfail": "Ocorreu um erro ao gravar as permissões do utilizador.", "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Definições de notificação Pushbullet gravadas com sucesso!", @@ -519,11 +501,7 @@ "components.UserProfile.UserSettings.UserGeneralSettings.region": "Descubrir Região", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar conteúdo por idioma original", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Descobrir Idioma", - "components.Settings.regionTip": "Filtrar conteúdo por disponibilidade regional", - "components.Settings.region": "Descubrir Região", - "components.Settings.originallanguageTip": "Filtrar conteúdo por idioma original", "components.Discover.upcomingtv": "Séries a Estrear", - "components.Settings.originallanguage": "Descubrir Idioma", "components.RegionSelector.regionDefault": "Todas as Regiões", "components.Settings.webhook": "Webhook", "components.Settings.email": "E-Mail", @@ -531,7 +509,7 @@ "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Não tem permissão para modificar a palavra-passe deste utilizador.", "components.UserProfile.UserSettings.UserGeneralSettings.user": "Utilizador", "components.UserProfile.UserSettings.UserGeneralSettings.role": "Função", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Proprietário", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Dono", "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Conta", "components.UserList.owner": "Proprietário", @@ -579,7 +557,7 @@ "components.UserProfile.UserSettings.unauthorizedDescription": "Não tem permissão para modificar as definições deste utilizador.", "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Não pode modificar suas próprias permissões.", "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Enviar notificações quando os utilizadores apresentarem novos pedidos de multimédia que são automaticamente aprovados.", - "components.NotificationTypeSelector.mediaAutoApproved": "Multimédia Aprovada Automaticamente", + "components.NotificationTypeSelector.mediaAutoApproved": "Solicitação Aprovada Automaticamente", "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", "components.TvDetails.episodeRuntime": "Duração do Episódio", "components.Settings.Notifications.pgpPrivateKeyTip": "Assinar mensagens de e-mail encriptadas utilizando OpenPGP", @@ -587,7 +565,6 @@ "components.Settings.Notifications.pgpPrivateKey": "Chave Privada PGP", "components.Settings.Notifications.pgpPassword": "Palavra-passe PGP", "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.Settings.partialRequestsEnabled": "Permitir Pedidos Parciais de Séries", "components.RequestModal.alreadyrequested": "Já Foi Pedido", "components.Discover.TvGenreSlider.tvgenres": "Géneros de Série", "components.Discover.TvGenreList.seriesgenres": "Géneros de Série", @@ -605,10 +582,7 @@ "components.Settings.services": "Serviços", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notificações", - "components.Settings.general": "Geral", "components.UserProfile.UserSettings.UserGeneralSettings.general": "Geral", - "components.Settings.cacheImagesTip": "Otimizar e armazenar todas as imagens localmente (consome uma quantidade significativa de espaço em disco)", - "components.Settings.cacheImages": "Ativar Caching de Imagem", "components.Settings.SettingsUsers.users": "Utilizadores", "components.Settings.SettingsLogs.time": "Marcação Horária", "components.Settings.SettingsLogs.showall": "Mostrar Todos os Registos", @@ -634,7 +608,7 @@ "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", "components.PersonDetails.birthdate": "Nasceu {birthdate}", "components.PersonDetails.alsoknownas": "Também Conhecido Como: {nomes}", - "components.UserList.nouserstoimport": "Não há novos utilizadores para importar do Plex.", + "components.UserList.nouserstoimport": "Nenhum novo utilizador Plex para importar.", "i18n.delimitedlist": "{a}, {b}", "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {filme} other {filmes}}", "components.RequestModal.QuotaDisplay.movie": "filme", @@ -712,9 +686,9 @@ "components.Settings.Notifications.validationPgpPassword": "Deve fornecer uma palavra-passe PGP", "components.Settings.Notifications.botUsernameTip": "Permitir que utilizadores iniciem uma conversa com o seu bot e configurem as suas próprias notificações", "components.RequestModal.pendingapproval": "O seu pedido está com aprovação pendente.", - "components.RequestList.RequestItem.mediaerror": "O título associado a este pedido não está mais disponível.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} Não Encontrado", "components.RequestList.RequestItem.deleterequest": "Apagar Pedido", - "components.RequestCard.mediaerror": "O título associado a este pedido não está mais disponível.", + "components.RequestCard.mediaerror": "{mediaType} Não Encontrado", "components.RequestCard.deleterequest": "Apagar Pedido", "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificação", "components.Layout.VersionStatus.streamstable": "Overseerr Stable", @@ -792,16 +766,15 @@ "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Falha ao enviar notificação de teste Pushover.", "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Falha ao enviar notificação de teste Pushbullet.", "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Falha ao enviar notificação de teste ao LunaSea.", - "components.PermissionEdit.requestTvDescription": "Conceder permissão para pedir séries não 4K.", + "components.PermissionEdit.requestTvDescription": "Concede permissão para solicitar séries em não 4K.", "components.PermissionEdit.requestTv": "Pedir Séries", - "components.PermissionEdit.requestMoviesDescription": "Conceder permissão para pedir filmes não 4K.", + "components.PermissionEdit.requestMoviesDescription": "Concede permissão para solicitar filmes em não 4K.", "components.PermissionEdit.requestMovies": "Pedir Filmes", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Predefinido ({language})", "components.UserList.localLoginDisabled": "A configuração Ativar inicio de sessão Local está desativada de momento.", "components.UserList.displayName": "Nome de Exibição", "components.Settings.webAppUrlTip": "Opcionalmente direcionar os utilizadores para a aplicação de web app no seu servidor, em vez da aplicação de web app \"hospedada\"", "components.Settings.webAppUrl": "URL Web App", - "components.Settings.locale": "Idioma de Exibição", "components.Settings.Notifications.webhookUrlTip": "Criar um webhook de integração no seu servidor", "components.Settings.Notifications.encryptionTip": "Na maioria dos casos, o TLS implícito usa a porta 465 e o STARTTLS usa a porta 587", "components.Settings.Notifications.encryptionOpportunisticTls": "Usar STARTTLS sempre", @@ -840,10 +813,270 @@ "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar quando os seus pedidos de multimédia ficarem disponíveis.", "components.QuotaSelector.days": "{conta, plural, one {dia} other {dias}}", "components.Settings.SettingsAbout.betawarning": "Isto é um software em BETA. As funcionalidades podem estar quebradas e/ou instáveis. Relate qualquer problema no GitHub!", - "components.MovieDetails.streamingproviders": "Atualmente a Exibir em", + "components.MovieDetails.streamingproviders": "Em Exibição na", "components.TvDetails.streamingproviders": "Atualmente a Exibir em", "components.MovieDetails.showmore": "Mostrar Mais", "components.Layout.LanguagePicker.displaylanguage": "Idioma da Interface", "components.MovieDetails.showless": "Mostrar Menos", - "components.StatusBadge.status": "{status}" + "components.StatusBadge.status": "{status}", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo deu errado ao gravar tarefa.", + "components.StatusBadge.managemedia": "Gerir {mediaType}", + "components.StatusBadge.openinarr": "Abrir em {arr}", + "components.IssueDetails.allseasons": "Todas Temporadas", + "components.IssueDetails.nocomments": "Nenhum comentário.", + "components.IssueDetails.openinarr": "Abrir no {arr}", + "components.PermissionEdit.viewissues": "Ver Problemas", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Ativar Agente", + "components.TvDetails.rtaudiencescore": "Pontuação de audiência no Rotten Tomatoes", + "components.TvDetails.rtcriticsscore": "Pontuação de audiência no Rotten Tomatoes", + "components.TvDetails.seasonnumber": "Temporada {seasonNumber}", + "components.TvDetails.seasonstitle": "Temporadas", + "components.TvDetails.status4k": "4K {status}", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Solicitar Séries Automaticamente", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Deve prover um ID válido de utilizador Discord", + "i18n.resolved": "Resolvido", + "components.PermissionEdit.createissuesDescription": "Concede permissão para reportar problemas com mídias.", + "components.PermissionEdit.manageissuesDescription": "Concede permissão para gerir problemas com mídia.", + "components.RequestModal.selectmovies": "Selecionar Filme(s)", + "components.IssueList.IssueItem.opened": "Aberto", + "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", + "components.IssueList.IssueItem.unknownissuetype": "Desconhecido", + "components.IssueList.IssueItem.viewissue": "Ver Problema", + "components.IssueModal.CreateIssueModal.allepisodes": "Todos Episódios", + "components.ManageSlideOver.manageModalIssues": "Problemas Abertos", + "components.MovieDetails.productioncountries": "{countryCount, plural, one {País} other {Países}} de Produção", + "components.PermissionEdit.viewrecent": "Ver Recentemente Adicionados", + "components.PermissionEdit.viewrecentDescription": "Concede permissão para ver lista de mídias adicionadas recentemente.", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "A cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "ID do Utilizador Discord", + "i18n.restartRequired": "Reinicialização Necessária", + "components.StatusChecker.appUpdated": "{applicationTitle} Atualizado", + "components.StatusChecker.restartRequiredDescription": "Por favor, reinicie o servidor para aplicar as novas configurações.", + "components.TitleCard.cleardata": "Limpar Dados", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "O seu identificador de utilizador ou grupo contendo 30 caractéres", + "components.RequestCard.tmdbid": "ID do TMDB", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Configurações de notificação via Pushover salvas com sucesso!", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "A sua Lista a Assistir do Plex", + "components.IssueDetails.deleteissueconfirm": "Tem certeza que deseja apagar este problema?", + "components.IssueDetails.toaststatusupdated": "Estado do problema atualizado com sucesso!", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Espisódio} other {Episódios}}", + "components.IssueList.IssueItem.issuestatus": "Estado", + "components.IssueModal.CreateIssueModal.problemepisode": "Episódio Afetado", + "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afetada", + "components.IssueModal.CreateIssueModal.reportissue": "Reportar um Problema", + "components.IssueModal.issueAudio": "Áudio", + "components.ManageSlideOver.manageModalTitle": "Gerir {mediaType}", + "components.RequestList.RequestItem.tmdbid": "ID do TMDB", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Sincronizar Lista para assistir do Plex", + "components.Settings.deleteServer": "Remover Servidor {serverType}", + "components.StatusChecker.appUpdatedDescription": "Por favor, clique no botão abaixo para recarregar a aplicação.", + "components.ManageSlideOver.manageModalAdvanced": "Avançado", + "components.ManageSlideOver.alltime": "Desde Início", + "components.ManageSlideOver.manageModalMedia": "Mídia", + "components.ManageSlideOver.manageModalMedia4k": "Mídia 4K", + "components.ManageSlideOver.markallseasons4kavailable": "Marcar Todas Temporadas como Disponíveis em 4K", + "components.NotificationTypeSelector.userissuereopenedDescription": "Receber notificação quando problemas que reportou forem re-abertos.", + "components.PermissionEdit.viewissuesDescription": "Concede permissão para ver problemas em mídias reportados por outros problemas.", + "components.RequestModal.requestmovies": "Solicitar {count} {count, plural, one {Filme} other {Filmes}}", + "components.Settings.validationUrlBaseLeadingSlash": "URL Base deve iniciar com uma barra", + "components.Discover.DiscoverWatchlist.watchlist": "Lista a Assistir do Plex", + "components.Discover.plexwatchlist": "A sua Lista a Assistir do Plex", + "components.IssueDetails.closeissue": "Encerrar Problema", + "components.IssueDetails.commentplaceholder": "Adicionar um comentário…", + "components.IssueDetails.closeissueandcomment": "Fechar com Comentário", + "components.IssueDetails.leavecomment": "Comentar", + "components.IssueDetails.comments": "Comentários", + "components.IssueDetails.deleteissue": "Apagar Problema", + "components.IssueDetails.problemseason": "Temporada Afetada", + "components.IssueDetails.reopenissue": "Re-abrir Problema", + "components.IssueDetails.reopenissueandcomment": "Re-abrir com Comentário", + "components.IssueDetails.season": "Temporada {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Algo deu errado ao editar a descrição do problema.", + "components.IssueDetails.toasteditdescriptionsuccess": "Descrição do problema alterada com sucesso!", + "components.IssueDetails.toastissuedeleted": "Problema apagado com sucesso!", + "components.IssueModal.CreateIssueModal.whatswrong": "O quê há de errado?", + "components.IssueModal.issueOther": "Outros", + "components.IssueModal.issueSubtitles": "Legenda", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Receber notificação quando problemas forem re-abertos por outros utilizadores.", + "components.NotificationTypeSelector.issuecomment": "Comentário no Problema", + "components.NotificationTypeSelector.issuecommentDescription": "Enviar notificações quando problemas receberem novos comentários.", + "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificações quando problemas são reportados.", + "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificações quando problemas são resolvidos.", + "components.NotificationTypeSelector.mediaautorequested": "Pedido automaticamente enviado", + "components.PermissionEdit.viewwatchlists": "Ver Lista para assistir do Plex", + "components.RequestModal.requestseasons4k": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}} em 4K", + "components.Settings.toastTautulliSettingsFailure": "Algo deu errado ao gravar configurações do Tautulli.", + "components.TitleCard.tmdbid": "ID do TMDB", + "components.TitleCard.tvdbid": "ID do TheTVDB", + "components.TvDetails.manageseries": "Gerir Séries", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Receber notificação quando problemas são resolvidos por outros utilizadores.", + "components.PermissionEdit.autorequest": "Solicitar Automaticamente", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Ser notificado quando um novo pedido de mídia de algum item da sua Lista a assistir no Plex for automaticamente enviado.", + "components.PermissionEdit.autorequestDescription": "Dar permissão para enviar automaticamente pedidos para mídias não-4K via Lista para assistir do Plex.", + "components.PermissionEdit.autorequestMovies": "Solicitar Filmes Automaticamente", + "components.PermissionEdit.autorequestMoviesDescription": "Dar permissão para enviar automaticamente pedidos para filmes não-4K via Lista para assistir do Plex.", + "components.PermissionEdit.autorequestSeries": "Solicitar Séries Automaticamente", + "components.RequestCard.tvdbid": "ID do TheTVDB", + "components.Settings.SettingsLogs.viewdetails": "Ver Detalhes", + "components.Settings.advancedTooltip": "Configurar incorretamente esta opção pode resultar numa funcionalidade quebrada", + "components.StatusChecker.restartRequired": "Reinicialização do Servidor Necessária", + "components.TitleCard.mediaerror": "{mediaType} Não Encontrado", + "components.Settings.toastTautulliSettingsSuccess": "Configurações do Tautulli salvas com sucesso!", + "components.Settings.RadarrModal.released": "Lançado", + "components.IssueDetails.IssueComment.areyousuredelete": "Tem certeza que deseja apagar este comentário?", + "components.IssueDetails.IssueComment.delete": "Apagar Comentário", + "components.IssueDetails.IssueComment.postedbyedited": "Feito {relativeTime} por {username} (Edited)", + "components.IssueDetails.IssueComment.validationComment": "Deve escrever uma mensagem", + "components.IssueDetails.IssueDescription.deleteissue": "Apagar Problema", + "components.IssueDetails.openedby": "#{issueId} aberto {relativeTime} por {username}", + "components.IssueDetails.problemepisode": "Episódio Afetado", + "components.IssueList.sortAdded": "Mais Recente", + "components.IssueList.sortModified": "Última Modificação", + "components.NotificationTypeSelector.issuecreated": "Problema Reportado", + "components.PermissionEdit.manageissues": "Gerir Problemas", + "components.IssueDetails.IssueDescription.edit": "Alterar Descrição", + "components.IssueDetails.allepisodes": "Todos Episódios", + "components.IssueDetails.toastissuedeletefailed": "Algo deu errado ao apagar problema.", + "components.IssueDetails.toaststatusupdatefailed": "Algo deu errado ao atualizar o estado do problema.", + "components.IssueDetails.unknownissuetype": "Desconhecido", + "components.RequestModal.requestmovies4k": "Solicitar {count} {count, plural, one {Filme} other {Filmes}} em 4K", + "components.TvDetails.tmdbuserscore": "Pontuação de Utilizador do TMDB", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Solicitar Filmes Automaticamente", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Criar um token da sua Configuração de Conta", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acesso", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Deve prover um token de acesso", + "i18n.open": "Aberto", + "components.Settings.SettingsAbout.runningDevelop": "Está usando a versão develop do Overseerr que é recomendada apenas para àqueles contribuindo com o desenvolvimento ou ajudando no teste de novas funcionalidades.", + "components.AirDateBadge.airedrelative": "Exibido em {relativeTime}", + "components.AirDateBadge.airsrelative": "Exibindo {relativeTime}", + "components.IssueDetails.IssueDescription.description": "Descrição", + "components.IssueDetails.play4konplex": "Assistir em 4K no Plex", + "components.IssueDetails.playonplex": "Assistir no Plex", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Relato de problema em {title} enviado com sucesso!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Problema", + "components.PermissionEdit.autorequestSeriesDescription": "Dar permissão para enviar automaticamente pedidos para séries não-4K via Lista para assistir do Plex.", + "components.TvDetails.reportissue": "Reportar um Problema", + "components.RequestBlock.languageprofile": "Perfil de Idioma", + "components.RequestModal.requestApproved": "Solicitação de {title} aprovada!", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Falha ao gravar configurações de notificação via Gotify.", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Configurações de notificação via Gotify salvas com sucesso!", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Falha ao enviar notificação de teste via Gotify.", + "components.Settings.Notifications.NotificationsGotify.url": "URL do Servidor", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Deve prover um token de acesso", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Deve selecionar ao menos um tipo de notificação", + "components.Settings.Notifications.enableMentions": "Ativar Menções", + "components.Settings.RadarrModal.inCinemas": "Nos Cinemas", + "components.Settings.tautulliSettings": "Configurações do Tautulli", + "components.Settings.tautulliSettingsDescription": "Tem a opção de configurar a integração com o seu servidor Tautulli. Overseer irá obter o histórico de reproduções das suas mídias no Plex através do Tautulli.", + "components.Settings.urlBase": "URL Base", + "components.Settings.validationApiKey": "Deve prover uma chave de API válida", + "components.Settings.validationUrl": "Deve prover uma URL válida", + "components.TvDetails.productioncountries": "{countryCount, plural, one {País} other {Países}} de Produção", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "O número de identificação associado à sua conta Discord", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Falha ao gravar configurações de notificação via Pushover.", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Deve prover uma chave válida de acesso", + "components.UserProfile.recentlywatched": "Assistidos Recentemente", + "i18n.import": "Importar", + "i18n.importing": "Importando…", + "components.IssueDetails.issuetype": "Tipo", + "components.IssueDetails.openin4karr": "Abrir em {arr} 4K", + "components.IssueList.IssueItem.problemepisode": "Episódio Afetado", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.ManageSlideOver.manageModalNoRequests": "Nenhuma solicitação.", + "components.ManageSlideOver.downloadstatus": "Downloads", + "components.ManageSlideOver.manageModalClearMedia": "Limpar Dados", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Isso irá remover em definitivo todos dados desse(a) {mediaType}, incluindo quaisquer solicitações para esse item. Se este item existir na sua biblioteca do Plex, os dados de mídia serão recriados na próxima sincronia.", + "components.ManageSlideOver.manageModalRequests": "Solicitações", + "components.NotificationTypeSelector.userissuecreatedDescription": "Receber notificação quando outros utilizadores reportarem problemas.", + "components.NotificationTypeSelector.userissuecommentDescription": "Receber notificação quando problemas reportados por receberem novos comentários.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Receber notificação quando problemas que reportou forem resolvidos.", + "components.Settings.SettingsJobsCache.editJobSchedule": "Editar Tarefa", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "A cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Deve prover uma chave válida de usúario ou grupo", + "components.Settings.SettingsAbout.appDataPath": "Configurações", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Tag do Canal", + "components.RequestBlock.edit": "Editar Pedido", + "components.RequestBlock.lastmodifiedby": "Última modificação por", + "components.RequestBlock.requestdate": "Data do pedido", + "components.RequestBlock.requestedby": "Pedido por", + "components.RequestCard.approverequest": "Aprovar pedido", + "components.RequestCard.cancelrequest": "Cancelar pedido", + "components.RequestCard.declinerequest": "Rejeitar Pedido", + "components.RequestCard.editrequest": "Editar Pedido", + "components.RequestModal.approve": "Aprovar Solicitação", + "components.IssueDetails.IssueComment.edit": "Editar Comentário", + "components.IssueDetails.IssueComment.postedby": "Feito {relativeTime} por {username}", + "components.IssueDetails.episode": "Episódio {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problema", + "components.IssueDetails.lastupdated": "Última Atualização", + "components.IssueList.IssueItem.issuetype": "Tipo", + "components.IssueList.issues": "Problemas", + "components.IssueList.showallissues": "Exibir Todos Problemas", + "components.IssueModal.CreateIssueModal.allseasons": "Todas Temporadas", + "components.IssueModal.CreateIssueModal.episode": "Episódio {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.providedetail": "Por favor, explique em detalhes o problema que encontrou.", + "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Enviar Problema", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo deu errado ao enviar problema.", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Deve prover uma descrição", + "components.IssueModal.issueVideo": "Vídeo", + "components.Layout.Sidebar.issues": "Problemas", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Pedidos de Filmes", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Pedidos de Séries", + "components.Layout.UserDropdown.requests": "Pedidos", + "components.ManageSlideOver.mark4kavailable": "Marcar como Disponível em 4K", + "components.ManageSlideOver.markallseasonsavailable": "Marcar Todas Temporadas como Disponíveis", + "components.ManageSlideOver.markavailable": "Marcar como Disponível", + "components.ManageSlideOver.movie": "filme", + "components.ManageSlideOver.openarr": "Abrir no {arr}", + "components.ManageSlideOver.openarr4k": "Abrir no {arr} 4K", + "components.ManageSlideOver.opentautulli": "Abrir no Tautulli", + "components.ManageSlideOver.pastdays": "Últimos {days, number} Dias", + "components.ManageSlideOver.playedby": "Reproduzido por", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {Reprodução} other {Reproduções}}", + "components.ManageSlideOver.tvshow": "série", + "components.MovieDetails.digitalrelease": "Lançamento Digital", + "components.MovieDetails.managemovie": "Gerir Filme", + "components.MovieDetails.physicalrelease": "Lançamento em Disco", + "components.MovieDetails.reportissue": "Reportar um problema", + "components.MovieDetails.rtaudiencescore": "Pontuação de audiência no Rotten Tomatoes", + "components.MovieDetails.rtcriticsscore": "Tomatômetro do Rotten Tomatoes", + "components.MovieDetails.theatricalrelease": "Lançamento no Cinema", + "components.MovieDetails.tmdbuserscore": "Pontuação de utilizador do TMDB", + "components.NotificationTypeSelector.adminissuecommentDescription": "Receber notificação quando outros utilizadores comentarem nos problemas.", + "components.NotificationTypeSelector.issuereopened": "Problema Re-aberto", + "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificações quando problemas são re-abertos.", + "components.NotificationTypeSelector.issueresolved": "Problema Resolvido", + "components.PermissionEdit.createissues": "Reportar Problemas", + "components.PermissionEdit.viewwatchlistsDescription": "Dar permissão para ver a Lista para assistir do Plex de outros utilizadores.", + "components.RequestBlock.approve": "Aprovar pedido", + "components.RequestBlock.decline": "Rejeitar pedido", + "components.RequestBlock.delete": "Deletar pedido", + "components.RequestList.RequestItem.tvdbid": "ID do TheTVDB", + "components.RequestModal.requestcollection4ktitle": "Solicitar Coleção em 4K", + "components.RequestModal.requestcollectiontitle": "Solicitar Coleção", + "components.RequestModal.requestseriestitle": "Solicitar Séries", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Enviando notificação de teste via Gotify…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Notificação de teste via Gotify enviada!", + "components.Settings.Notifications.NotificationsGotify.token": "Token de Acesso", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Deve prover uma URL válida", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "A URL não deve terminar com uma barra", + "components.Settings.RadarrModal.announced": "Anunciado", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Tarefa modificada com sucesso!", + "components.Settings.experimentalTooltip": "Ativar essa opção pode resultar num comportamento não esperado da aplicação", + "components.Settings.externalUrl": "URL Externa", + "components.Settings.restartrequiredTooltip": "Overseerr deve ser reiniciado para as mudanças tomarem efeito", + "components.Settings.tautulliApiKey": "Chave de API", + "components.Settings.validationUrlBaseTrailingSlash": "A URL base não pode terminar com uma barra", + "components.Settings.validationUrlTrailingSlash": "A URL não pode terminar com uma barra", + "components.StatusBadge.playonplex": "Reproduzir no Plex", + "components.StatusChecker.reloadApp": "Recarregar {applicationTitle}", + "components.TvDetails.Season.somethingwentwrong": "Algo deu errado enquanto os dados da temporada eram adquiridos.", + "components.UserList.newplexsigninenabled": "A opção Ativar Novo Método de Início de Sessão do Plex está ativada. Utilizadores Plex com acesso à bibliotecas podem se autenticar sem que precisem serem importados.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Configurações de notificação via Pushbullet salvas com sucesso!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Token de Acesso", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registe uma aplicação para uso com {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Chave do Utilizador ou Grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Falha ao gravar configurações de notificação via Pushover." } diff --git a/src/i18n/locale/ro.json b/src/i18n/locale/ro.json index 40156c185..7f60065b4 100644 --- a/src/i18n/locale/ro.json +++ b/src/i18n/locale/ro.json @@ -1,5 +1,5 @@ { - "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", + "components.Discover.DiscoverStudio.studioMovies": "Filme {studio}", "components.AppDataWarning.dockerVolumeMissingDescription": "Montarea volumului {appDataPath} nu a fost configurată corespunzător. Toate datele vor fi șterse atunci când containerul este oprit sau repornit.", "components.CollectionDetails.numberofmovies": "{count} Filme", "components.CollectionDetails.overview": "Prezentare generală", @@ -7,10 +7,10 @@ "components.CollectionDetails.requestcollection4k": "Cere colecția în 4K", "components.Discover.DiscoverMovieGenre.genreMovies": "{genul} Filme", "components.Discover.DiscoverMovieLanguage.languageMovies": "{Limba} Filme", - "components.Discover.DiscoverNetwork.networkSeries": "{network} Seriale", + "components.Discover.DiscoverNetwork.networkSeries": "Seriale {network}", "components.Discover.MovieGenreSlider.moviegenres": "Genuri de film", "components.Discover.NetworkSlider.networks": "Rețele", - "components.Discover.TvGenreList.seriesgenres": "Genuri seriale", + "components.Discover.TvGenreList.seriesgenres": "Genuri Seriale", "components.IssueDetails.IssueDescription.edit": "Editați descrierea", "components.IssueDetails.IssueComment.validationComment": "Trebuie să introduceți un mesaj", "components.IssueDetails.IssueDescription.description": "Descriere", @@ -19,21 +19,247 @@ "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Seriale", "components.Discover.MovieGenreList.moviegenres": "Genuri de film", "components.Discover.StudioSlider.studios": "Studiouri", - "components.Discover.TvGenreSlider.tvgenres": "Genuri seriale", + "components.Discover.TvGenreSlider.tvgenres": "Genuri Seriale", "components.Discover.discover": "Descoperă", - "components.Discover.discovermovies": "Filme populare", - "components.Discover.discovertv": "Seriale populare", - "components.Discover.popularmovies": "Filme populare", - "components.Discover.populartv": "Seriale populare", - "components.Discover.recentlyAdded": "Adăugate recent", - "components.Discover.recentrequests": "Solicitări recente", - "components.Discover.upcoming": "Filme viitoare", - "components.Discover.upcomingmovies": "Filme viitoare", - "components.Discover.upcomingtv": "Seriale viitoare", + "components.Discover.discovermovies": "Filme Populare", + "components.Discover.discovertv": "Seriale Populare", + "components.Discover.popularmovies": "Filme Populare", + "components.Discover.populartv": "Seriale Populare", + "components.Discover.recentlyAdded": "Adăugate Recent", + "components.Discover.recentrequests": "Solicitări Recente", + "components.Discover.upcoming": "Filme Viitoare", + "components.Discover.upcomingmovies": "Filme Viitoare", + "components.Discover.upcomingtv": "Seriale Viitoare", "components.DownloadBlock.estimatedtime": "Estimat {time}", - "components.IssueDetails.IssueComment.areyousuredelete": "Ești sigur că vrei să ștergi acest comentariu?", + "components.IssueDetails.IssueComment.areyousuredelete": "Sunteți sigur că doriți să ștergeți acest comentariu?", "components.IssueDetails.IssueComment.delete": "Șterge comentariul", - "components.IssueDetails.IssueComment.edit": "Editează comentariul", + "components.IssueDetails.IssueComment.edit": "Editați comentariul", "components.IssueDetails.IssueComment.postedby": "Postat {relativeTime} de {username}", - "components.IssueDetails.IssueDescription.deleteissue": "Ștergeți problema" + "components.IssueDetails.IssueDescription.deleteissue": "Ștergeți problema", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Lista ta de Urmărire în Plex", + "components.Discover.plexwatchlist": "Lista ta de Urmărire în Plex", + "components.IssueDetails.allseasons": "Toate sezoanele", + "components.IssueDetails.closeissue": "Închide problema", + "components.IssueDetails.deleteissueconfirm": "Ești sigur că vrei să ștergi această problema?", + "components.IssueDetails.commentplaceholder": "Adaugă un comentariu…", + "components.IssueDetails.comments": "Comentarii", + "components.IssueDetails.issuetype": "Tip", + "components.IssueDetails.lastupdated": "Ultimul update", + "components.IssueDetails.leavecomment": "Comentează", + "components.Discover.DiscoverWatchlist.watchlist": "Listă de urmărire în Plex", + "components.Discover.trending": "Tendințe", + "components.IssueDetails.openinarr": "Deschide în {arr}", + "components.IssueDetails.play4konplex": "Vizionează în 4K în Plex", + "components.IssueDetails.playonplex": "Vizionează în Plex", + "components.IssueDetails.problemepisode": "Episoade afectate", + "components.IssueDetails.problemseason": "Sezoane afectate", + "components.IssueDetails.reopenissue": "Redeschide problemă", + "components.IssueDetails.reopenissueandcomment": "Redeschide cu comentariu", + "components.IssueDetails.toasteditdescriptionfailed": "A intervenit o eroare în timpul editării descrierii problemei.", + "components.IssueDetails.toasteditdescriptionsuccess": "Descrierea problemei editată cu succes!", + "components.IssueDetails.toastissuedeleted": "Problemă ștearsă cu succes!", + "components.IssueDetails.season": "Sezon {seasonNumber}", + "components.IssueDetails.toastissuedeletefailed": "A intervenit o eroare în timpul ștergerii problemei.", + "components.IssueDetails.toaststatusupdated": "Statusul problemei a fost actualizat cu succes!", + "components.IssueDetails.toaststatusupdatefailed": "A intervenit o eroare în timpul actualizării statusului problemei.", + "components.IssueDetails.unknownissuetype": "Necunoscut", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, un {Episod} alte {Episoade}}}", + "components.IssueList.IssueItem.issuestatus": "Stare", + "components.IssueList.IssueItem.opened": "Deschis", + "components.IssueList.IssueItem.unknownissuetype": "Necunoscut", + "components.IssueList.IssueItem.openeduserdate": "{date} de către {user}", + "components.IssueList.IssueItem.problemepisode": "Episodul afectat", + "components.IssueList.IssueItem.viewissue": "Vedeți problema", + "components.IssueModal.CreateIssueModal.problemepisode": "Episodul afectat", + "components.IssueModal.CreateIssueModal.providedetail": "Vă rugăm să furnizați o explicație detaliată a problemei pe care ați întâmpinat-o.", + "components.IssueModal.CreateIssueModal.problemseason": "Sezonul afectat", + "components.IssueModal.CreateIssueModal.episode": "Episodul {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extra", + "components.IssueModal.CreateIssueModal.season": "Sezonul {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Trimiteți problema", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Ceva nu a mers bine în timpul trimiterii problemei.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Raportul problemei pentru {title} a fost trimis cu succes!", + "components.IssueModal.CreateIssueModal.whatswrong": "Ce nu e bine?", + "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Altele", + "components.IssueModal.issueSubtitles": "Subtitrare", + "components.IssueModal.issueVideo": "Video", + "components.LanguageSelector.languageServerDefault": "Implicit ({language})", + "components.LanguageSelector.originalLanguageDefault": "Toate limbile", + "components.Layout.LanguagePicker.displaylanguage": "Limba de afișare", + "components.Layout.Sidebar.dashboard": "Descoperiți", + "components.Layout.Sidebar.issues": "Probleme", + "components.Layout.Sidebar.requests": "Solicitări", + "components.Layout.Sidebar.settings": "Setări", + "components.Layout.Sidebar.users": "Utilizatori", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {commit} altul {commits}} în spate", + "components.IssueDetails.allepisodes": "Toate episoadele", + "components.IssueDetails.episode": "Episod {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problemă", + "components.IssueDetails.openedby": "#{issueId} deschis {relativeTime} de către {username}", + "components.IssueDetails.openin4karr": "Deschide în 4K {arr}", + "components.AirDateBadge.airedrelative": "Difuzat la {relativeTime}", + "components.AirDateBadge.airsrelative": "Se va difuza la {relativeTime}", + "components.IssueList.issues": "Probleme", + "components.IssueList.showallissues": "Afișați toate problemele", + "components.IssueModal.CreateIssueModal.allseasons": "Toate sezoanele", + "components.IssueModal.CreateIssueModal.reportissue": "Raportați o problemă", + "components.IssueModal.CreateIssueModal.toastviewissue": "Vedeți problema", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Solicitări de Serii", + "components.Layout.UserDropdown.requests": "Solicitări", + "components.IssueList.IssueItem.issuetype": "Tip", + "components.IssueList.sortModified": "Ultima modificare", + "components.Discover.emptywatchlist": "Media adăugată în Lista de Urmărire în Plex va apărea aici.", + "components.IssueDetails.closeissueandcomment": "Închide cu comentariu", + "components.IssueDetails.deleteissue": "Șterge problema", + "components.IssueDetails.nocomments": "Niciun comentariu.", + "components.IssueModal.CreateIssueModal.allepisodes": "Toate episoadele", + "components.IssueList.sortAdded": "Cele mai recente", + "components.Layout.SearchInput.searchPlaceholder": "Căutați Filme și Seriale", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Trebuie să furnizați o descriere", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Solicitări de Filme", + "components.Layout.UserDropdown.settings": "Setări", + "components.Layout.UserDropdown.signout": "Deconectare", + "components.Layout.VersionStatus.outofdate": "Expirat", + "components.Login.loginerror": "A apărut o eroare în timp ce încercam să vă conectați.", + "components.ManageSlideOver.manageModalAdvanced": "Avansat", + "components.ManageSlideOver.movie": "film", + "components.ManageSlideOver.openarr": "Deschide în {arr}", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Primiți notificări când problemele sunt rezolvate de alți utilizatori.", + "components.NotificationTypeSelector.issuecomment": "Comentariu la Problemă", + "components.NotificationTypeSelector.issuereopenedDescription": "Trimiteți notificări când problemele sunt redeschise.", + "components.MovieDetails.digitalrelease": "Lansare Digitală", + "components.MovieDetails.originaltitle": "Titlu Original", + "components.MovieDetails.overview": "Prezentare Generală", + "components.MovieDetails.recommendations": "Recomandări", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Data de Lansare} other {Date de Lansare}}", + "components.MovieDetails.revenue": "Venituri", + "components.MovieDetails.runtime": "{minutes} minute", + "components.MovieDetails.showless": "Arată Mai Puțin", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studiouri}}", + "components.MovieDetails.theatricalrelease": "Lansare la Cinema", + "components.MovieDetails.viewfullcrew": "Vizualizați Echipa Completă", + "components.MovieDetails.streamingproviders": "În Prezent se Difuzează pe", + "components.NotificationTypeSelector.issuecommentDescription": "Trimiteți notificări când problemele primesc comentarii noi.", + "components.NotificationTypeSelector.issuecreated": "Problemă Raportată", + "components.NotificationTypeSelector.issueresolved": "Problemă Rezolvată", + "components.NotificationTypeSelector.issueresolvedDescription": "Trimiteți notificări când problemele sunt rezolvate.", + "components.NotificationTypeSelector.mediaAutoApproved": "Solicitare Aprobată Automat", + "components.Login.email": "Adresă de Mail", + "components.Login.forgotpassword": "Ai uitat parola?", + "components.ManageSlideOver.manageModalNoRequests": "Nicio solicitare.", + "components.ManageSlideOver.manageModalTitle": "Administrează {mediaType}", + "components.ManageSlideOver.manageModalRequests": "Solicitări", + "components.MovieDetails.overviewunavailable": "Prezentare Generală Indisponibilă.", + "components.NotificationTypeSelector.issuecreatedDescription": "Trimiteți notificări când sunt raportate probleme.", + "components.NotificationTypeSelector.issuereopened": "Problemă Redeschisă", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Sezon} other {Sezoane}}", + "components.Login.signinwithplex": "Folosește contul tău Plex", + "components.Login.validationemailrequired": "Trebuie să furnizați o adresă de e-mail validă", + "components.ManageSlideOver.manageModalIssues": "Probleme Deschise", + "components.ManageSlideOver.manageModalClearMedia": "Golește Datele", + "components.ManageSlideOver.manageModalMedia": "Media", + "components.ManageSlideOver.manageModalMedia4k": "Media 4K", + "components.ManageSlideOver.mark4kavailable": "Marcați ca Disponibil în 4K", + "components.ManageSlideOver.markallseasons4kavailable": "Marcați Toate Sezoanele ca fiind Disponibile în 4K", + "components.ManageSlideOver.markallseasonsavailable": "Marcați Toate Sezoanele ca Disponibile", + "components.ManageSlideOver.markavailable": "Marcați ca Disponibil", + "components.MovieDetails.originallanguage": "Limbă Originală", + "components.MovieDetails.showmore": "Arată Mai Mult", + "components.MovieDetails.similar": "Titluri Similare", + "components.MovieDetails.physicalrelease": "Lansare Fizică", + "components.MovieDetails.managemovie": "Gestionați Filmul", + "components.MovieDetails.play4konplex": "Vizionează în 4k pe Plex", + "components.MovieDetails.playonplex": "Vizionează pe Plex", + "components.MovieDetails.reportissue": "Raportează o Problemă", + "components.Login.password": "Parolă", + "components.Login.signin": "Autentificare", + "components.Login.signingin": "Se autentifică…", + "components.Login.signinheader": "Autentifică-te pentru a continua", + "components.Login.signinwithoverseerr": "Folosește contul tău pentru {applicationTitle}", + "components.Login.validationpasswordrequired": "Trebuie să furnizați o parolă", + "components.MovieDetails.markavailable": "Marcați ca Disponibil", + "components.MovieDetails.rtaudiencescore": "Scorul Publicului pe Rotten Tomatoes", + "components.MovieDetails.rtcriticsscore": "Tomatometru pe Rotten Tomatoes", + "components.MovieDetails.tmdbuserscore": "Scor Utilizatori pe TMDB", + "components.ManageSlideOver.pastdays": "Acum {days, number} Zile", + "components.ManageSlideOver.opentautulli": "Deschide în Tautilli", + "components.ManageSlideOver.tvshow": "serii", + "components.MediaSlider.ShowMoreCard.seemore": "Vezi Mai Mult", + "components.MovieDetails.MovieCast.fullcast": "Distribuție Completă", + "components.MovieDetails.MovieCrew.fullcrew": "Echipaj Complet", + "components.MovieDetails.budget": "Buget", + "components.MovieDetails.cast": "Distribuție", + "components.MovieDetails.mark4kavailable": "Marcați ca Disponibil în 4K", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Primiți notificări când problemele sunt redeschise de alți utilizatori.", + "components.MovieDetails.watchtrailer": "Vizionați Trailerul", + "components.NotificationTypeSelector.adminissuecommentDescription": "Primiți notificări când alți utilizatori comentează la probleme.", + "components.ManageSlideOver.downloadstatus": "Descărcări", + "components.ManageSlideOver.openarr4k": "Deschide în {arr} 4k", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Aceasta va elimina ireversibil toate datele pentru {mediaType}, inclusiv orice solicitare. Dacă acest articol există în biblioteca dvs. Plex, informațiile media vor fi recreate în timpul următoarei scanări.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Primiți notificări când problemele pe care le-ați raportat sunt redeschise.", + "components.PermissionEdit.advancedrequestDescription": "Acordați permisiunea de a modifica opțiunile avansate de solicitare media.", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Trimiteți notificări atunci când utilizatorii trimit noi solicitări media care sunt aprobate automat.", + "components.NotificationTypeSelector.mediaavailable": "Solicitare Disponibilă", + "components.NotificationTypeSelector.mediaavailableDescription": "Trimiteți notificări când solicitările media devin disponibile.", + "components.NotificationTypeSelector.mediaapproved": "Solicitare Aprobată", + "components.NotificationTypeSelector.mediaapprovedDescription": "Trimiteți notificări când solicitările media sunt aprobate manual.", + "components.NotificationTypeSelector.mediadeclined": "Solicitare Refuzată", + "components.PermissionEdit.admin": "Admin", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Primiți notificări când solicitările dvs. media sunt aprobate.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Primiți notificări când solicitările dvs. media devin disponibile.", + "components.PermissionEdit.adminDescription": "Acces de administrator complet. Ocolește toate celelalte verificări ale permisiunilor.", + "components.PermissionEdit.advancedrequest": "Solicitări Avansate", + "components.NotificationTypeSelector.mediaautorequested": "Solicitare Trimisă Automat", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Primiți notificări atunci când noi solicitări media sunt trimise automat pentru articole din Lista dvs. de Urmărire Plex.", + "components.NotificationTypeSelector.mediafailed": "Procesarea Solicitării Eșuată", + "components.NotificationTypeSelector.mediafailedDescription": "Trimiteți notificări atunci când solicitările media nu pot fi adăugate la Radarr sau Sonarr.", + "components.NotificationTypeSelector.mediarequested": "Solicitarea Așteptă Aprobare", + "components.NotificationTypeSelector.mediarequestedDescription": "Trimiteți notificări atunci când utilizatorii trimit noi solicitări media care necesită aprobare.", + "components.NotificationTypeSelector.notificationTypes": "Tipuri de Notificări", + "components.NotificationTypeSelector.userissuecommentDescription": "Primiți notificări când problemele pe care le-ați raportat primesc comentarii noi.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Primiți notificări când alți utilizatori raportează probleme.", + "components.PermissionEdit.autoapprove": "Aprobare Automată", + "components.PermissionEdit.autoapprove4k": "Aprobare Automată 4K", + "components.PermissionEdit.autoapprove4kDescription": "Acordați aprobare automată pentru toate solicitările media 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Aprobare Automată a Filmelor 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Acordați aprobare automată pentru solicitările de filme 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Aprobare Automată a Seriilor 4K", + "components.PermissionEdit.autoapproveDescription": "Acordați aprobare automată pentru toate solicitările media non-4K.", + "components.PermissionEdit.autoapproveMovies": "Aprobare Automată a Filmelor", + "components.NotificationTypeSelector.mediadeclinedDescription": "Trimiteți notificări atunci când solicitările media sunt refuzate.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Primiți notificări atunci când alți utilizatori trimit noi solicitări media care necesită aprobare.", + "components.NotificationTypeSelector.usermediafailedDescription": "Primiți notificări când solicitările media nu pot fi adăugate la Radarr sau Sonarr.", + "components.PermissionEdit.autoapproveSeriesDescription": "Acordați aprobare automată pentru solicitările de seriale non-4K.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Primiți notificări când alți utilizatori trimit solicitări media noi, care sunt aprobate automat.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Primiți notificări când solicitările dvs. media sunt refuzate.", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Acordați aprobare automată pentru solicitările de serii 4K.", + "components.PermissionEdit.autoapproveMoviesDescription": "Acordați aprobare automată pentru solicitările de filme non-4K.", + "components.PermissionEdit.autoapproveSeries": "Aprobare Automată a Serialelor", + "components.PermissionEdit.autorequestDescription": "Acordați permisiunea de a trimite automat solicitări pentru conținut media non-4K prin Lista de Urmărire Plex.", + "components.PermissionEdit.autorequest": "Solicitare Automată", + "components.NotificationTypeSelector.userissueresolvedDescription": "Primiți notificări când problemele pe care le-ați raportat sunt rezolvate.", + "components.PermissionEdit.autorequestMovies": "Solicitați Automat Filme", + "components.PermissionEdit.autorequestMoviesDescription": "Acordați permisiunea de a trimite automat solicitări pentru filme non-4K prin Lista de Urmărire Plex.", + "components.MovieDetails.productioncountries": "Producție {countryCount, plural, one {Țară} other {Țări}}", + "components.PermissionEdit.request": "Solicitați", + "components.PermissionEdit.request4kDescription": "Acordați permisiunea de a trimite solicitări pentru conținut media 4K.", + "components.PermissionEdit.managerequestsDescription": "Acordați permisiunea de a gestiona solicitările media. Toate solicitările făcute de un utilizator cu această permisiune vor fi aprobate automat.", + "components.PermissionEdit.request4k": "Solicitați 4K", + "components.PermissionEdit.request4kTv": "Solicitați Seria TV în 4K", + "components.Layout.VersionStatus.streamstable": "Overseerr Stabil", + "components.PermissionEdit.request4kMoviesDescription": "Acordați permisiunea de a trimite solicitări pentru filme 4K.", + "components.PermissionEdit.createissuesDescription": "Acordați permisiunea de a raporta probleme media.", + "components.PermissionEdit.autorequestSeries": "Solicită Automat Seriale TV", + "components.PermissionEdit.autorequestSeriesDescription": "Acordați permisiunea de a trimite automat cereri pentru seriale tv non-4K prin Lista de Urmărire Plex.", + "components.PermissionEdit.createissues": "Raportați Probleme", + "components.PermissionEdit.manageissuesDescription": "Acordați permisiunea de a gestiona problemele media.", + "components.PermissionEdit.managerequests": "Gestionați Solicitările", + "components.PermissionEdit.request4kMovies": "Solicitați Filme 4K", + "components.Layout.VersionStatus.streamdevelop": "Overseerr Dezvoltat", + "components.PermissionEdit.manageissues": "Gestionarea Problemelor", + "components.ManageSlideOver.playedby": "Rulat De", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {rulare} other {rulări}}", + "components.ManageSlideOver.alltime": "Dintotdeauna" } diff --git a/src/i18n/locale/ru.json b/src/i18n/locale/ru.json index 2676327c3..aff13f01d 100644 --- a/src/i18n/locale/ru.json +++ b/src/i18n/locale/ru.json @@ -33,7 +33,7 @@ "components.RequestModal.cancel": "Отменить запрос", "components.RequestModal.extras": "Дополнительно", "components.RequestModal.numberofepisodes": "# эпизодов", - "components.RequestModal.pendingrequest": "", + "components.RequestModal.pendingrequest": "Ожидающий запрос", "components.RequestModal.requestCancel": "Запрос на {title} отменён.", "components.RequestModal.requestSuccess": "{title} успешно запрошен!", "components.RequestModal.requestadmin": "Этот запрос будет одобрен автоматически.", @@ -101,16 +101,12 @@ "components.Settings.addradarr": "Добавить сервер Radarr", "components.Settings.address": "Адрес", "components.Settings.addsonarr": "Добавить сервер Sonarr", - "components.Settings.apikey": "Ключ API", - "components.Settings.applicationurl": "URL-адрес приложения", "components.Settings.cancelscan": "Отменить сканирование", "components.Settings.copied": "Ключ API скопирован в буфер обмена.", "components.Settings.currentlibrary": "Текущая библиотека: {name}", "components.Settings.default": "По умолчанию", "components.Settings.default4k": "4К по умолчанию", "components.Settings.deleteserverconfirm": "Вы уверены, что хотите удалить этот сервер?", - "components.Settings.generalsettings": "Общие настройки", - "components.Settings.generalsettingsDescription": "Настройте глобальные параметры и параметры по умолчанию для Overseerr.", "components.Settings.hostname": "Имя хоста или IP-адрес", "components.Settings.librariesRemaining": "Осталось библиотек: {count}", "components.Settings.manualscan": "Сканировать библиотеки вручную", @@ -189,11 +185,9 @@ "components.UserList.create": "Создать", "components.TvDetails.network": "{networkCount, plural, one {Телеканал} other {Телеканалы}}", "components.TvDetails.anime": "Аниме", - "components.Settings.toastSettingsSuccess": "Настройки успешно сохранены!", "components.Settings.serverpresetManualMessage": "Ручная настройка", "components.Settings.serverpreset": "Сервер", "i18n.deleting": "Удаление…", - "components.Settings.applicationTitle": "Название приложения", "components.Settings.SettingsAbout.Releases.latestversion": "Последняя", "components.Settings.SettingsAbout.Releases.currentversion": "Текущая", "components.Settings.SonarrModal.syncEnabled": "Включить сканирование", @@ -236,7 +230,6 @@ "components.Settings.Notifications.sendSilently": "Отправлять без звука", "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Сбросить к настройкам по умолчанию", "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Вы должны указать действительный URL-адрес", - "components.Settings.validationApplicationUrl": "Вы должны указать действительный URL-адрес", "components.Settings.Notifications.validationUrl": "Вы должны указать действительный URL-адрес", "components.Settings.RadarrModal.validationApplicationUrl": "Вы должны указать действительный URL-адрес", "components.Settings.SonarrModal.validationApplicationUrl": "Вы должны указать действительный URL-адрес", @@ -276,7 +269,6 @@ "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Подтвердите пароль", "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Настройки успешно сохранены!", "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Разрешения успешно сохранены!", - "components.Settings.toastSettingsFailure": "Что-то пошло не так при сохранении настроек.", "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Что-то пошло не так при сохранении настроек.", "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Что-то пошло не так при сохранении настроек.", "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Отправлять уведомления без звука", @@ -378,17 +370,17 @@ "components.Settings.SettingsAbout.supportoverseerr": "Поддержать Overseerr", "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Получать уведомления, когда другие пользователи отправляют новые медиа-запросы, которые одобряются автоматически.", "components.NotificationTypeSelector.mediarequestedDescription": "Отправлять уведомления, когда пользователи отправляют новые медиа-запросы, требующие одобрения.", - "components.NotificationTypeSelector.mediarequested": "Запросы медиафайлов", + "components.NotificationTypeSelector.mediarequested": "Запросы, ожидающие одобрения", "components.NotificationTypeSelector.mediafailedDescription": "Отправлять уведомления, когда медиа-запросы не удаётся добавить в Radarr или Sonarr.", - "components.NotificationTypeSelector.mediafailed": "Ошибки при добавлении медиа-запросов", + "components.NotificationTypeSelector.mediafailed": "Ошибки при обработке запросов", "components.NotificationTypeSelector.mediadeclinedDescription": "Отправлять уведомления, когда медиа-запросы отклоняются.", "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Отправлять уведомления, когда пользователи отправляют новые медиа-запросы, которые одобряются автоматически.", - "components.NotificationTypeSelector.mediaAutoApproved": "Автоматическое одобрение медиа-запросов", - "components.NotificationTypeSelector.mediaapproved": "Одобрение медиа-запросов", + "components.NotificationTypeSelector.mediaAutoApproved": "Автоматическое одобрение запросов", + "components.NotificationTypeSelector.mediaapproved": "Одобрение запросов", "components.NotificationTypeSelector.mediaapprovedDescription": "Отправлять уведомления, когда медиа-запросы одобряются вручную.", - "components.NotificationTypeSelector.mediadeclined": "Отклонение медиа-запросов", + "components.NotificationTypeSelector.mediadeclined": "Отклонение запросов", "components.NotificationTypeSelector.mediaavailableDescription": "Отправлять уведомления, когда запрошенные медиафайлы становятся доступны.", - "components.NotificationTypeSelector.mediaavailable": "Доступны новые медиафайлы", + "components.NotificationTypeSelector.mediaavailable": "Доступны запрошенные медиафайлы", "components.MovieDetails.MovieCrew.fullcrew": "Полная съёмочная группа", "components.MovieDetails.viewfullcrew": "Посмотреть полную cъёмочную группу", "components.MovieDetails.showmore": "Развернуть", @@ -424,9 +416,9 @@ "components.Settings.RadarrModal.testFirstRootFolders": "Протестировать подключение для загрузки корневых каталогов", "components.Settings.RadarrModal.loadingrootfolders": "Загрузка корневых каталогов…", "components.RequestModal.AdvancedRequester.destinationserver": "Сервер-получатель", - "components.RequestList.RequestItem.mediaerror": "Название, связанное с этим запросом, больше недоступно.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} не найден", "components.RequestList.RequestItem.failedretry": "Что-то пошло не так при попытке повторить запрос.", - "components.RequestCard.mediaerror": "Название, связанное с этим запросом, больше недоступно.", + "components.RequestCard.mediaerror": "{mediaType} не найден", "components.RequestCard.failedretry": "Что-то пошло не так при попытке повторить запрос.", "components.RequestButton.viewrequest4k": "Посмотреть 4К запрос", "components.RequestButton.requestmore4k": "Запросить больше в 4К", @@ -561,12 +553,10 @@ "components.ResetPassword.requestresetlinksuccessmessage": "Ссылка для сброса пароля будет отправлена на указанный адрес электронной почты, если он связан с действительным пользователем.", "components.ResetPassword.gobacklogin": "Вернуться на страницу входа", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Языки для поиска фильмов и сериалов", - "components.Settings.region": "Регион для поиска фильмов и сериалов", - "components.Settings.originallanguage": "Языки для поиска фильмов и сериалов", "components.TvDetails.seasons": "{seasonCount, plural, one {# сезон} other {# сезонов}}", "components.RequestModal.QuotaDisplay.requiredquotaUser": "Этому пользователю необходимо иметь по крайней мере {seasons} {seasons, plural, one {запрос на сезоны} other {запроса(ов) на сезоны}} для того, чтобы отправить запрос на этот сериал.", "components.RequestModal.QuotaDisplay.requiredquota": "Вам необходимо иметь по крайней мере {seasons} {seasons, plural, one {запрос на сезоны} other {запроса(ов) на сезоны}} для того, чтобы отправить запрос на этот сериал.", - "components.RequestModal.pending4krequest": "", + "components.RequestModal.pending4krequest": "Ожидающий запрос в 4К", "components.RequestModal.autoapproval": "Автоматическое одобрение", "i18n.usersettings": "Настройки пользователя", "i18n.showingresults": "Показываются результаты с {from} по {to} из {total}", @@ -577,11 +567,9 @@ "i18n.request4k": "Запросить в 4К", "i18n.areyousure": "Вы уверены?", "components.RequestModal.alreadyrequested": "Уже запрошен", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Мы не смогли автоматически выполнить ваш запрос. Пожалуйста, выберите правильное совпадение из списка ниже.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Нам не удалось автоматически сопоставить этот сериал. Пожалуйста, выберите подходящее соответствие ниже.", "components.TvDetails.originaltitle": "Название оригинала", - "components.Settings.validationApplicationTitle": "Вы должны указать название приложения", "i18n.tvshow": "Сериал", - "components.Settings.partialRequestsEnabled": "Разрешить частичные запросы сериалов", "components.Settings.mediaTypeSeries": "сериал", "components.UserProfile.UserSettings.UserGeneralSettings.region": "Регион для поиска фильмов и сериалов", "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {сезон} other {сезоны}}", @@ -591,14 +579,12 @@ "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Не удалось сохранить настройки уведомлений по электронной почте.", "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Язык интерфейса", "components.UserList.validationpasswordminchars": "Пароль слишком короткий: он должен содержать не менее 8 символов", - "components.UserList.nouserstoimport": "Нет новых пользователей для импорта из Plex.", + "components.UserList.nouserstoimport": "Нет пользователей Plex для импорта.", "components.UserList.autogeneratepasswordTip": "Отправить пользователю пароль, сгенерированный сервером, по электронной почте", "components.TvDetails.viewfullcrew": "Посмотреть полную cъёмочную группу", "components.TvDetails.showtype": "Тип сериала", "components.TvDetails.TvCrew.fullseriescrew": "Полная съёмочная группа сериала", "components.TvDetails.TvCast.fullseriescast": "Полный актёрский состав сериала", - "components.Settings.trustProxyTip": "Позволяет Overseerr корректно регистрировать IP-адреса клиентов за прокси-сервером", - "components.Settings.originallanguageTip": "Контент фильтруется по языку оригинала", "components.Settings.noDefaultNon4kServer": "Если вы используете один сервер {serverType} для контента, в том числе и для 4К, или если вы загружаете только контент 4K, ваш сервер {serverType} НЕ должен быть помечен как 4К сервер.", "components.UserList.localLoginDisabled": "Параметр Включить локальный вход в настоящее время отключен.", "components.Settings.SettingsLogs.showall": "Показать все логи", @@ -609,15 +595,12 @@ "components.Settings.noDefaultServer": "По крайней мере один сервер {serverType} должен быть помечен как сервер по умолчанию для обработки запросов на {mediaType}ы.", "components.Settings.noDefault4kServer": "4K сервер {serverType} должен быть помечен как сервер по умолчанию, чтобы пользователи могли отправлять запросы на 4K {mediaType}ы.", "components.Settings.SonarrModal.validationLanguageProfileRequired": "Вы должны выбрать языковой профиль", - "components.Settings.validationApplicationUrlTrailingSlash": "URL-адрес не должен заканчиваться косой чертой", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Базовый URL-адрес должен иметь косую черту в начале", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Базовый URL-адрес должен начинаться с косой черты", "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Базовый URL-адрес должен иметь косую черту в начале", "components.Settings.SonarrModal.testFirstLanguageProfiles": "Протестировать подключение для загрузки языковых профилей", "components.Settings.SonarrModal.loadingTags": "Загрузка тегов…", "components.Settings.SonarrModal.enableSearch": "Включить автоматический поиск", "components.Settings.SonarrModal.edit4ksonarr": "Редактировать 4К сервер Sonarr", - "components.Settings.toastApiKeyFailure": "Что-то пошло не так при создании нового ключа API.", - "components.Settings.csrfProtectionTip": "Устанавливает доступ к API извне только для чтения (требуется HTTPS)", "components.Settings.SonarrModal.animequalityprofile": "Профиль качества для аниме", "components.Settings.SonarrModal.animelanguageprofile": "Языковой профиль для аниме", "components.Settings.SonarrModal.animeTags": "Теги для аниме", @@ -639,8 +622,6 @@ "components.Settings.SettingsLogs.copyToClipboard": "Скопировать в буфер обмена", "components.Settings.serverpresetRefreshing": "Получение списка серверов…", "components.Settings.SettingsJobsCache.jobstarted": "Задание \"{jobname}\" запущено.", - "components.Settings.cacheImagesTip": "Оптимизировать и хранить все изображения локально (потребляет значительный объем дискового пространства)", - "components.Settings.cacheImages": "Включить кэширование изображений", "components.Settings.SettingsJobsCache.unknownJob": "Неизвестное задание", "components.Settings.SettingsJobsCache.sonarr-scan": "Сканирование Sonarr", "components.Settings.SettingsJobsCache.runnow": "Выполнить сейчас", @@ -752,7 +733,7 @@ "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Пароли должны совпадать", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Что-то пошло не так при сохранении пароля. Правильно ли введен ваш текущий пароль?", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Что-то пошло не так при сохранении пароля.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "В настоящее время для этой учётной записи не установлен пароль. Установите пароль ниже, чтобы с этой учётной записью можно было войти в систему как \"локальный пользователь\".", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "В настоящее время для этой учётной записи не установлен пароль. Настройте его ниже, чтобы с этой учётной записью можно было войти в систему как \"локальный пользователь\".", "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "В настоящее время для вашей учётной записи не установлен пароль. Установите пароль ниже, чтобы иметь возможность войти в систему как \"локальный пользователь\", используя свой адрес электронной почты.", "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Настройки веб-push-уведомлений успешно сохранены!", "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Не удалось сохранить настройки веб-push-уведомлений.", @@ -768,9 +749,8 @@ "components.UserProfile.UserSettings.UserNotificationSettings.email": "Электронная почта", "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Настройки уведомлений Discord успешно сохранены!", "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Не удалось сохранить настройки уведомлений Discord.", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "ID вашей учётной записи", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Многозначный ID, связанный с вашей пользовательской учётной записью", "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID пользователя", - "components.Settings.locale": "Язык интерфейса", "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Тип учётной записи", "components.UserProfile.ProfileHeader.userid": "ID пользователя: {userid}", "components.UserProfile.ProfileHeader.settings": "Редактировать настройки", @@ -782,9 +762,9 @@ "components.UserList.userdeleteerror": "Что-то пошло не так при удалении пользователя.", "components.UserList.usercreatedfailed": "Что-то пошло не так при создании пользователя.", "components.UserList.passwordinfodescription": "Настройте URL-адрес приложения и включите уведомления по электронной почте, чтобы обеспечить возможность автоматической генерации пароля.", - "components.UserList.importfromplexerror": "Что-то пошло не так при импорте пользователей из Plex.", - "components.UserList.importfromplex": "Импортировать пользователей из Plex", - "components.UserList.importedfromplex": "{userCount, plural, one {# новый пользователь} other {# новых пользователя(ей)}} успешно импортированы из Plex!", + "components.UserList.importfromplexerror": "Что-то пошло не так при импорте пользователей Plex.", + "components.UserList.importfromplex": "Импортировать пользователей Plex", + "components.UserList.importedfromplex": "{userCount} {userCount, plural, one {пользователь} other {пользователя(ей)}} Plex успешно импортированы!", "components.UserList.edituser": "Изменить разрешения пользователя", "components.UserList.displayName": "Отображаемое имя", "components.UserList.deleteconfirm": "Вы уверены, что хотите удалить этого пользователя? Все данные о его запросах будут удалены без возможности восстановления.", @@ -801,7 +781,6 @@ "components.Settings.webpush": "Веб-push", "components.Settings.webAppUrlTip": "При необходимости направляйте пользователей в веб-приложение на вашем сервере вместо размещённого на plex.tv", "components.Settings.webAppUrl": "URL веб-приложения", - "components.Settings.trustProxy": "Включить поддержку прокси", "components.Settings.toastPlexRefreshSuccess": "Список серверов Plex успешно получен!", "components.Settings.toastPlexRefresh": "Получение списка серверов Plex…", "components.Settings.toastPlexRefreshFailure": "Не удалось получить список серверов Plex.", @@ -814,7 +793,6 @@ "components.Settings.serverRemote": "удалённый", "components.Settings.serverLocal": "локальный", "components.Settings.scan": "Синхронизировать библиотеки", - "components.Settings.regionTip": "Контент фильтруется по доступности в выбранном регионе", "components.Settings.SettingsLogs.logsDescription": "Вы также можете просматривать эти логи напрямую через stdout или в {appDataPath}/logs/overseerr.log.", "components.Settings.SettingsLogs.logs": "Логи", "components.Settings.SettingsLogs.logDetails": "Подробные сведения о логе", @@ -822,12 +800,8 @@ "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Контент фильтруется по языку оригинала", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "По умолчанию ({language})", "components.UserProfile.UserSettings.UserGeneralSettings.general": "Общее", - "components.Settings.general": "Общее", - "components.Settings.hideAvailable": "Скрывать доступные медиа", "components.Settings.SettingsUsers.userSettingsDescription": "Настройте глобальные параметры и параметры по умолчанию для пользователей.", "components.Settings.email": "Электронная почта", - "components.Settings.csrfProtectionHoverTip": "НЕ включайте этот параметр, если вы не понимаете, что делаете!", - "components.Settings.csrfProtection": "Включить защиту от CSRF", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "URL-адрес не должен заканчиваться косой чертой", "components.Settings.toastPlexConnectingSuccess": "Соединение с Plex установлено успешно!", "components.Settings.SonarrModal.toastSonarrTestSuccess": "Соединение с Sonarr установлено успешно!", @@ -844,9 +818,8 @@ "components.Settings.RadarrModal.edit4kradarr": "Редактировать 4К сервер Radarr", "components.Settings.RadarrModal.create4kradarr": "Добавить новый 4К сервер Radarr", "components.Settings.SonarrModal.default4kserver": "4К сервер по умолчанию", - "components.Settings.toastApiKeySuccess": "Новый ключ API успешно сгенерирован!", "components.Settings.SettingsJobsCache.editJobSchedule": "Изменить задание", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Частота", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Новая частота", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Задание успешно отредактировано!", "components.Settings.SettingsAbout.runningDevelop": "Вы используете ветку develop проекта Overseerr, которая рекомендуется только для тех, кто вносит вклад в разработку или помогает в тестировании.", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Что-то пошло не так при сохранении задания.", diff --git a/src/i18n/locale/sq.json b/src/i18n/locale/sq.json index 0b0a4c436..30ea8bda9 100644 --- a/src/i18n/locale/sq.json +++ b/src/i18n/locale/sq.json @@ -177,15 +177,12 @@ "components.Settings.notifications": "Njoftimet", "components.Settings.notificationsettings": "Cilësimet e njoftimit", "components.Settings.notrunning": "Nuk Po Punon", - "components.Settings.originallanguage": "Zbuloni gjuhën", "components.Settings.plexlibraries": "Libraritë e Plex", "components.Settings.scan": "Sinkronizoni Libraritë", "components.Settings.scanning": "Po sinkronizohet…", "components.Settings.serverSecure": "i sigurt", "components.Settings.serverpreset": "Serveri", "components.Settings.serverpresetLoad": "Shtyp butonin për të ngarkuar serverët e disponueshëm", - "components.Settings.toastApiKeyFailure": "Diçka shkoi keq duke gjeneruar një çelës të ri API.", - "components.Settings.toastApiKeySuccess": "Çelësi i ri API u prodhua me sukses!", "components.Settings.toastPlexConnecting": "Duke u përpjekur për t'u lidhur me Plex…", "components.Settings.toastPlexConnectingFailure": "Dështoi lidhja me Plex.", "components.Settings.toastPlexConnectingSuccess": "Lidhja Plex u krijua me sukses!", @@ -285,15 +282,15 @@ "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Nuk kanë mbetur kërkesa të mjaftueshme për sezonin", "components.RequestModal.QuotaDisplay.quotaLink": "Ju mund të shikoni një përmbledhje të kufizimeve tuaja të kërkesës në faqen tuaj të profilit.", "components.RequestModal.QuotaDisplay.season": "sezon", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nuk mund të përputheshim automatikisht me kërkesën tënde. Ju lutem zgjidhni ndeshjen e saktë nga lista më poshtë.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nuk mundëm ta përputhim automatikisht këtë seri. Ju lutemi zgjidhni përputhjen e saktë më poshtë.", "components.RequestModal.alreadyrequested": "E Kërkuar Tashmë", "components.RequestModal.approve": "Mirato Kërkesën", "components.RequestModal.autoapproval": "Aprovim automatik", "components.RequestModal.edit": "Ndrysho kërkesën", "components.RequestModal.errorediting": "Diçka shkoi keq duke modifikuar kërkesën.", "components.RequestModal.numberofepisodes": "# i Episodeve", - "components.RequestModal.pending4krequest": "", - "components.RequestModal.pendingrequest": "Kërkesë në pritje", + "components.RequestModal.pending4krequest": "Kërkesë 4K në pritje", + "components.RequestModal.pendingrequest": "Kërkesë në Pritje", "components.RequestModal.requestApproved": "Kërkesa për {title} u miratua!", "components.RequestModal.requestCancel": "Kërkesa për {title} u anullua.", "components.RequestModal.requestSuccess": "{title} u kërkua me sukses!", @@ -412,7 +409,7 @@ "components.RequestButton.requestmore4k": "Kërko më shumë në 4K", "components.RequestModal.AdvancedRequester.qualityprofile": "Profili i cilësisë", "components.RequestModal.AdvancedRequester.tags": "Etiketat", - "components.RequestCard.mediaerror": "Titulli shoqërues për këtë kërkesë nuk është më në dispozicion.", + "components.RequestCard.mediaerror": "{mediaType} Nuk u gjet", "components.RequestList.RequestItem.editrequest": "Ndrysho kërkesën", "components.RequestModal.AdvancedRequester.rootfolder": "Direktoria", "components.RequestButton.approverequest": "Mirato Kërkesën", @@ -421,7 +418,7 @@ "components.RequestBlock.profilechanged": "Profili i cilësisë", "components.RequestButton.approverequest4k": "Mirato kërkesën 4K", "components.RequestCard.deleterequest": "Fshije Kërkesën", - "components.RequestList.RequestItem.mediaerror": "Titulli shoqërues për këtë kërkesë nuk është më në dispozicion.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} Nuk u gjet", "components.RequestButton.viewrequest": "Shiko Kërkesën", "components.RequestList.RequestItem.deleterequest": "Fshije Kërkesën", "components.RequestList.RequestItem.failedretry": "Diçka shkoi keq duke e riprovuar kërkesën.", @@ -497,7 +494,6 @@ "components.Settings.Notifications.toastDiscordTestSuccess": "Njoftimi i testit të Discord u dërgua!", "components.Settings.Notifications.toastEmailTestFailed": "Njoftimi i testit me email nuk u dërgua.", "components.Settings.Notifications.toastEmailTestSending": "Po dërgohet njoftimi i testit me email…", - "components.Settings.partialRequestsEnabled": "Lejo kërkesat e serive të pjesshme", "components.Settings.startscan": "Nis skanimin", "components.Settings.tautulliApiKey": "Çelësi API", "components.Settings.tautulliSettings": "Cilësimet e Tautulli", @@ -510,13 +506,10 @@ "components.Settings.radarrsettings": "Cilësimet e Radarr", "components.Settings.serverRemote": "në distancë", "components.Settings.sonarrsettings": "Cilësimet e Sonarr", - "components.Settings.originallanguageTip": "Filtro përmbajtjen nga gjuha origjinale", - "components.Settings.regionTip": "Filtro përmbajtjen sipas disponueshmërisë rajonale", "components.Settings.serverLocal": "lokale", "components.Settings.serverpresetRefreshing": "Duke marrë serverat…", "components.Settings.tautulliSettingsDescription": "Konfiguro në mënyrë opsionale rregullimet për serverin tënd Tautulli. Overseerr merr të dhënat e historisë për mediat tuaja Plex nga Tautulli.", "components.Settings.plexsettings": "Cilësimet e Plex", - "components.Settings.region": "Zbuloni rajonin", "components.Settings.serverpresetManualMessage": "Konfigurimi manual", "components.Settings.services": "Shërbime", "components.Settings.toastPlexRefreshFailure": "Gabim gjatë marrjes së listës së serverave Plex.", @@ -597,7 +590,7 @@ "components.Settings.SettingsJobsCache.command": "Komandë", "components.Settings.SettingsJobsCache.download-sync-reset": "Rivendos Sinkronizimin e Shkarkimit", "components.Settings.SettingsJobsCache.editJobSchedule": "Modifiko punën", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekuenca", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekuenca e re", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Çdo {jobScheduleHours, plural, one {orë} other {{jobScheduleHours} orë}}", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Çdo {jobScheduleMinutes, plural, one {minutë} other {{jobScheduleMinutes} minuta}}", "components.Settings.SettingsJobsCache.flushcache": "Pastro Cache", @@ -650,17 +643,10 @@ "components.Settings.settingUpPlexDescription": "Për të vendosur Plex, ju ose mund të vendosni detajet manualisht ose të zgjidhni një server të marrë nga plex.tv. Shtyp butonin në të djathtë të listës për të marrë listën e serverëve në dispozicion.", "components.Settings.ssl": "SSL", "components.Settings.toastPlexRefreshSuccess": "Lista e serverëve Plex u mor me sukses!", - "components.Settings.toastSettingsFailure": "Diçka shkoi keq duke ruajtur cilësimet.", - "components.Settings.toastSettingsSuccess": "Cilësimet u ruajtën me sukses!", "components.Settings.toastTautulliSettingsFailure": "Diçka shkoi keq duke ruajtur cilësimet e Tautullit.", "components.Settings.toastTautulliSettingsSuccess": "Cilësimet e Tautulli u ruajtën me sukses!", - "components.Settings.trustProxy": "Aktivo suportin Proxy", - "components.Settings.trustProxyTip": "Lejo Overseerr të regjistrojë në mënyrë korrekte adresat IP të klientit prapa një proxy", "components.Settings.urlBase": "Baza URL", "components.Settings.validationApiKey": "Duhet të japësh një çelës API", - "components.Settings.validationApplicationTitle": "Duhet të japësh një titull aplikacioni", - "components.Settings.validationApplicationUrl": "Duhet të jepni një URL të vlefshme", - "components.Settings.validationApplicationUrlTrailingSlash": "URL nuk duhet të përfundojë me një slesh", "components.Settings.validationPortRequired": "Duhet të jepni një numër të vlefshëm porte", "components.Settings.validationUrl": "Duhet të jepni një URL të vlefshme", "components.Settings.validationUrlBaseLeadingSlash": "Baza e URL-së duhet të ketë slesh përpara", @@ -948,16 +934,8 @@ "components.Settings.addradarr": "Shto Serverin Radarr", "components.Settings.address": "Adresa", "components.Settings.addsonarr": "Shto Serverin Sonarr", - "components.Settings.apikey": "Çelësi API", - "components.Settings.applicationTitle": "Titulli i aplikacionit", - "components.Settings.applicationurl": "URL e aplikacionit", - "components.Settings.cacheImages": "Aktivizo memorien e imazheve", - "components.Settings.cacheImagesTip": "Optimizo dhe ruaj të gjitha imazhet në vend (konsumon një sasi të konsiderueshme të hapësirës së diskut)", "components.Settings.cancelscan": "Anullo skanimin", "components.Settings.copied": "Çelësi API u kopjua.", - "components.Settings.csrfProtection": "Aktivo mbrojtjen e CSRF", - "components.Settings.csrfProtectionHoverTip": "MOS e aktivizoni këtë cilësim nëse nuk e kuptoni se çfarë po bëni!", - "components.Settings.csrfProtectionTip": "Cakto aksesin e API-së së jashtme vetëm për lexim (kërkon HTTPS)", "components.Settings.currentlibrary": "Libraria aktuale: {name}", "components.Settings.default": "E paracaktuar", "components.Settings.default4k": "E Paracaktuar 4K", @@ -965,14 +943,9 @@ "components.Settings.email": "Email", "components.Settings.enablessl": "Përdorni SSL", "components.Settings.externalUrl": "URL e jashtme", - "components.Settings.general": "Gjeneral", - "components.Settings.generalsettings": "Cilësimet e përgjithshme", - "components.Settings.generalsettingsDescription": "Konfiguro cilësimet globale dhe të paracaktuara për Overseerr.", - "components.Settings.hideAvailable": "Fshih mediat e disponueshme", "components.Settings.hostname": "Emri i hostit ose adresa IP", "components.Settings.is4k": "4K", "components.Settings.librariesRemaining": "Libraritë e mbetura: {count}", - "components.Settings.locale": "Shfaq Gjuhën", "components.Settings.manualscan": "Skanimi manual i Librarisë", "components.Settings.manualscanDescription": "Normalisht, kjo do të bëhet vetëm një herë në 24 orë. Overseerr do të kontrollojë serverin tuaj Plex për media të shtuar kohët e fundit në mënyrë më agresive. Nëse kjo është hera e parë që konfiguroni Plex, këshillohet një skanim manual një herë i plotë i librarisë!", "components.Settings.mediaTypeMovie": "film", @@ -1067,5 +1040,61 @@ "components.RequestBlock.lastmodifiedby": "Ndryshuar së fundi nga", "components.RequestBlock.requestdate": "Data e Kërkesës", "components.RequestBlock.requestedby": "Kërkuar nga", - "components.RequestCard.approverequest": "Mirato Kërkesën" + "components.RequestCard.approverequest": "Mirato Kërkesën", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Frekuenca Aktuale", + "components.StatusBadge.managemedia": "Menaxho {mediaType}", + "components.StatusBadge.openinarr": "Hape në {arr}", + "components.TvDetails.Season.somethingwentwrong": "Ndodhi një gabim gjatë marrjes së të dhënave të sezonit.", + "components.TvDetails.episodeCount": "{episodeCount, plural, një {# Episode} disa {# Episodes}}", + "components.TvDetails.rtaudiencescore": "Rezultati i audiencës së Rotten Tomatoes", + "components.TvDetails.rtcriticsscore": "Tomatometeri i Rotten Tomatoes", + "components.TvDetails.seasonnumber": "Sezoni {seasonNumber}", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.tmdbuserscore": "Nota e përdoruesve TMDB", + "components.Settings.deleteServer": "Fshi serverin {serverType}", + "components.StatusChecker.appUpdated": "{applicationTitle} u Përditësua", + "i18n.restartRequired": "Kërkohet rinisja", + "components.StatusChecker.reloadApp": "Rifresko {applicationTitle}", + "components.StatusChecker.restartRequired": "Kërkohet rinisja e serverit", + "components.RequestList.RequestItem.tmdbid": "ID e TMDB", + "components.StatusChecker.appUpdatedDescription": "Ju lutem klikoni butonin më poshtë për të ringarkuar aplikacionin.", + "components.StatusChecker.restartRequiredDescription": "Rinis serverin për të aplikuar rregullimet e përditësuara.", + "components.TitleCard.cleardata": "Pastro të dhënat", + "components.TitleCard.mediaerror": "{mediaType} Nuk u gjet", + "components.TitleCard.tmdbid": "ID e TMDB", + "components.Settings.SettingsLogs.viewdetails": "Shiko Detajet", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Kërkesa Automatike Serialesh", + "components.TvDetails.reportissue": "Raportoni një problem", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatikisht kërko serialet në Listën e Vëzhgimit Plex", + "components.TvDetails.manageseries": "Menaxho Serinë", + "components.Settings.restartrequiredTooltip": "Overseerr duhet të riniset që ndryshimet në këtë cilësim të hyjnë në fuqi", + "components.StatusBadge.playonplex": "Luaje në Plex", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Sinkronizimi i listës së vëzhgimit Plex", + "components.Settings.experimentalTooltip": "Aktivizimi i këtij cilësimi mund të rezultojë në sjellje të papritur të aplikacionit", + "components.Settings.advancedTooltip": "Konfigurimi i gabuar i këtij përcaktimi mund të rezultojë në një funksionalitet të prishur", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatikisht kërko filmat në Listën e Vëzhgimit Plex", + "components.TitleCard.tvdbid": "ID e TheTVDB", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Kërkesë automatike për filma", + "components.UserProfile.plexwatchlist": "Lista e vëzhgimit Plex", + "components.RequestCard.tmdbid": "ID e TMDB", + "components.RequestCard.tvdbid": "ID e TheTVDB", + "components.RequestList.RequestItem.tvdbid": "ID e TheTVDB", + "components.RequestCard.declinerequest": "Refuzo Kërkesën", + "components.RequestCard.editrequest": "Ndrysho Kërkesën", + "components.TvDetails.seasonstitle": "Sezonet", + "components.RequestModal.SearchByNameModal.nomatches": "Nuk mundëm të gjenim një përputhje për këtë seri.", + "components.RequestCard.cancelrequest": "Anulo Kërkesën", + "components.RequestModal.requestcollection4ktitle": "Kërko Koleksionin në 4K", + "components.RequestModal.requestcollectiontitle": "Kërko Koleksionin", + "components.RequestModal.requestmovie4ktitle": "Kërko Filmin në 4K", + "components.RequestModal.requestmovietitle": "Kërko Filmin", + "components.RequestModal.requestseries4ktitle": "Kërko Serinë në 4K", + "components.RequestModal.requestseriestitle": "Kërko Serialin", + "components.UserProfile.emptywatchlist": "Media të shtuara në Listën e Vëzhgimit Plex do të shfaqen këtu.", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Pastrimi i Imazheve në Memorien Kashe", + "components.Settings.SettingsJobsCache.imagecache": "Imazhet e Ruajtura", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Kur aktivizohet në cilësime, Overseerr do të ruajë imazhet nga burime të jashtme të konfiguruara përparësisht. Imazhet e ruajtura ndodhet në direktorinë config.You mund ti jeni skedarët në {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Imazhet u Ruajtën", + "components.Settings.SettingsJobsCache.imagecachesize": "Madhësia Totale e Ruajtjes", + "components.TvDetails.Season.noepisodes": "Lista e Episodeve është e padisponueshme." } diff --git a/src/i18n/locale/sr.json b/src/i18n/locale/sr.json index d04487c99..83ec5c49e 100644 --- a/src/i18n/locale/sr.json +++ b/src/i18n/locale/sr.json @@ -49,10 +49,6 @@ "components.Setup.configureplex": "Konfiguriši Plex", "components.Settings.validationPortRequired": "Morate dodati važeći broj porta", "components.Settings.validationHostnameRequired": "Morate dodati važeći hostname ili IP adresu", - "components.Settings.toastSettingsSuccess": "Podešavanja sačuvana!", - "components.Settings.toastSettingsFailure": "Nešto nije uredu pri čuvanju podešavanja.", - "components.Settings.toastApiKeySuccess": "Novi API Ključ generisan uspešno!", - "components.Settings.toastApiKeyFailure": "Nešto nije odradjeno kako treba pri generisanju novog API ključa.", "components.Settings.startscan": "Pokreni skeniranje", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Sonarr podešavanja", @@ -74,16 +70,12 @@ "components.Settings.manualscan": "Ručno skeniranje sadržaja", "components.Settings.librariesRemaining": "Broj sadržaja koji se obradjuje: {count}", "components.Settings.hostname": "Hostname ili IP adresa", - "components.Settings.generalsettingsDescription": "Konfiguriši globalna i uobičajena podešavanja za Overseerr.", - "components.Settings.generalsettings": "Standarna podešavanja", "components.Settings.deleteserverconfirm": "Da li ste sigurni da želite da izbrišete ovaj server?", "components.Settings.default4k": "Podrazumevano 4K", "components.Settings.default": "Podrazumeno", "components.Settings.currentlibrary": "Trenutna biblioteka: {name}", "components.Settings.copied": "Kopiran API ključ.", "components.Settings.cancelscan": "Otkaži skeniranje", - "components.Settings.applicationurl": "URL Aplikacije", - "components.Settings.apikey": "API Ključ", "components.Settings.addsonarr": "Dodaj Sonarr server", "components.Settings.address": "Adresa", "components.Settings.addradarr": "Dodaj Radarr server", @@ -261,7 +253,6 @@ "components.Settings.SettingsJobsCache.cache": "Keš", "components.Settings.SettingsLogs.filterInfo": "Info", "components.Settings.SonarrModal.tags": "Oznake", - "components.Settings.general": "Opšte", "components.Settings.mediaTypeMovie": "film", "components.UserList.owner": "Vlasnik", "components.UserList.password": "Lozinka", @@ -328,7 +319,6 @@ "components.Settings.Notifications.senderName": "Ime pošiljaoca", "components.DownloadBlock.estimatedtime": "Procenjeno {time}", "components.RequestModal.AdvancedRequester.requestas": "Zahtevaj kao", - "components.Settings.applicationTitle": "Naziv aplikacije", "i18n.retrying": "Ponovni pokušaj…", "components.Discover.MovieGenreSlider.moviegenres": "Žanrovi filmova", "components.Discover.TvGenreSlider.tvgenres": "Žanrovi serija", @@ -337,7 +327,6 @@ "components.RegionSelector.regionDefault": "Svi regioni", "components.Settings.SonarrModal.externalUrl": "Eksterni URL", "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} filmova", - "components.Settings.originallanguage": "Otkrijte jezik", "components.CollectionDetails.numberofmovies": "{count} filmova", "components.RequestList.sortAdded": "Najnoviji", "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} filmovi", @@ -426,7 +415,6 @@ "components.Settings.SettingsJobsCache.cachekeys": "Ukupno ključeva", "components.Settings.SettingsJobsCache.canceljob": "Otkaži posao", "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} je otkazan.", - "components.Settings.region": "Otkrijte region", "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID korisnika", "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Podešavanje notifikacija", "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Potvrdi lozinku", @@ -567,7 +555,6 @@ "components.Settings.SonarrModal.validationApplicationUrl": "Moraš uneti validnu URL adresu", "components.Settings.SonarrModal.validationLanguageProfileRequired": "Moraš izabrati jezički profil", "components.Settings.externalUrl": "Spoljni URL", - "components.Settings.regionTip": "Filtriraj sadržaj po regionalnoj dostupnosti", "components.Settings.tautulliSettings": "Tautulli podešavanja", "components.Settings.tautulliApiKey": "API ključ", "components.Settings.toastTautulliSettingsFailure": "Nešto nije u redu prilikom čuvanja Tautulli podešavanja.", diff --git a/src/i18n/locale/sv.json b/src/i18n/locale/sv.json index b363ea80d..8f9cd8410 100644 --- a/src/i18n/locale/sv.json +++ b/src/i18n/locale/sv.json @@ -6,10 +6,6 @@ "components.Setup.configureplex": "Konfigurera Plex", "components.Settings.validationPortRequired": "Du måste ange ett giltigt port nummer", "components.Settings.validationHostnameRequired": "Du måste ange giltigt värdnamn eller IP-adress", - "components.Settings.toastSettingsSuccess": "Inställningar sparade!", - "components.Settings.toastSettingsFailure": "Något gick fel när inställningarna skulle sparas.", - "components.Settings.toastApiKeySuccess": "Ny API-nyckel skapad!", - "components.Settings.toastApiKeyFailure": "Något gick fel vid skapandet av ny API-nyckel.", "components.Settings.startscan": "Starta scanning", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Sonarrinställningar", @@ -32,16 +28,12 @@ "components.Settings.manualscan": "Manuell Biblioteksscan", "components.Settings.librariesRemaining": "Kvarvarande Bibliotek: {count}", "components.Settings.hostname": "Värdnamn eller IP-adress", - "components.Settings.generalsettingsDescription": "Konfigurera global- och standardinställningar för Overseerr.", - "components.Settings.generalsettings": "Generella Inställningar", "components.Settings.deleteserverconfirm": "Är du säker på att du vill radera servern?", "components.Settings.default4k": "Standard 4K", "components.Settings.default": "Standard", "components.Settings.currentlibrary": "Nuvarande Bibliotek: {name}", "components.Settings.copied": "API-nyckel kopierad.", "components.Settings.cancelscan": "Avbryt scanning", - "components.Settings.applicationurl": "Applikations-URL", - "components.Settings.apikey": "API-nyckel", "components.Settings.addsonarr": "Lägg till Sonarr Server", "components.Settings.address": "Adress", "components.Settings.addradarr": "Lägg till Radarr Server", @@ -294,7 +286,6 @@ "components.NotificationTypeSelector.mediaapproved": "Begäran godkänd", "components.MovieDetails.viewfullcrew": "Visa Filmteam", "components.MovieDetails.MovieCrew.fullcrew": "Filmteam", - "components.Settings.csrfProtection": "Aktivera CSRF-skydd", "components.UserList.userssaved": "Användarbehörigheter sparade!", "components.UserList.bulkedit": "Mass-redigering", "components.PermissionEdit.usersDescription": "Bevilja behörighet att hantera användare. Användare med denna behörighet kan inte ändra användare med eller bevilja administratörsbehörighet.", @@ -313,9 +304,8 @@ "components.PlexLoginButton.signinwithplex": "Logga in", "components.PlexLoginButton.signingin": "Loggar in…", "components.RequestModal.requesterror": "Någonting gick fel vid behandling av din begäran.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Vi kunde inte automatiskt matcha din begäran. Var god välj den korrekta matchningen från listan nedanför.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Vi kunde inte automatiskt matcha den här serien. Var god välj den korrekta matchningen nedan.", "i18n.experimental": "Experimentell", - "components.Settings.hideAvailable": "Göm Tillgänglig Media", "components.RequestModal.autoapproval": "Automatiskt Godkännande", "i18n.edit": "Redigera", "components.RequestModal.requestedited": "Förfrågan för {title} redigerad!", @@ -393,8 +383,6 @@ "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du måste ange en giltig URL", "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du måste ange en giltig URL", "components.Settings.RadarrModal.validationApplicationUrl": "Du måste ange en giltig URL", - "components.Settings.validationApplicationUrlTrailingSlash": "URL:n får inte avslutas med ett slash", - "components.Settings.validationApplicationUrl": "Du måste ange en giltig URL", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "URL:n får inte avslutas med ett slash", "components.Settings.SonarrModal.validationApplicationUrl": "Du måste ange en giltig URL", "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "URL:n får inte avslutas med ett slash", @@ -402,14 +390,11 @@ "components.PermissionEdit.viewrequests": "Visa Förfrågningar", "components.RequestModal.AdvancedRequester.requestas": "Begär Som", "components.Setup.setup": "Installationsguide", - "components.Settings.validationApplicationTitle": "Du måste ange en applikationstitel", "components.UserList.users": "Användare", - "components.Settings.applicationTitle": "Applikationstitel", "components.Search.search": "Sök", "components.Settings.SettingsJobsCache.process": "Process", "components.Settings.SettingsJobsCache.command": "Kommando", "i18n.advanced": "Avancerad", - "components.Settings.csrfProtectionHoverTip": "Aktivera INTE denna inställning om du inte förstår vad det är du gör!", "components.Settings.SettingsJobsCache.runnow": "Kör Nu", "components.Settings.SettingsJobsCache.nextexecution": "Nästa Körning", "components.Settings.SettingsJobsCache.jobtype": "Typ", @@ -429,8 +414,6 @@ "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} cache rensad.", "components.Settings.SettingsJobsCache.cacheDescription": "Overseerr cachear förfrågningar till externa API-endpoints för att optimera prestanda och att undvika onödiga api-kall.", "components.Settings.SettingsJobsCache.cache": "Cache", - "components.Settings.trustProxyTip": "Tillåt Overseerr att korrekt registrera klienters IP-adresser bakom en proxy", - "components.Settings.trustProxy": "Aktivera Proxy-stöd", "components.TvDetails.playonplex": "Spela upp på Plex", "components.TvDetails.play4konplex": "Spela upp i 4K på Plex", "components.Settings.SonarrModal.syncEnabled": "Aktivera skanning", @@ -452,7 +435,6 @@ "components.Settings.serverpreset": "Server", "components.Settings.serverRemote": "fjärr", "components.Settings.serverLocal": "lokal", - "components.Settings.csrfProtectionTip": "Ställ in extern API-åtkomst till skrivskyddad (kräver HTTPS)", "i18n.loading": "Laddar…", "components.UserProfile.recentrequests": "Senaste förfrågningar", "components.UserProfile.UserSettings.menuPermissions": "Behörigheter", @@ -514,10 +496,6 @@ "components.Settings.webhook": "Webhook", "components.Settings.scanning": "Synkar…", "components.Settings.scan": "Skanna bibliotek", - "components.Settings.regionTip": "Filtrera innehåll efter region tillgänglighet", - "components.Settings.region": "Upptäck region", - "components.Settings.originallanguageTip": "Filtrera innehåll efter originalspråk", - "components.Settings.originallanguage": "Upptäck språk", "components.Settings.notificationAgentSettingsDescription": "Konfigurera och aktivera aviseringsagenter.", "components.Settings.menuUsers": "Användare", "components.Settings.email": "E-post", @@ -528,7 +506,7 @@ "components.Settings.SonarrModal.languageprofile": "Spårkprofil", "components.Settings.SonarrModal.animelanguageprofile": "Anime språkprofil", "components.Settings.SettingsUsers.userSettingsDescription": "Konfigurera globala och standardinställningar för användare.", - "components.Settings.SettingsUsers.userSettings": "Anvädnarinställningar", + "components.Settings.SettingsUsers.userSettings": "Användarinställningar", "components.Settings.SettingsUsers.toastSettingsSuccess": "Användarinställningar sparade!", "components.Settings.SettingsUsers.toastSettingsFailure": "Något gick fel när inställningarna sparades.", "components.Settings.SettingsUsers.localLogin": "Aktivera lokal inloggning", @@ -587,7 +565,6 @@ "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", "components.TvDetails.episodeRuntimeMinutes": "{runtime} minuter", "components.TvDetails.episodeRuntime": "Avsnittets speltid", - "components.Settings.partialRequestsEnabled": "Tillåt begäran av ofullständig serie", "components.Settings.Notifications.pgpPrivateKeyTip": "Signera krypterade e-postmeddelanden med OpenPGP ", "components.Settings.Notifications.pgpPrivateKey": "PGP Privat nyckel", "components.Settings.Notifications.pgpPasswordTip": "Signera krypterade e-postmeddelanden med OpenPGP ", @@ -606,7 +583,6 @@ "components.Settings.services": "Tjänster", "components.Settings.plex": "Plex", "components.Settings.notifications": "Notifieringar", - "components.Settings.general": "Allmäna", "components.Settings.SettingsUsers.users": "Användare", "components.Settings.SettingsLogs.time": "Tidsstämpel", "components.Settings.SettingsLogs.showall": "Visa alla loggar", @@ -624,8 +600,6 @@ "components.Settings.SettingsJobsCache.jobsandcache": "Jobb & Cache", "components.Settings.SettingsAbout.about": "Om", "components.ResetPassword.passwordreset": "Återställning av lösenord", - "components.Settings.cacheImagesTip": "Optimera och lagra alla bilder lokalt (använder en betydande mängd diskutrymme)", - "components.Settings.cacheImages": "Aktivera bild-cachning", "components.Settings.SettingsLogs.logDetails": "Logginformation", "components.Settings.SettingsLogs.extraData": "Ytterligare data", "components.Settings.SettingsLogs.copyToClipboard": "Kopiera till urklipp", @@ -705,9 +679,9 @@ "components.RequestModal.AdvancedRequester.selecttags": "Välj taggar", "components.RequestModal.AdvancedRequester.notagoptions": "Inga taggar.", "components.Settings.RadarrModal.loadingTags": "Laddar taggar…", - "components.RequestList.RequestItem.mediaerror": "Den tillhörande titeln för den här begäran är inte längre tillgänglig.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} Hittades inte", "components.RequestList.RequestItem.deleterequest": "Ta bort begäran", - "components.RequestCard.mediaerror": "Den tillhörande titeln för denna begäran är inte längre tillgänglig.", + "components.RequestCard.mediaerror": "{mediaType} hittades inte", "components.RequestCard.deleterequest": "Ta bort begäran", "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Notifieringsinställningar för Discord kunde inte sparas.", "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du måste ange en giltig offentlig PGP-nyckel", @@ -797,7 +771,6 @@ "components.PermissionEdit.requestMoviesDescription": "Ge tillåtelse att skicka in förfrågningar om icke-4K-filmer.", "components.PermissionEdit.requestMovies": "Begär filmer", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", - "components.Settings.locale": "Visningsspråk", "components.Settings.Notifications.webhookUrlTip": "Skapa en integrering av webbhook på din server", "components.Settings.Notifications.encryptionTip": "I de flesta fall använder Implicit TLS port 465 och STARTTLS använder port 587", "components.Settings.Notifications.encryptionOpportunisticTls": "Använd alltid STARTTLS", @@ -846,7 +819,7 @@ "components.TvDetails.streamingproviders": "Strömmas för närvarande på", "components.MovieDetails.streamingproviders": "Strömmas för närvarande på", "components.Settings.SettingsJobsCache.editJobSchedule": "Ändra jobb", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekvens", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Ny Frekvens", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Varje {jobScheduleHours, plural, one {timme} other {{jobScheduleHours} timmar}}", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "varje{jobScheduleMinutes, plural, one {minut} other {{jobScheduleMinutes} minuter}}", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Något gick fel vid sparning av jobbet.", @@ -1037,5 +1010,91 @@ "components.StatusChecker.appUpdated": "{applicationTitle} Uppdaterad", "components.StatusChecker.appUpdatedDescription": "Klicka på knappen under för att ladda om programmet.", "components.StatusChecker.restartRequired": "Servern behöver startas om", - "components.StatusChecker.restartRequiredDescription": "Starta om servern för att verkställa uppdaterade inställningar." + "components.StatusChecker.restartRequiredDescription": "Starta om servern för att verkställa uppdaterade inställningar.", + "components.MovieDetails.digitalrelease": "Digital utgåva", + "components.MovieDetails.physicalrelease": "Fysisk utgåva", + "components.PermissionEdit.viewrecent": "Se nyligen tillagda", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Din Plex spellista", + "components.RequestCard.tmdbid": "TMDB ID", + "components.Discover.plexwatchlist": "Din Plex spellista", + "components.Discover.DiscoverWatchlist.watchlist": "Plex spellista", + "components.MovieDetails.reportissue": "Rapportera ett problem", + "components.AirDateBadge.airedrelative": "Sändes {relativeTime}", + "components.AirDateBadge.airsrelative": "Sänds {relativeTime}", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Önskade serier", + "components.RequestCard.approverequest": "Godkänn begäran", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestBlock.approve": "Godkänn begäran", + "components.RequestBlock.decline": "Neka begäran", + "components.RequestBlock.delete": "Ta bort begäran", + "components.RequestBlock.edit": "Editera begäran", + "components.RequestBlock.lastmodifiedby": "Senast modifierad av", + "components.RequestCard.declinerequest": "Neka begäran", + "components.RequestCard.cancelrequest": "Annullera begäran", + "components.MovieDetails.theatricalrelease": "Teaterutgåva", + "components.PermissionEdit.autorequest": "Automatisk begäran", + "components.MovieDetails.managemovie": "Hantera Film", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmbegäran", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes publiksiffror", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.tmdbuserscore": "TMDB Användarpoäng", + "components.NotificationTypeSelector.mediaautorequested": "Begäran skickas automatiskt", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Få meddelande när nya medieförfrågningar skickas in automatiskt för objekt på din bevakningslista för Plex.", + "components.Discover.emptywatchlist": "Media som lagts till i din Plex Watchlist visas här.", + "components.Layout.UserDropdown.requests": "Begäran", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Avsnitt} other {# Avsnitt}}", + "components.TvDetails.seasonstitle": "Säsonger", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Rensning av bildcache", + "components.Settings.SettingsJobsCache.imagecache": "Bildcache", + "components.Settings.SettingsJobsCache.imagecachecount": "Bilder cachade", + "components.Settings.SettingsJobsCache.imagecachesize": "Total cache-storlek", + "components.Settings.experimentalTooltip": "Om du aktiverar den här inställningen kan det leda till oväntat beteende i programmet", + "components.TitleCard.tmdbid": "TMDB ID", + "components.PermissionEdit.autorequestDescription": "Ge tillstånd att automatiskt skicka in förfrågningar för medier som inte är 4K-medier via Plex Watchlist.", + "components.PermissionEdit.autorequestSeriesDescription": "Ge tillstånd att automatiskt skicka in förfrågningar för icke-4K-serier via Plex Watchlist.", + "components.PermissionEdit.autorequestSeries": "Begär automatiskt serier", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Synkronisering av Plex Watchlist", + "components.Settings.advancedTooltip": "Om du konfigurerar den här inställningen felaktigt kan det leda till att funktionerna inte fungerar", + "components.Settings.restartrequiredTooltip": "Overseerr måste startas om för att ändringarna i den här inställningen ska träda i kraft", + "components.TvDetails.reportissue": "Rapportera ett problem", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Begär automatiskt serier", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Begär automatiskt serier på din Plex Watchlist", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Begär automatiskt filmer på din Plex Watchlist", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Nuvarande frekvens", + "components.PermissionEdit.viewrecentDescription": "Ge tillstånd att visa listan över nyligen tillagda medier.", + "components.StatusBadge.managemedia": "Hantera {mediaType}", + "components.StatusBadge.playonplex": "Spela upp på Plex", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.Settings.SettingsLogs.viewdetails": "Visa detaljer", + "components.Settings.SettingsJobsCache.imagecacheDescription": "När det är aktiverat i inställningarna kommer Overseerr att göra proxy- och cache-bilder från förkonfigurerade externa källor. Cachade bilder sparas i din konfigurationsmapp. Du hittar filerna i {appDataPath}/cache/images.", + "components.TitleCard.cleardata": "Rensa data", + "components.TitleCard.mediaerror": "{mediaType} Hittades inte", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.TvDetails.tmdbuserscore": "TMDB Användarpoäng", + "components.UserProfile.emptywatchlist": "Media som lagts till i din Plex Watchlist visas här.", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.TvDetails.Season.noepisodes": "Episodlistan är inte tillgänglig.", + "components.PermissionEdit.viewwatchlistsDescription": "Ge tillstånd att visa andra användares Plex Watchlists.", + "components.PermissionEdit.autorequestMovies": "Begär automatiskt filmer", + "components.PermissionEdit.autorequestMoviesDescription": "Ge tillstånd att automatiskt skicka in förfrågningar för filmer som inte är 4K-filmer via Plex Watchlist.", + "components.PermissionEdit.viewwatchlists": "Visa Plex Watchlist", + "components.RequestModal.SearchByNameModal.nomatches": "Vi kunde inte hitta någon matchning för denna serie.", + "components.RequestBlock.requestdate": "Datum för begäran", + "components.RequestBlock.requestedby": "Begärt av", + "components.RequestCard.editrequest": "Editera begäran", + "components.RequestModal.requestcollection4ktitle": "Begär samling i 4K", + "components.RequestModal.requestcollectiontitle": "Begär Kollektion", + "components.RequestModal.requestmovie4ktitle": "Begär film i 4K", + "components.RequestModal.requestmovietitle": "Begär film", + "components.RequestModal.requestseries4ktitle": "Begär serien i 4K", + "components.RequestModal.requestseriestitle": "Begär serie", + "components.StatusBadge.openinarr": "Öppna i {arr}", + "components.TvDetails.Season.somethingwentwrong": "Något gick fel när säsongsdata hämtades.", + "components.TvDetails.manageseries": "Hantera Serier", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes publiksiffror", + "components.TvDetails.seasonnumber": "Säsong {seasonNumber}", + "components.TvDetails.status4k": "4K {status}", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Begär automatiskt filmer" } diff --git a/src/i18n/locale/zh_Hans.json b/src/i18n/locale/zh_Hans.json index 4232a1f78..b9cc1cb1f 100644 --- a/src/i18n/locale/zh_Hans.json +++ b/src/i18n/locale/zh_Hans.json @@ -5,8 +5,8 @@ "components.UserList.users": "用户", "components.UserList.userlist": "用户清单", "components.UserList.userfail": "用户权限保存中出了点问题。", - "components.UserList.userdeleteerror": "刪除用户中出了点问题。", - "components.UserList.userdeleted": "用户刪除成功!", + "components.UserList.userdeleteerror": "删除用户中出了点问题。", + "components.UserList.userdeleted": "用户删除成功!", "components.UserList.usercreatedsuccess": "建立新用户成功!", "components.UserList.usercreatedfailedexisting": "你提供的电子邮件地址已由其他用户使用。", "components.UserList.usercreatedfailed": "建立新用户中出了点问题。", @@ -29,14 +29,14 @@ "components.UserList.email": "电子邮件地址", "components.UserList.edituser": "编辑用户权限", "components.UserList.displayName": "显示名称", - "components.UserList.deleteuser": "刪除用户", - "components.UserList.deleteconfirm": "确定要刪除这个用户吗?此用户的所有储存资料将被清除。", + "components.UserList.deleteuser": "删除用户", + "components.UserList.deleteconfirm": "确定要删除这个用户吗?此用户的所有储存资料将被清除。", "components.UserList.creating": "创建中…", "components.UserList.createlocaluser": "建立本地用户", "components.UserList.created": "加入", "components.UserList.create": "建立", "components.UserList.bulkedit": "批量编辑", - "components.UserList.autogeneratepasswordTip": "通過电子邮件发送服务器生成的密码给用户", + "components.UserList.autogeneratepasswordTip": "通过电子邮件发送服务器生成的密码给用户", "components.UserList.autogeneratepassword": "自动生成密码", "components.UserList.admin": "管理员", "components.UserList.accounttype": "类型", @@ -50,19 +50,19 @@ "components.TvDetails.play4konplex": "在 Plex 上观看 4K 版", "components.TvDetails.overviewunavailable": "没有简介。", "components.TvDetails.overview": "简介", - "components.TvDetails.originaltitle": "原始標題", + "components.TvDetails.originaltitle": "原始标题", "components.TvDetails.originallanguage": "原始语言", "components.TvDetails.nextAirDate": "下一次播出日期", "components.TvDetails.network": "电视网", - "components.TvDetails.firstAirDate": "原始播出日期", + "components.TvDetails.firstAirDate": "首次播出日期", "components.TvDetails.episodeRuntimeMinutes": "{runtime} 分钟", - "components.TvDetails.episodeRuntime": "劇集片長", + "components.TvDetails.episodeRuntime": "剧集片长", "components.TvDetails.cast": "演员阵容", "components.TvDetails.anime": "动漫", "components.TvDetails.TvCrew.fullseriescrew": "制作群", "components.TvDetails.TvCast.fullseriescast": "演员阵容", "components.StatusBadge.status4k": "4K 版{status}", - "components.Setup.welcome": "欢迎來到 Overseerr", + "components.Setup.welcome": "欢迎来到 Overseerr", "components.Setup.tip": "提示", "components.Setup.signinMessage": "首先,请使用你的 Plex 账户登入", "components.Setup.setup": "配置", @@ -79,38 +79,27 @@ "components.Settings.webAppUrl": "网络应用网址(URL)", "components.Settings.validationPortRequired": "请输入有效的端口", "components.Settings.validationHostnameRequired": "请输入有效的主机名称或 IP 地址", - "components.Settings.validationApplicationUrlTrailingSlash": "必须刪除結尾斜線", - "components.Settings.validationApplicationUrl": "请输入有效的网址", - "components.Settings.validationApplicationTitle": "请输入应用程序名", - "components.Settings.trustProxyTip": "允许 Overseerr 使用代理正确注册客户端 IP 地址", - "components.Settings.trustProxy": "启用代理服务器所需功能", - "components.Settings.toastSettingsSuccess": "设置保存成功!", - "components.Settings.toastSettingsFailure": "保存设置中出了点问题。", "components.Settings.toastPlexRefreshSuccess": "获取 Plex 服务器列表成功!", "components.Settings.toastPlexRefreshFailure": "获取 Plex 服务器列表失败。", "components.Settings.toastPlexRefresh": "载入中…", "components.Settings.toastPlexConnectingSuccess": "Plex 服务器连线成功!", "components.Settings.toastPlexConnectingFailure": "Plex 服务器连线失败。", "components.Settings.toastPlexConnecting": "连线中…", - "components.Settings.toastApiKeySuccess": "生成新应用程序密钥成功!", - "components.Settings.toastApiKeyFailure": "生成应用程序密钥出了点问题。", "components.Settings.startscan": "执行扫描", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Sonarr 设置", "components.Settings.settingUpPlexDescription": "你可以手动输入你的 Plex 服务器资料,或从 plex.tv 返回的设置做选择以及自动配置。请点下拉式选单右边的按钮获取服务器列表。", "components.Settings.services": "服务器", - "components.Settings.serviceSettingsDescription": "关于 {serverType} 服务器的设置。{serverType} 服务器数没有最大值限制,但你只能指定兩个服务器为默认(一个非 4K、一个 4K)。", + "components.Settings.serviceSettingsDescription": "关于 {serverType} 服务器的设置。{serverType} 服务器数没有最大值限制,但你只能指定两个服务器为默认(一个非 4K、一个 4K)。", "components.Settings.serverpresetRefreshing": "载入中…", "components.Settings.serverpresetManualMessage": "手动设定", "components.Settings.serverpresetLoad": "请点右边的按钮", "components.Settings.serverpreset": "服务器", "components.Settings.serverSecure": "SSL", - "components.Settings.serverRemote": "遠端", + "components.Settings.serverRemote": "远端", "components.Settings.serverLocal": "本地", "components.Settings.scanning": "同步中…", "components.Settings.scan": "媒体库同步", - "components.Settings.regionTip": "以地区可用性筛选結果", - "components.Settings.region": "探索地区", "components.Settings.radarrsettings": "Radarr 设置", "components.Settings.port": "端口", "components.Settings.plexsettingsDescription": "关于 Plex 服务器的设置。Overseerr 将定时执行媒体库扫描。", @@ -118,15 +107,12 @@ "components.Settings.plexlibrariesDescription": "Overseerr 将扫描的媒体库。", "components.Settings.plexlibraries": "Plex 媒体库", "components.Settings.plex": "Plex", - "components.Settings.partialRequestsEnabled": "允许不完整的电视节目请求", - "components.Settings.originallanguageTip": "以原始语言筛选結果", - "components.Settings.originallanguage": "探索语言", "components.Settings.notrunning": "未运行", "components.Settings.notificationsettings": "通知设置", "components.Settings.notifications": "通知", "components.Settings.notificationAgentSettingsDescription": "设置通知类型和代理服务。", "components.Settings.noDefaultServer": "你必须至少指定一个 {serverType} 服务器为默认,才能处理{mediaType}请求。", - "components.Settings.noDefaultNon4kServer": "如果你只有一台 {serverType} 服务器用于非 4K 和 4K 内容(或者如果你只下载 4k 内容),你的 {serverType} 服务器 不应该被指定为 4K 服务器。", + "components.Settings.noDefaultNon4kServer": "如果你只有一台 {serverType} 服务器用于非 4K 和 4K 内容(或者如果你只下载 4K 内容),你的 {serverType} 服务器不应该被指定为 4K 服务器。", "components.Settings.noDefault4kServer": "你必须指定一个 4K {serverType} 服务器为默认,才能处理 4K 的{mediaType}请求。", "components.Settings.menuUsers": "用户", "components.Settings.menuServices": "服务器", @@ -140,43 +126,30 @@ "components.Settings.mediaTypeMovie": "电影", "components.Settings.manualscanDescription": "在正常情況下,Overseerr 会每24小时扫描你的 Plex 媒体库。最新添加的媒体将更频繁扫描。设置新的 Plex 服务器时,我们建议你执行一次手动扫描!", "components.Settings.manualscan": "媒体库手动扫描", - "components.Settings.locale": "显示语言", - "components.Settings.librariesRemaining": "媒体库剩余数: {count}", + "components.Settings.librariesRemaining": "媒体库剩余数:{count}", "components.Settings.is4k": "4K", "components.Settings.hostname": "主机名称或 IP 地址", - "components.Settings.hideAvailable": "隱藏可观看的电影和电视节目", - "components.Settings.generalsettingsDescription": "Overseerr 的全局和默认设置。", - "components.Settings.generalsettings": "一般设置", - "components.Settings.general": "一般", - "components.Settings.enablessl": "使用安全通訊协议(SSL)", + "components.Settings.enablessl": "使用安全通讯协议(SSL)", "components.Settings.email": "电子邮件", - "components.Settings.deleteserverconfirm": "确定要刪除这个服务器吗?", + "components.Settings.deleteserverconfirm": "确定要删除这个服务器吗?", "components.Settings.default4k": "设置 4K 为默认分辨率", "components.Settings.default": "默认", "components.Settings.currentlibrary": "当前媒体库: {name}", - "components.Settings.csrfProtectionTip": "设置外部访问权限为只读(需要 HTTPS)", - "components.Settings.csrfProtectionHoverTip": "除非你了解此功能,请勿启用它!", - "components.Settings.csrfProtection": "防止跨站请求伪造(CSRF)攻击", "components.Settings.copied": "应用程序密钥已复制到剪贴板。", "components.Settings.cancelscan": "取消扫描", - "components.Settings.cacheImagesTip": "缓存并提供优化的图像(需要大量磁盘空间)", - "components.Settings.cacheImages": "启用图像緩存", - "components.Settings.applicationurl": "应用程序网址(URL)", - "components.Settings.applicationTitle": "应用程序名", - "components.Settings.apikey": "应用程序密钥", "components.Settings.addsonarr": "添加 Sonarr 服务器", "components.Settings.address": "网址", "components.Settings.addradarr": "添加 Radarr 服务器", - "components.Settings.activeProfile": "现行质量设置", + "components.Settings.activeProfile": "当前质量设置", "components.Settings.SonarrModal.validationRootFolderRequired": "必须设置根目录", "components.Settings.SonarrModal.validationProfileRequired": "必须设置质量", "components.Settings.SonarrModal.validationPortRequired": "请输入有效的端口", "components.Settings.SonarrModal.validationNameRequired": "请输入服务器名称", "components.Settings.SonarrModal.validationLanguageProfileRequired": "必须设置语言", "components.Settings.SonarrModal.validationHostnameRequired": "你必须提供有效的主机名或 IP 地址", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "必须刪除結尾斜線", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "必须添加前置斜線", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "必须刪除結尾斜線", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "必须删除结尾斜线", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "必须添加前置斜线", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "必须删除结尾斜线", "components.Settings.SonarrModal.validationApplicationUrl": "请输入有效的网址", "components.Settings.SonarrModal.validationApiKeyRequired": "请输入应用程序密钥", "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr 服务器连线成功!", @@ -187,7 +160,7 @@ "components.Settings.SonarrModal.testFirstLanguageProfiles": "请先测试连线", "components.Settings.SonarrModal.tags": "标签", "components.Settings.SonarrModal.syncEnabled": "启用扫描", - "components.Settings.SonarrModal.ssl": "使用安全通訊协议(SSL)", + "components.Settings.SonarrModal.ssl": "使用安全通讯协议(SSL)", "components.Settings.SonarrModal.servername": "服务器名称", "components.Settings.SonarrModal.server4k": "4K 服务器", "components.Settings.SonarrModal.selecttags": "设定标签", @@ -202,7 +175,7 @@ "components.PermissionEdit.autoapproveSeries": "电视节目自动批准", "components.PermissionEdit.autoapproveMoviesDescription": "自动批准非 4K 电影请求。", "components.PermissionEdit.autoapproveMovies": "电影自动批准", - "components.PermissionEdit.autoapproveDescription": "自动批准所有非 4K 媒体请求。", + "components.PermissionEdit.autoapproveDescription": "授予自动批准所有非 4K 媒体请求的权限。", "components.PermissionEdit.autoapprove4kSeriesDescription": "自动批准 4K 电视节目请求。", "components.PermissionEdit.autoapprove4kSeries": "4K 电视节目自动批准", "components.PermissionEdit.autoapprove4kMoviesDescription": "自动批准 4K 电影请求。", @@ -212,7 +185,7 @@ "components.PermissionEdit.autoapprove": "自动批准", "components.PermissionEdit.advancedrequestDescription": "授予修改高级媒体请求选项的权限。", "components.PermissionEdit.advancedrequest": "进阶请求", - "components.PermissionEdit.adminDescription": "授予最高权限;旁路所有权限检查。", + "components.PermissionEdit.adminDescription": "授予最高权限,跳过其它所有权限勾选。", "components.PermissionEdit.admin": "管理员", "components.NotificationTypeSelector.usermediarequestedDescription": "当其他用户提交需要管理员批准的请求时得到通知。", "components.NotificationTypeSelector.usermediafailedDescription": "当 Radarr 或 Sonarr 处理请求失败时得到通知。", @@ -225,7 +198,7 @@ "components.NotificationTypeSelector.mediarequested": "请求待批准", "components.NotificationTypeSelector.mediafailedDescription": "当 Radarr 或 Sonarr 处理请求失败时发送通知。", "components.NotificationTypeSelector.mediafailed": "请求处理失败", - "components.NotificationTypeSelector.mediadeclinedDescription": "当请求拒被絕时发送通知。", + "components.NotificationTypeSelector.mediadeclinedDescription": "当请求被拒绝时发送通知。", "components.NotificationTypeSelector.mediadeclined": "请求被拒", "components.NotificationTypeSelector.mediaavailableDescription": "当请求的媒体可观看时发送通知。", "components.NotificationTypeSelector.mediaavailable": "请求可用", @@ -240,17 +213,17 @@ "components.MovieDetails.showmore": "显示更多", "components.MovieDetails.showless": "显示更少", "components.MovieDetails.runtime": "{minutes} 分钟", - "components.MovieDetails.revenue": "收入", + "components.MovieDetails.revenue": "票房", "components.MovieDetails.releasedate": "上映日期", "components.MovieDetails.recommendations": "推荐", "components.MovieDetails.playonplex": "在 Plex 上观看", "components.MovieDetails.play4konplex": "在 Plex 上观看 4K 版", "components.MovieDetails.overviewunavailable": "没有简介。", "components.MovieDetails.overview": "简介", - "components.MovieDetails.originaltitle": "原始標題", + "components.MovieDetails.originaltitle": "原始标题", "components.MovieDetails.originallanguage": "原始语言", - "components.MovieDetails.markavailable": "標记为可观看", - "components.MovieDetails.mark4kavailable": "標记 4K 版为可观看", + "components.MovieDetails.markavailable": "标记为可观看", + "components.MovieDetails.mark4kavailable": "标记 4K 版为可观看", "components.MovieDetails.cast": "演员阵容", "components.MovieDetails.budget": "电影成本", "components.MovieDetails.MovieCrew.fullcrew": "制作群", @@ -269,7 +242,7 @@ "components.Login.email": "电子邮件地址", "components.Layout.VersionStatus.streamstable": "Overseerr 稳定版", "components.Layout.VersionStatus.streamdevelop": "Overseerr 开发版", - "components.Layout.VersionStatus.outofdate": "過时", + "components.Layout.VersionStatus.outofdate": "过时", "components.Layout.VersionStatus.commitsbehind": "落后 {commitsBehind} 次提交", "components.Layout.UserDropdown.signout": "登出", "components.Layout.UserDropdown.settings": "用户设定", @@ -327,13 +300,13 @@ "i18n.testing": "测试中…", "i18n.test": "测试", "i18n.status": "状态", - "i18n.showingresults": "{from}{to} 列(共 {total} 列)", + "i18n.showingresults": "{from}{to} 项(共 {total} 项)", "i18n.settings": "设定", "i18n.saving": "保存中…", "i18n.save": "保存", "i18n.retrying": "重试中…", "i18n.retry": "重试", - "i18n.resultsperpage": "每页显示 {pageSize} 列", + "i18n.resultsperpage": "每页显示 {pageSize} 项", "i18n.requesting": "提交请求中…", "i18n.requested": "已经有请求", "i18n.request4k": "提交 4K 请求", @@ -343,7 +316,7 @@ "i18n.pending": "待处理", "i18n.partiallyavailable": "部分可观看", "i18n.notrequested": "没有请求", - "i18n.noresults": "没有結果。", + "i18n.noresults": "没有结果。", "i18n.next": "下一页", "i18n.movies": "电影", "i18n.movie": "电影", @@ -352,8 +325,8 @@ "i18n.experimental": "实验性", "i18n.edit": "编辑", "i18n.delimitedlist": "{a}、{b}", - "i18n.deleting": "刪除中…", - "i18n.delete": "刪除", + "i18n.deleting": "删除中…", + "i18n.delete": "删除", "i18n.declined": "已拒绝", "i18n.decline": "拒绝", "i18n.close": "关闭", @@ -385,7 +358,7 @@ "components.UserProfile.UserSettings.UserPermissions.permissions": "权限设置", "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "密码必须至少包含八个字符", "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "请输入新密码", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "请输入当前的密码", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "请输入当前密码", "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "密码必须匹配", "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "密码必须匹配", "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "密码设置成功!", @@ -396,7 +369,7 @@ "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "你的帐户目前没有设置密码。在下方配置密码,使你能够作为“本地用户”登录。", "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "此用户帐户目前没有设置密码。在下方配置密码,使该帐户能够作为“本地用户”登录。", "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "新密码", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "当前的密码", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "当前密码", "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "确认密码", "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "网络推送知设置保存成功!", "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "网络推送知设置保存失败。", @@ -426,11 +399,11 @@ "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "保存设置中出了点问题。", "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "电视节目请求限制", "components.UserProfile.UserSettings.UserGeneralSettings.role": "角色", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "以地区可用性筛选結果", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "以地区可用性筛选结果", "components.UserProfile.UserSettings.UserGeneralSettings.region": "探索地区", "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex 用户", "components.UserProfile.UserSettings.UserGeneralSettings.owner": "所有者", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "以原始语言筛选結果", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "以原始语言筛选结果", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "探索语言", "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "电影请求限制", "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "本地用户", @@ -474,7 +447,7 @@ "components.Settings.SettingsUsers.tvRequestLimitLabel": "电视节目请求全局限制", "components.Settings.SettingsUsers.toastSettingsSuccess": "用户设置保存成功!", "components.Settings.SettingsUsers.toastSettingsFailure": "保存设置中出了点问题。", - "components.Settings.SettingsUsers.newPlexLoginTip": "让还没导入的 Plex 用户登录", + "components.Settings.SettingsUsers.newPlexLoginTip": "允许 Plex 用户在未被导入的情况下登录", "components.Settings.SettingsUsers.newPlexLogin": "允许新的 Plex 登录", "components.Settings.SettingsUsers.movieRequestLimitLabel": "电影请求全局限制", "components.Settings.SettingsUsers.localLoginTip": "让用户使用电子邮件地址和密码登录", @@ -484,12 +457,12 @@ "components.Settings.SettingsLogs.time": "时间戳", "components.Settings.SettingsLogs.showall": "查看所有日志", "components.Settings.SettingsLogs.resumeLogs": "恢复", - "components.Settings.SettingsLogs.pauseLogs": "暫停", + "components.Settings.SettingsLogs.pauseLogs": "暂停", "components.Settings.SettingsLogs.message": "消息", "components.Settings.SettingsLogs.logsDescription": "你也可以直接查看这些日志,方法是借助 stdout, 或者打开 {appDataPath}/logs/overseerr.log。", "components.Settings.SettingsLogs.logs": "日志", - "components.Settings.SettingsLogs.logDetails": "日志详細信息", - "components.Settings.SettingsLogs.level": "等級", + "components.Settings.SettingsLogs.logDetails": "日志详细信息", + "components.Settings.SettingsLogs.level": "等级", "components.Settings.SettingsLogs.label": "标签", "components.Settings.SettingsLogs.filterWarn": "警告", "components.Settings.SettingsLogs.filterInfo": "消息", @@ -509,7 +482,7 @@ "components.Settings.SettingsJobsCache.jobtype": "作业类型", "components.Settings.SettingsJobsCache.jobstarted": "{jobname} 已开始运行。", "components.Settings.SettingsJobsCache.jobsandcache": "作业和缓存", - "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr 将定时运行以下的維護任務。手动执行工作不会影响它正常的时间表。", + "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr 将定时运行以下的维护任務。手动执行工作不会影响它正常的时间表。", "components.Settings.SettingsJobsCache.jobs": "作业", "components.Settings.SettingsJobsCache.jobname": "作业名", "components.Settings.SettingsJobsCache.jobcancelled": "{jobname}已被取消。", @@ -525,7 +498,7 @@ "components.Settings.SettingsJobsCache.cachekeys": "键数", "components.Settings.SettingsJobsCache.cachehits": "击中数", "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} 缓存已清除。", - "components.Settings.SettingsJobsCache.cacheDescription": "外部应用程序介面(external API)请求将存到缓存,以減少 API 呼叫次数。", + "components.Settings.SettingsJobsCache.cacheDescription": "对外部应用程序 API 端点的请求将存到缓存,以优化性能并減少不必要的 API 调用。", "components.Settings.SettingsJobsCache.cache": "缓存", "components.Settings.SettingsAbout.version": "软件版本", "components.Settings.SettingsAbout.uptodate": "最新", @@ -535,19 +508,19 @@ "components.Settings.SettingsAbout.supportoverseerr": "支持 Overseerr", "components.Settings.SettingsAbout.preferredmethod": "首选", "components.Settings.SettingsAbout.overseerrinformation": "关于 Overseerr", - "components.Settings.SettingsAbout.outofdate": "過时", + "components.Settings.SettingsAbout.outofdate": "过时", "components.Settings.SettingsAbout.helppaycoffee": "请开发者喝咖啡", "components.Settings.SettingsAbout.githubdiscussions": "GitHub 讨论区", - "components.Settings.SettingsAbout.gettingsupport": "支援", + "components.Settings.SettingsAbout.gettingsupport": "帮助", "components.Settings.SettingsAbout.documentation": "文档", - "components.Settings.SettingsAbout.betawarning": "这是测试版软件,所以可能会不稳定或被破坏。请向 GitHub 报告问题!", + "components.Settings.SettingsAbout.betawarning": "这是测试版软件,有些功能可能损坏或不稳定。请在 GitHub 报告问题!", "components.Settings.SettingsAbout.about": "关于 Overseerr", "components.Settings.SettingsAbout.Releases.viewongithub": "在 GitHub 上查看", "components.Settings.SettingsAbout.Releases.viewchangelog": "查看变更日志", "components.Settings.SettingsAbout.Releases.versionChangelog": "{version} 更新日志", "components.Settings.SettingsAbout.Releases.releases": "软件版本", "components.Settings.SettingsAbout.Releases.releasedataMissing": "软件发行数据当前不可用。", - "components.Settings.SettingsAbout.Releases.latestversion": "最新软件版本", + "components.Settings.SettingsAbout.Releases.latestversion": "最新版本", "components.Settings.SettingsAbout.Releases.currentversion": "当前版本", "components.Settings.RadarrModal.validationRootFolderRequired": "必须设置根目录", "components.Settings.RadarrModal.validationProfileRequired": "必须设置质量", @@ -557,7 +530,7 @@ "components.Settings.RadarrModal.validationHostnameRequired": "你必须提供有效的主机名或 IP 地址", "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL base 不能以尾部斜杠结束", "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL base 必须有前置斜杠", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "必须刪除結尾斜線", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "必须删除结尾斜线", "components.Settings.RadarrModal.validationApplicationUrl": "请输入有效的网址", "components.Settings.RadarrModal.validationApiKeyRequired": "请输入应用程序密钥", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr 服务器连线成功!", @@ -567,7 +540,7 @@ "components.Settings.RadarrModal.testFirstQualityProfiles": "请先测试连线", "components.Settings.RadarrModal.tags": "标签", "components.Settings.RadarrModal.syncEnabled": "启用扫描", - "components.Settings.RadarrModal.ssl": "使用安全通訊协议(SSL)", + "components.Settings.RadarrModal.ssl": "使用安全通讯协议(SSL)", "components.Settings.RadarrModal.servername": "服务器名称", "components.Settings.RadarrModal.server4k": "4K 服务器", "components.Settings.RadarrModal.selecttags": "设定标签", @@ -626,14 +599,14 @@ "components.Settings.Notifications.pgpPasswordTip": "使用 OpenPGP 电子邮件加密与签章", "components.Settings.Notifications.pgpPassword": "PGP 解密密码", "components.Settings.Notifications.encryptionTip": "TLS 通常会使用端口 465,而 STARTTLS 通常会使用端口 587", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Authorization 頭欄位", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Authorization 请求标头", "components.Settings.Notifications.NotificationsWebhook.agentenabled": "启用通知", "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "网络推送通知设置保存成功!", "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "网络推送通知设置保存失败。", "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "网络推送测试通知已发送!", "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "发送网络推送测试通知中…", "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "网络推送测试通知发送失败。", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Overseerr 必须通過 HTTPS 投放才能使用网络推送通知。", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Overseerr 必须通过 HTTPS 投放才能使用网络推送通知。", "components.Settings.Notifications.NotificationsWebPush.agentenabled": "启用通知", "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "创建一个 incoming webhook 集成", "components.Settings.Notifications.NotificationsSlack.webhookUrl": "网络钩子网址(URL)", @@ -648,7 +621,7 @@ "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "请输入有效的用户或群组令牌", "components.Settings.Notifications.NotificationsPushover.validationTypes": "请选择通知类型", "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "请输入应用程序 API 令牌", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "你的 30 个字符的用户或群组標識符", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "你的 30 个字符的用户或群组标识符", "components.Settings.Notifications.NotificationsPushover.userToken": "用户或群组令牌", "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover 测试通知已发送!", "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "发送 Pushover 测试通知中…", @@ -668,7 +641,7 @@ "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "启用通知", "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "从你的账户设定取得 API 令牌", "components.Settings.Notifications.NotificationsPushbullet.accessToken": "API 令牌", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "用户或设備通知的网络钩子网址", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "用户或设备通知的网络钩子网址", "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "网络钩子网址(URL)", "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "请输入有效的网址", "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "请选择通知类型", @@ -677,10 +650,10 @@ "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea 测试通知发送失败。", "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea 通知设置保存成功!", "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea 通知设置保存失败。", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "不使用 default 默认设定档才必须输入", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "仅在不使用 default 默认设定档时才须输入", "components.Settings.Notifications.NotificationsLunaSea.profileName": "设定档名", "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "启用通知", - "components.Search.searchresults": "搜索結果", + "components.Search.searchresults": "搜索结果", "components.Search.search": "搜索", "components.ResetPassword.validationpasswordrequired": "请输入密码", "components.ResetPassword.validationpasswordminchars": "密码必须至少包含八个字符", @@ -688,7 +661,7 @@ "components.ResetPassword.validationemailrequired": "请输入有效的电子邮件地址", "components.ResetPassword.resetpasswordsuccessmessage": "密码重设成功!", "components.ResetPassword.resetpassword": "重设密码", - "components.ResetPassword.requestresetlinksuccessmessage": "通過电子邮件发送了密码重设鏈接。", + "components.ResetPassword.requestresetlinksuccessmessage": "通过电子邮件发送了密码重设链接。", "components.ResetPassword.passwordreset": "密码重设", "components.ResetPassword.password": "密码", "components.ResetPassword.gobacklogin": "返回", @@ -716,7 +689,7 @@ "components.RequestModal.cancel": "取消请求", "components.RequestModal.autoapproval": "自动批准", "components.RequestModal.alreadyrequested": "已经有请求", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "我们无法自动匹配这个连续剧。请选择下方正确的匹配。", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "我们无法自动匹配这个电视节目。请选择下方正确的匹配。", "components.RequestModal.QuotaDisplay.seasonlimit": "个季数", "components.RequestModal.QuotaDisplay.season": "电视节目季数", "components.RequestModal.QuotaDisplay.requiredquotaUser": "此用户的电视节目请求数量必须至少剩余 {seasons} 个季数才能为此节目提交请求。", @@ -737,7 +710,7 @@ "components.RequestModal.AdvancedRequester.notagoptions": "没有标签。", "components.RequestModal.AdvancedRequester.languageprofile": "语言设置", "components.RequestModal.AdvancedRequester.folder": "{path}({space})", - "components.RequestModal.AdvancedRequester.destinationserver": "目標服务器", + "components.RequestModal.AdvancedRequester.destinationserver": "目标服务器", "components.RequestModal.AdvancedRequester.default": "{name}(默认)", "components.RequestModal.AdvancedRequester.animenote": "*这是个动漫节目。", "components.RequestModal.AdvancedRequester.advancedoptions": "进阶选项", @@ -753,12 +726,12 @@ "components.RequestList.RequestItem.mediaerror": "未找到{mediaType}", "components.RequestList.RequestItem.failedretry": "重试提交请求中出了点问题。", "components.RequestList.RequestItem.editrequest": "编辑请求", - "components.RequestList.RequestItem.deleterequest": "刪除请求", + "components.RequestList.RequestItem.deleterequest": "删除请求", "components.RequestList.RequestItem.cancelRequest": "取消请求", "components.RequestCard.seasons": "季数", "components.RequestCard.mediaerror": "未找到{mediaType}", "components.RequestCard.failedretry": "重试提交请求中出了点问题。", - "components.RequestCard.deleterequest": "刪除请求", + "components.RequestCard.deleterequest": "删除请求", "components.RequestButton.viewrequest4k": "查看 4K 请求", "components.RequestButton.viewrequest": "查看请求", "components.RequestButton.requestmore4k": "再提交 4K 请求", @@ -771,7 +744,7 @@ "components.RequestButton.approverequest4k": "批准 4K 请求", "components.RequestButton.approverequest": "批准请求", "components.RequestButton.approve4krequests": "批准{requestCount, plural, one { 4K 请求} other { {requestCount} 个 4K 请求}}", - "components.RequestBlock.server": "目標服务器", + "components.RequestBlock.server": "目标服务器", "components.RequestBlock.seasons": "季数", "components.RequestBlock.rootfolder": "根目录", "components.RequestBlock.requestoverrides": "覆盖请求", @@ -789,11 +762,11 @@ "components.PersonDetails.lifespan": "{birthdate}-{deathdate}", "components.PersonDetails.crewmember": "制作群成员", "components.PersonDetails.birthdate": "{birthdate}-", - "components.PersonDetails.appearsin": "演出", - "components.PersonDetails.alsoknownas": "別名:{names}", + "components.PersonDetails.appearsin": "参演", + "components.PersonDetails.alsoknownas": "别名:{names}", "components.PermissionEdit.viewrequestsDescription": "授予查看其他用户提交的媒体请求的权限。", "components.PermissionEdit.viewrequests": "查看请求", - "components.PermissionEdit.usersDescription": "授予管理用户的权限。 拥有此权限的用户无法修改具有管理员权限的用户或授予管理员权限。", + "components.PermissionEdit.usersDescription": "授予管理用户的权限。拥有此权限的用户无法修改具有管理员权限的用户或授予管理员权限。", "components.PermissionEdit.users": "用户管理", "components.PermissionEdit.requestTvDescription": "授予提交非 4K 电视剧请求的权限。", "components.PermissionEdit.requestTv": "提交电视节目请求", @@ -807,18 +780,18 @@ "components.PermissionEdit.request4kDescription": "授予提交 4K 媒体请求的权限。", "components.PermissionEdit.request4k": "提交 4K 请求", "components.PermissionEdit.request": "提交请求", - "components.PermissionEdit.managerequestsDescription": "授予管理媒体请求的权限。 拥有此权限的用户提出的所有请求都将被自动批准。", + "components.PermissionEdit.managerequestsDescription": "授予管理媒体请求的权限。拥有此权限的用户提出的所有请求都将被自动批准。", "components.PermissionEdit.managerequests": "请求管理", "components.Settings.Notifications.emailsettingssaved": "电子邮件通知设置保存成功!", "components.Settings.Notifications.emailsettingsfailed": "电子邮件通知设置保存失败。", "components.Settings.Notifications.emailsender": "发件人电子邮件地址", "components.Settings.Notifications.discordsettingssaved": "Discord 通知设置保存成功!", "components.Settings.Notifications.discordsettingsfailed": "Discord 通知设置保存失败。", - "components.Settings.Notifications.chatIdTip": "先与你的机器人建立一个聊天室以及把 @get_id_bot 也加到聊天室,然后在聊天室里发出 /my_id 命令", + "components.Settings.Notifications.chatIdTip": "先与你的机器人建立一个聊天室,并将 @get_id_bot 也加到聊天室,然后在聊天室里发出 /my_id 命令", "components.Settings.Notifications.chatId": "聊天室 ID", "components.Settings.Notifications.botUsernameTip": "允许用户也把机器人加到自己的聊天室以及设定自己的通知", "components.Settings.Notifications.botUsername": "Bot 机器人名", - "components.Settings.Notifications.botAvatarUrl": "Bot 机器人頭像网址(URL)", + "components.Settings.Notifications.botAvatarUrl": "Bot 机器人头像网址(URL)", "components.Settings.Notifications.botApiTip": "建立一个 Overseerr 专用的机器人", "components.Settings.Notifications.botAPI": "Bot 机器人授权令牌", "components.Settings.Notifications.authUser": "SMTP 用户", @@ -834,14 +807,14 @@ "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "网络钩子测试通知已发送!", "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "发送网络钩子测试通知中…", "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "网络钩子测试通知发送失败。", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "幫助", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "帮助", "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON 有效负载重设为默认负载成功!", "components.Settings.Notifications.NotificationsWebhook.resetPayload": "重置为默认", "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON 有效负载", "components.Settings.Notifications.encryptionOpportunisticTls": "始終使用 STARTTLS", "components.Settings.Notifications.encryptionNone": "不使用加密", "components.Settings.Notifications.encryptionImplicitTls": "使用传输层安全标准(TLS)", - "components.Settings.Notifications.encryptionDefault": "盡可能使用 STARTTLS", + "components.Settings.Notifications.encryptionDefault": "尽可能使用 STARTTLS", "components.Settings.Notifications.encryption": "加密方式", "components.StatusBadge.status": "{status}", "components.IssueDetails.IssueComment.areyousuredelete": "你确定删除此条评论吗?", @@ -850,68 +823,68 @@ "components.IssueDetails.IssueComment.postedby": "由 {username} 发布于 {relativeTime}", "components.IssueDetails.IssueComment.postedbyedited": "由 {username} 发布于 {relativeTime}(已编辑)", "components.IssueDetails.IssueComment.validationComment": "你必须输入一条消息", - "components.IssueDetails.IssueDescription.deleteissue": "删除 Issue", + "components.IssueDetails.IssueDescription.deleteissue": "删除问题", "components.IssueDetails.allseasons": "所有季数", "components.IssueDetails.nocomments": "没有评论。", - "components.IssueDetails.openedby": "#{issueId} 由 {username} 打开于 {relativeTime}", - "components.IssueDetails.toaststatusupdatefailed": "更新 issue 状态时出错。", + "components.IssueDetails.openedby": "#{issueId} 由 {username} 报告于 {relativeTime}", + "components.IssueDetails.toaststatusupdatefailed": "更新问题状态时出错。", "components.IssueDetails.unknownissuetype": "未知", "components.IssueDetails.IssueDescription.description": "描述", "components.IssueDetails.IssueDescription.edit": "编辑描述", - "components.IssueDetails.closeissue": "关闭 Issue", + "components.IssueDetails.closeissue": "关闭问题", "components.IssueDetails.closeissueandcomment": "评论后关闭", "components.IssueDetails.comments": "评论", - "components.IssueDetails.deleteissueconfirm": "你是否确实要删除此 issue?", + "components.IssueDetails.deleteissueconfirm": "确定要删除这个问题吗?", "components.IssueDetails.episode": "第 {episodeNumber} 集", "components.IssueDetails.issuepagetitle": "问题", "components.IssueDetails.lastupdated": "最后更新时间", "components.IssueDetails.leavecomment": "评论", "components.IssueDetails.openinarr": "在 {arr} 中打开", "components.IssueDetails.problemseason": "有问题的季数", - "components.IssueDetails.toasteditdescriptionfailed": "编辑 issue 描述时出错。", - "components.IssueDetails.toastissuedeletefailed": "删除 issue 时出错。", - "components.IssueDetails.play4konplex": "在 Plex 中播放 4K", + "components.IssueDetails.toasteditdescriptionfailed": "编辑问题描述时出错。", + "components.IssueDetails.toastissuedeletefailed": "删除问题时出错。", + "components.IssueDetails.play4konplex": "在 Plex 上播放 4K 版", "components.IssueDetails.openin4karr": "在 4K {arr} 中打开", "components.IssueDetails.playonplex": "在 Plex 上播放", "components.IssueDetails.problemepisode": "有问题的集数", - "components.IssueDetails.toasteditdescriptionsuccess": "Issue 描述编辑成功!", - "components.IssueDetails.toaststatusupdated": "Issue 状态更新成功!", - "components.IssueDetails.reopenissue": "重新打开 Issue", + "components.IssueDetails.toasteditdescriptionsuccess": "问题描述编辑成功!", + "components.IssueDetails.toaststatusupdated": "问题状态更新成功!", + "components.IssueDetails.reopenissue": "重新开启问题", "components.IssueDetails.allepisodes": "所有剧集", "components.IssueDetails.issuetype": "类型", - "components.IssueDetails.deleteissue": "删除 Issue", - "components.IssueDetails.reopenissueandcomment": "评论后重新打开", + "components.IssueDetails.deleteissue": "删除问题", + "components.IssueDetails.reopenissueandcomment": "评论后重新开启", "components.IssueDetails.season": "第 {seasonNumber} 季", - "components.IssueDetails.toastissuedeleted": "Issue 删除成功!", + "components.IssueDetails.toastissuedeleted": "问题删除成功!", "components.IssueModal.CreateIssueModal.episode": "第 {episodeNumber} 集", "components.IssueDetails.commentplaceholder": "添加评论…", "components.IssueList.IssueItem.issuestatus": "状态", "components.IssueList.IssueItem.issuetype": "类型", - "components.IssueList.IssueItem.openeduserdate": "{date} by {user}", + "components.IssueList.IssueItem.openeduserdate": "{user}({date})", "components.IssueList.IssueItem.problemepisode": "受影响的剧集", "components.IssueList.IssueItem.episodes": "集数", - "components.IssueList.IssueItem.opened": "打开", + "components.IssueList.IssueItem.opened": "报告者", "components.Settings.Notifications.NotificationsGotify.agentenabled": "开启通知", - "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Gotify通知设置保存失败。", - "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify通知设置保存成功!", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Gotify 通知设置保存失败。", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify 通知设置保存成功!", "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify 测试通知发送失败。", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Gotify测试通知发送中…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Gotify 测试通知发送中…", "components.Settings.Notifications.enableMentions": "允许提及", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "每 {jobScheduleMinutes} 分钟", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "应用 API 令牌", - "components.UserList.newplexsigninenabled": "允许新的 Plex 用户登录 设置目前已启用。还没有导入的Plex用户也能登录。", + "components.UserList.newplexsigninenabled": "允许新的 Plex 用户登录 设置目前已启用。还没有导入的 Plex 用户也能登录。", "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Pushover 通知设置保存失败。", "components.NotificationTypeSelector.issuecomment": "问题评论", - "components.MovieDetails.streamingproviders": "当前可播放", + "components.MovieDetails.streamingproviders": "当前可串流", "components.Settings.RadarrModal.inCinemas": "已上映", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "从您的账号设置获取API令牌", "components.Settings.SettingsAbout.appDataPath": "数据目录", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "每 {jobScheduleHours} 小时", "components.Settings.tautulliSettings": "Tautulli 设置", "components.Settings.tautulliSettingsDescription": "关于 Tautulli 服务器的设置。Overseerr 会从 Tautulli 获取 Plex 媒体的观看历史记录。", - "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord 用户ID", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord 用户 ID", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Pushbullet 通知设置保存失败。", - "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "您的Discord 用户 ID ", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "您的 Discord 用户 ID", "components.IssueList.IssueItem.unknownissuetype": "未知", "components.IssueList.IssueItem.viewissue": "查看问题", "components.IssueList.issues": "问题", @@ -936,15 +909,15 @@ "components.NotificationTypeSelector.issuereopenedDescription": "当问题重新开启时发送通知。", "components.PermissionEdit.createissuesDescription": "授予报告媒体问题的权限。", "components.PermissionEdit.manageissuesDescription": "授予管理媒体问题的权限。", - "components.RequestModal.requestmovies": "提出请求", - "components.RequestModal.requestseasons4k": "提出4K请求", + "components.RequestModal.requestmovies": "提交请求", + "components.RequestModal.requestseasons4k": "提交 4K 请求", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "作业编辑成功!", "i18n.resolved": "已解决", "components.NotificationTypeSelector.issuereopened": "问题重新开启", "components.NotificationTypeSelector.userissueresolvedDescription": "当您报告的问题解决时获取通知。", "components.ManageSlideOver.alltime": "历史", "components.ManageSlideOver.manageModalAdvanced": "高级", - "components.ManageSlideOver.manageModalClearMediaWarning": "* 这将会删除所有和{mediaType}相关的数据和所有请求。如果{mediaType}在您的Plex服务器存在,数据将会在媒体库扫描时重新建立。", + "components.ManageSlideOver.manageModalClearMediaWarning": "* 这将会删除所有和{mediaType}相关的数据和所有请求。如果{mediaType}在您的 Plex 服务器存在,数据将会在媒体库扫描时重新建立。", "components.ManageSlideOver.manageModalIssues": "未解决问题", "components.ManageSlideOver.manageModalMedia": "媒体", "components.ManageSlideOver.manageModalMedia4k": "4K 媒体", @@ -952,7 +925,7 @@ "components.ManageSlideOver.manageModalTitle": "管理{mediaType}", "components.ManageSlideOver.markavailable": "标记为可观看", "components.ManageSlideOver.mark4kavailable": "标记4K版本可观看", - "components.ManageSlideOver.markallseasons4kavailable": "标记所有季的4K版本可观看", + "components.ManageSlideOver.markallseasons4kavailable": "标记所有季的 4K 版本可观看", "components.ManageSlideOver.markallseasonsavailable": "标记所有季可观看", "components.ManageSlideOver.opentautulli": "在 Tautulli 中查看", "components.ManageSlideOver.pastdays": "过去 {days, number} 天", @@ -979,23 +952,23 @@ "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "请输入应用令牌", "components.Settings.Notifications.NotificationsGotify.validationTypes": "请选择通知类型", "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "请输入有效的网址", - "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "请删除网址结尾斜杠", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "请删除网址结尾斜线", "components.Settings.urlBase": "网站根路径", - "components.Settings.validationApiKey": "请输入API key", + "components.Settings.validationApiKey": "请输入应用程序密钥", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "您 30 个字符的用户或群组ID", "components.Settings.Notifications.NotificationsPushbullet.channelTag": "频道标签", "components.Settings.RadarrModal.announced": "已公布", "components.Settings.RadarrModal.released": "已发布", "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "新频率", "components.Settings.externalUrl": "外部网址", - "components.Settings.tautulliApiKey": "API Key", + "components.Settings.tautulliApiKey": "应用程序密钥", "components.Settings.toastTautulliSettingsFailure": "保存 Tautulli 设置时出现问题。", "components.Settings.toastTautulliSettingsSuccess": "Tautulli 设置保存成功!", "components.Settings.validationUrlTrailingSlash": "请删除结尾斜杠", "components.Settings.validationUrlBaseLeadingSlash": "请添加前置斜杠", "components.Settings.validationUrlBaseTrailingSlash": "请删除结尾斜杠", "components.TvDetails.productioncountries": "出品国家", - "components.TvDetails.streamingproviders": "当前可播放", + "components.TvDetails.streamingproviders": "当前可串流", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "API 令牌", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet 通知设置保存成功!", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "建立一个 {applicationTitle} 专用的 应用", @@ -1007,15 +980,15 @@ "components.PermissionEdit.manageissues": "管理问题", "components.RequestModal.approve": "批准请求", "components.RequestModal.requestApproved": "{title} 的请求已被批准!", - "components.RequestModal.requestmovies4k": "提出4K请求", + "components.RequestModal.requestmovies4k": "提交 4K 请求", "components.IssueModal.CreateIssueModal.extras": "特辑", "components.IssueModal.CreateIssueModal.problemepisode": "有问题的集数", "components.IssueModal.CreateIssueModal.problemseason": "有问题的季数", "components.IssueModal.CreateIssueModal.providedetail": "请详细描述您遇到的问题。", "components.IssueModal.CreateIssueModal.reportissue": "报告问题", "components.IssueModal.CreateIssueModal.season": "第 {seasonNumber} 季", - "components.ManageSlideOver.openarr": "打开{arr}服务器", - "components.ManageSlideOver.openarr4k": "打开4K {arr} 服务器", + "components.ManageSlideOver.openarr": "在 {arr} 中打开", + "components.ManageSlideOver.openarr4k": "在 4K {arr} 中打开", "components.ManageSlideOver.tvshow": "个剧集", "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "请输入有效的 API 令牌", "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "请输入 API 令牌", @@ -1033,7 +1006,7 @@ "components.RequestBlock.languageprofile": "语言配置文件", "components.TitleCard.mediaerror": "未找到{mediaType}", "components.MovieDetails.digitalrelease": "数字发行", - "components.MovieDetails.physicalrelease": "物理释放", + "components.MovieDetails.physicalrelease": "实体发行", "components.MovieDetails.theatricalrelease": "剧场版", "components.PermissionEdit.viewrecent": "查看最近添加的内容", "components.PermissionEdit.viewrecentDescription": "授予查看最近添加的媒体列表的权限。", @@ -1049,7 +1022,7 @@ "components.MovieDetails.managemovie": "管理电影", "components.MovieDetails.reportissue": "报告问题", "components.NotificationTypeSelector.mediaautorequested": "自动提交的请求", - "components.PermissionEdit.viewwatchlistsDescription": "授权查看其他用户的Plex关注列表。", + "components.PermissionEdit.viewwatchlistsDescription": "授权查看其他用户的 Plex 关注列表的权限。", "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", "components.Settings.advancedTooltip": "错误配置此设置可能会导致功能不可用", "components.Settings.experimentalTooltip": "启用此设置可能会导致意外的应用程序行为", @@ -1059,14 +1032,70 @@ "components.Layout.UserDropdown.requests": "请求", "components.Settings.restartrequiredTooltip": "必须重新启动 Overseerr 才能使更改的设置生效", "components.TvDetails.manageseries": "管理电视节目", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "自动请求您的 Plex 关注列表的媒体", - "components.AirDateBadge.airedrelative": "播出{relativeTime}", - "components.AirDateBadge.airsrelative": "播出{relativeTime}", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "自动请求您的 Plex 关注列表 的电视节目", + "components.AirDateBadge.airedrelative": "{relativeTime}播出", + "components.AirDateBadge.airsrelative": "{relativeTime}播出", "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "电影请求", "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "电视节目请求", "components.NotificationTypeSelector.mediaautorequestedDescription": "当 Plex 关注列表中的项目自动提交新媒体请求时,会收到通知。", "components.PermissionEdit.viewwatchlists": "查看 Plex 关注列表", "components.TvDetails.Season.somethingwentwrong": "在检索季元数据时出了问题。", "components.UserProfile.plexwatchlist": "Plex 关注列表", - "components.RequestCard.tvdbid": "TheTVDB ID" + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "当前频率", + "components.StatusBadge.playonplex": "在 Plex 上观看", + "components.TitleCard.cleardata": "清除数据", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "您的 Plex 关注列表", + "components.Discover.plexwatchlist": "您的 Plex 关注列表", + "components.PermissionEdit.autorequestSeriesDescription": "授予自动请求 Plex 关注列表中的非 4K 电视节目的权限。", + "components.PermissionEdit.autorequest": "自动请求", + "components.PermissionEdit.autorequestDescription": "授予自动请求 Plex 关注列表中的非 4K 媒体的权限。", + "components.TvDetails.episodeCount": "{episodeCount} 集", + "components.MovieDetails.rtcriticsscore": "烂番茄专业评分", + "components.MovieDetails.tmdbuserscore": "TMDB 用户评分", + "components.RequestBlock.approve": "批准请求", + "components.RequestBlock.lastmodifiedby": "最后修改者", + "components.MovieDetails.rtaudiencescore": "烂番茄观众评分", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "电视节目自动请求", + "components.TvDetails.rtaudiencescore": "烂番茄观众评分", + "components.TvDetails.rtcriticsscore": "烂番茄专业评分", + "components.TvDetails.tmdbuserscore": "TMDB 用户评分", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "同步 Plex 关注列表", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "自动请求您的 Plex 关注列表 中的电影", + "components.PermissionEdit.autorequestSeries": "电视节目自动请求", + "components.PermissionEdit.autorequestMoviesDescription": "授予自动请求 Plex 关注列表中的非 4K 电影的权限。", + "components.PermissionEdit.autorequestMovies": "电影自动请求", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "电影自动请求", + "components.RequestBlock.decline": "拒绝请求", + "components.RequestModal.requestcollection4ktitle": "提交 4K 系列请求", + "components.RequestModal.requestmovie4ktitle": "提交 4K 电影请求", + "components.RequestModal.requestmovietitle": "提交电影请求", + "components.RequestModal.requestseriestitle": "提交电视节目请求", + "components.RequestBlock.edit": "编辑请求", + "components.RequestModal.requestseries4ktitle": "提交 4K 电视节目请求", + "components.RequestBlock.delete": "删除请求", + "components.RequestBlock.requestdate": "请求日期", + "components.RequestBlock.requestedby": "请求者", + "components.RequestCard.approverequest": "批准请求", + "components.RequestModal.requestcollectiontitle": "提交系列请求", + "components.TvDetails.Season.noepisodes": "剧集列表不可用。", + "components.StatusBadge.managemedia": "管理{mediaType}", + "components.StatusBadge.openinarr": "在 {arr} 中打开", + "components.TvDetails.status4k": "4K 版{status}", + "components.UserProfile.emptywatchlist": "您的 Plex 关注列表中的媒体会显示在这里。", + "components.TvDetails.seasonnumber": "第 {seasonNumber} 季", + "components.TvDetails.seasonstitle": "季数", + "components.RequestModal.SearchByNameModal.nomatches": "找不到此电视节目的数据。", + "components.Discover.emptywatchlist": "您的 Plex 关注列表中的媒体会显示在这里。", + "components.RequestCard.cancelrequest": "取消请求", + "components.RequestCard.declinerequest": "拒绝请求", + "components.RequestCard.editrequest": "编辑请求", + "components.TitleCard.tmdbid": "TMDB ID", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.Settings.SettingsJobsCache.imagecachecount": "已缓存图片", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "清理图片缓存", + "components.Settings.SettingsJobsCache.imagecacheDescription": "当此功能在设置中启用时,Overseerr 将代理并缓存预配置的外部来源中的图像。缓存的图片保存于你的配置文件夹中,你可以在 {appDataPath}/cache/images 目录下找到这些文件。", + "components.Settings.SettingsJobsCache.imagecache": "图片缓存", + "components.Settings.SettingsJobsCache.imagecachesize": "缓存总大小", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}" } diff --git a/src/i18n/locale/zh_Hant.json b/src/i18n/locale/zh_Hant.json index b58c3408f..baa8dfea6 100644 --- a/src/i18n/locale/zh_Hant.json +++ b/src/i18n/locale/zh_Hant.json @@ -2,9 +2,7 @@ "components.Settings.Notifications.webhookUrl": "Webhook 網址", "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook 網址", "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook 網址", - "components.Settings.applicationurl": "應用程式網址", "components.Settings.SonarrModal.apiKey": "應用程式密鑰", - "components.Settings.apikey": "應用程式密鑰", "components.Settings.RadarrModal.apiKey": "應用程式密鑰", "components.Settings.Notifications.senderName": "發件人名稱", "components.Settings.Notifications.emailsender": "發件人電子郵件地址", @@ -76,7 +74,6 @@ "components.Settings.SonarrModal.loadingprofiles": "載入中…", "components.Settings.RadarrModal.loadingrootfolders": "載入中…", "components.Settings.RadarrModal.loadingprofiles": "載入中…", - "components.Settings.toastSettingsSuccess": "設定儲存成功!", "components.Search.searchresults": "搜尋結果", "components.RequestModal.seasonnumber": "第 {number} 季", "components.RequestModal.season": "季數", @@ -178,7 +175,6 @@ "components.Settings.SettingsAbout.helppaycoffee": "請開發者喝咖啡", "components.Settings.SettingsAbout.githubdiscussions": "GitHub 討論區", "components.Settings.startscan": "執行掃描", - "components.Settings.generalsettings": "一般設定", "components.Settings.cancelscan": "取消掃描", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr 伺服器連線成功!", "components.Settings.SonarrModal.testFirstRootFolders": "請先測試連線", @@ -220,8 +216,6 @@ "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON 有效負載重設為預設負載成功!", "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "請輸入有效的使用者或群組令牌", "components.Settings.menuJobs": "作業和快取", - "components.Settings.toastApiKeyFailure": "生成應用程式密鑰時出了點問題。", - "components.Settings.toastSettingsFailure": "儲存設定時出了點問題。", "components.UserList.deleteconfirm": "確定要刪除這個使用者嗎?此使用者的所有儲存資料將被清除。", "components.Settings.SettingsAbout.Releases.releasedataMissing": "無法獲取軟體版本資料。", "components.UserList.passwordinfodescription": "設定應用程式網址以及啟用電子郵件通知,才能自動生成密碼。", @@ -265,7 +259,6 @@ "components.TvDetails.showtype": "影集類型", "components.TvDetails.similar": "類似", "components.RequestModal.requestfrom": "{username} 的請求待處理。", - "components.Settings.toastApiKeySuccess": "生成新應用程式密鑰成功!", "components.Settings.validationPortRequired": "請輸入有效的通訊埠", "components.Settings.validationHostnameRequired": "請輸入有效的主機名稱或 IP 位址", "components.Settings.SonarrModal.validationPortRequired": "請輸入有效的通訊埠", @@ -330,10 +323,8 @@ "components.Settings.serverpresetRefreshing": "載入中…", "components.Settings.SonarrModal.syncEnabled": "啟用掃描", "components.UserList.userssaved": "使用者權限儲存成功!", - "components.Settings.hideAvailable": "隱藏可觀看的電影和影集", "components.Settings.SonarrModal.externalUrl": "外部網址", "components.Settings.RadarrModal.externalUrl": "外部網址", - "components.Settings.csrfProtection": "防止跨站請求偽造(CSRF)攻擊", "components.RequestBlock.requestoverrides": "覆寫請求", "components.Settings.toastPlexConnectingSuccess": "Plex 伺服器連線成功!", "components.Settings.serverRemote": "遠端", @@ -361,7 +352,6 @@ "components.RequestBlock.profilechanged": "品質設定", "components.PermissionEdit.advancedrequest": "進階請求", "components.RequestModal.requestedited": "{title} 的請求編輯成功!", - "components.Settings.trustProxy": "啟用代理伺服器所需功能", "components.RequestModal.errorediting": "編輯請求時出了點問題。", "components.RequestModal.requesterror": "提出請求時出了點問題。", "components.Settings.SettingsJobsCache.cachekeys": "鍵數", @@ -391,9 +381,7 @@ "components.Settings.toastPlexRefreshSuccess": "獲取 Plex 伺服器列表成功!", "components.Settings.toastPlexRefreshFailure": "獲取 Plex 伺服器列表失敗。", "components.Settings.toastPlexConnectingFailure": "Plex 伺服器連線失敗。", - "components.Settings.csrfProtectionHoverTip": "除非您了解此功能,請勿啟用它!", "components.UserList.users": "使用者", - "components.Settings.applicationTitle": "應用程式名稱", "components.Search.search": "搜尋", "components.Setup.setup": "設定", "components.Discover.discover": "探索", @@ -401,9 +389,6 @@ "components.RequestModal.AdvancedRequester.requestas": "請求者", "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "請刪除結尾斜線", "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "請刪除結尾斜線", - "components.Settings.validationApplicationUrlTrailingSlash": "請刪除結尾斜線", - "components.Settings.validationApplicationTitle": "請輸入應用程式名稱", - "components.Settings.validationApplicationUrl": "請輸入有效的網址", "components.Settings.SonarrModal.validationApplicationUrl": "請輸入有效的網址", "components.Settings.RadarrModal.validationApplicationUrl": "請輸入有效的網址", "components.PermissionEdit.viewrequests": "查看請求", @@ -504,24 +489,17 @@ "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "重設密碼時出了點問題。", "components.RequestModal.SearchByNameModal.notvdbiddescription": "無法自動配對此影集的數據。 請在以下選擇正確的媒體項。", "components.CollectionDetails.requestcollection4k": "提出 4K 電影系列請求", - "components.Settings.trustProxyTip": "使用代理伺服器時,允許 Overseerr 註冊客戶端的正確 IP 位址", - "components.Settings.csrfProtectionTip": "設定外部訪問權限為只讀(需要 HTTPS)", "components.ResetPassword.requestresetlinksuccessmessage": "通過電子郵件發送了密碼重設鏈接。", "components.ResetPassword.resetpasswordsuccessmessage": "密碼重設成功!", "components.RegionSelector.regionDefault": "所有地區", "components.UserProfile.UserSettings.UserGeneralSettings.region": "「探索」地區", - "components.Settings.region": "「探索」地區", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "「探索」語言", - "components.Settings.originallanguage": "「探索」語言", "components.Discover.upcomingtv": "即將上映的影集", "components.Settings.webhook": "Webhook", "components.Settings.email": "電子郵件", - "components.Settings.generalsettingsDescription": "Overseerr 的全域和預設設定。", "components.Settings.notificationAgentSettingsDescription": "設定通知類型和代理服務。", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "以地區可用性篩選結果", - "components.Settings.regionTip": "以地區可用性篩選結果", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "以原始語言篩選結果", - "components.Settings.originallanguageTip": "以原始語言篩選結果", "components.Settings.SettingsJobsCache.jobsDescription": "Overseerr 將定時運行以下的維護任務。手動執行工作不會影響它正常的行程。", "components.Settings.plexsettingsDescription": "關於 Plex 伺服器的設定。Overseerr 將定時執行媒體庫掃描。", "components.Settings.manualscanDescription": "在正常情況下,Overseerr 會每24小時掃描您的 Plex 媒體庫。最近新增的媒體將更頻繁掃描。設定新的 Plex 伺服器時,我們建議您執行一次手動掃描!", @@ -591,7 +569,6 @@ "components.Discover.MovieGenreSlider.moviegenres": "電影類型", "components.Discover.MovieGenreList.moviegenres": "電影類型", "components.Discover.TvGenreList.seriesgenres": "影集類型", - "components.Settings.partialRequestsEnabled": "允許不完整的影集請求", "components.RequestModal.alreadyrequested": "已經有請求", "components.Settings.SettingsLogs.time": "時間戳", "components.Settings.SettingsLogs.resumeLogs": "恢復", @@ -616,16 +593,13 @@ "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "重設密碼時出了點問題。您確定輸入的當前密碼是正確的嗎?", "components.ResetPassword.passwordreset": "密碼重設", "components.UserProfile.UserSettings.UserGeneralSettings.general": "一般", - "components.Settings.general": "一般", "components.Settings.services": "伺服器", "components.Settings.plex": "Plex", "components.Settings.notifications": "通知", "components.Settings.SettingsLogs.message": "訊息", "components.Settings.SettingsJobsCache.jobsandcache": "作業和快取", "components.Settings.SettingsAbout.about": "關於 Overseerr", - "components.Settings.cacheImages": "啟用圖像檔案快取", "components.Settings.SettingsLogs.logsDescription": "您也能直接查看 stdout 數據流或位置於 {appDataPath}/logs/overseerr.log 的日誌檔案。", - "components.Settings.cacheImagesTip": "處理和提供優化的圖像檔案(需要大量的磁碟空間)", "components.Settings.SettingsLogs.logDetails": "日誌詳細信息", "components.Settings.SettingsLogs.extraData": "附加數據", "components.Settings.SettingsLogs.copyToClipboard": "複製到剪貼板", @@ -797,7 +771,6 @@ "components.PermissionEdit.requestMoviesDescription": "授予提出非 4K 電影請求的權限。", "components.PermissionEdit.requestTvDescription": "授予提出非 4K 影集請求的權限。", "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "預設設定({language})", - "components.Settings.locale": "顯示語言", "components.DownloadBlock.estimatedtime": "預計:{time}", "components.Settings.Notifications.encryptionTip": "TLS 通常會使用通訊埠 465,而 STARTTLS 通常會使用通訊埠 587", "components.Settings.Notifications.encryptionDefault": "盡可能使用 STARTTLS", @@ -1117,5 +1090,6 @@ "components.Discover.emptywatchlist": "您的 Plex 關注列表中的媒體會顯示在這裡。", "components.Settings.advancedTooltip": "錯誤的設定可能會破壞應用程式功能", "components.Settings.experimentalTooltip": "啟用此設定可能會出現意外的應用程式行為", - "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "目前的頻率" + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "目前的頻率", + "components.TvDetails.Season.noepisodes": "没有剧集列表。" } From 08c9085f0d01031c8a02716e4923d330232408dd Mon Sep 17 00:00:00 2001 From: undone37 <10513808+undone37@users.noreply.github.com> Date: Fri, 6 Jan 2023 11:10:13 +0100 Subject: [PATCH 28/65] Updated German Translations Added missing German translations and fixed some spelling mistakes. Changed some German translations to match informal address of user. Unification of wordings like "Episoden" and "Folgen". --- src/i18n/locale/de.json | 2177 ++++++++++++++++++++------------------- 1 file changed, 1138 insertions(+), 1039 deletions(-) diff --git a/src/i18n/locale/de.json b/src/i18n/locale/de.json index 86c3f86c0..4e4004c5d 100644 --- a/src/i18n/locale/de.json +++ b/src/i18n/locale/de.json @@ -1,1041 +1,1140 @@ { - "components.Discover.discovermovies": "Beliebte Filme", - "components.Discover.discovertv": "Beliebte Serien", - "components.Discover.popularmovies": "Beliebte Filme", - "components.Discover.populartv": "Beliebte Serien", - "components.Discover.recentlyAdded": "Kürzlich hinzugefügt", - "components.Discover.recentrequests": "Vorherige Anfragen", - "components.Discover.trending": "Trends", - "components.Discover.upcoming": "Kommende Filme", - "components.Discover.upcomingmovies": "Kommende Filme", - "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", - "components.Layout.Sidebar.dashboard": "Entdecken", - "components.Layout.Sidebar.requests": "Anfragen", - "components.Layout.Sidebar.settings": "Einstellungen", - "components.Layout.Sidebar.users": "Benutzer", - "components.Layout.UserDropdown.signout": "Abmelden", - "components.MovieDetails.budget": "Budget", - "components.MovieDetails.cast": "Besetzung", - "components.MovieDetails.originallanguage": "Originalsprache", - "components.MovieDetails.overview": "Übersicht", - "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.MovieDetails.recommendations": "Empfehlungen", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", - "components.MovieDetails.revenue": "Einnahmen", - "components.MovieDetails.runtime": "{minutes} Minuten", - "components.MovieDetails.similar": "Ähnliche Titel", - "components.PersonDetails.appearsin": "Auftritte", - "components.PersonDetails.ascharacter": "als {character}", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestList.requests": "Anfragen", - "components.RequestModal.cancel": "Anfrage abbrechen", - "components.RequestModal.extras": "Extras", - "components.RequestModal.numberofepisodes": "Anzahl der Folgen", - "components.RequestModal.pendingrequest": "Ausstehende Anfrage", - "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", - "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", - "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", - "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", - "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", - "components.RequestModal.season": "Staffel", - "components.RequestModal.seasonnumber": "Staffel {number}", - "components.RequestModal.selectseason": "Staffel(n) Auswählen", - "components.Search.searchresults": "Suchergebnisse", - "components.Settings.Notifications.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.authPass": "SMTP-Passwort", - "components.Settings.Notifications.authUser": "SMTP-Benutzername", - "components.Settings.Notifications.emailsender": "Absenderadresse", - "components.Settings.Notifications.smtpHost": "SMTP-Host", - "components.Settings.Notifications.smtpPort": "SMTP-Port", - "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", - "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.Notifications.webhookUrl": "Webhook-URL", - "components.Settings.RadarrModal.add": "Server hinzufügen", - "components.Settings.RadarrModal.apiKey": "API-Schlüssel", - "components.Settings.RadarrModal.baseUrl": "Basis-URL", - "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", - "components.Settings.RadarrModal.defaultserver": "Standardserver", - "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", - "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", - "components.Settings.RadarrModal.port": "Port", - "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.RadarrModal.rootfolder": "Stammordner", - "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", - "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.RadarrModal.server4k": "4K-Server", - "components.Settings.RadarrModal.servername": "Servername", - "components.Settings.RadarrModal.ssl": "SSL aktivieren", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", - "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", - "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.SonarrModal.add": "Server hinzufügen", - "components.Settings.SonarrModal.apiKey": "API-Schlüssel", - "components.Settings.SonarrModal.baseUrl": "Basis-URL", - "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", - "components.Settings.SonarrModal.defaultserver": "Standardserver", - "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", - "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.SonarrModal.port": "Port", - "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.SonarrModal.rootfolder": "Stammordner", - "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", - "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.SonarrModal.server4k": "4K-Server", - "components.Settings.SonarrModal.servername": "Servername", - "components.Settings.SonarrModal.ssl": "SSL aktivieren", - "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", - "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.activeProfile": "Aktives Profil", - "components.Settings.addradarr": "Radarr-Server hinzufügen", - "components.Settings.address": "Adresse", - "components.Settings.addsonarr": "Sonarr-Server hinzufügen", - "components.Settings.apikey": "API-Schlüssel", - "components.Settings.applicationurl": "Anwendungs-URL", - "components.Settings.cancelscan": "Durchsuchung abbrechen", - "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", - "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", - "components.Settings.default": "Standardmäßig", - "components.Settings.default4k": "Standard-4K", - "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", - "components.Settings.generalsettings": "Allgemeine Einstellungen", - "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", - "components.Settings.hostname": "Hostname oder IP-Adresse", - "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", - "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", - "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", - "components.Settings.menuAbout": "Über", - "components.Settings.menuGeneralSettings": "Allgemein", - "components.Settings.menuJobs": "Aufgaben und Cache", - "components.Settings.menuLogs": "Protokolle", - "components.Settings.menuNotifications": "Benachrichtigungen", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuServices": "Dienste", - "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", - "components.Settings.notrunning": "Nicht aktiv", - "components.Settings.plexlibraries": "Plex-Bibliotheken", - "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", - "components.Settings.plexsettings": "Plex-Einstellungen", - "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", - "components.Settings.port": "Port", - "components.Settings.radarrsettings": "Radarr-Einstellungen", - "components.Settings.sonarrsettings": "Sonarr-Einstellungen", - "components.Settings.ssl": "SSL", - "components.Settings.startscan": "Durchsuchung starten", - "components.Setup.configureplex": "Plex konfigurieren", - "components.Setup.configureservices": "Dienste konfigurieren", - "components.Setup.continue": "Fortfahren", - "components.Setup.finish": "Konfiguration beenden", - "components.Setup.finishing": "Fertigstellung …", - "components.Setup.loginwithplex": "Mit Plex anmelden", - "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", - "components.Setup.welcome": "Willkommen bei Jellyseerr", - "components.TvDetails.cast": "Besetzung", - "components.TvDetails.originallanguage": "Originalsprache", - "components.TvDetails.overview": "Übersicht", - "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.TvDetails.recommendations": "Empfehlungen", - "components.TvDetails.similar": "Ähnliche Serien", - "components.UserList.admin": "Admin", - "components.UserList.created": "Beigetreten", - "components.UserList.plexuser": "Plex-Benutzer", - "components.UserList.role": "Rolle", - "components.UserList.totalrequests": "Anfragen", - "components.UserList.user": "Benutzer", - "components.UserList.userlist": "Benutzerliste", - "i18n.approve": "Genehmigen", - "i18n.approved": "Genehmigt", - "i18n.available": "Verfügbar", - "i18n.cancel": "Abbrechen", - "i18n.decline": "Ablehnen", - "i18n.declined": "Abgelehnt", - "i18n.delete": "Löschen", - "i18n.movies": "Filme", - "i18n.partiallyavailable": "Teilweise verfügbar", - "i18n.pending": "Ausstehend", - "i18n.processing": "Verarbeiten", - "i18n.tvshows": "Serien", - "i18n.unavailable": "Nicht verfügbar", - "pages.oops": "Hoppla", - "pages.returnHome": "Zur Startseite", - "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", - "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", - "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", - "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Settings.SettingsAbout.version": "Version", - "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", - "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", - "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", - "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", - "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", - "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Setup.tip": "Tipp", - "i18n.deleting": "Löschen …", - "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", - "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", - "components.UserList.deleteuser": "Benutzer löschen", - "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", - "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", - "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.TvDetails.anime": "Anime", - "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", - "components.TvDetails.showtype": "Serientyp", - "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", - "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", - "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", - "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", - "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", - "i18n.close": "Schließen", - "components.Settings.SettingsAbout.timezone": "Zeitzone", - "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", - "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", - "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", - "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", - "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", - "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", - "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", - "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", - "components.UserList.importfromplex": "Plex-Benutzer importieren", - "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", - "components.PersonDetails.crewmember": "Crew", - "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", - "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", - "components.TvDetails.firstAirDate": "Erstausstrahlung", - "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", - "components.TvDetails.watchtrailer": "Trailer ansehen", - "components.MovieDetails.watchtrailer": "Trailer ansehen", - "components.CollectionDetails.requestcollection": "Sammlung anfragen", - "components.CollectionDetails.overview": "Übersicht", - "components.CollectionDetails.numberofmovies": "{count} Filme", - "i18n.requested": "Angefragt", - "i18n.retry": "Wiederholen", - "i18n.failed": "Fehlgeschlagen", - "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", - "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", - "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.senderName": "Absendername", - "components.Settings.Notifications.chatId": "Chat-ID", - "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", - "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", - "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", - "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", - "components.Settings.SettingsAbout.documentation": "Dokumentation", - "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", - "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", - "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", - "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", - "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", - "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", - "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", - "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", - "i18n.request": "Anfragen", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", - "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", - "components.RequestList.sortModified": "Zuletzt geändert", - "components.RequestList.sortAdded": "Zuletzt angefragt", - "components.RequestList.showallrequests": "Zeige alle Anfragen", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.StatusBadge.status4k": "4K {status}", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", - "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", - "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", - "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", - "components.RequestButton.viewrequest": "Anfrage anzeigen", - "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", - "components.RequestButton.requestmore": "Mehr anfragen", - "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", - "components.RequestButton.declinerequest": "Anfrage ablehnen", - "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", - "components.RequestButton.approverequest": "Anfrage genehmigen", - "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", - "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", - "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", - "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", - "components.UserList.creating": "Erstelle…", - "components.UserList.autogeneratepassword": "Passwort automatisch generieren", - "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", - "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", - "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", - "components.UserList.password": "Passwort", - "components.UserList.localuser": "Lokaler Benutzer", - "components.UserList.email": "E-Mail-Adresse", - "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", - "components.UserList.create": "Erstellen", - "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle}-Konto", - "components.Login.password": "Passwort", - "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", - "components.Login.email": "E-Mail-Adresse", - "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", - "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", - "i18n.edit": "Bearbeiten", - "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", - "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", - "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", - "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", - "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", - "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", - "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", - "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", - "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", - "components.RequestBlock.server": "Zielserver", - "components.RequestBlock.rootfolder": "Stammordner", - "components.RequestBlock.profilechanged": "Qualitätsprofil", - "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", - "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", - "components.RequestModal.autoapproval": "Automatische Genehmigung", - "i18n.experimental": "Experimentell", - "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", - "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", - "components.Login.signinwithplex": "Benutze dein Plex-Konto", - "components.Login.signinheader": "Anmelden um fortzufahren", - "components.Login.signingin": "Anmelden …", - "components.Login.signin": "Anmelden", - "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", - "components.PlexLoginButton.signinwithplex": "Anmelden", - "components.PlexLoginButton.signingin": "Anmeldung läuft …", - "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", - "components.PermissionEdit.autoapprove": "Automatische Genehmigung", - "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", - "components.PermissionEdit.managerequests": "Anfragen verwalten", - "components.PermissionEdit.request": "Anfrage", - "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", - "components.PermissionEdit.admin": "Admin", - "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", - "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", - "components.UserList.bulkedit": "Ausgewählte bearbeiten", - "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", - "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", - "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", - "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", - "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", - "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", - "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", - "components.Settings.serverpresetRefreshing": "Rufe Server ab …", - "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", - "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", - "components.Settings.serverpreset": "Server", - "components.Settings.serverRemote": "entfernt", - "components.Settings.serverLocal": "lokal", - "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", - "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", - "components.PermissionEdit.users": "Benutzer verwalten", - "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", - "components.PermissionEdit.settings": "Einstellungen verwalten", - "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", - "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", - "components.PermissionEdit.request4kTv": "4K Serien anfragen", - "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", - "components.PermissionEdit.request4kMovies": "4K Filme anfragen", - "components.PermissionEdit.request4k": "4K anfragen", - "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", - "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", - "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", - "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", - "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", - "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", - "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.SonarrModal.externalUrl": "Externe URL", - "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.RadarrModal.externalUrl": "Externe URL", - "components.TvDetails.playonplex": "Auf Plex abspielen", - "components.MovieDetails.playonplex": "Auf Plex abspielen", - "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", - "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", - "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", - "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", - "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", - "components.Settings.SettingsJobsCache.jobtype": "Art", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", - "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", - "components.Settings.SettingsJobsCache.jobs": "Aufgaben", - "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", - "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", - "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", - "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", - "components.Settings.SettingsJobsCache.cachename": "Cache Name", - "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", - "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", - "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", - "components.Settings.SettingsJobsCache.cachehits": "Treffer", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", - "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", - "components.Settings.SettingsJobsCache.cache": "Cache", - "components.MovieDetails.markavailable": "Als verfügbar markieren", - "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", - "i18n.advanced": "Erweitert", - "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.UserList.users": "Benutzer", - "components.TvDetails.nextAirDate": "Nächstes Sendedatum", - "components.Setup.setup": "Einrichtung", - "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Search.search": "Suchen", - "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.ResetPassword.confirmpassword": "Passwort bestätigen", - "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", - "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", - "components.ResetPassword.resetpassword": "Passwort zurücksetzen", - "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", - "components.ResetPassword.password": "Passwort", - "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", - "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", - "components.ResetPassword.email": "E-Mail-Adresse", - "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", - "components.PermissionEdit.viewrequests": "Anfragen anzeigen", - "components.Login.forgotpassword": "Passwort vergessen?", - "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", - "components.Settings.SettingsJobsCache.command": "Befehl", - "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", - "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", - "components.Discover.discover": "Entdecken", - "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", - "components.Settings.applicationTitle": "Anwendungstitel", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", - "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", - "components.Settings.SonarrModal.languageprofile": "Sprachprofil", - "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", - "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", - "components.Settings.SettingsJobsCache.process": "Prozess", - "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", - "components.Settings.Notifications.sendSilently": "Sende stumm", - "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", - "components.UserList.sortRequests": "Anzahl der Anfragen", - "components.UserList.sortDisplayName": "Anzeigename", - "components.UserList.sortCreated": "Beitrittsdatum", - "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", - "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", - "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", - "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", - "components.UserProfile.recentrequests": "Kürzliche Anfragen", - "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", - "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", - "components.UserProfile.UserSettings.menuChangePass": "Passwort", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", - "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", - "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", - "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", - "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", - "components.Layout.UserDropdown.settings": "Einstellungen", - "components.Layout.UserDropdown.myprofile": "Profil", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", - "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", - "components.Settings.region": "Region Entdecken", - "components.Settings.originallanguage": "Sprache Entdecken", - "components.Discover.upcomingtv": "Kommende Serien", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", - "components.Settings.webhook": "Webhook", - "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.Settings.email": "E-Mail", - "components.RegionSelector.regionDefault": "Alle Regionen", - "components.RegionSelector.regionServerDefault": "Standard ({region})", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", - "components.UserList.owner": "Besitzer", - "components.UserList.accounttype": "Art", - "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", - "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", - "i18n.loading": "Lade …", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", - "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", - "components.Settings.Notifications.botUsername": "Bot Benutzername", - "components.Discover.DiscoverTvGenre.genreSeries": "{genre}-Serien", - "components.Discover.DiscoverStudio.studioMovies": "{studio}-Filme", - "components.Discover.DiscoverNetwork.networkSeries": "{network}-Serien", - "components.Discover.DiscoverMovieGenre.genreMovies": "{genre}-Filme", - "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", - "components.Settings.scanning": "Synchronisieren…", - "components.Settings.scan": "Bibliotheken synchronisieren", - "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", - "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", - "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", - "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", - "components.RequestList.RequestItem.requested": "Angefragt", - "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", - "components.RequestList.RequestItem.modified": "Geändert", - "components.Discover.StudioSlider.studios": "Filmstudio", - "components.Discover.NetworkSlider.networks": "Sender", - "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", - "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", - "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", - "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", - "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", - "components.Settings.menuUsers": "Benutzer", - "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", - "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", - "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", - "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", - "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Sie können Ihre eigenen Berechtigungen nicht ändern.", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", - "components.TvDetails.episodeRuntime": "Episodenlaufzeit", - "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", - "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", - "components.Settings.Notifications.pgpPassword": "PGP Passwort", - "components.RequestModal.alreadyrequested": "Bereits Angefragt", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", - "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", - "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", - "components.Discover.TvGenreList.seriesgenres": "Seriengenres", - "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", - "components.Discover.MovieGenreList.moviegenres": "Filmgenres", - "pages.errormessagewithcode": "{statusCode} - {error}", - "pages.somethingwentwrong": "Etwas ist schief gelaufen", - "pages.serviceunavailable": "Dienst nicht verfügbar", - "pages.pagenotfound": "Seite nicht gefunden", - "pages.internalservererror": "Interner Serverfehler", - "i18n.usersettings": "Benutzereinstellungen", - "i18n.settings": "Einstellungen", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", - "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", - "components.Settings.services": "Dienstleistungen", - "components.Settings.plex": "Plex", - "components.Settings.notifications": "Benachrichtigungen", - "components.Settings.general": "Allgemein", - "components.Settings.enablessl": "SSL aktivieren", - "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", - "components.Settings.cacheImages": "Bild-Caching aktivieren", - "components.Settings.SettingsUsers.users": "Benutzer", - "components.Settings.SettingsLogs.time": "Zeitstempel", - "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", - "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", - "components.Settings.SettingsLogs.pauseLogs": "Pause", - "components.Settings.SettingsLogs.message": "Nachricht", - "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", - "components.Settings.SettingsLogs.logs": "Protokolle", - "components.Settings.SettingsLogs.logDetails": "Protokolldetails", - "components.Settings.SettingsLogs.level": "Schweregrad", - "components.Settings.SettingsLogs.label": "Bezeichnung", - "components.Settings.SettingsLogs.filterWarn": "Warnung", - "components.Settings.SettingsLogs.filterInfo": "Infos", - "components.Settings.SettingsLogs.filterError": "Fehler", - "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", - "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", - "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", - "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", - "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", - "components.Settings.SettingsAbout.about": "Über", - "components.ResetPassword.passwordreset": "Passwort zurücksetzen", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PersonDetails.birthdate": "Geboren am {birthdate}", - "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", - "i18n.delimitedlist": "{a}, {b}", - "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", - "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", - "i18n.view": "Anzeigen", - "i18n.tvshow": "Serien", - "i18n.testing": "Testen…", - "i18n.test": "Test", - "i18n.status": "Status", - "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", - "i18n.saving": "Speichern…", - "i18n.save": "Änderungen speichern", - "i18n.retrying": "Wiederholen…", - "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", - "i18n.requesting": "Anfordern…", - "i18n.request4k": "In 4K anfragen", - "i18n.previous": "Bisherige", - "i18n.notrequested": "Nicht Angefragt", - "i18n.noresults": "Keine Ergebnisse.", - "i18n.next": "Weiter", - "i18n.movie": "Film", - "i18n.canceling": "Abbrechen…", - "i18n.back": "Zurück", - "i18n.areyousure": "Bist du sicher?", - "i18n.all": "Alle", - "components.UserProfile.totalrequests": "Anfragen insgesamt", - "components.UserProfile.seriesrequest": "Serienanfragen", - "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", - "components.UserProfile.movierequests": "Filmanfragen", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.unlimited": "Unbegrenzt", - "components.UserProfile.requestsperdays": "{limit} verbleibend", - "components.UserProfile.limit": "{remaining} von {limit}", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", - "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", - "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", - "components.TvDetails.originaltitle": "Originaltitel", - "components.Settings.serverSecure": "Sicher", - "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", - "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", - "components.Settings.mediaTypeSeries": "Serie", - "components.Settings.mediaTypeMovie": "Film", - "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.SonarrModal.tags": "Tags", - "components.Settings.SonarrModal.selecttags": "Wähle Tags", - "components.Settings.SonarrModal.notagoptions": "Keine Tags.", - "components.Settings.SonarrModal.loadingTags": "Lade Tags…", - "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", - "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", - "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", - "components.Settings.SonarrModal.animeTags": "Anime Tags", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", - "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", - "components.Settings.SettingsAbout.outofdate": "Veraltet", - "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.RadarrModal.tags": "Tags", - "components.Settings.RadarrModal.selecttags": "Tags auswählen", - "components.Settings.RadarrModal.notagoptions": "Keine Tags.", - "components.Settings.RadarrModal.loadingTags": "Lade Tags…", - "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", - "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", - "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", - "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", - "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", - "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", - "components.RequestModal.edit": "Anfrage bearbeiten", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", - "components.RequestModal.QuotaDisplay.season": "Staffeln", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", - "components.RequestModal.QuotaDisplay.movie": "Filme", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.AdvancedRequester.tags": "Tags", - "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", - "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", - "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", - "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", - "components.RequestCard.deleterequest": "Anfrage löschen", - "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", - "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.QuotaSelector.unlimited": "Unbegrenzt", - "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", - "components.MovieDetails.originaltitle": "Originaltitel", - "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", - "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", - "components.Layout.VersionStatus.outofdate": "Veraltet", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", - "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", - "components.LanguageSelector.languageServerDefault": "Standard ({language})", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", - "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", - "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstellen Sie einen Token in Ihren Account Einstellungen", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Geben sie eine valide URL an", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", - "components.RequestList.RequestItem.requesteddate": "Angefordert", - "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", - "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", - "components.PermissionEdit.requestTv": "Serien anfragen", - "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", - "components.PermissionEdit.requestMovies": "Filme anfragen", - "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn Ihre Medienanfragen verfügbar sind.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn Ihre Medienanfrage angenommen wurde.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", - "components.DownloadBlock.estimatedtime": "Geschätzte {time}", - "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", - "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", - "components.Settings.webAppUrl": "Web App URL", - "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", - "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", - "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", - "components.UserList.displayName": "Anzeigename", - "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", - "components.Settings.locale": "Sprache darstellen", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", - "components.Settings.webpush": "Web Push", - "components.Settings.is4k": "4K", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", - "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", - "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", - "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", - "components.Settings.Notifications.encryptionNone": "None", - "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", - "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", - "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", - "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", - "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", - "components.Settings.webAppUrlTip": "Leiten Sie Benutzer optional zur Web-App auf Ihrem Server anstelle der \"gehosteten\" Web-App", - "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", - "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Ihre Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", - "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", - "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", - "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", - "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", - "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", - "components.MovieDetails.showless": "Weniger Anzeigen", - "components.MovieDetails.showmore": "Mehr Anzeigen", - "components.MovieDetails.streamingproviders": "Streamt derzeit auf", - "components.TvDetails.streamingproviders": "Streamt derzeit auf", - "components.StatusBadge.status": "{status}", - "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", - "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", - "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Episode", - "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", - "components.IssueModal.CreateIssueModal.providedetail": "Geben Sie eine detaillierte Erklärung des Problems an.", - "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", - "components.IssueDetails.IssueComment.areyousuredelete": "Soll dieser Kommentar wirklich gelöscht werden?", - "components.IssueDetails.IssueComment.delete": "Kommentar löschen", - "components.IssueDetails.IssueComment.edit": "Kommentar bearbeiten", - "components.IssueDetails.IssueComment.postedby": "Gepostet {relativeTime} von {username}", - "components.IssueDetails.IssueComment.postedbyedited": "Gepostet {relativeTime} von {username} (Bearbeitet)", - "components.IssueDetails.IssueComment.validationComment": "Eine Nachricht muss eingegeben werden", - "components.IssueDetails.IssueDescription.deleteissue": "Problem löschen", - "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", - "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", - "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", - "components.IssueDetails.IssueDescription.description": "Beschreibung", - "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", - "components.IssueDetails.allepisodes": "Alle Folgen", - "components.IssueDetails.allseasons": "Alle Staffeln", - "components.IssueDetails.closeissue": "Problem schließen", - "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", - "components.IssueDetails.comments": "Kommentare", - "components.IssueDetails.deleteissue": "Problem löschen", - "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", - "components.IssueDetails.episode": "Folge {episodeNumber}", - "components.IssueDetails.issuepagetitle": "Problem", - "components.IssueDetails.issuetype": "Art", - "components.IssueDetails.lastupdated": "Letzte Aktualisierung", - "components.IssueDetails.leavecomment": "Kommentar", - "components.IssueDetails.openinarr": "In {arr} öffnen", - "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", - "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", - "components.IssueDetails.unknownissuetype": "Unbekannt", - "components.IssueList.IssueItem.issuetype": "Typ", - "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", - "components.IssueList.IssueItem.problemepisode": "Betroffene Episode", - "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", - "components.IssueList.showallissues": "Alle Probleme anzeigen", - "components.IssueList.sortAdded": "Neueste", - "components.IssueList.sortModified": "Zuletzt geändert", - "components.IssueDetails.nocomments": "Keine Kommentare.", - "components.IssueDetails.openedby": "#{issueId} geöffnet {relativeTime} von {username}", - "components.IssueDetails.openin4karr": "In {arr} 4K öffnen", - "components.IssueDetails.play4konplex": "Auf {mediaServerName} in 4K abspielen", - "components.IssueDetails.playonplex": "Auf {mediaServerName} abspielen", - "components.IssueDetails.problemepisode": "Betroffene Episode", - "components.IssueDetails.problemseason": "Betroffene Staffeln", - "components.IssueDetails.reopenissue": "Problem erneut öffnen", - "components.IssueDetails.season": "Staffel {seasonNumber}", - "components.IssueDetails.toaststatusupdated": "Ausgabestatus erfolgreich aktualisiert!", - "components.IssueList.IssueItem.issuestatus": "Status", - "components.IssueList.IssueItem.opened": "Geöffnet", - "components.IssueList.IssueItem.viewissue": "Problem anzeigen", - "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", - "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", - "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", - "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", - "i18n.open": "Offen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", - "components.IssueModal.CreateIssueModal.submitissue": "Problem einreichen", - "components.IssueModal.issueAudio": "Ton", - "components.IssueModal.issueSubtitles": "Untertitel", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstellen Sie ein Token aus Ihren Kontoeinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung liefern", - "components.IssueModal.CreateIssueModal.whatswrong": "Was ist los?", - "components.IssueModal.issueOther": "Andere", - "components.Layout.Sidebar.issues": "Probleme", - "components.ManageSlideOver.downloadstatus": "Downloads", - "components.ManageSlideOver.manageModalClearMedia": "Daten löschen", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in Ihrer {mediaServerName}-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", - "components.ManageSlideOver.manageModalIssues": "Problem eröffnen", - "components.ManageSlideOver.manageModalNoRequests": "Keine Anfragen.", - "components.ManageSlideOver.manageModalRequests": "Anfragen", - "components.ManageSlideOver.manageModalTitle": "{mediaType} verwalten", - "components.ManageSlideOver.mark4kavailable": "Als in 4K verfügbar markieren", - "components.ManageSlideOver.markavailable": "Als verfügbar markieren", - "components.ManageSlideOver.movie": "Film", - "components.ManageSlideOver.openarr": "In {arr} öffnen", - "components.ManageSlideOver.openarr4k": "In 4K {arr} öffnen", - "components.ManageSlideOver.tvshow": "Serie", - "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", - "components.NotificationTypeSelector.issueresolved": "Problem gelöst", - "components.NotificationTypeSelector.issueresolvedDescription": "Senden Sie Benachrichtigungen, wenn Probleme gelöst sind.", - "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen Sie sich benachrichtigen, wenn andere Benutzer Probleme melden.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.PermissionEdit.createissues": "Probleme melden", - "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", - "components.IssueList.issues": "Probleme", - "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", - "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", - "components.IssueModal.issueVideo": "Video", - "components.NotificationTypeSelector.adminissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.issuecommentDescription": "Sende eine Benachrichtigungen, wenn Probleme neue Kommentare erhalten.", - "components.NotificationTypeSelector.issuecreated": "Gemeldetes Problem", - "components.PermissionEdit.manageissues": "Probleme verwalten", - "components.PermissionEdit.viewissues": "Probleme ansehen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Anwendungs-API-Token", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register eine Anwendung zur Verwendung mit {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Benutzer- oder Gruppenschlüssel", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Die 30-stellige Benutzer- oder Gruppenkennung", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Die Einstellungen für die Pushover-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ein Zugriffstoken muss angegeben werden", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Sie müssen ein gültiges Anwendungs-Token angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Du musst einen gültigen Benutzer- oder Gruppenschlüssel angeben", - "i18n.resolved": "Gelöst", - "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", - "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", - "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", - "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", - "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", - "components.MovieDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", - "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", - "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", - "components.RequestModal.selectmovies": "Wähle Film(e)", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", - "components.RequestModal.approve": "Anfrage genehmigen", - "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", - "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", - "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", - "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", - "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", - "components.Settings.RadarrModal.announced": "Angekündigt", - "components.Settings.RadarrModal.inCinemas": "Im Kino", - "components.Settings.RadarrModal.released": "Veröffentlicht", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", - "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", - "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", - "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", - "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", - "i18n.importing": "Importieren…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", - "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", - "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", - "i18n.import": "Importieren", - "components.ManageSlideOver.manageModalMedia": "Medien", - "components.ManageSlideOver.alltime": "Gesamte Zeit", - "components.ManageSlideOver.manageModalMedia4k": "4K Medien", - "components.ManageSlideOver.playedby": "Abgespielt von", - "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", - "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", - "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", - "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", - "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", - "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für Ihre Plex-Medien von Tautulli.", - "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", - "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", - "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", - "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", - "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", - "components.UserProfile.recentlywatched": "Kürzlich angesehen", - "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", - "components.ManageSlideOver.manageModalAdvanced": "Fortgeschrittene", - "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", - "components.Settings.urlBase": "URL-Basis", - "components.Settings.externalUrl": "Externe URL", - "components.Settings.tautulliApiKey": "API-Schlüssel", - "components.Settings.tautulliSettings": "Tautulli Einstellungen", - "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", - "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", - "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", - "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", - "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts" + "components.AirDateBadge.airedrelative": "Ausgestrahlt {relativeTime}", + "components.AirDateBadge.airsrelative": "Ausstrahlung {relativeTime}", + "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", + "components.CollectionDetails.numberofmovies": "{count} Filme", + "components.CollectionDetails.overview": "Übersicht", + "components.CollectionDetails.requestcollection": "Sammlung anfragen", + "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", + "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Filme", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", + "components.Discover.DiscoverNetwork.networkSeries": "{network} Serien", + "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Serien", + "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Deine Plex Watchlist", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.MovieGenreList.moviegenres": "Filmgenres", + "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", + "components.Discover.NetworkSlider.networks": "Sender", + "components.Discover.StudioSlider.studios": "Filmstudio", + "components.Discover.TvGenreList.seriesgenres": "Seriengenres", + "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", + "components.Discover.discover": "Entdecken", + "components.Discover.discovermovies": "Beliebte Filme", + "components.Discover.discovertv": "Beliebte Serien", + "components.Discover.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.Discover.noRequests": "Keine Anfragen.", + "components.Discover.plexwatchlist": "Deine Plex Watchlist", + "components.Discover.popularmovies": "Beliebte Filme", + "components.Discover.populartv": "Beliebte Serien", + "components.Discover.recentlyAdded": "Kürzlich hinzugefügt", + "components.Discover.recentrequests": "Vorherige Anfragen", + "components.Discover.trending": "Trends", + "components.Discover.upcoming": "Kommende Filme", + "components.Discover.upcomingmovies": "Kommende Filme", + "components.Discover.upcomingtv": "Kommende Serien", + "components.DownloadBlock.estimatedtime": "Geschätzt {time}", + "components.DownloadBlock.formattedTitle": "{title}: Staffel {seasonNumber} Folge {episodeNumber}", + "components.IssueDetails.IssueComment.areyousuredelete": "Soll dieser Kommentar wirklich gelöscht werden?", + "components.IssueDetails.IssueComment.delete": "Kommentar löschen", + "components.IssueDetails.IssueComment.edit": "Kommentar bearbeiten", + "components.IssueDetails.IssueComment.postedby": "Gepostet {relativeTime} von {username}", + "components.IssueDetails.IssueComment.postedbyedited": "Gepostet {relativeTime} von {username} (Bearbeitet)", + "components.IssueDetails.IssueComment.validationComment": "Du musst eine Nachricht eingeben", + "components.IssueDetails.IssueDescription.deleteissue": "Problem löschen", + "components.IssueDetails.IssueDescription.description": "Beschreibung", + "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", + "components.IssueDetails.allepisodes": "Alle Folgen", + "components.IssueDetails.allseasons": "Alle Staffeln", + "components.IssueDetails.closeissue": "Problem schließen", + "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", + "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", + "components.IssueDetails.comments": "Kommentare", + "components.IssueDetails.deleteissue": "Problem löschen", + "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", + "components.IssueDetails.episode": "Folge {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problem", + "components.IssueDetails.issuetype": "Art", + "components.IssueDetails.lastupdated": "Letzte Aktualisierung", + "components.IssueDetails.leavecomment": "Kommentar", + "components.IssueDetails.nocomments": "Keine Kommentare.", + "components.IssueDetails.openedby": "#{issueId} geöffnet {relativeTime} von {username}", + "components.IssueDetails.openin4karr": "In {arr} 4K öffnen", + "components.IssueDetails.openinarr": "In {arr} öffnen", + "components.IssueDetails.play4konplex": "Auf {mediaServerName} in 4K abspielen", + "components.IssueDetails.playonplex": "Auf {mediaServerName} abspielen", + "components.IssueDetails.problemepisode": "Betroffene Folge", + "components.IssueDetails.problemseason": "Betroffene Staffeln", + "components.IssueDetails.reopenissue": "Problem erneut öffnen", + "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", + "components.IssueDetails.season": "Staffel {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", + "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", + "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", + "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", + "components.IssueDetails.toaststatusupdated": "Problemstatus erfolgreich aktualisiert!", + "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", + "components.IssueDetails.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", + "components.IssueList.IssueItem.issuestatus": "Status", + "components.IssueList.IssueItem.issuetype": "Typ", + "components.IssueList.IssueItem.opened": "Geöffnet", + "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", + "components.IssueList.IssueItem.problemepisode": "Betroffene Folge", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.viewissue": "Problem anzeigen", + "components.IssueList.issues": "Probleme", + "components.IssueList.showallissues": "Alle Probleme anzeigen", + "components.IssueList.sortAdded": "Neueste", + "components.IssueList.sortModified": "Zuletzt geändert", + "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", + "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", + "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Folge", + "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", + "components.IssueModal.CreateIssueModal.providedetail": "Gib eine detaillierte Erklärung des Problems an.", + "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", + "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Problem melden", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung eingeben", + "components.IssueModal.CreateIssueModal.whatswrong": "Was ist das Problem?", + "components.IssueModal.issueAudio": "Ton", + "components.IssueModal.issueOther": "Andere", + "components.IssueModal.issueSubtitles": "Untertitel", + "components.IssueModal.issueVideo": "Video", + "components.LanguageSelector.languageServerDefault": "Standard ({language})", + "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", + "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", + "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", + "components.Layout.Sidebar.dashboard": "Entdecken", + "components.Layout.Sidebar.issues": "Probleme", + "components.Layout.Sidebar.requests": "Anfragen", + "components.Layout.Sidebar.settings": "Einstellungen", + "components.Layout.Sidebar.users": "Benutzer", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmanfragen", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serienanfragen", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.UserDropdown.requests": "Anfragen", + "components.Layout.UserDropdown.settings": "Einstellungen", + "components.Layout.UserDropdown.signout": "Abmelden", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", + "components.Layout.VersionStatus.outofdate": "Veraltet", + "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", + "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", + "components.Login.email": "E-Mail-Adresse", + "components.Login.forgotpassword": "Passwort vergessen?", + "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", + "components.Login.password": "Passwort", + "components.Login.signin": "Anmelden", + "components.Login.signingin": "Anmelden …", + "components.Login.signinheader": "Anmelden um fortzufahren", + "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle} Konto", + "components.Login.signinwithplex": "Benutze dein Plex Konto", + "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.ManageSlideOver.alltime": "Gesamte Zeit", + "components.ManageSlideOver.downloadstatus": "Downloads", + "components.ManageSlideOver.manageModalAdvanced": "Fortgeschritten", + "components.ManageSlideOver.manageModalClearMedia": "Daten löschen", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in deiner {mediaServerName}-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", + "components.ManageSlideOver.manageModalIssues": "Problem eröffnen", + "components.ManageSlideOver.manageModalMedia": "Medien", + "components.ManageSlideOver.manageModalMedia4k": "4K Medien", + "components.ManageSlideOver.manageModalNoRequests": "Keine Anfragen.", + "components.ManageSlideOver.manageModalRequests": "Anfragen", + "components.ManageSlideOver.manageModalTitle": "{mediaType} verwalten", + "components.ManageSlideOver.mark4kavailable": "Als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", + "components.ManageSlideOver.markavailable": "Als verfügbar markieren", + "components.ManageSlideOver.movie": "Film", + "components.ManageSlideOver.openarr": "In {arr} öffnen", + "components.ManageSlideOver.openarr4k": "In 4K {arr} öffnen", + "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", + "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", + "components.ManageSlideOver.playedby": "Abgespielt von", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", + "components.ManageSlideOver.tvshow": "Serie", + "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", + "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", + "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", + "components.MovieDetails.budget": "Budget", + "components.MovieDetails.cast": "Besetzung", + "components.MovieDetails.digitalrelease": "Digitale Veröffentlichung", + "components.MovieDetails.managemovie": "Film verwalten", + "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", + "components.MovieDetails.markavailable": "Als verfügbar markieren", + "components.MovieDetails.originallanguage": "Originalsprache", + "components.MovieDetails.originaltitle": "Originaltitel", + "components.MovieDetails.overview": "Übersicht", + "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.MovieDetails.physicalrelease": "Physikalische Veröffentlichung", + "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", + "components.MovieDetails.playonplex": "Auf Plex abspielen", + "components.MovieDetails.productioncountries": "Produktions{countryCount, plural, one {land} other {länder}}", + "components.MovieDetails.recommendations": "Empfehlungen", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", + "components.MovieDetails.reportissue": "Ein Problem melden", + "components.MovieDetails.revenue": "Einnahmen", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.runtime": "{minutes} Minuten", + "components.MovieDetails.showless": "Weniger Anzeigen", + "components.MovieDetails.showmore": "Mehr Anzeigen", + "components.MovieDetails.similar": "Ähnliche Titel", + "components.MovieDetails.streamingproviders": "Streamt derzeit auf", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", + "components.MovieDetails.theatricalrelease": "Kinostart", + "components.MovieDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.MovieDetails.watchtrailer": "Trailer ansehen", + "components.NotificationTypeSelector.adminissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", + "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", + "components.NotificationTypeSelector.issuecommentDescription": "Sende eine Benachrichtigungen, wenn Probleme neue Kommentare erhalten.", + "components.NotificationTypeSelector.issuecreated": "Gemeldetes Problem", + "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", + "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", + "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.issueresolved": "Problem gelöst", + "components.NotificationTypeSelector.issueresolvedDescription": "Senden Benachrichtigungen, wenn Probleme gelöst sind.", + "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", + "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", + "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", + "components.NotificationTypeSelector.mediaautorequested": "Anfrage automatisch eingereicht", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Lasse dich benachrichtigen, wenn neue Medienanfragen für Objekte auf deiner Plex Watchlist automatisch eingereicht werden.", + "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", + "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", + "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", + "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", + "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", + "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", + "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", + "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", + "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", + "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen dich benachrichtigen, wenn andere Benutzer Probleme melden.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn deine Medienanfrage angenommen wurde.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn deine Medienanfragen verfügbar sind.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", + "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", + "components.PermissionEdit.admin": "Admin", + "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", + "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", + "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", + "components.PermissionEdit.autoapprove": "Automatische Genehmigung", + "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", + "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", + "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", + "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", + "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", + "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", + "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", + "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", + "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", + "components.PermissionEdit.autorequest": "Automatische Anfrage", + "components.PermissionEdit.autorequestDescription": "Erlaube die automatische Übermittlung von Anfragen für Nicht-4K-Medien über die Plex Watchlist.", + "components.PermissionEdit.autorequestMovies": "Auto-Request Filme", + "components.PermissionEdit.autorequestMoviesDescription": "Erlauben es, automatisch Anfragen für Nicht-4K-Filme über die Plex Watchlist zu stellen.", + "components.PermissionEdit.autorequestSeries": "Auto-Request-Serie", + "components.PermissionEdit.autorequestSeriesDescription": "Erlaube es, automatisch Anfragen für Nicht-4K-Serien über die Plex Watchlist zu stellen.", + "components.PermissionEdit.createissues": "Probleme melden", + "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", + "components.PermissionEdit.manageissues": "Probleme verwalten", + "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", + "components.PermissionEdit.managerequests": "Anfragen verwalten", + "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", + "components.PermissionEdit.request": "Anfrage", + "components.PermissionEdit.request4k": "4K anfragen", + "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", + "components.PermissionEdit.request4kMovies": "4K Filme anfragen", + "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", + "components.PermissionEdit.request4kTv": "4K Serien anfragen", + "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", + "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", + "components.PermissionEdit.requestMovies": "Filme anfragen", + "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", + "components.PermissionEdit.requestTv": "Serien anfragen", + "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", + "components.PermissionEdit.settings": "Einstellungen verwalten", + "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", + "components.PermissionEdit.users": "Benutzer verwalten", + "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", + "components.PermissionEdit.viewissues": "Probleme ansehen", + "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", + "components.PermissionEdit.viewrecent": "Kürzlich hinzugefügt anzeigen", + "components.PermissionEdit.viewrecentDescription": "Erteile die Erlaubnis, die Liste der kürzlich hinzugefügten Medien anzuzeigen.", + "components.PermissionEdit.viewrequests": "Anfragen anzeigen", + "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", + "components.PermissionEdit.viewwatchlists": "Plex Watchlists anzeigen", + "components.PermissionEdit.viewwatchlistsDescription": "Erteile die Erlaubnis, die Plex Watchlists anderer Benutzer einzusehen.", + "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", + "components.PersonDetails.appearsin": "Auftritte", + "components.PersonDetails.ascharacter": "als {character}", + "components.PersonDetails.birthdate": "Geboren am {birthdate}", + "components.PersonDetails.crewmember": "Crew", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Anmeldung läuft …", + "components.PlexLoginButton.signinwithplex": "Anmelden", + "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", + "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", + "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", + "components.QuotaSelector.unlimited": "Unbegrenzt", + "components.RegionSelector.regionDefault": "Alle Regionen", + "components.RegionSelector.regionServerDefault": "Standard ({region})", + "components.RequestBlock.approve": "Anfrage genehmigen", + "components.RequestBlock.decline": "Anfrage ablehnen", + "components.RequestBlock.delete": "Anfrage löschen", + "components.RequestBlock.edit": "Anfrage bearbeiten", + "components.RequestBlock.languageprofile": "Sprachprofil", + "components.RequestBlock.lastmodifiedby": "Zuletzt geändert von", + "components.RequestBlock.profilechanged": "Qualitätsprofil", + "components.RequestBlock.requestdate": "Datum der Anfrage", + "components.RequestBlock.requestedby": "Angefordert von", + "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", + "components.RequestBlock.rootfolder": "Stammordner", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestBlock.server": "Zielserver", + "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", + "components.RequestButton.approverequest": "Anfrage genehmigen", + "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", + "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", + "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", + "components.RequestButton.declinerequest": "Anfrage ablehnen", + "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", + "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", + "components.RequestButton.requestmore": "Mehr anfragen", + "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", + "components.RequestButton.viewrequest": "Anfrage anzeigen", + "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", + "components.RequestCard.approverequest": "Anfrage genehmigen", + "components.RequestCard.cancelrequest": "Anfrage abbrechen", + "components.RequestCard.declinerequest": "Anfrage ablehnen", + "components.RequestCard.deleterequest": "Anfrage löschen", + "components.RequestCard.editrequest": "Anfrage bearbeiten", + "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", + "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Unbekannter Titel", + "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", + "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", + "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", + "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", + "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestList.RequestItem.modified": "Geändert", + "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", + "components.RequestList.RequestItem.requested": "Angefragt", + "components.RequestList.RequestItem.requesteddate": "Angefordert", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Unbekannter Titel", + "components.RequestList.requests": "Anfragen", + "components.RequestList.showallrequests": "Zeige alle Anfragen", + "components.RequestList.sortAdded": "Zuletzt angefragt", + "components.RequestList.sortModified": "Zuletzt geändert", + "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", + "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", + "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", + "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", + "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", + "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", + "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", + "components.RequestModal.AdvancedRequester.tags": "Tags", + "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.movie": "Filme", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", + "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", + "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.season": "Staffeln", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", + "components.RequestModal.SearchByNameModal.nomatches": "Wir konnten keine Übereinstimmung für diese Serie finden.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", + "components.RequestModal.alreadyrequested": "Bereits Angefragt", + "components.RequestModal.approve": "Anfrage genehmigen", + "components.RequestModal.autoapproval": "Automatische Genehmigung", + "components.RequestModal.cancel": "Anfrage abbrechen", + "components.RequestModal.edit": "Anfrage bearbeiten", + "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "Anzahl der Folgen", + "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", + "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", + "components.RequestModal.pendingrequest": "Ausstehende Anfrage", + "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", + "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", + "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", + "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestcollection4ktitle": "Sammlung in 4K anfordern", + "components.RequestModal.requestcollectiontitle": "Sammlung anfordern", + "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", + "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", + "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", + "components.RequestModal.requestmovie4ktitle": "Film in 4K anfordern", + "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", + "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", + "components.RequestModal.requestmovietitle": "Film anfordern", + "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", + "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", + "components.RequestModal.requestseries4ktitle": "Serie in 4K anfordern", + "components.RequestModal.requestseriestitle": "Serie anfordern", + "components.RequestModal.season": "Staffel", + "components.RequestModal.seasonnumber": "Staffel {number}", + "components.RequestModal.selectmovies": "Wähle Film(e)", + "components.RequestModal.selectseason": "Staffel(n) Auswählen", + "components.ResetPassword.confirmpassword": "Passwort bestätigen", + "components.ResetPassword.email": "E-Mail-Adresse", + "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", + "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", + "components.ResetPassword.password": "Passwort", + "components.ResetPassword.passwordreset": "Passwort zurücksetzen", + "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", + "components.ResetPassword.resetpassword": "Passwort zurücksetzen", + "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", + "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", + "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.Search.search": "Suchen", + "components.Search.searchresults": "Suchergebnisse", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", + "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Deine Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstelle einen Token aus deinen Kontoeinstellungen", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", + "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", + "components.Settings.Notifications.authPass": "SMTP-Passwort", + "components.Settings.Notifications.authUser": "SMTP-Benutzername", + "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", + "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", + "components.Settings.Notifications.botUsername": "Bot Benutzername", + "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", + "components.Settings.Notifications.chatId": "Chat-ID", + "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", + "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.emailsender": "Absenderadresse", + "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", + "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", + "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", + "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", + "components.Settings.Notifications.encryptionNone": "Keine", + "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", + "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", + "components.Settings.Notifications.pgpPassword": "PGP Passwort", + "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", + "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.sendSilently": "Sende stumm", + "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", + "components.Settings.Notifications.senderName": "Absendername", + "components.Settings.Notifications.smtpHost": "SMTP-Host", + "components.Settings.Notifications.smtpPort": "SMTP-Port", + "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", + "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", + "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", + "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", + "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", + "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", + "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", + "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", + "components.Settings.RadarrModal.add": "Server hinzufügen", + "components.Settings.RadarrModal.announced": "Angekündigt", + "components.Settings.RadarrModal.apiKey": "API-Schlüssel", + "components.Settings.RadarrModal.baseUrl": "Basis-URL", + "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", + "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", + "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", + "components.Settings.RadarrModal.defaultserver": "Standardserver", + "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", + "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", + "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.RadarrModal.externalUrl": "Externe URL", + "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.RadarrModal.inCinemas": "Im Kino", + "components.Settings.RadarrModal.loadingTags": "Lade Tags…", + "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", + "components.Settings.RadarrModal.notagoptions": "Keine Tags.", + "components.Settings.RadarrModal.port": "Port", + "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.RadarrModal.released": "Veröffentlicht", + "components.Settings.RadarrModal.rootfolder": "Stammordner", + "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", + "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.RadarrModal.selecttags": "Tags auswählen", + "components.Settings.RadarrModal.server4k": "4K-Server", + "components.Settings.RadarrModal.servername": "Servername", + "components.Settings.RadarrModal.ssl": "SSL aktivieren", + "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.RadarrModal.tags": "Tags", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", + "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", + "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", + "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", + "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", + "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", + "components.Settings.SettingsAbout.about": "Über", + "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", + "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", + "components.Settings.SettingsAbout.documentation": "Dokumentation", + "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", + "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", + "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", + "components.Settings.SettingsAbout.outofdate": "Veraltet", + "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", + "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", + "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zeitzone", + "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", + "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", + "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", + "components.Settings.SettingsAbout.version": "Version", + "components.Settings.SettingsJobsCache.cache": "Cache", + "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", + "components.Settings.SettingsJobsCache.cachehits": "Treffer", + "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", + "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", + "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", + "components.Settings.SettingsJobsCache.cachename": "Cache Name", + "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", + "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", + "components.Settings.SettingsJobsCache.command": "Befehl", + "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", + "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", + "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuelle Frequenz", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", + "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Bild Cache Bereinigung", + "components.Settings.SettingsJobsCache.imagecache": "Bild Cache", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Wenn diese Funktion in den Einstellungen aktiviert ist, wird Jellyseerr Bilder aus vorkonfigurierten externen Quellen cachen und ausliefern. Bilder im Cache werden in deinem Config Ordner abgelegt. Die findest die Dateien unter {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Bilder im Cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Gesamtgröße des Cache", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", + "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", + "components.Settings.SettingsJobsCache.jobs": "Aufgaben", + "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", + "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", + "components.Settings.SettingsJobsCache.jobtype": "Art", + "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", + "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist Sync", + "components.Settings.SettingsJobsCache.process": "Prozess", + "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", + "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", + "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", + "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", + "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", + "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", + "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", + "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", + "components.Settings.SettingsLogs.filterError": "Fehler", + "components.Settings.SettingsLogs.filterInfo": "Infos", + "components.Settings.SettingsLogs.filterWarn": "Warnung", + "components.Settings.SettingsLogs.label": "Bezeichnung", + "components.Settings.SettingsLogs.level": "Schweregrad", + "components.Settings.SettingsLogs.logDetails": "Protokolldetails", + "components.Settings.SettingsLogs.logs": "Protokolle", + "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", + "components.Settings.SettingsLogs.message": "Nachricht", + "components.Settings.SettingsLogs.pauseLogs": "Pause", + "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", + "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", + "components.Settings.SettingsLogs.time": "Zeitstempel", + "components.Settings.SettingsLogs.viewdetails": "Details anzeigen", + "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", + "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", + "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", + "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", + "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", + "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", + "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", + "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", + "components.Settings.SettingsUsers.users": "Benutzer", + "components.Settings.SonarrModal.add": "Server hinzufügen", + "components.Settings.SonarrModal.animeTags": "Anime Tags", + "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", + "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", + "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", + "components.Settings.SonarrModal.apiKey": "API-Schlüssel", + "components.Settings.SonarrModal.baseUrl": "Basis-URL", + "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", + "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", + "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", + "components.Settings.SonarrModal.defaultserver": "Standardserver", + "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", + "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", + "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.SonarrModal.externalUrl": "Externe URL", + "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.SonarrModal.languageprofile": "Sprachprofil", + "components.Settings.SonarrModal.loadingTags": "Lade Tags…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", + "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.SonarrModal.notagoptions": "Keine Tags.", + "components.Settings.SonarrModal.port": "Port", + "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.SonarrModal.rootfolder": "Stammordner", + "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", + "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", + "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.SonarrModal.selecttags": "Wähle Tags", + "components.Settings.SonarrModal.server4k": "4K-Server", + "components.Settings.SonarrModal.servername": "Servername", + "components.Settings.SonarrModal.ssl": "SSL aktivieren", + "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.SonarrModal.tags": "Tags", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.activeProfile": "Aktives Profil", + "components.Settings.addradarr": "Radarr-Server hinzufügen", + "components.Settings.address": "Adresse", + "components.Settings.addsonarr": "Sonarr-Server hinzufügen", + "components.Settings.advancedTooltip": "Wenn du diese Einstellung falsch konfigurierst, kann dies zu Funktionsstörungen führen.", + "components.Settings.apikey": "API-Schlüssel", + "components.Settings.applicationTitle": "Anwendungstitel", + "components.Settings.applicationurl": "Anwendungs-URL", + "components.Settings.cacheImages": "Bild-Caching aktivieren", + "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", + "components.Settings.cancelscan": "Durchsuchung abbrechen", + "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", + "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", + "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", + "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", + "components.Settings.default": "Standardmäßig", + "components.Settings.default4k": "Standard-4K", + "components.Settings.deleteServer": "{serverType} Server löschen", + "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", + "components.Settings.email": "E-Mail", + "components.Settings.enablessl": "SSL aktivieren", + "components.Settings.experimentalTooltip": "Die Aktivierung dieser Einstellung kann zu einem unerwarteten Verhalten der Anwendung führen", + "components.Settings.externalUrl": "Externe URL", + "components.Settings.general": "Allgemein", + "components.Settings.generalsettings": "Allgemeine Einstellungen", + "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", + "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", + "components.Settings.hostname": "Hostname oder IP-Adresse", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", + "components.Settings.locale": "Sprache darstellen", + "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", + "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", + "components.Settings.mediaTypeMovie": "Film", + "components.Settings.mediaTypeSeries": "Serie", + "components.Settings.menuAbout": "Über", + "components.Settings.menuGeneralSettings": "Allgemein", + "components.Settings.menuJobs": "Aufgaben und Cache", + "components.Settings.menuLogs": "Protokolle", + "components.Settings.menuNotifications": "Benachrichtigungen", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Dienste", + "components.Settings.menuUsers": "Benutzer", + "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", + "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", + "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", + "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", + "components.Settings.notifications": "Benachrichtigungen", + "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", + "components.Settings.notrunning": "Nicht aktiv", + "components.Settings.originallanguage": "Sprache Entdecken", + "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Plex-Bibliotheken", + "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", + "components.Settings.plexsettings": "Plex-Einstellungen", + "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", + "components.Settings.port": "Port", + "components.Settings.radarrsettings": "Radarr-Einstellungen", + "components.Settings.region": "Region Entdecken", + "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.Settings.restartrequiredTooltip": "Jellyseerr muss neu gestartet werden, damit Änderungen an dieser Einstellung wirksam werden", + "components.Settings.scan": "Bibliotheken synchronisieren", + "components.Settings.scanning": "Synchronisieren…", + "components.Settings.serverLocal": "lokal", + "components.Settings.serverRemote": "entfernt", + "components.Settings.serverSecure": "Sicher", + "components.Settings.serverpreset": "Server", + "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", + "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", + "components.Settings.serverpresetRefreshing": "Rufe Server ab …", + "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", + "components.Settings.services": "Dienstleistungen", + "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", + "components.Settings.sonarrsettings": "Sonarr-Einstellungen", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Durchsuchung starten", + "components.Settings.tautulliApiKey": "API-Schlüssel", + "components.Settings.tautulliSettings": "Tautulli Einstellungen", + "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für deine Plex-Medien von Tautulli.", + "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", + "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", + "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", + "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", + "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", + "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", + "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", + "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", + "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", + "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", + "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", + "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.urlBase": "URL-Basis", + "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", + "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", + "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", + "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", + "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", + "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", + "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", + "components.Settings.webAppUrl": "Web App URL", + "components.Settings.webAppUrlTip": "Leite Benutzer optional zur Web-App auf deinen Server statt zur „gehosteten“ Web-App weiter", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Plex konfigurieren", + "components.Setup.configureservices": "Dienste konfigurieren", + "components.Setup.continue": "Fortfahren", + "components.Setup.finish": "Konfiguration beenden", + "components.Setup.finishing": "Fertigstellung …", + "components.Setup.loginwithplex": "Mit Plex anmelden", + "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", + "components.Setup.setup": "Einrichtung", + "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", + "components.Setup.tip": "Tipp", + "components.Setup.welcome": "Willkommen bei Jellyseerr", + "components.StatusBadge.managemedia": "{mediaType} verwalten", + "components.StatusBadge.openinarr": "Öffnen in {arr}", + "components.StatusBadge.playonplex": "Abspielen in {mediaServerName}", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", + "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", + "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", + "components.StatusChecker.appUpdated": "{applicationTitle} aktualisiert", + "components.StatusChecker.appUpdatedDescription": "Bitte klicke auf die Schaltfläche unten, um die Anwendung neu zu laden.", + "components.StatusChecker.reloadApp": "{applicationTitle} neu laden", + "components.StatusChecker.restartRequired": "Server-Neustart erforderlich", + "components.StatusChecker.restartRequiredDescription": "Bitte starte den Server neu, um die aktualisierten Einstellungen zu übernehmen.", + "components.TitleCard.cleardata": "Daten löschen", + "components.TitleCard.mediaerror": "{mediaType} nicht gefunden", + "components.TitleCard.tmdbid": "TMDB ID", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.TvDetails.Season.noepisodes": "Die Folgenliste ist nicht verfügbar.", + "components.TvDetails.Season.somethingwentwrong": "Beim Abrufen der Staffeldaten ist etwas schief gelaufen.", + "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", + "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Besetzung", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Folge} other {# Folgen}}", + "components.TvDetails.episodeRuntime": "Folgenlaufzeit", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", + "components.TvDetails.firstAirDate": "Erstausstrahlung", + "components.TvDetails.manageseries": "Serie verwalten", + "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", + "components.TvDetails.nextAirDate": "Nächstes Sendedatum", + "components.TvDetails.originallanguage": "Originalsprache", + "components.TvDetails.originaltitle": "Originaltitel", + "components.TvDetails.overview": "Übersicht", + "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", + "components.TvDetails.playonplex": "Auf Plex abspielen", + "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", + "components.TvDetails.recommendations": "Empfehlungen", + "components.TvDetails.reportissue": "Ein Problem melden", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.TvDetails.seasonnumber": "Staffel {seasonNumber}", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", + "components.TvDetails.seasonstitle": "Staffeln", + "components.TvDetails.showtype": "Serientyp", + "components.TvDetails.similar": "Ähnliche Serien", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.streamingproviders": "Streamt derzeit auf", + "components.TvDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.TvDetails.watchtrailer": "Trailer ansehen", + "components.UserList.accounttype": "Art", + "components.UserList.admin": "Admin", + "components.UserList.autogeneratepassword": "Passwort automatisch generieren", + "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", + "components.UserList.bulkedit": "Ausgewählte bearbeiten", + "components.UserList.create": "Erstellen", + "components.UserList.created": "Beigetreten", + "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", + "components.UserList.creating": "Erstelle…", + "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", + "components.UserList.deleteuser": "Benutzer löschen", + "components.UserList.displayName": "Anzeigename", + "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", + "components.UserList.email": "E-Mail-Adresse", + "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", + "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", + "components.UserList.importfromplex": "Plex-Benutzer importieren", + "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", + "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", + "components.UserList.localuser": "Lokaler Benutzer", + "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", + "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", + "components.UserList.owner": "Besitzer", + "components.UserList.password": "Passwort", + "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", + "components.UserList.plexuser": "Plex-Benutzer", + "components.UserList.role": "Rolle", + "components.UserList.sortCreated": "Beitrittsdatum", + "components.UserList.sortDisplayName": "Anzeigename", + "components.UserList.sortRequests": "Anzahl der Anfragen", + "components.UserList.totalrequests": "Anfragen", + "components.UserList.user": "Benutzer", + "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", + "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", + "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", + "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", + "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", + "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", + "components.UserList.userlist": "Benutzerliste", + "components.UserList.users": "Benutzer", + "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", + "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", + "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", + "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", + "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Filme", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Filme auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request-Serie", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Serien auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstelle ein Token aus deinen Kontoeinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Anwendungs-API-Token", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register eine Anwendung zur Verwendung mit {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Benutzer- oder Gruppenschlüssel", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Die 30-stellige Benutzer- oder Gruppenkennung", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Die Einstellungen für die Pushover-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ein Zugriffstoken muss angegeben werden", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Sie müssen ein gültiges Anwendungs-Token angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Du musst einen gültigen Benutzer- oder Gruppenschlüssel angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Du kannst deine eigenen Berechtigungen nicht ändern.", + "components.UserProfile.UserSettings.menuChangePass": "Passwort", + "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", + "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", + "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", + "components.UserProfile.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.UserProfile.limit": "{remaining} von {limit}", + "components.UserProfile.movierequests": "Filmanfragen", + "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.UserProfile.recentlywatched": "Kürzlich angesehen", + "components.UserProfile.recentrequests": "Kürzliche Anfragen", + "components.UserProfile.requestsperdays": "{limit} verbleibend", + "components.UserProfile.seriesrequest": "Serienanfragen", + "components.UserProfile.totalrequests": "Anfragen insgesamt", + "components.UserProfile.unlimited": "Unbegrenzt", + "i18n.advanced": "Erweitert", + "i18n.all": "Alle", + "i18n.approve": "Genehmigen", + "i18n.approved": "Genehmigt", + "i18n.areyousure": "Bist du sicher?", + "i18n.available": "Verfügbar", + "i18n.back": "Zurück", + "i18n.cancel": "Abbrechen", + "i18n.canceling": "Abbrechen…", + "i18n.close": "Schließen", + "i18n.decline": "Ablehnen", + "i18n.declined": "Abgelehnt", + "i18n.delete": "Löschen", + "i18n.deleting": "Löschen …", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Bearbeiten", + "i18n.experimental": "Experimentell", + "i18n.failed": "Fehlgeschlagen", + "i18n.import": "Importieren", + "i18n.importing": "Importieren…", + "i18n.loading": "Lade …", + "i18n.movie": "Film", + "i18n.movies": "Filme", + "i18n.next": "Weiter", + "i18n.noresults": "Keine Ergebnisse.", + "i18n.notrequested": "Nicht Angefragt", + "i18n.open": "Offen", + "i18n.partiallyavailable": "Teilweise verfügbar", + "i18n.pending": "Ausstehend", + "i18n.previous": "Bisherige", + "i18n.processing": "Verarbeiten", + "i18n.request": "Anfragen", + "i18n.request4k": "In 4K anfragen", + "i18n.requested": "Angefragt", + "i18n.requesting": "Anfordern…", + "i18n.resolved": "Gelöst", + "i18n.restartRequired": "Neustart erforderlich", + "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", + "i18n.retry": "Wiederholen", + "i18n.retrying": "Wiederholen…", + "i18n.save": "Änderungen speichern", + "i18n.saving": "Speichern…", + "i18n.settings": "Einstellungen", + "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", + "i18n.status": "Status", + "i18n.test": "Test", + "i18n.testing": "Testen…", + "i18n.tvshow": "Serie", + "i18n.tvshows": "Serien", + "i18n.unavailable": "Nicht verfügbar", + "i18n.usersettings": "Benutzereinstellungen", + "i18n.view": "Anzeigen", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Interner Serverfehler", + "pages.oops": "Hoppla", + "pages.pagenotfound": "Seite nicht gefunden", + "pages.returnHome": "Zur Startseite", + "pages.serviceunavailable": "Dienst nicht verfügbar", + "pages.somethingwentwrong": "Etwas ist schief gelaufen" } From 8bd10b5bf3d1b8069872b616c7c8596caeb4937e Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Fri, 6 Jan 2023 21:03:09 +0900 Subject: [PATCH 29/65] feat: discover inline customization (#3220) --- .../e2e/settings/discover-customization.cy.ts | 62 ++-- overseerr-api.yml | 52 +++ server/routes/index.ts | 21 ++ server/routes/settings/discover.ts | 31 ++ src/components/Common/ConfirmButton/index.tsx | 89 +++--- src/components/Common/Tag/index.tsx | 16 +- src/components/CompanyTag/index.tsx | 28 ++ .../CreateSlider/index.tsx | 203 +++++++++--- .../Discover/DiscoverSliderEdit/index.tsx | 301 ++++++++++++++++++ src/components/Discover/index.tsx | 278 ++++++++++++++-- src/components/GenreTag/index.tsx | 28 ++ src/components/KeywordTag/index.tsx | 24 ++ src/components/MovieDetails/index.tsx | 2 +- .../DiscoverOption/index.tsx | 170 ---------- .../DiscoverCustomization/index.tsx | 223 ------------- .../Settings/SettingsMain/index.tsx | 13 - src/components/TvDetails/index.tsx | 2 +- src/i18n/locale/en.json | 64 ++-- src/styles/globals.css | 2 +- 19 files changed, 1031 insertions(+), 578 deletions(-) create mode 100644 src/components/CompanyTag/index.tsx rename src/components/{Settings/SettingsMain/DiscoverCustomization => Discover}/CreateSlider/index.tsx (70%) create mode 100644 src/components/Discover/DiscoverSliderEdit/index.tsx create mode 100644 src/components/GenreTag/index.tsx create mode 100644 src/components/KeywordTag/index.tsx delete mode 100644 src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx delete mode 100644 src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx diff --git a/cypress/e2e/settings/discover-customization.cy.ts b/cypress/e2e/settings/discover-customization.cy.ts index 8c96b6e3c..a0756ae21 100644 --- a/cypress/e2e/settings/discover-customization.cy.ts +++ b/cypress/e2e/settings/discover-customization.cy.ts @@ -5,15 +5,20 @@ describe('Discover Customization', () => { }); it('show the discover customization settings', () => { - cy.visit('/settings'); + cy.visit('/'); - cy.get('[data-testid=discover-customization]') - .should('contain', 'Discover Customization') + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=create-slider-header') + .should('contain', 'Create New Slider') .scrollIntoView(); // There should be some built in options - cy.get('[data-testid=discover-option]').should('contain', 'Recently Added'); - cy.get('[data-testid=discover-option]').should( + cy.get('[data-testid=discover-slider-edit-mode]').should( + 'contain', + 'Recently Added' + ); + cy.get('[data-testid=discover-slider-edit-mode]').should( 'contain', 'Recent Requests' ); @@ -21,19 +26,21 @@ describe('Discover Customization', () => { it('can drag to re-order elements and save to persist the changes', () => { let dataTransfer = new DataTransfer(); - cy.visit('/settings'); + cy.visit('/'); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=discover-slider-edit-mode]') .first() .trigger('dragstart', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .trigger('drop', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .trigger('dragend', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .should('contain', 'Recently Added'); @@ -42,23 +49,25 @@ describe('Discover Customization', () => { cy.reload(); + cy.get('[data-testid=discover-start-editing]').click(); + dataTransfer = new DataTransfer(); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .should('contain', 'Recently Added'); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .first() .trigger('dragstart', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .trigger('drop', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .trigger('dragend', { dataTransfer }); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .eq(1) .should('contain', 'Recent Requests'); @@ -67,10 +76,12 @@ describe('Discover Customization', () => { }); it('can create a new discover option and remove it', () => { - cy.visit('/settings'); + cy.visit('/'); cy.intercept('/api/v1/settings/discover/*').as('discoverSlider'); cy.intercept('/api/v1/search/keyword*').as('searchKeyword'); + cy.get('[data-testid=discover-start-editing]').click(); + const sliderTitle = 'Custom Keyword Slider'; cy.get('#sliderType').select('TMDB Movie Keyword'); @@ -98,14 +109,16 @@ describe('Discover Customization', () => { cy.wait('@getDiscoverSliders'); cy.wait(1000); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .first() .should('contain', sliderTitle); // Make sure its still there even if we reload cy.reload(); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=discover-slider-edit-mode]') .first() .should('contain', sliderTitle); @@ -114,10 +127,10 @@ describe('Discover Customization', () => { cy.get('.slider-header').should('not.contain', sliderTitle); - cy.visit('/settings'); + cy.get('[data-testid=discover-start-editing]').click(); // Enable it, and check again - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .first() .find('[role="checkbox"]') .click(); @@ -131,20 +144,19 @@ describe('Discover Customization', () => { .next('[data-testid=media-slider]') .find('[data-testid=title-card]'); - cy.visit('/settings'); + cy.get('[data-testid=discover-start-editing]').click(); // let's delete it and confirm its deleted. - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .first() - .find('button') - .should('contain', 'Remove') + .find('[data-testid=discover-slider-remove-button]') .click(); cy.wait('@discoverSlider'); cy.wait('@getDiscoverSliders'); cy.wait(1000); - cy.get('[data-testid=discover-option]') + cy.get('[data-testid=discover-slider-edit-mode]') .first() .should('not.contain', sliderTitle); }); diff --git a/overseerr-api.yml b/overseerr-api.yml index 9a6dc4457..d31f4e239 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -26,6 +26,8 @@ tags: description: Endpoints related to retrieving movies and their details. - name: tv description: Endpoints related to retrieving TV series and their details. + - name: keyword + description: Endpoints related to getting keywords and their details. - name: person description: Endpoints related to retrieving person details. - name: media @@ -3121,6 +3123,35 @@ paths: items: $ref: '#/components/schemas/DiscoverSlider' /settings/discover/{sliderId}: + put: + summary: Update a single slider + description: | + Updates a single slider and return the newly updated slider. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + example: 'Slider Title' + type: + type: number + example: 1 + data: + type: string + example: '1' + responses: + '200': + description: Returns newly added discovery slider + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' delete: summary: Delete slider by ID description: Deletes the slider with the provided sliderId. Requires the `ADMIN` permission. @@ -6143,6 +6174,27 @@ paths: application/json: schema: $ref: '#/components/schemas/Issue' + /keyword/{keywordId}: + get: + summary: Get keyword + description: | + Returns a single keyword in JSON format. + tags: + - keyword + parameters: + - in: path + name: keywordId + required: true + schema: + type: number + example: 1 + responses: + '200': + description: Keyword returned + content: + application/json: + schema: + $ref: '#/components/schemas/Keyword' security: - cookieAuth: [] - apiKey: [] diff --git a/server/routes/index.ts b/server/routes/index.ts index faac1b439..8318bbfc0 100644 --- a/server/routes/index.ts +++ b/server/routes/index.ts @@ -278,6 +278,27 @@ router.get('/backdrops', async (req, res, next) => { } }); +router.get('/keyword/:keywordId', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getKeywordDetails({ + keywordId: Number(req.params.keywordId), + }); + + return res.status(200).json(result); + } catch (e) { + logger.debug('Something went wrong retrieving keyword data', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve keyword data.', + }); + } +}); + router.get('/', (_req, res) => { return res.status(200).json({ api: 'Overseerr API', diff --git a/server/routes/settings/discover.ts b/server/routes/settings/discover.ts index 7d2a227da..344ce72be 100644 --- a/server/routes/settings/discover.ts +++ b/server/routes/settings/discover.ts @@ -77,6 +77,37 @@ discoverSettingRoutes.get('/reset', async (_req, res) => { return res.status(204).send(); }); +discoverSettingRoutes.put('/:sliderId', async (req, res, next) => { + const sliderRepository = getRepository(DiscoverSlider); + + const slider = req.body as DiscoverSlider; + + try { + const existingSlider = await sliderRepository.findOneOrFail({ + where: { + id: Number(req.params.sliderId), + }, + }); + + // Only allow changes to the following when the slider is not built in + if (!existingSlider.isBuiltIn) { + existingSlider.title = slider.title; + existingSlider.data = slider.data; + existingSlider.type = slider.type; + } + + await sliderRepository.save(existingSlider); + + return res.status(200).json(existingSlider); + } catch (e) { + logger.error('Something went wrong updating a slider.', { + label: 'API', + errorMessage: e.message, + }); + next({ status: 404, message: 'Slider not found or cannot be updated.' }); + } +}); + discoverSettingRoutes.delete('/:sliderId', async (req, res, next) => { const sliderRepository = getRepository(DiscoverSlider); diff --git a/src/components/Common/ConfirmButton/index.tsx b/src/components/Common/ConfirmButton/index.tsx index 1f5756cb9..4234da68a 100644 --- a/src/components/Common/ConfirmButton/index.tsx +++ b/src/components/Common/ConfirmButton/index.tsx @@ -1,6 +1,6 @@ import Button from '@app/components/Common/Button'; import useClickOutside from '@app/hooks/useClickOutside'; -import { useRef, useState } from 'react'; +import { forwardRef, useRef, useState } from 'react'; interface ConfirmButtonProps { onClick: () => void; @@ -9,50 +9,51 @@ interface ConfirmButtonProps { children: React.ReactNode; } -const ConfirmButton = ({ - onClick, - children, - confirmText, - className, -}: ConfirmButtonProps) => { - const ref = useRef(null); - useClickOutside(ref, () => setIsClicked(false)); - const [isClicked, setIsClicked] = useState(false); - return ( - - ); -}; +
+ {children} +
+
+ {confirmText} +
+ + ); + } +); + +ConfirmButton.displayName = 'ConfirmButton'; export default ConfirmButton; diff --git a/src/components/Common/Tag/index.tsx b/src/components/Common/Tag/index.tsx index 9a24c149a..dcb426d40 100644 --- a/src/components/Common/Tag/index.tsx +++ b/src/components/Common/Tag/index.tsx @@ -1,14 +1,22 @@ import { TagIcon } from '@heroicons/react/24/outline'; +import React from 'react'; type TagProps = { - content: string; + children: React.ReactNode; + iconSvg?: JSX.Element; }; -const Tag = ({ content }: TagProps) => { +const Tag = ({ children, iconSvg }: TagProps) => { return (
- - {content} + {iconSvg ? ( + React.cloneElement(iconSvg, { + className: 'mr-1 h-4 w-4', + }) + ) : ( + + )} + {children}
); }; diff --git a/src/components/CompanyTag/index.tsx b/src/components/CompanyTag/index.tsx new file mode 100644 index 000000000..7c49b8cca --- /dev/null +++ b/src/components/CompanyTag/index.tsx @@ -0,0 +1,28 @@ +import Spinner from '@app/assets/spinner.svg'; +import Tag from '@app/components/Common/Tag'; +import { BuildingOffice2Icon } from '@heroicons/react/24/outline'; +import type { ProductionCompany, TvNetwork } from '@server/models/common'; +import useSWR from 'swr'; + +type CompanyTagProps = { + type: 'studio' | 'network'; + companyId: number; +}; + +const CompanyTag = ({ companyId, type }: CompanyTagProps) => { + const { data, error } = useSWR( + `/api/v1/${type}/${companyId}` + ); + + if (!data && !error) { + return ( + + + + ); + } + + return }>{data?.name}; +}; + +export default CompanyTag; diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx b/src/components/Discover/CreateSlider/index.tsx similarity index 70% rename from src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx rename to src/components/Discover/CreateSlider/index.tsx index 49ab90cd8..3f70c980e 100644 --- a/src/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider/index.tsx +++ b/src/components/Discover/CreateSlider/index.tsx @@ -5,14 +5,16 @@ import MediaSlider from '@app/components/MediaSlider'; import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; import type { TmdbCompanySearchResponse, + TmdbGenre, TmdbKeywordSearchResponse, } from '@server/api/themoviedb/interfaces'; import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; +import type { Keyword, ProductionCompany } from '@server/models/common'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; -import { debounce } from 'lodash'; -import { useCallback, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import AsyncSelect from 'react-select/async'; import { useToasts } from 'react-toast-notifications'; @@ -20,6 +22,7 @@ import * as Yup from 'yup'; const messages = defineMessages({ addSlider: 'Add Slider', + editSlider: 'Edit Slider', slidernameplaceholder: 'Slider Name', providetmdbkeywordid: 'Provide a TMDB Keyword ID', providetmdbgenreid: 'Provide a TMDB Genre ID', @@ -28,10 +31,12 @@ const messages = defineMessages({ providetmdbnetwork: 'Provide TMDB Network ID', addsuccess: 'Created new slider and saved discover customization settings.', addfail: 'Failed to create new slider.', - needresults: 'You need to have at least 1 result to create a slider.', + editsuccess: 'Edited slider and saved discover customization settings.', + editfail: 'Failed to edit slider.', + needresults: 'You need to have at least 1 result.', validationDatarequired: 'You must provide a data value.', validationTitlerequired: 'You must provide a title.', - addcustomslider: 'Add Custom Slider', + addcustomslider: 'Create Custom Slider', searchKeywords: 'Search keywords…', searchGenres: 'Search genres…', searchStudios: 'Search studios…', @@ -41,6 +46,7 @@ const messages = defineMessages({ type CreateSliderProps = { onCreate: () => void; + slider?: Partial; }; type CreateOption = { @@ -52,10 +58,96 @@ type CreateOption = { dataPlaceholderText: string; }; -const CreateSlider = ({ onCreate }: CreateSliderProps) => { +const CreateSlider = ({ onCreate, slider }: CreateSliderProps) => { const intl = useIntl(); const { addToast } = useToasts(); const [resultCount, setResultCount] = useState(0); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + if (slider) { + const loadDefaultKeywords = async (): Promise => { + if (!slider.data) { + return; + } + + const keywords = await Promise.all( + slider.data.split(',').map(async (keywordId) => { + const keyword = await axios.get( + `/api/v1/keyword/${keywordId}` + ); + + return keyword.data; + }) + ); + + setDefaultDataValue( + keywords.map((keyword) => ({ + label: keyword.name, + value: keyword.id, + })) + ); + }; + + const loadDefaultGenre = async (): Promise => { + if (!slider.data) { + return; + } + + const response = await axios.get( + `/api/v1/genres/${ + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE ? 'movie' : 'tv' + }` + ); + + const genre = response.data.find( + (genre) => genre.id === Number(slider.data) + ); + + setDefaultDataValue([ + { + label: genre?.name ?? '', + value: genre?.id ?? 0, + }, + ]); + }; + + const loadDefaultCompany = async (): Promise => { + if (!slider.data) { + return; + } + + const response = await axios.get( + `/api/v1/studio/${slider.data}` + ); + + const studio = response.data; + + setDefaultDataValue([ + { + label: studio.name ?? '', + value: studio.id ?? 0, + }, + ]); + }; + + switch (slider.type) { + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + case DiscoverSliderType.TMDB_TV_KEYWORD: + loadDefaultKeywords(); + break; + case DiscoverSliderType.TMDB_MOVIE_GENRE: + case DiscoverSliderType.TMDB_TV_GENRE: + loadDefaultGenre(); + break; + case DiscoverSliderType.TMDB_STUDIO: + loadDefaultCompany(); + break; + } + } + }, [slider]); const CreateSliderSchema = Yup.object().shape({ title: Yup.string().required( @@ -73,7 +165,7 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { [setResultCount] ); - const loadKeywordOptions = debounce(async (inputValue: string) => { + const loadKeywordOptions = async (inputValue: string) => { const results = await axios.get( '/api/v1/search/keyword', { @@ -87,9 +179,13 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { label: result.name, value: result.id, })); - }, 100); + }; + + const loadCompanyOptions = async (inputValue: string) => { + if (inputValue === '') { + return []; + } - const loadCompanyOptions = debounce(async (inputValue: string) => { const results = await axios.get( '/api/v1/search/company', { @@ -103,7 +199,7 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { label: result.name, value: result.id, })); - }, 100); + }; const loadMovieGenreOptions = async () => { const results = await axios.get( @@ -184,32 +280,56 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { return ( { try { - await axios.post('/api/v1/settings/discover/add', { - type: Number(values.sliderType), - title: values.title, - data: values.data, - }); + if (slider) { + await axios.put(`/api/v1/settings/discover/${slider.id}`, { + type: Number(values.sliderType), + title: values.title, + data: values.data, + }); + } else { + await axios.post('/api/v1/settings/discover/add', { + type: Number(values.sliderType), + title: values.title, + data: values.data, + }); + } - addToast(intl.formatMessage(messages.addsuccess), { - appearance: 'success', - autoDismiss: true, - }); + addToast( + intl.formatMessage( + slider ? messages.editsuccess : messages.addsuccess + ), + { + appearance: 'success', + autoDismiss: true, + } + ); onCreate(); resetForm(); } catch (e) { - addToast(intl.formatMessage(messages.addfail), { - appearance: 'error', - autoDismiss: true, - }); + addToast( + intl.formatMessage(slider ? messages.editfail : messages.addfail), + { + appearance: 'error', + autoDismiss: true, + } + ); } }} > @@ -225,7 +345,7 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { case DiscoverSliderType.TMDB_TV_KEYWORD: dataInput = ( { ? intl.formatMessage(messages.starttyping) : intl.formatMessage(messages.nooptions) } + defaultValue={defaultDataValue} loadOptions={loadKeywordOptions} placeholder={intl.formatMessage(messages.searchKeywords)} onChange={(value) => { @@ -248,9 +369,10 @@ const CreateSlider = ({ onCreate }: CreateSliderProps) => { case DiscoverSliderType.TMDB_MOVIE_GENRE: dataInput = ( { case DiscoverSliderType.TMDB_TV_GENRE: dataInput = ( { case DiscoverSliderType.TMDB_STUDIO: dataInput = ( { return ( -
- - {intl.formatMessage(messages.addcustomslider)} - +
{options.map((option) => (
)}
-
- {activeOption && values.title && values.data && ( + {activeOption && values.title && values.data && ( +
{ )} onNewTitles={updateResultCount} /> - )} -
+
+ )} ); }} diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx new file mode 100644 index 000000000..6e9bd8b76 --- /dev/null +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -0,0 +1,301 @@ +import Button from '@app/components/Common/Button'; +import SlideCheckbox from '@app/components/Common/SlideCheckbox'; +import Tag from '@app/components/Common/Tag'; +import Tooltip from '@app/components/Common/Tooltip'; +import CompanyTag from '@app/components/CompanyTag'; +import { sliderTitles } from '@app/components/Discover/constants'; +import CreateSlider from '@app/components/Discover/CreateSlider'; +import GenreTag from '@app/components/GenreTag'; +import KeywordTag from '@app/components/KeywordTag'; +import globalMessages from '@app/i18n/globalMessages'; +import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; +import { + ArrowUturnLeftIcon, + Bars3Icon, + PencilIcon, + XMarkIcon, +} from '@heroicons/react/24/solid'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import axios from 'axios'; +import { useRef, useState } from 'react'; +import { useDrag, useDrop } from 'react-aria'; +import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; + +const messages = defineMessages({ + deletesuccess: 'Sucessfully deleted slider.', + deletefail: 'Failed to delete slider.', + remove: 'Remove', + enable: 'Toggle Visibility', +}); + +const Position = { + None: 'None', + Above: 'Above', + Below: 'Below', +} as const; + +type DiscoverSliderEditProps = { + slider: Partial; + onEnable: () => void; + onDelete: () => void; + onPositionUpdate: ( + updatedItemId: number, + position: keyof typeof Position + ) => void; + children: React.ReactNode; +}; + +const DiscoverSliderEdit = ({ + slider, + children, + onEnable, + onDelete, + onPositionUpdate, +}: DiscoverSliderEditProps) => { + const intl = useIntl(); + const { addToast } = useToasts(); + const [isEditing, setIsEditing] = useState(false); + const ref = useRef(null); + const [hoverPosition, setHoverPosition] = useState( + Position.None + ); + + const { dragProps, isDragging } = useDrag({ + getItems() { + return [{ id: (slider.id ?? -1).toString(), title: slider.title ?? '' }]; + }, + }); + + const deleteSlider = async () => { + try { + await axios.delete(`/api/v1/settings/discover/${slider.id}`); + addToast(intl.formatMessage(messages.deletesuccess), { + appearance: 'success', + autoDismiss: true, + }); + onDelete(); + } catch (e) { + addToast(intl.formatMessage(messages.deletefail), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const { dropProps } = useDrop({ + ref, + onDropMove: (e) => { + if (ref.current) { + const middlePoint = ref.current.offsetHeight / 2; + + if (e.y < middlePoint) { + setHoverPosition(Position.Above); + } else { + setHoverPosition(Position.Below); + } + } + }, + onDropExit: () => { + setHoverPosition(Position.None); + }, + onDrop: async (e) => { + const items = await Promise.all( + e.items + .filter((item) => item.kind === 'text' && item.types.has('id')) + .map(async (item) => { + if (item.kind === 'text') { + return item.getText('id'); + } + }) + ); + if (items?.[0]) { + const dropped = Number(items[0]); + onPositionUpdate(dropped, hoverPosition); + } + }, + }); + + const getSliderTitle = (slider: Partial): string => { + switch (slider.type) { + case DiscoverSliderType.RECENTLY_ADDED: + return intl.formatMessage(sliderTitles.recentlyAdded); + case DiscoverSliderType.RECENT_REQUESTS: + return intl.formatMessage(sliderTitles.recentrequests); + case DiscoverSliderType.PLEX_WATCHLIST: + return intl.formatMessage(sliderTitles.plexwatchlist); + case DiscoverSliderType.TRENDING: + return intl.formatMessage(sliderTitles.trending); + case DiscoverSliderType.POPULAR_MOVIES: + return intl.formatMessage(sliderTitles.popularmovies); + case DiscoverSliderType.MOVIE_GENRES: + return intl.formatMessage(sliderTitles.moviegenres); + case DiscoverSliderType.UPCOMING_MOVIES: + return intl.formatMessage(sliderTitles.upcoming); + case DiscoverSliderType.STUDIOS: + return intl.formatMessage(sliderTitles.studios); + case DiscoverSliderType.POPULAR_TV: + return intl.formatMessage(sliderTitles.populartv); + case DiscoverSliderType.TV_GENRES: + return intl.formatMessage(sliderTitles.tvgenres); + case DiscoverSliderType.UPCOMING_TV: + return intl.formatMessage(sliderTitles.upcomingtv); + case DiscoverSliderType.NETWORKS: + return intl.formatMessage(sliderTitles.networks); + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbmoviekeyword); + case DiscoverSliderType.TMDB_TV_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbtvkeyword); + case DiscoverSliderType.TMDB_MOVIE_GENRE: + return intl.formatMessage(sliderTitles.tmdbmoviegenre); + case DiscoverSliderType.TMDB_TV_GENRE: + return intl.formatMessage(sliderTitles.tmdbtvgenre); + case DiscoverSliderType.TMDB_STUDIO: + return intl.formatMessage(sliderTitles.tmdbstudio); + case DiscoverSliderType.TMDB_NETWORK: + return intl.formatMessage(sliderTitles.tmdbnetwork); + case DiscoverSliderType.TMDB_SEARCH: + return intl.formatMessage(sliderTitles.tmdbsearch); + default: + return 'Unknown Slider'; + } + }; + + return ( +
+ {hoverPosition === Position.Above && ( +
+ )} + {hoverPosition === Position.Below && ( +
+ )} +
+ +
{getSliderTitle(slider)}
+
+ {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || + slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( +
+ {slider.data?.split(',').map((keywordId) => ( + + ))} +
+ )} + {(slider.type === DiscoverSliderType.TMDB_NETWORK || + slider.type === DiscoverSliderType.TMDB_STUDIO) && ( + + )} + {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( + + )} + {slider.type === DiscoverSliderType.TMDB_SEARCH && ( + }>{slider.data} + )} +
+ {!slider.isBuiltIn && ( + <> + {!isEditing ? ( + + ) : ( + + )} + + + )} +
+ +
+ { + onEnable(); + }} + checked={slider.enabled} + /> +
+
+
+
+ {isEditing ? ( +
+ { + onDelete(); + setIsEditing(false); + }} + slider={slider} + /> +
+ ) : ( +
+ {children} +
+ )} +
+ ); +}; + +export default DiscoverSliderEdit; diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index b2c1a07c2..b627ab6ed 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -1,6 +1,11 @@ +import Button from '@app/components/Common/Button'; +import ConfirmButton from '@app/components/Common/ConfirmButton'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import PageTitle from '@app/components/Common/PageTitle'; +import Tooltip from '@app/components/Common/Tooltip'; import { sliderTitles } from '@app/components/Discover/constants'; +import CreateSlider from '@app/components/Discover/CreateSlider'; +import DiscoverSliderEdit from '@app/components/Discover/DiscoverSliderEdit'; import MovieGenreSlider from '@app/components/Discover/MovieGenreSlider'; import NetworkSlider from '@app/components/Discover/NetworkSlider'; import PlexWatchlistSlider from '@app/components/Discover/PlexWatchlistSlider'; @@ -10,22 +15,98 @@ import StudioSlider from '@app/components/Discover/StudioSlider'; import TvGenreSlider from '@app/components/Discover/TvGenreSlider'; import MediaSlider from '@app/components/MediaSlider'; import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import { Permission, useUser } from '@app/hooks/useUser'; +import globalMessages from '@app/i18n/globalMessages'; +import { + ArrowDownOnSquareIcon, + ArrowPathIcon, + ArrowUturnLeftIcon, + PencilIcon, + PlusIcon, +} from '@heroicons/react/24/solid'; import { DiscoverSliderType } from '@server/constants/discover'; import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import axios from 'axios'; +import { useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; import useSWR from 'swr'; const messages = defineMessages({ discover: 'Discover', emptywatchlist: 'Media added to your Plex Watchlist will appear here.', + resettodefault: 'Reset to Default', + resetwarning: + 'Reset all sliders to default. This will also delete any custom sliders!', + updatesuccess: 'Updated discover customization settings.', + updatefailed: + 'Something went wrong updating the discover customization settings.', + resetsuccess: 'Sucessfully reset discover customization settings.', + resetfailed: + 'Something went wrong resetting the discover customization settings.', + customizediscover: 'Customize Discover', + stopediting: 'Stop Editing', + createnewslider: 'Create New Slider', }); const Discover = () => { const intl = useIntl(); - const { data: discoverData, error: discoverError } = useSWR( - '/api/v1/settings/discover' - ); + const { hasPermission } = useUser(); + const { addToast } = useToasts(); + const { + data: discoverData, + error: discoverError, + mutate, + } = useSWR('/api/v1/settings/discover'); + const [sliders, setSliders] = useState[]>([]); + const [isEditing, setIsEditing] = useState(false); + + // We need to sync the state here so that we can modify the changes locally without commiting + // anything to the server until the user decides to save the changes + useEffect(() => { + if (discoverData && !isEditing) { + setSliders(discoverData); + } + }, [discoverData, isEditing]); + + const hasChanged = () => !Object.is(discoverData, sliders); + + const updateSliders = async () => { + try { + await axios.post('/api/v1/settings/discover', sliders); + + addToast(intl.formatMessage(messages.updatesuccess), { + appearance: 'success', + autoDismiss: true, + }); + setIsEditing(false); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.updatefailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const resetSliders = async () => { + try { + await axios.get('/api/v1/settings/discover/reset'); + + addToast(intl.formatMessage(messages.resetsuccess), { + appearance: 'success', + autoDismiss: true, + }); + setIsEditing(false); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.resetfailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; if (!discoverData && !discoverError) { return ; @@ -34,20 +115,97 @@ const Discover = () => { return ( <> - {discoverData?.map((slider) => { - if (!slider.enabled) { - return null; - } + {hasPermission(Permission.ADMIN) && ( + <> + {isEditing ? ( + <> +
+ + + + + + resetSliders()} + confirmText={intl.formatMessage( + globalMessages.areyousure + )} + > + + {intl.formatMessage(messages.resettodefault)} + + + + + + +
+
+
+ + + {intl.formatMessage(messages.createnewslider)} + +
+
+ { + const newSliders = await mutate(); + + if (newSliders) { + setSliders(newSliders); + } + }} + /> +
+
+ + ) : ( +
+ + + +
+ )} + + )} + {(isEditing ? sliders : discoverData)?.map((slider, index) => { + let sliderComponent: React.ReactNode; switch (slider.type) { case DiscoverSliderType.RECENTLY_ADDED: - return ; + sliderComponent = ; + break; case DiscoverSliderType.RECENT_REQUESTS: - return ; + sliderComponent = ; + break; case DiscoverSliderType.PLEX_WATCHLIST: - return ; + sliderComponent = ; + break; case DiscoverSliderType.TRENDING: - return ( + sliderComponent = ( { linkUrl="/discover/trending" /> ); + break; case DiscoverSliderType.POPULAR_MOVIES: - return ( + sliderComponent = ( { linkUrl="/discover/movies" /> ); + break; case DiscoverSliderType.MOVIE_GENRES: - return ; + sliderComponent = ; + break; case DiscoverSliderType.UPCOMING_MOVIES: - return ( + sliderComponent = ( { url="/api/v1/discover/movies/upcoming" /> ); + break; case DiscoverSliderType.STUDIOS: - return ; + sliderComponent = ; + break; case DiscoverSliderType.POPULAR_TV: - return ( + sliderComponent = ( { linkUrl="/discover/tv" /> ); + break; case DiscoverSliderType.TV_GENRES: - return ; + sliderComponent = ; + break; case DiscoverSliderType.UPCOMING_TV: - return ( + sliderComponent = ( { linkUrl="/discover/tv/upcoming" /> ); + break; case DiscoverSliderType.NETWORKS: - return ; + sliderComponent = ; + break; case DiscoverSliderType.TMDB_MOVIE_KEYWORD: - return ( + sliderComponent = ( { linkUrl={`/discover/movies/keyword?keywords=${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_TV_KEYWORD: - return ( + sliderComponent = ( { linkUrl={`/discover/tv/keyword?keywords=${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_MOVIE_GENRE: - return ( + sliderComponent = ( { linkUrl={`/discover/movies/genre/${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_TV_GENRE: - return ( + sliderComponent = ( { linkUrl={`/discover/tv/genre/${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_STUDIO: - return ( + sliderComponent = ( { linkUrl={`/discover/movies/studio/${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_NETWORK: - return ( + sliderComponent = ( { linkUrl={`/discover/tv/network/${slider.data}`} /> ); + break; case DiscoverSliderType.TMDB_SEARCH: - return ( + sliderComponent = ( { linkUrl={`/search?query=${slider.data}`} /> ); + break; } + + if (isEditing) { + return ( + { + const newSliders = await mutate(); + + if (newSliders) { + setSliders(newSliders); + } + }} + onEnable={() => { + const tempSliders = sliders.slice(); + tempSliders[index].enabled = !tempSliders[index].enabled; + setSliders(tempSliders); + }} + onPositionUpdate={(updatedItemId, position) => { + const originalPosition = sliders.findIndex( + (item) => item.id === updatedItemId + ); + const originalItem = sliders[originalPosition]; + + const tempSliders = sliders.slice(); + + tempSliders.splice(originalPosition, 1); + tempSliders.splice( + position === 'Above' && index > originalPosition + ? Math.max(index - 1, 0) + : index, + 0, + originalItem + ); + + setSliders(tempSliders); + }} + > + {sliderComponent} + + ); + } + + if (!slider.enabled) { + return null; + } + + return ( +
+ {sliderComponent} +
+ ); })} ); diff --git a/src/components/GenreTag/index.tsx b/src/components/GenreTag/index.tsx new file mode 100644 index 000000000..bbb25afe0 --- /dev/null +++ b/src/components/GenreTag/index.tsx @@ -0,0 +1,28 @@ +import Spinner from '@app/assets/spinner.svg'; +import Tag from '@app/components/Common/Tag'; +import { RectangleStackIcon } from '@heroicons/react/24/outline'; +import type { TmdbGenre } from '@server/api/themoviedb/interfaces'; +import useSWR from 'swr'; + +type GenreTagProps = { + type: 'tv' | 'movie'; + genreId: number; +}; + +const GenreTag = ({ genreId, type }: GenreTagProps) => { + const { data, error } = useSWR(`/api/v1/genres/${type}`); + + if (!data && !error) { + return ( + + + + ); + } + + const genre = data?.find((genre) => genre.id === genreId); + + return }>{genre?.name}; +}; + +export default GenreTag; diff --git a/src/components/KeywordTag/index.tsx b/src/components/KeywordTag/index.tsx new file mode 100644 index 000000000..8d5065bbd --- /dev/null +++ b/src/components/KeywordTag/index.tsx @@ -0,0 +1,24 @@ +import Spinner from '@app/assets/spinner.svg'; +import Tag from '@app/components/Common/Tag'; +import type { Keyword } from '@server/models/common'; +import useSWR from 'swr'; + +type KeywordTagProps = { + keywordId: number; +}; + +const KeywordTag = ({ keywordId }: KeywordTagProps) => { + const { data, error } = useSWR(`/api/v1/keyword/${keywordId}`); + + if (!data && !error) { + return ( + + + + ); + } + + return {data?.name}; +}; + +export default KeywordTag; diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index b91c7a2a6..2fd86f6f6 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -462,7 +462,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { key={`keyword-id-${keyword.id}`} > - + {keyword.name} ))} diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx deleted file mode 100644 index 79eff10e9..000000000 --- a/src/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption/index.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import Badge from '@app/components/Common/Badge'; -import Button from '@app/components/Common/Button'; -import SlideCheckbox from '@app/components/Common/SlideCheckbox'; -import Tooltip from '@app/components/Common/Tooltip'; -import { Bars3Icon, XMarkIcon } from '@heroicons/react/24/solid'; -import axios from 'axios'; -import { useRef, useState } from 'react'; -import { useDrag, useDrop } from 'react-aria'; -import { defineMessages, useIntl } from 'react-intl'; -import { useToasts } from 'react-toast-notifications'; - -const messages = defineMessages({ - deletesuccess: 'Sucessfully deleted slider.', - deletefail: 'Failed to delete slider.', - remove: 'Remove', - enable: 'Toggle Visibility', -}); - -const Position = { - None: 'None', - Above: 'Above', - Below: 'Below', -} as const; - -type DiscoverOptionProps = { - id: number; - title: string; - subtitle?: string; - data?: string; - enabled?: boolean; - isBuiltIn?: boolean; - onEnable: () => void; - onDelete: () => void; - onPositionUpdate: ( - updatedItemId: number, - position: keyof typeof Position - ) => void; -}; - -const DiscoverOption = ({ - id, - title, - enabled, - onPositionUpdate, - onEnable, - subtitle, - data, - isBuiltIn, - onDelete, -}: DiscoverOptionProps) => { - const intl = useIntl(); - const { addToast } = useToasts(); - const ref = useRef(null); - const [hoverPosition, setHoverPosition] = useState( - Position.None - ); - - const { dragProps, isDragging } = useDrag({ - getItems() { - return [{ id: id.toString(), title }]; - }, - }); - - const deleteSlider = async () => { - try { - await axios.delete(`/api/v1/settings/discover/${id}`); - addToast(intl.formatMessage(messages.deletesuccess), { - appearance: 'success', - autoDismiss: true, - }); - onDelete(); - } catch (e) { - addToast(intl.formatMessage(messages.deletefail), { - appearance: 'error', - autoDismiss: true, - }); - } - }; - - const { dropProps } = useDrop({ - ref, - onDropMove: (e) => { - if (ref.current) { - const middlePoint = ref.current.offsetHeight / 2; - - if (e.y < middlePoint) { - setHoverPosition(Position.Above); - } else { - setHoverPosition(Position.Below); - } - } - }, - onDropExit: () => { - setHoverPosition(Position.None); - }, - onDrop: async (e) => { - const items = await Promise.all( - e.items - .filter((item) => item.kind === 'text' && item.types.has('id')) - .map(async (item) => { - if (item.kind === 'text') { - return item.getText('id'); - } - }) - ); - if (items?.[0]) { - const dropped = Number(items[0]); - onPositionUpdate(dropped, hoverPosition); - } - }, - }); - - return ( -
- {hoverPosition === Position.Above && ( -
- )} - {hoverPosition === Position.Below && ( -
- )} -
- - - {title} - {subtitle && {subtitle}} - {data && {data}} - {!isBuiltIn && ( -
- -
- )} - -
- { - onEnable(); - }} - checked={enabled} - /> -
-
-
-
- ); -}; - -export default DiscoverOption; diff --git a/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx b/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx deleted file mode 100644 index 5af3d1884..000000000 --- a/src/components/Settings/SettingsMain/DiscoverCustomization/index.tsx +++ /dev/null @@ -1,223 +0,0 @@ -import Button from '@app/components/Common/Button'; -import LoadingSpinner from '@app/components/Common/LoadingSpinner'; -import Tooltip from '@app/components/Common/Tooltip'; -import { sliderTitles } from '@app/components/Discover/constants'; -import CreateSlider from '@app/components/Settings/SettingsMain/DiscoverCustomization/CreateSlider'; -import DiscoverOption from '@app/components/Settings/SettingsMain/DiscoverCustomization/DiscoverOption'; -import globalMessages from '@app/i18n/globalMessages'; -import { - ArrowDownOnSquareIcon, - ArrowPathIcon, -} from '@heroicons/react/24/solid'; -import { DiscoverSliderType } from '@server/constants/discover'; -import type DiscoverSlider from '@server/entity/DiscoverSlider'; -import axios from 'axios'; -import { useEffect, useState } from 'react'; -import { defineMessages, useIntl } from 'react-intl'; -import { useToasts } from 'react-toast-notifications'; -import useSWR from 'swr'; - -const messages = defineMessages({ - resettodefault: 'Reset to Default', - resetwarning: - 'Reset all sliders to default. This will also delete any custom sliders!', - updatesuccess: 'Updated discover customization settings.', - updatefailed: - 'Something went wrong updating the discover customization settings.', - resetsuccess: 'Sucessfully reset discover customization settings.', - resetfailed: - 'Something went wrong resetting the discover customization settings.', -}); - -const DiscoverCustomization = () => { - const intl = useIntl(); - const { addToast } = useToasts(); - const { data, error, mutate } = useSWR( - '/api/v1/settings/discover' - ); - const [sliders, setSliders] = useState[]>([]); - - // We need to sync the state here so that we can modify the changes locally without commiting - // anything to the server until the user decides to save the changes - useEffect(() => { - if (data) { - setSliders(data); - } - }, [data]); - - const updateSliders = async () => { - try { - await axios.post('/api/v1/settings/discover', sliders); - - addToast(intl.formatMessage(messages.updatesuccess), { - appearance: 'success', - autoDismiss: true, - }); - mutate(); - } catch (e) { - addToast(intl.formatMessage(messages.updatefailed), { - appearance: 'error', - autoDismiss: true, - }); - } - }; - - const resetSliders = async () => { - try { - await axios.get('/api/v1/settings/discover/reset'); - - addToast(intl.formatMessage(messages.resetsuccess), { - appearance: 'success', - autoDismiss: true, - }); - mutate(); - } catch (e) { - addToast(intl.formatMessage(messages.resetfailed), { - appearance: 'error', - autoDismiss: true, - }); - } - }; - - const hasChanged = () => !Object.is(data, sliders); - - const getSliderTitle = (slider: Partial): string => { - if (slider.title) { - return slider.title; - } - - switch (slider.type) { - case DiscoverSliderType.RECENTLY_ADDED: - return intl.formatMessage(sliderTitles.recentlyAdded); - case DiscoverSliderType.RECENT_REQUESTS: - return intl.formatMessage(sliderTitles.recentrequests); - case DiscoverSliderType.PLEX_WATCHLIST: - return intl.formatMessage(sliderTitles.plexwatchlist); - case DiscoverSliderType.TRENDING: - return intl.formatMessage(sliderTitles.trending); - case DiscoverSliderType.POPULAR_MOVIES: - return intl.formatMessage(sliderTitles.popularmovies); - case DiscoverSliderType.MOVIE_GENRES: - return intl.formatMessage(sliderTitles.moviegenres); - case DiscoverSliderType.UPCOMING_MOVIES: - return intl.formatMessage(sliderTitles.upcoming); - case DiscoverSliderType.STUDIOS: - return intl.formatMessage(sliderTitles.studios); - case DiscoverSliderType.POPULAR_TV: - return intl.formatMessage(sliderTitles.populartv); - case DiscoverSliderType.TV_GENRES: - return intl.formatMessage(sliderTitles.tvgenres); - case DiscoverSliderType.UPCOMING_TV: - return intl.formatMessage(sliderTitles.upcomingtv); - case DiscoverSliderType.NETWORKS: - return intl.formatMessage(sliderTitles.networks); - default: - return 'Unknown Slider'; - } - }; - - const getSliderSubtitle = ( - slider: Partial - ): string | undefined => { - switch (slider.type) { - case DiscoverSliderType.TMDB_MOVIE_KEYWORD: - return intl.formatMessage(sliderTitles.tmdbmoviekeyword); - case DiscoverSliderType.TMDB_TV_KEYWORD: - return intl.formatMessage(sliderTitles.tmdbtvkeyword); - case DiscoverSliderType.TMDB_MOVIE_GENRE: - return intl.formatMessage(sliderTitles.tmdbmoviegenre); - case DiscoverSliderType.TMDB_TV_GENRE: - return intl.formatMessage(sliderTitles.tmdbtvgenre); - case DiscoverSliderType.TMDB_STUDIO: - return intl.formatMessage(sliderTitles.tmdbstudio); - case DiscoverSliderType.TMDB_NETWORK: - return intl.formatMessage(sliderTitles.tmdbnetwork); - case DiscoverSliderType.TMDB_SEARCH: - return intl.formatMessage(sliderTitles.tmdbsearch); - default: - return undefined; - } - }; - - if (!data && !error) { - return ; - } - - return ( - <> -
-
- {sliders.map((slider, index) => ( - { - mutate(); - }} - onEnable={() => { - const tempSliders = sliders.slice(); - tempSliders[index].enabled = !tempSliders[index].enabled; - setSliders(tempSliders); - }} - onPositionUpdate={(updatedItemId, position) => { - const originalPosition = sliders.findIndex( - (item) => item.id === updatedItemId - ); - const originalItem = sliders[originalPosition]; - - const tempSliders = sliders.slice(); - - tempSliders.splice(originalPosition, 1); - tempSliders.splice( - position === 'Above' && index > originalPosition - ? Math.max(index - 1, 0) - : index, - 0, - originalItem - ); - - setSliders(tempSliders); - }} - /> - ))} - { - mutate(); - }} - /> -
-
-
-
- - - - - - - - -
-
- - ); -}; - -export default DiscoverCustomization; diff --git a/src/components/Settings/SettingsMain/index.tsx b/src/components/Settings/SettingsMain/index.tsx index cf4099887..62f26d49a 100644 --- a/src/components/Settings/SettingsMain/index.tsx +++ b/src/components/Settings/SettingsMain/index.tsx @@ -7,7 +7,6 @@ import LanguageSelector from '@app/components/LanguageSelector'; import RegionSelector from '@app/components/RegionSelector'; import CopyButton from '@app/components/Settings/CopyButton'; import SettingsBadge from '@app/components/Settings/SettingsBadge'; -import DiscoverCustomization from '@app/components/Settings/SettingsMain/DiscoverCustomization'; import type { AvailableLocale } from '@app/context/LanguageContext'; import { availableLanguages } from '@app/context/LanguageContext'; import useLocale from '@app/hooks/useLocale'; @@ -56,9 +55,6 @@ const messages = defineMessages({ validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash', partialRequestsEnabled: 'Allow Partial Series Requests', locale: 'Display Language', - discovercustomization: 'Discover Customization', - discovercustomizationDescription: - 'Add or remove sliders on the Discover page.', }); const SettingsMain = () => { @@ -454,15 +450,6 @@ const SettingsMain = () => { }}
-
-

- {intl.formatMessage(messages.discovercustomization)} -

-

- {intl.formatMessage(messages.discovercustomizationDescription)} -

-
- ); }; diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index f704b8e39..14185e879 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -503,7 +503,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => { key={`keyword-id-${keyword.id}`} > - + {keyword.name} ))} diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index d773f17e9..909554224 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -6,10 +6,35 @@ "components.CollectionDetails.overview": "Overview", "components.CollectionDetails.requestcollection": "Request Collection", "components.CollectionDetails.requestcollection4k": "Request Collection in 4K", + "components.Discover.CreateSlider.addSlider": "Add Slider", + "components.Discover.CreateSlider.addcustomslider": "Create Custom Slider", + "components.Discover.CreateSlider.addfail": "Failed to create new slider.", + "components.Discover.CreateSlider.addsuccess": "Created new slider and saved discover customization settings.", + "components.Discover.CreateSlider.editSlider": "Edit Slider", + "components.Discover.CreateSlider.editfail": "Failed to edit slider.", + "components.Discover.CreateSlider.editsuccess": "Edited slider and saved discover customization settings.", + "components.Discover.CreateSlider.needresults": "You need to have at least 1 result.", + "components.Discover.CreateSlider.nooptions": "No results.", + "components.Discover.CreateSlider.providetmdbgenreid": "Provide a TMDB Genre ID", + "components.Discover.CreateSlider.providetmdbkeywordid": "Provide a TMDB Keyword ID", + "components.Discover.CreateSlider.providetmdbnetwork": "Provide TMDB Network ID", + "components.Discover.CreateSlider.providetmdbsearch": "Provide a search query", + "components.Discover.CreateSlider.providetmdbstudio": "Provide TMDB Studio ID", + "components.Discover.CreateSlider.searchGenres": "Search genres…", + "components.Discover.CreateSlider.searchKeywords": "Search keywords…", + "components.Discover.CreateSlider.searchStudios": "Search studios…", + "components.Discover.CreateSlider.slidernameplaceholder": "Slider Name", + "components.Discover.CreateSlider.starttyping": "Starting typing to search.", + "components.Discover.CreateSlider.validationDatarequired": "You must provide a data value.", + "components.Discover.CreateSlider.validationTitlerequired": "You must provide a title.", "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Movies", "components.Discover.DiscoverMovieKeyword.keywordMovies": "{keywordTitle} Movies", "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} Movies", "components.Discover.DiscoverNetwork.networkSeries": "{network} Series", + "components.Discover.DiscoverSliderEdit.deletefail": "Failed to delete slider.", + "components.Discover.DiscoverSliderEdit.deletesuccess": "Sucessfully deleted slider.", + "components.Discover.DiscoverSliderEdit.enable": "Toggle Visibility", + "components.Discover.DiscoverSliderEdit.remove": "Remove", "components.Discover.DiscoverStudio.studioMovies": "{studio} Movies", "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Series", "components.Discover.DiscoverTvKeyword.keywordSeries": "{keywordTitle} Series", @@ -25,6 +50,8 @@ "components.Discover.StudioSlider.studios": "Studios", "components.Discover.TvGenreList.seriesgenres": "Series Genres", "components.Discover.TvGenreSlider.tvgenres": "Series Genres", + "components.Discover.createnewslider": "Create New Slider", + "components.Discover.customizediscover": "Customize Discover", "components.Discover.discover": "Discover", "components.Discover.discovermovies": "Popular Movies", "components.Discover.discovertv": "Popular Series", @@ -36,6 +63,11 @@ "components.Discover.populartv": "Popular Series", "components.Discover.recentlyAdded": "Recently Added", "components.Discover.recentrequests": "Recent Requests", + "components.Discover.resetfailed": "Something went wrong resetting the discover customization settings.", + "components.Discover.resetsuccess": "Sucessfully reset discover customization settings.", + "components.Discover.resettodefault": "Reset to Default", + "components.Discover.resetwarning": "Reset all sliders to default. This will also delete any custom sliders!", + "components.Discover.stopediting": "Stop Editing", "components.Discover.studios": "Studios", "components.Discover.tmdbmoviegenre": "TMDB Movie Genre", "components.Discover.tmdbmoviekeyword": "TMDB Movie Keyword", @@ -49,6 +81,8 @@ "components.Discover.upcoming": "Upcoming Movies", "components.Discover.upcomingmovies": "Upcoming Movies", "components.Discover.upcomingtv": "Upcoming Series", + "components.Discover.updatefailed": "Something went wrong updating the discover customization settings.", + "components.Discover.updatesuccess": "Updated discover customization settings.", "components.DownloadBlock.estimatedtime": "Estimated {time}", "components.DownloadBlock.formattedTitle": "{title}: Season {seasonNumber} Episode {episodeNumber}", "components.IssueDetails.IssueComment.areyousuredelete": "Are you sure you want to delete this comment?", @@ -704,34 +738,6 @@ "components.Settings.SettingsLogs.showall": "Show All Logs", "components.Settings.SettingsLogs.time": "Timestamp", "components.Settings.SettingsLogs.viewdetails": "View Details", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addSlider": "Add Slider", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addcustomslider": "Add Custom Slider", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addfail": "Failed to create new slider.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.addsuccess": "Created new slider and saved discover customization settings.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.needresults": "You need to have at least 1 result to create a slider.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.nooptions": "No results.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbgenreid": "Provide a TMDB Genre ID", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbkeywordid": "Provide a TMDB Keyword ID", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbnetwork": "Provide TMDB Network ID", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbsearch": "Provide a search query", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.providetmdbstudio": "Provide TMDB Studio ID", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchGenres": "Search genres…", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchKeywords": "Search keywords…", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.searchStudios": "Search studios…", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.slidernameplaceholder": "Slider Name", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.starttyping": "Starting typing to search.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.validationDatarequired": "You must provide a data value.", - "components.Settings.SettingsMain.DiscoverCustomization.CreateSlider.validationTitlerequired": "You must provide a title.", - "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletefail": "Failed to delete slider.", - "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.deletesuccess": "Sucessfully deleted slider.", - "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.enable": "Toggle Visibility", - "components.Settings.SettingsMain.DiscoverCustomization.DiscoverOption.remove": "Remove", - "components.Settings.SettingsMain.DiscoverCustomization.resetfailed": "Something went wrong resetting the discover customization settings.", - "components.Settings.SettingsMain.DiscoverCustomization.resetsuccess": "Sucessfully reset discover customization settings.", - "components.Settings.SettingsMain.DiscoverCustomization.resettodefault": "Reset to Default", - "components.Settings.SettingsMain.DiscoverCustomization.resetwarning": "Reset all sliders to default. This will also delete any custom sliders!", - "components.Settings.SettingsMain.DiscoverCustomization.updatefailed": "Something went wrong updating the discover customization settings.", - "components.Settings.SettingsMain.DiscoverCustomization.updatesuccess": "Updated discover customization settings.", "components.Settings.SettingsMain.apikey": "API Key", "components.Settings.SettingsMain.applicationTitle": "Application Title", "components.Settings.SettingsMain.applicationurl": "Application URL", @@ -740,8 +746,6 @@ "components.Settings.SettingsMain.csrfProtection": "Enable CSRF Protection", "components.Settings.SettingsMain.csrfProtectionHoverTip": "Do NOT enable this setting unless you understand what you are doing!", "components.Settings.SettingsMain.csrfProtectionTip": "Set external API access to read-only (requires HTTPS)", - "components.Settings.SettingsMain.discovercustomization": "Discover Customization", - "components.Settings.SettingsMain.discovercustomizationDescription": "Add or remove sliders on the Discover page.", "components.Settings.SettingsMain.general": "General", "components.Settings.SettingsMain.generalsettings": "General Settings", "components.Settings.SettingsMain.generalsettingsDescription": "Configure global and default settings for Overseerr.", diff --git a/src/styles/globals.css b/src/styles/globals.css index 7e0900e0c..1757f65db 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -68,7 +68,7 @@ } .slider-header { - @apply relative mt-6 mb-4 flex; + @apply relative mb-4 flex; } .slider-title { From d23b2132de05f072f7f9daad83d81421d747cf99 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sat, 7 Jan 2023 01:12:19 +0900 Subject: [PATCH 30/65] fix: improve small screen layout for discover editing (#3221) --- .../Discover/DiscoverSliderEdit/index.tsx | 104 +++++++++--------- src/components/Discover/index.tsx | 62 +++++------ src/components/MediaSlider/index.tsx | 4 +- 3 files changed, 81 insertions(+), 89 deletions(-) diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx index 6e9bd8b76..2cd462e9a 100644 --- a/src/components/Discover/DiscoverSliderEdit/index.tsx +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -183,10 +183,12 @@ const DiscoverSliderEdit = ({ className={`absolute -bottom-2 left-0 w-full border-t-4 border-indigo-500`} /> )} -
- -
{getSliderTitle(slider)}
-
+
+
+ +
{getSliderTitle(slider)}
+
+
{(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && (
@@ -224,55 +226,57 @@ const DiscoverSliderEdit = ({ }>{slider.data} )}
- {!slider.isBuiltIn && ( - <> - {!isEditing ? ( +
+ {!slider.isBuiltIn && ( + <> + {!isEditing ? ( + + ) : ( + + )} - ) : ( - - )} - - - )} -
- -
- { - onEnable(); - }} - checked={slider.enabled} - /> -
-
+ + )} +
+ +
+ { + onEnable(); + }} + checked={slider.enabled} + /> +
+
+
{isEditing ? ( @@ -286,11 +290,7 @@ const DiscoverSliderEdit = ({ />
) : ( -
+
{children}
)} diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index b627ab6ed..31eaa9156 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -119,44 +119,36 @@ const Discover = () => { <> {isEditing ? ( <> -
- - + + resetSliders()} + confirmText={intl.formatMessage(globalMessages.areyousure)} > - - {intl.formatMessage(messages.stopediting)} - - - - - resetSliders()} - confirmText={intl.formatMessage( - globalMessages.areyousure - )} - > - - {intl.formatMessage(messages.resettodefault)} - - - - - - + + {intl.formatMessage(messages.resettodefault)} + + +
-
+
{intl.formatMessage(messages.createnewslider)} diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx index b0fab251a..54b5cc801 100644 --- a/src/components/MediaSlider/index.tsx +++ b/src/components/MediaSlider/index.tsx @@ -149,8 +149,8 @@ const MediaSlider = ({
{linkUrl ? ( - - {title} + + {title} From a49ea926928f4dcab1e3eb8ea0e3a02c2da6c711 Mon Sep 17 00:00:00 2001 From: undone37 <10513808+undone37@users.noreply.github.com> Date: Fri, 6 Jan 2023 20:02:56 +0100 Subject: [PATCH 31/65] style(i18n german translation): fixed Prettier formatting issue of German translation file --- src/i18n/locale/de.json | 2276 +++++++++++++++++++-------------------- 1 file changed, 1138 insertions(+), 1138 deletions(-) diff --git a/src/i18n/locale/de.json b/src/i18n/locale/de.json index 4e4004c5d..88561b487 100644 --- a/src/i18n/locale/de.json +++ b/src/i18n/locale/de.json @@ -1,1140 +1,1140 @@ { - "components.AirDateBadge.airedrelative": "Ausgestrahlt {relativeTime}", - "components.AirDateBadge.airsrelative": "Ausstrahlung {relativeTime}", - "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", - "components.CollectionDetails.numberofmovies": "{count} Filme", - "components.CollectionDetails.overview": "Übersicht", - "components.CollectionDetails.requestcollection": "Sammlung anfragen", - "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", - "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Filme", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", - "components.Discover.DiscoverNetwork.networkSeries": "{network} Serien", - "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", - "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Serien", - "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", - "components.Discover.DiscoverWatchlist.discoverwatchlist": "Deine Plex Watchlist", - "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", - "components.Discover.MovieGenreList.moviegenres": "Filmgenres", - "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", - "components.Discover.NetworkSlider.networks": "Sender", - "components.Discover.StudioSlider.studios": "Filmstudio", - "components.Discover.TvGenreList.seriesgenres": "Seriengenres", - "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", - "components.Discover.discover": "Entdecken", - "components.Discover.discovermovies": "Beliebte Filme", - "components.Discover.discovertv": "Beliebte Serien", - "components.Discover.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", - "components.Discover.noRequests": "Keine Anfragen.", - "components.Discover.plexwatchlist": "Deine Plex Watchlist", - "components.Discover.popularmovies": "Beliebte Filme", - "components.Discover.populartv": "Beliebte Serien", - "components.Discover.recentlyAdded": "Kürzlich hinzugefügt", - "components.Discover.recentrequests": "Vorherige Anfragen", - "components.Discover.trending": "Trends", - "components.Discover.upcoming": "Kommende Filme", - "components.Discover.upcomingmovies": "Kommende Filme", - "components.Discover.upcomingtv": "Kommende Serien", - "components.DownloadBlock.estimatedtime": "Geschätzt {time}", - "components.DownloadBlock.formattedTitle": "{title}: Staffel {seasonNumber} Folge {episodeNumber}", - "components.IssueDetails.IssueComment.areyousuredelete": "Soll dieser Kommentar wirklich gelöscht werden?", - "components.IssueDetails.IssueComment.delete": "Kommentar löschen", - "components.IssueDetails.IssueComment.edit": "Kommentar bearbeiten", - "components.IssueDetails.IssueComment.postedby": "Gepostet {relativeTime} von {username}", - "components.IssueDetails.IssueComment.postedbyedited": "Gepostet {relativeTime} von {username} (Bearbeitet)", - "components.IssueDetails.IssueComment.validationComment": "Du musst eine Nachricht eingeben", - "components.IssueDetails.IssueDescription.deleteissue": "Problem löschen", - "components.IssueDetails.IssueDescription.description": "Beschreibung", - "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", - "components.IssueDetails.allepisodes": "Alle Folgen", - "components.IssueDetails.allseasons": "Alle Staffeln", - "components.IssueDetails.closeissue": "Problem schließen", - "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", - "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", - "components.IssueDetails.comments": "Kommentare", - "components.IssueDetails.deleteissue": "Problem löschen", - "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", - "components.IssueDetails.episode": "Folge {episodeNumber}", - "components.IssueDetails.issuepagetitle": "Problem", - "components.IssueDetails.issuetype": "Art", - "components.IssueDetails.lastupdated": "Letzte Aktualisierung", - "components.IssueDetails.leavecomment": "Kommentar", - "components.IssueDetails.nocomments": "Keine Kommentare.", - "components.IssueDetails.openedby": "#{issueId} geöffnet {relativeTime} von {username}", - "components.IssueDetails.openin4karr": "In {arr} 4K öffnen", - "components.IssueDetails.openinarr": "In {arr} öffnen", - "components.IssueDetails.play4konplex": "Auf {mediaServerName} in 4K abspielen", - "components.IssueDetails.playonplex": "Auf {mediaServerName} abspielen", - "components.IssueDetails.problemepisode": "Betroffene Folge", - "components.IssueDetails.problemseason": "Betroffene Staffeln", - "components.IssueDetails.reopenissue": "Problem erneut öffnen", - "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", - "components.IssueDetails.season": "Staffel {seasonNumber}", - "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", - "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", - "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", - "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", - "components.IssueDetails.toaststatusupdated": "Problemstatus erfolgreich aktualisiert!", - "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", - "components.IssueDetails.unknownissuetype": "Unbekannt", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", - "components.IssueList.IssueItem.issuestatus": "Status", - "components.IssueList.IssueItem.issuetype": "Typ", - "components.IssueList.IssueItem.opened": "Geöffnet", - "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", - "components.IssueList.IssueItem.problemepisode": "Betroffene Folge", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", - "components.IssueList.IssueItem.viewissue": "Problem anzeigen", - "components.IssueList.issues": "Probleme", - "components.IssueList.showallissues": "Alle Probleme anzeigen", - "components.IssueList.sortAdded": "Neueste", - "components.IssueList.sortModified": "Zuletzt geändert", - "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", - "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", - "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", - "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Folge", - "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", - "components.IssueModal.CreateIssueModal.providedetail": "Gib eine detaillierte Erklärung des Problems an.", - "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", - "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", - "components.IssueModal.CreateIssueModal.submitissue": "Problem melden", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", - "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung eingeben", - "components.IssueModal.CreateIssueModal.whatswrong": "Was ist das Problem?", - "components.IssueModal.issueAudio": "Ton", - "components.IssueModal.issueOther": "Andere", - "components.IssueModal.issueSubtitles": "Untertitel", - "components.IssueModal.issueVideo": "Video", - "components.LanguageSelector.languageServerDefault": "Standard ({language})", - "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", - "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", - "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", - "components.Layout.Sidebar.dashboard": "Entdecken", - "components.Layout.Sidebar.issues": "Probleme", - "components.Layout.Sidebar.requests": "Anfragen", - "components.Layout.Sidebar.settings": "Einstellungen", - "components.Layout.Sidebar.users": "Benutzer", - "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmanfragen", - "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serienanfragen", - "components.Layout.UserDropdown.myprofile": "Profil", - "components.Layout.UserDropdown.requests": "Anfragen", - "components.Layout.UserDropdown.settings": "Einstellungen", - "components.Layout.UserDropdown.signout": "Abmelden", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", - "components.Layout.VersionStatus.outofdate": "Veraltet", - "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", - "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", - "components.Login.email": "E-Mail-Adresse", - "components.Login.forgotpassword": "Passwort vergessen?", - "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", - "components.Login.password": "Passwort", - "components.Login.signin": "Anmelden", - "components.Login.signingin": "Anmelden …", - "components.Login.signinheader": "Anmelden um fortzufahren", - "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle} Konto", - "components.Login.signinwithplex": "Benutze dein Plex Konto", - "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.ManageSlideOver.alltime": "Gesamte Zeit", - "components.ManageSlideOver.downloadstatus": "Downloads", - "components.ManageSlideOver.manageModalAdvanced": "Fortgeschritten", - "components.ManageSlideOver.manageModalClearMedia": "Daten löschen", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in deiner {mediaServerName}-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", - "components.ManageSlideOver.manageModalIssues": "Problem eröffnen", - "components.ManageSlideOver.manageModalMedia": "Medien", - "components.ManageSlideOver.manageModalMedia4k": "4K Medien", - "components.ManageSlideOver.manageModalNoRequests": "Keine Anfragen.", - "components.ManageSlideOver.manageModalRequests": "Anfragen", - "components.ManageSlideOver.manageModalTitle": "{mediaType} verwalten", - "components.ManageSlideOver.mark4kavailable": "Als in 4K verfügbar markieren", - "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", - "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", - "components.ManageSlideOver.markavailable": "Als verfügbar markieren", - "components.ManageSlideOver.movie": "Film", - "components.ManageSlideOver.openarr": "In {arr} öffnen", - "components.ManageSlideOver.openarr4k": "In 4K {arr} öffnen", - "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", - "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", - "components.ManageSlideOver.playedby": "Abgespielt von", - "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", - "components.ManageSlideOver.tvshow": "Serie", - "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", - "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", - "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", - "components.MovieDetails.budget": "Budget", - "components.MovieDetails.cast": "Besetzung", - "components.MovieDetails.digitalrelease": "Digitale Veröffentlichung", - "components.MovieDetails.managemovie": "Film verwalten", - "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", - "components.MovieDetails.markavailable": "Als verfügbar markieren", - "components.MovieDetails.originallanguage": "Originalsprache", - "components.MovieDetails.originaltitle": "Originaltitel", - "components.MovieDetails.overview": "Übersicht", - "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.MovieDetails.physicalrelease": "Physikalische Veröffentlichung", - "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", - "components.MovieDetails.playonplex": "Auf Plex abspielen", - "components.MovieDetails.productioncountries": "Produktions{countryCount, plural, one {land} other {länder}}", - "components.MovieDetails.recommendations": "Empfehlungen", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", - "components.MovieDetails.reportissue": "Ein Problem melden", - "components.MovieDetails.revenue": "Einnahmen", - "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", - "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", - "components.MovieDetails.runtime": "{minutes} Minuten", - "components.MovieDetails.showless": "Weniger Anzeigen", - "components.MovieDetails.showmore": "Mehr Anzeigen", - "components.MovieDetails.similar": "Ähnliche Titel", - "components.MovieDetails.streamingproviders": "Streamt derzeit auf", - "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", - "components.MovieDetails.theatricalrelease": "Kinostart", - "components.MovieDetails.tmdbuserscore": "TMDB-Benutzerbewertung", - "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.MovieDetails.watchtrailer": "Trailer ansehen", - "components.NotificationTypeSelector.adminissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", - "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", - "components.NotificationTypeSelector.issuecommentDescription": "Sende eine Benachrichtigungen, wenn Probleme neue Kommentare erhalten.", - "components.NotificationTypeSelector.issuecreated": "Gemeldetes Problem", - "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", - "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", - "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", - "components.NotificationTypeSelector.issueresolved": "Problem gelöst", - "components.NotificationTypeSelector.issueresolvedDescription": "Senden Benachrichtigungen, wenn Probleme gelöst sind.", - "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", - "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", - "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", - "components.NotificationTypeSelector.mediaautorequested": "Anfrage automatisch eingereicht", - "components.NotificationTypeSelector.mediaautorequestedDescription": "Lasse dich benachrichtigen, wenn neue Medienanfragen für Objekte auf deiner Plex Watchlist automatisch eingereicht werden.", - "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", - "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", - "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", - "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", - "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", - "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", - "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", - "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", - "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", - "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen dich benachrichtigen, wenn andere Benutzer Probleme melden.", - "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn deine Medienanfrage angenommen wurde.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn deine Medienanfragen verfügbar sind.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", - "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", - "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", - "components.PermissionEdit.admin": "Admin", - "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", - "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", - "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", - "components.PermissionEdit.autoapprove": "Automatische Genehmigung", - "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", - "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", - "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", - "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", - "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", - "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", - "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", - "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", - "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", - "components.PermissionEdit.autorequest": "Automatische Anfrage", - "components.PermissionEdit.autorequestDescription": "Erlaube die automatische Übermittlung von Anfragen für Nicht-4K-Medien über die Plex Watchlist.", - "components.PermissionEdit.autorequestMovies": "Auto-Request Filme", - "components.PermissionEdit.autorequestMoviesDescription": "Erlauben es, automatisch Anfragen für Nicht-4K-Filme über die Plex Watchlist zu stellen.", - "components.PermissionEdit.autorequestSeries": "Auto-Request-Serie", - "components.PermissionEdit.autorequestSeriesDescription": "Erlaube es, automatisch Anfragen für Nicht-4K-Serien über die Plex Watchlist zu stellen.", - "components.PermissionEdit.createissues": "Probleme melden", - "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", - "components.PermissionEdit.manageissues": "Probleme verwalten", - "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", - "components.PermissionEdit.managerequests": "Anfragen verwalten", - "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", - "components.PermissionEdit.request": "Anfrage", - "components.PermissionEdit.request4k": "4K anfragen", - "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", - "components.PermissionEdit.request4kMovies": "4K Filme anfragen", - "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", - "components.PermissionEdit.request4kTv": "4K Serien anfragen", - "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", - "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", - "components.PermissionEdit.requestMovies": "Filme anfragen", - "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", - "components.PermissionEdit.requestTv": "Serien anfragen", - "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", - "components.PermissionEdit.settings": "Einstellungen verwalten", - "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", - "components.PermissionEdit.users": "Benutzer verwalten", - "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", - "components.PermissionEdit.viewissues": "Probleme ansehen", - "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", - "components.PermissionEdit.viewrecent": "Kürzlich hinzugefügt anzeigen", - "components.PermissionEdit.viewrecentDescription": "Erteile die Erlaubnis, die Liste der kürzlich hinzugefügten Medien anzuzeigen.", - "components.PermissionEdit.viewrequests": "Anfragen anzeigen", - "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", - "components.PermissionEdit.viewwatchlists": "Plex Watchlists anzeigen", - "components.PermissionEdit.viewwatchlistsDescription": "Erteile die Erlaubnis, die Plex Watchlists anderer Benutzer einzusehen.", - "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", - "components.PersonDetails.appearsin": "Auftritte", - "components.PersonDetails.ascharacter": "als {character}", - "components.PersonDetails.birthdate": "Geboren am {birthdate}", - "components.PersonDetails.crewmember": "Crew", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PlexLoginButton.signingin": "Anmeldung läuft …", - "components.PlexLoginButton.signinwithplex": "Anmelden", - "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", - "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", - "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", - "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", - "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", - "components.QuotaSelector.unlimited": "Unbegrenzt", - "components.RegionSelector.regionDefault": "Alle Regionen", - "components.RegionSelector.regionServerDefault": "Standard ({region})", - "components.RequestBlock.approve": "Anfrage genehmigen", - "components.RequestBlock.decline": "Anfrage ablehnen", - "components.RequestBlock.delete": "Anfrage löschen", - "components.RequestBlock.edit": "Anfrage bearbeiten", - "components.RequestBlock.languageprofile": "Sprachprofil", - "components.RequestBlock.lastmodifiedby": "Zuletzt geändert von", - "components.RequestBlock.profilechanged": "Qualitätsprofil", - "components.RequestBlock.requestdate": "Datum der Anfrage", - "components.RequestBlock.requestedby": "Angefordert von", - "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", - "components.RequestBlock.rootfolder": "Stammordner", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestBlock.server": "Zielserver", - "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", - "components.RequestButton.approverequest": "Anfrage genehmigen", - "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", - "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", - "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", - "components.RequestButton.declinerequest": "Anfrage ablehnen", - "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", - "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", - "components.RequestButton.requestmore": "Mehr anfragen", - "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", - "components.RequestButton.viewrequest": "Anfrage anzeigen", - "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", - "components.RequestCard.approverequest": "Anfrage genehmigen", - "components.RequestCard.cancelrequest": "Anfrage abbrechen", - "components.RequestCard.declinerequest": "Anfrage ablehnen", - "components.RequestCard.deleterequest": "Anfrage löschen", - "components.RequestCard.editrequest": "Anfrage bearbeiten", - "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", - "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestCard.tmdbid": "TMDB ID", - "components.RequestCard.tvdbid": "TheTVDB ID", - "components.RequestCard.unknowntitle": "Unbekannter Titel", - "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", - "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", - "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", - "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", - "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.RequestList.RequestItem.modified": "Geändert", - "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", - "components.RequestList.RequestItem.requested": "Angefragt", - "components.RequestList.RequestItem.requesteddate": "Angefordert", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestList.RequestItem.tmdbid": "TMDB ID", - "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", - "components.RequestList.RequestItem.unknowntitle": "Unbekannter Titel", - "components.RequestList.requests": "Anfragen", - "components.RequestList.showallrequests": "Zeige alle Anfragen", - "components.RequestList.sortAdded": "Zuletzt angefragt", - "components.RequestList.sortModified": "Zuletzt geändert", - "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", - "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", - "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", - "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", - "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", - "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", - "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", - "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", - "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", - "components.RequestModal.AdvancedRequester.tags": "Tags", - "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.QuotaDisplay.movie": "Filme", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", - "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", - "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.season": "Staffeln", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", - "components.RequestModal.SearchByNameModal.nomatches": "Wir konnten keine Übereinstimmung für diese Serie finden.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", - "components.RequestModal.alreadyrequested": "Bereits Angefragt", - "components.RequestModal.approve": "Anfrage genehmigen", - "components.RequestModal.autoapproval": "Automatische Genehmigung", - "components.RequestModal.cancel": "Anfrage abbrechen", - "components.RequestModal.edit": "Anfrage bearbeiten", - "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", - "components.RequestModal.extras": "Extras", - "components.RequestModal.numberofepisodes": "Anzahl der Folgen", - "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", - "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", - "components.RequestModal.pendingrequest": "Ausstehende Anfrage", - "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", - "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", - "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", - "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", - "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", - "components.RequestModal.requestcollection4ktitle": "Sammlung in 4K anfordern", - "components.RequestModal.requestcollectiontitle": "Sammlung anfordern", - "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", - "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", - "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", - "components.RequestModal.requestmovie4ktitle": "Film in 4K anfordern", - "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", - "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", - "components.RequestModal.requestmovietitle": "Film anfordern", - "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", - "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", - "components.RequestModal.requestseries4ktitle": "Serie in 4K anfordern", - "components.RequestModal.requestseriestitle": "Serie anfordern", - "components.RequestModal.season": "Staffel", - "components.RequestModal.seasonnumber": "Staffel {number}", - "components.RequestModal.selectmovies": "Wähle Film(e)", - "components.RequestModal.selectseason": "Staffel(n) Auswählen", - "components.ResetPassword.confirmpassword": "Passwort bestätigen", - "components.ResetPassword.email": "E-Mail-Adresse", - "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", - "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", - "components.ResetPassword.password": "Passwort", - "components.ResetPassword.passwordreset": "Passwort zurücksetzen", - "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", - "components.ResetPassword.resetpassword": "Passwort zurücksetzen", - "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", - "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", - "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.Search.search": "Suchen", - "components.Search.searchresults": "Suchergebnisse", - "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", - "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", - "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", - "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", - "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", - "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Deine Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstelle einen Token aus deinen Kontoeinstellungen", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", - "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", - "components.Settings.Notifications.authPass": "SMTP-Passwort", - "components.Settings.Notifications.authUser": "SMTP-Benutzername", - "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", - "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", - "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", - "components.Settings.Notifications.botUsername": "Bot Benutzername", - "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", - "components.Settings.Notifications.chatId": "Chat-ID", - "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", - "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.emailsender": "Absenderadresse", - "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", - "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", - "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", - "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", - "components.Settings.Notifications.encryptionNone": "Keine", - "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", - "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", - "components.Settings.Notifications.pgpPassword": "PGP Passwort", - "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", - "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.Settings.Notifications.sendSilently": "Sende stumm", - "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", - "components.Settings.Notifications.senderName": "Absendername", - "components.Settings.Notifications.smtpHost": "SMTP-Host", - "components.Settings.Notifications.smtpPort": "SMTP-Port", - "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", - "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", - "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", - "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", - "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", - "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", - "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", - "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.webhookUrl": "Webhook-URL", - "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", - "components.Settings.RadarrModal.add": "Server hinzufügen", - "components.Settings.RadarrModal.announced": "Angekündigt", - "components.Settings.RadarrModal.apiKey": "API-Schlüssel", - "components.Settings.RadarrModal.baseUrl": "Basis-URL", - "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", - "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", - "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", - "components.Settings.RadarrModal.defaultserver": "Standardserver", - "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", - "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", - "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", - "components.Settings.RadarrModal.externalUrl": "Externe URL", - "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.RadarrModal.inCinemas": "Im Kino", - "components.Settings.RadarrModal.loadingTags": "Lade Tags…", - "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", - "components.Settings.RadarrModal.notagoptions": "Keine Tags.", - "components.Settings.RadarrModal.port": "Port", - "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.RadarrModal.released": "Veröffentlicht", - "components.Settings.RadarrModal.rootfolder": "Stammordner", - "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", - "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.RadarrModal.selecttags": "Tags auswählen", - "components.Settings.RadarrModal.server4k": "4K-Server", - "components.Settings.RadarrModal.servername": "Servername", - "components.Settings.RadarrModal.ssl": "SSL aktivieren", - "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.RadarrModal.tags": "Tags", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", - "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", - "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", - "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", - "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", - "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", - "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", - "components.Settings.SettingsAbout.about": "Über", - "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", - "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", - "components.Settings.SettingsAbout.documentation": "Dokumentation", - "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", - "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", - "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", - "components.Settings.SettingsAbout.outofdate": "Veraltet", - "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", - "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", - "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", - "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", - "components.Settings.SettingsAbout.timezone": "Zeitzone", - "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", - "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", - "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", - "components.Settings.SettingsAbout.version": "Version", - "components.Settings.SettingsJobsCache.cache": "Cache", - "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", - "components.Settings.SettingsJobsCache.cachehits": "Treffer", - "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", - "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", - "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", - "components.Settings.SettingsJobsCache.cachename": "Cache Name", - "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", - "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", - "components.Settings.SettingsJobsCache.command": "Befehl", - "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", - "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", - "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", - "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuelle Frequenz", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", - "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", - "components.Settings.SettingsJobsCache.image-cache-cleanup": "Bild Cache Bereinigung", - "components.Settings.SettingsJobsCache.imagecache": "Bild Cache", - "components.Settings.SettingsJobsCache.imagecacheDescription": "Wenn diese Funktion in den Einstellungen aktiviert ist, wird Jellyseerr Bilder aus vorkonfigurierten externen Quellen cachen und ausliefern. Bilder im Cache werden in deinem Config Ordner abgelegt. Die findest die Dateien unter {appDataPath}/cache/images.", - "components.Settings.SettingsJobsCache.imagecachecount": "Bilder im Cache", - "components.Settings.SettingsJobsCache.imagecachesize": "Gesamtgröße des Cache", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", - "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", - "components.Settings.SettingsJobsCache.jobs": "Aufgaben", - "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", - "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", - "components.Settings.SettingsJobsCache.jobtype": "Art", - "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", - "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", - "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist Sync", - "components.Settings.SettingsJobsCache.process": "Prozess", - "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", - "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", - "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", - "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", - "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", - "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", - "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", - "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", - "components.Settings.SettingsLogs.filterError": "Fehler", - "components.Settings.SettingsLogs.filterInfo": "Infos", - "components.Settings.SettingsLogs.filterWarn": "Warnung", - "components.Settings.SettingsLogs.label": "Bezeichnung", - "components.Settings.SettingsLogs.level": "Schweregrad", - "components.Settings.SettingsLogs.logDetails": "Protokolldetails", - "components.Settings.SettingsLogs.logs": "Protokolle", - "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", - "components.Settings.SettingsLogs.message": "Nachricht", - "components.Settings.SettingsLogs.pauseLogs": "Pause", - "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", - "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", - "components.Settings.SettingsLogs.time": "Zeitstempel", - "components.Settings.SettingsLogs.viewdetails": "Details anzeigen", - "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", - "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", - "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", - "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", - "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", - "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", - "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", - "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", - "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", - "components.Settings.SettingsUsers.users": "Benutzer", - "components.Settings.SonarrModal.add": "Server hinzufügen", - "components.Settings.SonarrModal.animeTags": "Anime Tags", - "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", - "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", - "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", - "components.Settings.SonarrModal.apiKey": "API-Schlüssel", - "components.Settings.SonarrModal.baseUrl": "Basis-URL", - "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", - "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", - "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", - "components.Settings.SonarrModal.defaultserver": "Standardserver", - "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", - "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", - "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", - "components.Settings.SonarrModal.externalUrl": "Externe URL", - "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.SonarrModal.languageprofile": "Sprachprofil", - "components.Settings.SonarrModal.loadingTags": "Lade Tags…", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", - "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.SonarrModal.notagoptions": "Keine Tags.", - "components.Settings.SonarrModal.port": "Port", - "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.SonarrModal.rootfolder": "Stammordner", - "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", - "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", - "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.SonarrModal.selecttags": "Wähle Tags", - "components.Settings.SonarrModal.server4k": "4K-Server", - "components.Settings.SonarrModal.servername": "Servername", - "components.Settings.SonarrModal.ssl": "SSL aktivieren", - "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.SonarrModal.tags": "Tags", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", - "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.activeProfile": "Aktives Profil", - "components.Settings.addradarr": "Radarr-Server hinzufügen", - "components.Settings.address": "Adresse", - "components.Settings.addsonarr": "Sonarr-Server hinzufügen", - "components.Settings.advancedTooltip": "Wenn du diese Einstellung falsch konfigurierst, kann dies zu Funktionsstörungen führen.", - "components.Settings.apikey": "API-Schlüssel", - "components.Settings.applicationTitle": "Anwendungstitel", - "components.Settings.applicationurl": "Anwendungs-URL", - "components.Settings.cacheImages": "Bild-Caching aktivieren", - "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", - "components.Settings.cancelscan": "Durchsuchung abbrechen", - "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", - "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", - "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", - "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", - "components.Settings.default": "Standardmäßig", - "components.Settings.default4k": "Standard-4K", - "components.Settings.deleteServer": "{serverType} Server löschen", - "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", - "components.Settings.email": "E-Mail", - "components.Settings.enablessl": "SSL aktivieren", - "components.Settings.experimentalTooltip": "Die Aktivierung dieser Einstellung kann zu einem unerwarteten Verhalten der Anwendung führen", - "components.Settings.externalUrl": "Externe URL", - "components.Settings.general": "Allgemein", - "components.Settings.generalsettings": "Allgemeine Einstellungen", - "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", - "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", - "components.Settings.hostname": "Hostname oder IP-Adresse", - "components.Settings.is4k": "4K", - "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", - "components.Settings.locale": "Sprache darstellen", - "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", - "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", - "components.Settings.mediaTypeMovie": "Film", - "components.Settings.mediaTypeSeries": "Serie", - "components.Settings.menuAbout": "Über", - "components.Settings.menuGeneralSettings": "Allgemein", - "components.Settings.menuJobs": "Aufgaben und Cache", - "components.Settings.menuLogs": "Protokolle", - "components.Settings.menuNotifications": "Benachrichtigungen", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuServices": "Dienste", - "components.Settings.menuUsers": "Benutzer", - "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", - "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", - "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", - "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", - "components.Settings.notifications": "Benachrichtigungen", - "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", - "components.Settings.notrunning": "Nicht aktiv", - "components.Settings.originallanguage": "Sprache Entdecken", - "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", - "components.Settings.plex": "Plex", - "components.Settings.plexlibraries": "Plex-Bibliotheken", - "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", - "components.Settings.plexsettings": "Plex-Einstellungen", - "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", - "components.Settings.port": "Port", - "components.Settings.radarrsettings": "Radarr-Einstellungen", - "components.Settings.region": "Region Entdecken", - "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.Settings.restartrequiredTooltip": "Jellyseerr muss neu gestartet werden, damit Änderungen an dieser Einstellung wirksam werden", - "components.Settings.scan": "Bibliotheken synchronisieren", - "components.Settings.scanning": "Synchronisieren…", - "components.Settings.serverLocal": "lokal", - "components.Settings.serverRemote": "entfernt", - "components.Settings.serverSecure": "Sicher", - "components.Settings.serverpreset": "Server", - "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", - "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", - "components.Settings.serverpresetRefreshing": "Rufe Server ab …", - "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", - "components.Settings.services": "Dienstleistungen", - "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", - "components.Settings.sonarrsettings": "Sonarr-Einstellungen", - "components.Settings.ssl": "SSL", - "components.Settings.startscan": "Durchsuchung starten", - "components.Settings.tautulliApiKey": "API-Schlüssel", - "components.Settings.tautulliSettings": "Tautulli Einstellungen", - "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für deine Plex-Medien von Tautulli.", - "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", - "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", - "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", - "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", - "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", - "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", - "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", - "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", - "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", - "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", - "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", - "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.urlBase": "URL-Basis", - "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", - "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", - "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", - "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", - "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", - "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", - "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", - "components.Settings.webAppUrl": "Web App URL", - "components.Settings.webAppUrlTip": "Leite Benutzer optional zur Web-App auf deinen Server statt zur „gehosteten“ Web-App weiter", - "components.Settings.webhook": "Webhook", - "components.Settings.webpush": "Web Push", - "components.Setup.configureplex": "Plex konfigurieren", - "components.Setup.configureservices": "Dienste konfigurieren", - "components.Setup.continue": "Fortfahren", - "components.Setup.finish": "Konfiguration beenden", - "components.Setup.finishing": "Fertigstellung …", - "components.Setup.loginwithplex": "Mit Plex anmelden", - "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", - "components.Setup.setup": "Einrichtung", - "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", - "components.Setup.tip": "Tipp", - "components.Setup.welcome": "Willkommen bei Jellyseerr", - "components.StatusBadge.managemedia": "{mediaType} verwalten", - "components.StatusBadge.openinarr": "Öffnen in {arr}", - "components.StatusBadge.playonplex": "Abspielen in {mediaServerName}", - "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", - "components.StatusBadge.status": "{status}", - "components.StatusBadge.status4k": "4K {status}", - "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", - "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", - "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", - "components.StatusChecker.appUpdated": "{applicationTitle} aktualisiert", - "components.StatusChecker.appUpdatedDescription": "Bitte klicke auf die Schaltfläche unten, um die Anwendung neu zu laden.", - "components.StatusChecker.reloadApp": "{applicationTitle} neu laden", - "components.StatusChecker.restartRequired": "Server-Neustart erforderlich", - "components.StatusChecker.restartRequiredDescription": "Bitte starte den Server neu, um die aktualisierten Einstellungen zu übernehmen.", - "components.TitleCard.cleardata": "Daten löschen", - "components.TitleCard.mediaerror": "{mediaType} nicht gefunden", - "components.TitleCard.tmdbid": "TMDB ID", - "components.TitleCard.tvdbid": "TheTVDB ID", - "components.TvDetails.Season.noepisodes": "Die Folgenliste ist nicht verfügbar.", - "components.TvDetails.Season.somethingwentwrong": "Beim Abrufen der Staffeldaten ist etwas schief gelaufen.", - "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", - "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", - "components.TvDetails.anime": "Anime", - "components.TvDetails.cast": "Besetzung", - "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Folge} other {# Folgen}}", - "components.TvDetails.episodeRuntime": "Folgenlaufzeit", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", - "components.TvDetails.firstAirDate": "Erstausstrahlung", - "components.TvDetails.manageseries": "Serie verwalten", - "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", - "components.TvDetails.nextAirDate": "Nächstes Sendedatum", - "components.TvDetails.originallanguage": "Originalsprache", - "components.TvDetails.originaltitle": "Originaltitel", - "components.TvDetails.overview": "Übersicht", - "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", - "components.TvDetails.playonplex": "Auf Plex abspielen", - "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", - "components.TvDetails.recommendations": "Empfehlungen", - "components.TvDetails.reportissue": "Ein Problem melden", - "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", - "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", - "components.TvDetails.seasonnumber": "Staffel {seasonNumber}", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", - "components.TvDetails.seasonstitle": "Staffeln", - "components.TvDetails.showtype": "Serientyp", - "components.TvDetails.similar": "Ähnliche Serien", - "components.TvDetails.status4k": "4K {status}", - "components.TvDetails.streamingproviders": "Streamt derzeit auf", - "components.TvDetails.tmdbuserscore": "TMDB-Benutzerbewertung", - "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.TvDetails.watchtrailer": "Trailer ansehen", - "components.UserList.accounttype": "Art", - "components.UserList.admin": "Admin", - "components.UserList.autogeneratepassword": "Passwort automatisch generieren", - "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", - "components.UserList.bulkedit": "Ausgewählte bearbeiten", - "components.UserList.create": "Erstellen", - "components.UserList.created": "Beigetreten", - "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", - "components.UserList.creating": "Erstelle…", - "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", - "components.UserList.deleteuser": "Benutzer löschen", - "components.UserList.displayName": "Anzeigename", - "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", - "components.UserList.email": "E-Mail-Adresse", - "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", - "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", - "components.UserList.importfromplex": "Plex-Benutzer importieren", - "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", - "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", - "components.UserList.localuser": "Lokaler Benutzer", - "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", - "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", - "components.UserList.owner": "Besitzer", - "components.UserList.password": "Passwort", - "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", - "components.UserList.plexuser": "Plex-Benutzer", - "components.UserList.role": "Rolle", - "components.UserList.sortCreated": "Beitrittsdatum", - "components.UserList.sortDisplayName": "Anzeigename", - "components.UserList.sortRequests": "Anzahl der Anfragen", - "components.UserList.totalrequests": "Anfragen", - "components.UserList.user": "Benutzer", - "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", - "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", - "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", - "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", - "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", - "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", - "components.UserList.userlist": "Benutzerliste", - "components.UserList.users": "Benutzer", - "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", - "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", - "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", - "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", - "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", - "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", - "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Filme", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Filme auf deiner Plex Watchlist automatisch anfordern", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request-Serie", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Serien auf deiner Plex Watchlist automatisch anfordern", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstelle ein Token aus deinen Kontoeinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Anwendungs-API-Token", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register eine Anwendung zur Verwendung mit {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Benutzer- oder Gruppenschlüssel", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Die 30-stellige Benutzer- oder Gruppenkennung", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Die Einstellungen für die Pushover-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ein Zugriffstoken muss angegeben werden", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Sie müssen ein gültiges Anwendungs-Token angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Du musst einen gültigen Benutzer- oder Gruppenschlüssel angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Du kannst deine eigenen Berechtigungen nicht ändern.", - "components.UserProfile.UserSettings.menuChangePass": "Passwort", - "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", - "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", - "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", - "components.UserProfile.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", - "components.UserProfile.limit": "{remaining} von {limit}", - "components.UserProfile.movierequests": "Filmanfragen", - "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", - "components.UserProfile.plexwatchlist": "Plex Watchlist", - "components.UserProfile.recentlywatched": "Kürzlich angesehen", - "components.UserProfile.recentrequests": "Kürzliche Anfragen", - "components.UserProfile.requestsperdays": "{limit} verbleibend", - "components.UserProfile.seriesrequest": "Serienanfragen", - "components.UserProfile.totalrequests": "Anfragen insgesamt", - "components.UserProfile.unlimited": "Unbegrenzt", - "i18n.advanced": "Erweitert", - "i18n.all": "Alle", - "i18n.approve": "Genehmigen", - "i18n.approved": "Genehmigt", - "i18n.areyousure": "Bist du sicher?", - "i18n.available": "Verfügbar", - "i18n.back": "Zurück", - "i18n.cancel": "Abbrechen", - "i18n.canceling": "Abbrechen…", - "i18n.close": "Schließen", - "i18n.decline": "Ablehnen", - "i18n.declined": "Abgelehnt", - "i18n.delete": "Löschen", - "i18n.deleting": "Löschen …", - "i18n.delimitedlist": "{a}, {b}", - "i18n.edit": "Bearbeiten", - "i18n.experimental": "Experimentell", - "i18n.failed": "Fehlgeschlagen", - "i18n.import": "Importieren", - "i18n.importing": "Importieren…", - "i18n.loading": "Lade …", - "i18n.movie": "Film", - "i18n.movies": "Filme", - "i18n.next": "Weiter", - "i18n.noresults": "Keine Ergebnisse.", - "i18n.notrequested": "Nicht Angefragt", - "i18n.open": "Offen", - "i18n.partiallyavailable": "Teilweise verfügbar", - "i18n.pending": "Ausstehend", - "i18n.previous": "Bisherige", - "i18n.processing": "Verarbeiten", - "i18n.request": "Anfragen", - "i18n.request4k": "In 4K anfragen", - "i18n.requested": "Angefragt", - "i18n.requesting": "Anfordern…", - "i18n.resolved": "Gelöst", - "i18n.restartRequired": "Neustart erforderlich", - "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", - "i18n.retry": "Wiederholen", - "i18n.retrying": "Wiederholen…", - "i18n.save": "Änderungen speichern", - "i18n.saving": "Speichern…", - "i18n.settings": "Einstellungen", - "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", - "i18n.status": "Status", - "i18n.test": "Test", - "i18n.testing": "Testen…", - "i18n.tvshow": "Serie", - "i18n.tvshows": "Serien", - "i18n.unavailable": "Nicht verfügbar", - "i18n.usersettings": "Benutzereinstellungen", - "i18n.view": "Anzeigen", - "pages.errormessagewithcode": "{statusCode} - {error}", - "pages.internalservererror": "Interner Serverfehler", - "pages.oops": "Hoppla", - "pages.pagenotfound": "Seite nicht gefunden", - "pages.returnHome": "Zur Startseite", - "pages.serviceunavailable": "Dienst nicht verfügbar", - "pages.somethingwentwrong": "Etwas ist schief gelaufen" + "components.AirDateBadge.airedrelative": "Ausgestrahlt {relativeTime}", + "components.AirDateBadge.airsrelative": "Ausstrahlung {relativeTime}", + "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", + "components.CollectionDetails.numberofmovies": "{count} Filme", + "components.CollectionDetails.overview": "Übersicht", + "components.CollectionDetails.requestcollection": "Sammlung anfragen", + "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", + "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Filme", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", + "components.Discover.DiscoverNetwork.networkSeries": "{network} Serien", + "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Serien", + "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Deine Plex Watchlist", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.MovieGenreList.moviegenres": "Filmgenres", + "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", + "components.Discover.NetworkSlider.networks": "Sender", + "components.Discover.StudioSlider.studios": "Filmstudio", + "components.Discover.TvGenreList.seriesgenres": "Seriengenres", + "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", + "components.Discover.discover": "Entdecken", + "components.Discover.discovermovies": "Beliebte Filme", + "components.Discover.discovertv": "Beliebte Serien", + "components.Discover.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.Discover.noRequests": "Keine Anfragen.", + "components.Discover.plexwatchlist": "Deine Plex Watchlist", + "components.Discover.popularmovies": "Beliebte Filme", + "components.Discover.populartv": "Beliebte Serien", + "components.Discover.recentlyAdded": "Kürzlich hinzugefügt", + "components.Discover.recentrequests": "Vorherige Anfragen", + "components.Discover.trending": "Trends", + "components.Discover.upcoming": "Kommende Filme", + "components.Discover.upcomingmovies": "Kommende Filme", + "components.Discover.upcomingtv": "Kommende Serien", + "components.DownloadBlock.estimatedtime": "Geschätzt {time}", + "components.DownloadBlock.formattedTitle": "{title}: Staffel {seasonNumber} Folge {episodeNumber}", + "components.IssueDetails.IssueComment.areyousuredelete": "Soll dieser Kommentar wirklich gelöscht werden?", + "components.IssueDetails.IssueComment.delete": "Kommentar löschen", + "components.IssueDetails.IssueComment.edit": "Kommentar bearbeiten", + "components.IssueDetails.IssueComment.postedby": "Gepostet {relativeTime} von {username}", + "components.IssueDetails.IssueComment.postedbyedited": "Gepostet {relativeTime} von {username} (Bearbeitet)", + "components.IssueDetails.IssueComment.validationComment": "Du musst eine Nachricht eingeben", + "components.IssueDetails.IssueDescription.deleteissue": "Problem löschen", + "components.IssueDetails.IssueDescription.description": "Beschreibung", + "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", + "components.IssueDetails.allepisodes": "Alle Folgen", + "components.IssueDetails.allseasons": "Alle Staffeln", + "components.IssueDetails.closeissue": "Problem schließen", + "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", + "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", + "components.IssueDetails.comments": "Kommentare", + "components.IssueDetails.deleteissue": "Problem löschen", + "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", + "components.IssueDetails.episode": "Folge {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problem", + "components.IssueDetails.issuetype": "Art", + "components.IssueDetails.lastupdated": "Letzte Aktualisierung", + "components.IssueDetails.leavecomment": "Kommentar", + "components.IssueDetails.nocomments": "Keine Kommentare.", + "components.IssueDetails.openedby": "#{issueId} geöffnet {relativeTime} von {username}", + "components.IssueDetails.openin4karr": "In {arr} 4K öffnen", + "components.IssueDetails.openinarr": "In {arr} öffnen", + "components.IssueDetails.play4konplex": "Auf {mediaServerName} in 4K abspielen", + "components.IssueDetails.playonplex": "Auf {mediaServerName} abspielen", + "components.IssueDetails.problemepisode": "Betroffene Folge", + "components.IssueDetails.problemseason": "Betroffene Staffeln", + "components.IssueDetails.reopenissue": "Problem erneut öffnen", + "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", + "components.IssueDetails.season": "Staffel {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", + "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", + "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", + "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", + "components.IssueDetails.toaststatusupdated": "Problemstatus erfolgreich aktualisiert!", + "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", + "components.IssueDetails.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", + "components.IssueList.IssueItem.issuestatus": "Status", + "components.IssueList.IssueItem.issuetype": "Typ", + "components.IssueList.IssueItem.opened": "Geöffnet", + "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", + "components.IssueList.IssueItem.problemepisode": "Betroffene Folge", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.viewissue": "Problem anzeigen", + "components.IssueList.issues": "Probleme", + "components.IssueList.showallissues": "Alle Probleme anzeigen", + "components.IssueList.sortAdded": "Neueste", + "components.IssueList.sortModified": "Zuletzt geändert", + "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", + "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", + "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Folge", + "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", + "components.IssueModal.CreateIssueModal.providedetail": "Gib eine detaillierte Erklärung des Problems an.", + "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", + "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Problem melden", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung eingeben", + "components.IssueModal.CreateIssueModal.whatswrong": "Was ist das Problem?", + "components.IssueModal.issueAudio": "Ton", + "components.IssueModal.issueOther": "Andere", + "components.IssueModal.issueSubtitles": "Untertitel", + "components.IssueModal.issueVideo": "Video", + "components.LanguageSelector.languageServerDefault": "Standard ({language})", + "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", + "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", + "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", + "components.Layout.Sidebar.dashboard": "Entdecken", + "components.Layout.Sidebar.issues": "Probleme", + "components.Layout.Sidebar.requests": "Anfragen", + "components.Layout.Sidebar.settings": "Einstellungen", + "components.Layout.Sidebar.users": "Benutzer", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmanfragen", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serienanfragen", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.UserDropdown.requests": "Anfragen", + "components.Layout.UserDropdown.settings": "Einstellungen", + "components.Layout.UserDropdown.signout": "Abmelden", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", + "components.Layout.VersionStatus.outofdate": "Veraltet", + "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", + "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", + "components.Login.email": "E-Mail-Adresse", + "components.Login.forgotpassword": "Passwort vergessen?", + "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", + "components.Login.password": "Passwort", + "components.Login.signin": "Anmelden", + "components.Login.signingin": "Anmelden …", + "components.Login.signinheader": "Anmelden um fortzufahren", + "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle} Konto", + "components.Login.signinwithplex": "Benutze dein Plex Konto", + "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.ManageSlideOver.alltime": "Gesamte Zeit", + "components.ManageSlideOver.downloadstatus": "Downloads", + "components.ManageSlideOver.manageModalAdvanced": "Fortgeschritten", + "components.ManageSlideOver.manageModalClearMedia": "Daten löschen", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in deiner {mediaServerName}-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", + "components.ManageSlideOver.manageModalIssues": "Problem eröffnen", + "components.ManageSlideOver.manageModalMedia": "Medien", + "components.ManageSlideOver.manageModalMedia4k": "4K Medien", + "components.ManageSlideOver.manageModalNoRequests": "Keine Anfragen.", + "components.ManageSlideOver.manageModalRequests": "Anfragen", + "components.ManageSlideOver.manageModalTitle": "{mediaType} verwalten", + "components.ManageSlideOver.mark4kavailable": "Als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", + "components.ManageSlideOver.markavailable": "Als verfügbar markieren", + "components.ManageSlideOver.movie": "Film", + "components.ManageSlideOver.openarr": "In {arr} öffnen", + "components.ManageSlideOver.openarr4k": "In 4K {arr} öffnen", + "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", + "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", + "components.ManageSlideOver.playedby": "Abgespielt von", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", + "components.ManageSlideOver.tvshow": "Serie", + "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", + "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", + "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", + "components.MovieDetails.budget": "Budget", + "components.MovieDetails.cast": "Besetzung", + "components.MovieDetails.digitalrelease": "Digitale Veröffentlichung", + "components.MovieDetails.managemovie": "Film verwalten", + "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", + "components.MovieDetails.markavailable": "Als verfügbar markieren", + "components.MovieDetails.originallanguage": "Originalsprache", + "components.MovieDetails.originaltitle": "Originaltitel", + "components.MovieDetails.overview": "Übersicht", + "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.MovieDetails.physicalrelease": "Physikalische Veröffentlichung", + "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", + "components.MovieDetails.playonplex": "Auf Plex abspielen", + "components.MovieDetails.productioncountries": "Produktions{countryCount, plural, one {land} other {länder}}", + "components.MovieDetails.recommendations": "Empfehlungen", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", + "components.MovieDetails.reportissue": "Ein Problem melden", + "components.MovieDetails.revenue": "Einnahmen", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.runtime": "{minutes} Minuten", + "components.MovieDetails.showless": "Weniger Anzeigen", + "components.MovieDetails.showmore": "Mehr Anzeigen", + "components.MovieDetails.similar": "Ähnliche Titel", + "components.MovieDetails.streamingproviders": "Streamt derzeit auf", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", + "components.MovieDetails.theatricalrelease": "Kinostart", + "components.MovieDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.MovieDetails.watchtrailer": "Trailer ansehen", + "components.NotificationTypeSelector.adminissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", + "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", + "components.NotificationTypeSelector.issuecommentDescription": "Sende eine Benachrichtigungen, wenn Probleme neue Kommentare erhalten.", + "components.NotificationTypeSelector.issuecreated": "Gemeldetes Problem", + "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", + "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", + "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.issueresolved": "Problem gelöst", + "components.NotificationTypeSelector.issueresolvedDescription": "Senden Benachrichtigungen, wenn Probleme gelöst sind.", + "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", + "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", + "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", + "components.NotificationTypeSelector.mediaautorequested": "Anfrage automatisch eingereicht", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Lasse dich benachrichtigen, wenn neue Medienanfragen für Objekte auf deiner Plex Watchlist automatisch eingereicht werden.", + "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", + "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", + "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", + "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", + "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", + "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", + "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", + "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", + "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", + "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen dich benachrichtigen, wenn andere Benutzer Probleme melden.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn deine Medienanfrage angenommen wurde.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn deine Medienanfragen verfügbar sind.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", + "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", + "components.PermissionEdit.admin": "Admin", + "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", + "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", + "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", + "components.PermissionEdit.autoapprove": "Automatische Genehmigung", + "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", + "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", + "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", + "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", + "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", + "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", + "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", + "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", + "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", + "components.PermissionEdit.autorequest": "Automatische Anfrage", + "components.PermissionEdit.autorequestDescription": "Erlaube die automatische Übermittlung von Anfragen für Nicht-4K-Medien über die Plex Watchlist.", + "components.PermissionEdit.autorequestMovies": "Auto-Request Filme", + "components.PermissionEdit.autorequestMoviesDescription": "Erlauben es, automatisch Anfragen für Nicht-4K-Filme über die Plex Watchlist zu stellen.", + "components.PermissionEdit.autorequestSeries": "Auto-Request-Serie", + "components.PermissionEdit.autorequestSeriesDescription": "Erlaube es, automatisch Anfragen für Nicht-4K-Serien über die Plex Watchlist zu stellen.", + "components.PermissionEdit.createissues": "Probleme melden", + "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", + "components.PermissionEdit.manageissues": "Probleme verwalten", + "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", + "components.PermissionEdit.managerequests": "Anfragen verwalten", + "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", + "components.PermissionEdit.request": "Anfrage", + "components.PermissionEdit.request4k": "4K anfragen", + "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", + "components.PermissionEdit.request4kMovies": "4K Filme anfragen", + "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", + "components.PermissionEdit.request4kTv": "4K Serien anfragen", + "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", + "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", + "components.PermissionEdit.requestMovies": "Filme anfragen", + "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", + "components.PermissionEdit.requestTv": "Serien anfragen", + "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", + "components.PermissionEdit.settings": "Einstellungen verwalten", + "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", + "components.PermissionEdit.users": "Benutzer verwalten", + "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", + "components.PermissionEdit.viewissues": "Probleme ansehen", + "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", + "components.PermissionEdit.viewrecent": "Kürzlich hinzugefügt anzeigen", + "components.PermissionEdit.viewrecentDescription": "Erteile die Erlaubnis, die Liste der kürzlich hinzugefügten Medien anzuzeigen.", + "components.PermissionEdit.viewrequests": "Anfragen anzeigen", + "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", + "components.PermissionEdit.viewwatchlists": "Plex Watchlists anzeigen", + "components.PermissionEdit.viewwatchlistsDescription": "Erteile die Erlaubnis, die Plex Watchlists anderer Benutzer einzusehen.", + "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", + "components.PersonDetails.appearsin": "Auftritte", + "components.PersonDetails.ascharacter": "als {character}", + "components.PersonDetails.birthdate": "Geboren am {birthdate}", + "components.PersonDetails.crewmember": "Crew", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Anmeldung läuft …", + "components.PlexLoginButton.signinwithplex": "Anmelden", + "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", + "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", + "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", + "components.QuotaSelector.unlimited": "Unbegrenzt", + "components.RegionSelector.regionDefault": "Alle Regionen", + "components.RegionSelector.regionServerDefault": "Standard ({region})", + "components.RequestBlock.approve": "Anfrage genehmigen", + "components.RequestBlock.decline": "Anfrage ablehnen", + "components.RequestBlock.delete": "Anfrage löschen", + "components.RequestBlock.edit": "Anfrage bearbeiten", + "components.RequestBlock.languageprofile": "Sprachprofil", + "components.RequestBlock.lastmodifiedby": "Zuletzt geändert von", + "components.RequestBlock.profilechanged": "Qualitätsprofil", + "components.RequestBlock.requestdate": "Datum der Anfrage", + "components.RequestBlock.requestedby": "Angefordert von", + "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", + "components.RequestBlock.rootfolder": "Stammordner", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestBlock.server": "Zielserver", + "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", + "components.RequestButton.approverequest": "Anfrage genehmigen", + "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", + "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", + "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", + "components.RequestButton.declinerequest": "Anfrage ablehnen", + "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", + "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", + "components.RequestButton.requestmore": "Mehr anfragen", + "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", + "components.RequestButton.viewrequest": "Anfrage anzeigen", + "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", + "components.RequestCard.approverequest": "Anfrage genehmigen", + "components.RequestCard.cancelrequest": "Anfrage abbrechen", + "components.RequestCard.declinerequest": "Anfrage ablehnen", + "components.RequestCard.deleterequest": "Anfrage löschen", + "components.RequestCard.editrequest": "Anfrage bearbeiten", + "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", + "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Unbekannter Titel", + "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", + "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", + "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", + "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", + "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestList.RequestItem.modified": "Geändert", + "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", + "components.RequestList.RequestItem.requested": "Angefragt", + "components.RequestList.RequestItem.requesteddate": "Angefordert", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Unbekannter Titel", + "components.RequestList.requests": "Anfragen", + "components.RequestList.showallrequests": "Zeige alle Anfragen", + "components.RequestList.sortAdded": "Zuletzt angefragt", + "components.RequestList.sortModified": "Zuletzt geändert", + "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", + "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", + "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", + "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", + "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", + "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", + "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", + "components.RequestModal.AdvancedRequester.tags": "Tags", + "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.movie": "Filme", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", + "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", + "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.season": "Staffeln", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", + "components.RequestModal.SearchByNameModal.nomatches": "Wir konnten keine Übereinstimmung für diese Serie finden.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", + "components.RequestModal.alreadyrequested": "Bereits Angefragt", + "components.RequestModal.approve": "Anfrage genehmigen", + "components.RequestModal.autoapproval": "Automatische Genehmigung", + "components.RequestModal.cancel": "Anfrage abbrechen", + "components.RequestModal.edit": "Anfrage bearbeiten", + "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "Anzahl der Folgen", + "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", + "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", + "components.RequestModal.pendingrequest": "Ausstehende Anfrage", + "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", + "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", + "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", + "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestcollection4ktitle": "Sammlung in 4K anfordern", + "components.RequestModal.requestcollectiontitle": "Sammlung anfordern", + "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", + "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", + "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", + "components.RequestModal.requestmovie4ktitle": "Film in 4K anfordern", + "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", + "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", + "components.RequestModal.requestmovietitle": "Film anfordern", + "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", + "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", + "components.RequestModal.requestseries4ktitle": "Serie in 4K anfordern", + "components.RequestModal.requestseriestitle": "Serie anfordern", + "components.RequestModal.season": "Staffel", + "components.RequestModal.seasonnumber": "Staffel {number}", + "components.RequestModal.selectmovies": "Wähle Film(e)", + "components.RequestModal.selectseason": "Staffel(n) Auswählen", + "components.ResetPassword.confirmpassword": "Passwort bestätigen", + "components.ResetPassword.email": "E-Mail-Adresse", + "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", + "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", + "components.ResetPassword.password": "Passwort", + "components.ResetPassword.passwordreset": "Passwort zurücksetzen", + "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", + "components.ResetPassword.resetpassword": "Passwort zurücksetzen", + "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", + "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", + "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.Search.search": "Suchen", + "components.Search.searchresults": "Suchergebnisse", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", + "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Deine Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstelle einen Token aus deinen Kontoeinstellungen", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", + "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", + "components.Settings.Notifications.authPass": "SMTP-Passwort", + "components.Settings.Notifications.authUser": "SMTP-Benutzername", + "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", + "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", + "components.Settings.Notifications.botUsername": "Bot Benutzername", + "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", + "components.Settings.Notifications.chatId": "Chat-ID", + "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", + "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.emailsender": "Absenderadresse", + "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", + "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", + "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", + "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", + "components.Settings.Notifications.encryptionNone": "Keine", + "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", + "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", + "components.Settings.Notifications.pgpPassword": "PGP Passwort", + "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", + "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.sendSilently": "Sende stumm", + "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", + "components.Settings.Notifications.senderName": "Absendername", + "components.Settings.Notifications.smtpHost": "SMTP-Host", + "components.Settings.Notifications.smtpPort": "SMTP-Port", + "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", + "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", + "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", + "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", + "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", + "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", + "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", + "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", + "components.Settings.RadarrModal.add": "Server hinzufügen", + "components.Settings.RadarrModal.announced": "Angekündigt", + "components.Settings.RadarrModal.apiKey": "API-Schlüssel", + "components.Settings.RadarrModal.baseUrl": "Basis-URL", + "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", + "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", + "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", + "components.Settings.RadarrModal.defaultserver": "Standardserver", + "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", + "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", + "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.RadarrModal.externalUrl": "Externe URL", + "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.RadarrModal.inCinemas": "Im Kino", + "components.Settings.RadarrModal.loadingTags": "Lade Tags…", + "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", + "components.Settings.RadarrModal.notagoptions": "Keine Tags.", + "components.Settings.RadarrModal.port": "Port", + "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.RadarrModal.released": "Veröffentlicht", + "components.Settings.RadarrModal.rootfolder": "Stammordner", + "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", + "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.RadarrModal.selecttags": "Tags auswählen", + "components.Settings.RadarrModal.server4k": "4K-Server", + "components.Settings.RadarrModal.servername": "Servername", + "components.Settings.RadarrModal.ssl": "SSL aktivieren", + "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.RadarrModal.tags": "Tags", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", + "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", + "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", + "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", + "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", + "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", + "components.Settings.SettingsAbout.about": "Über", + "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", + "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", + "components.Settings.SettingsAbout.documentation": "Dokumentation", + "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", + "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", + "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", + "components.Settings.SettingsAbout.outofdate": "Veraltet", + "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", + "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", + "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zeitzone", + "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", + "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", + "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", + "components.Settings.SettingsAbout.version": "Version", + "components.Settings.SettingsJobsCache.cache": "Cache", + "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", + "components.Settings.SettingsJobsCache.cachehits": "Treffer", + "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", + "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", + "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", + "components.Settings.SettingsJobsCache.cachename": "Cache Name", + "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", + "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", + "components.Settings.SettingsJobsCache.command": "Befehl", + "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", + "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", + "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuelle Frequenz", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", + "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Bild Cache Bereinigung", + "components.Settings.SettingsJobsCache.imagecache": "Bild Cache", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Wenn diese Funktion in den Einstellungen aktiviert ist, wird Jellyseerr Bilder aus vorkonfigurierten externen Quellen cachen und ausliefern. Bilder im Cache werden in deinem Config Ordner abgelegt. Die findest die Dateien unter {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Bilder im Cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Gesamtgröße des Cache", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", + "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", + "components.Settings.SettingsJobsCache.jobs": "Aufgaben", + "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", + "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", + "components.Settings.SettingsJobsCache.jobtype": "Art", + "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", + "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist Sync", + "components.Settings.SettingsJobsCache.process": "Prozess", + "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", + "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", + "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", + "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", + "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", + "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", + "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", + "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", + "components.Settings.SettingsLogs.filterError": "Fehler", + "components.Settings.SettingsLogs.filterInfo": "Infos", + "components.Settings.SettingsLogs.filterWarn": "Warnung", + "components.Settings.SettingsLogs.label": "Bezeichnung", + "components.Settings.SettingsLogs.level": "Schweregrad", + "components.Settings.SettingsLogs.logDetails": "Protokolldetails", + "components.Settings.SettingsLogs.logs": "Protokolle", + "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", + "components.Settings.SettingsLogs.message": "Nachricht", + "components.Settings.SettingsLogs.pauseLogs": "Pause", + "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", + "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", + "components.Settings.SettingsLogs.time": "Zeitstempel", + "components.Settings.SettingsLogs.viewdetails": "Details anzeigen", + "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", + "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", + "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", + "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", + "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", + "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", + "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", + "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", + "components.Settings.SettingsUsers.users": "Benutzer", + "components.Settings.SonarrModal.add": "Server hinzufügen", + "components.Settings.SonarrModal.animeTags": "Anime Tags", + "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", + "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", + "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", + "components.Settings.SonarrModal.apiKey": "API-Schlüssel", + "components.Settings.SonarrModal.baseUrl": "Basis-URL", + "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", + "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", + "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", + "components.Settings.SonarrModal.defaultserver": "Standardserver", + "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", + "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", + "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.SonarrModal.externalUrl": "Externe URL", + "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.SonarrModal.languageprofile": "Sprachprofil", + "components.Settings.SonarrModal.loadingTags": "Lade Tags…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", + "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.SonarrModal.notagoptions": "Keine Tags.", + "components.Settings.SonarrModal.port": "Port", + "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.SonarrModal.rootfolder": "Stammordner", + "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", + "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", + "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.SonarrModal.selecttags": "Wähle Tags", + "components.Settings.SonarrModal.server4k": "4K-Server", + "components.Settings.SonarrModal.servername": "Servername", + "components.Settings.SonarrModal.ssl": "SSL aktivieren", + "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.SonarrModal.tags": "Tags", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.activeProfile": "Aktives Profil", + "components.Settings.addradarr": "Radarr-Server hinzufügen", + "components.Settings.address": "Adresse", + "components.Settings.addsonarr": "Sonarr-Server hinzufügen", + "components.Settings.advancedTooltip": "Wenn du diese Einstellung falsch konfigurierst, kann dies zu Funktionsstörungen führen.", + "components.Settings.apikey": "API-Schlüssel", + "components.Settings.applicationTitle": "Anwendungstitel", + "components.Settings.applicationurl": "Anwendungs-URL", + "components.Settings.cacheImages": "Bild-Caching aktivieren", + "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", + "components.Settings.cancelscan": "Durchsuchung abbrechen", + "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", + "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", + "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", + "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", + "components.Settings.default": "Standardmäßig", + "components.Settings.default4k": "Standard-4K", + "components.Settings.deleteServer": "{serverType} Server löschen", + "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", + "components.Settings.email": "E-Mail", + "components.Settings.enablessl": "SSL aktivieren", + "components.Settings.experimentalTooltip": "Die Aktivierung dieser Einstellung kann zu einem unerwarteten Verhalten der Anwendung führen", + "components.Settings.externalUrl": "Externe URL", + "components.Settings.general": "Allgemein", + "components.Settings.generalsettings": "Allgemeine Einstellungen", + "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", + "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", + "components.Settings.hostname": "Hostname oder IP-Adresse", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", + "components.Settings.locale": "Sprache darstellen", + "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", + "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", + "components.Settings.mediaTypeMovie": "Film", + "components.Settings.mediaTypeSeries": "Serie", + "components.Settings.menuAbout": "Über", + "components.Settings.menuGeneralSettings": "Allgemein", + "components.Settings.menuJobs": "Aufgaben und Cache", + "components.Settings.menuLogs": "Protokolle", + "components.Settings.menuNotifications": "Benachrichtigungen", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Dienste", + "components.Settings.menuUsers": "Benutzer", + "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", + "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", + "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", + "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", + "components.Settings.notifications": "Benachrichtigungen", + "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", + "components.Settings.notrunning": "Nicht aktiv", + "components.Settings.originallanguage": "Sprache Entdecken", + "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Plex-Bibliotheken", + "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", + "components.Settings.plexsettings": "Plex-Einstellungen", + "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", + "components.Settings.port": "Port", + "components.Settings.radarrsettings": "Radarr-Einstellungen", + "components.Settings.region": "Region Entdecken", + "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.Settings.restartrequiredTooltip": "Jellyseerr muss neu gestartet werden, damit Änderungen an dieser Einstellung wirksam werden", + "components.Settings.scan": "Bibliotheken synchronisieren", + "components.Settings.scanning": "Synchronisieren…", + "components.Settings.serverLocal": "lokal", + "components.Settings.serverRemote": "entfernt", + "components.Settings.serverSecure": "Sicher", + "components.Settings.serverpreset": "Server", + "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", + "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", + "components.Settings.serverpresetRefreshing": "Rufe Server ab …", + "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", + "components.Settings.services": "Dienstleistungen", + "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", + "components.Settings.sonarrsettings": "Sonarr-Einstellungen", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Durchsuchung starten", + "components.Settings.tautulliApiKey": "API-Schlüssel", + "components.Settings.tautulliSettings": "Tautulli Einstellungen", + "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für deine Plex-Medien von Tautulli.", + "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", + "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", + "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", + "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", + "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", + "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", + "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", + "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", + "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", + "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", + "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", + "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.urlBase": "URL-Basis", + "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", + "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", + "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", + "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", + "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", + "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", + "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", + "components.Settings.webAppUrl": "Web App URL", + "components.Settings.webAppUrlTip": "Leite Benutzer optional zur Web-App auf deinen Server statt zur „gehosteten“ Web-App weiter", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Plex konfigurieren", + "components.Setup.configureservices": "Dienste konfigurieren", + "components.Setup.continue": "Fortfahren", + "components.Setup.finish": "Konfiguration beenden", + "components.Setup.finishing": "Fertigstellung …", + "components.Setup.loginwithplex": "Mit Plex anmelden", + "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", + "components.Setup.setup": "Einrichtung", + "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", + "components.Setup.tip": "Tipp", + "components.Setup.welcome": "Willkommen bei Jellyseerr", + "components.StatusBadge.managemedia": "{mediaType} verwalten", + "components.StatusBadge.openinarr": "Öffnen in {arr}", + "components.StatusBadge.playonplex": "Abspielen in {mediaServerName}", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", + "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", + "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", + "components.StatusChecker.appUpdated": "{applicationTitle} aktualisiert", + "components.StatusChecker.appUpdatedDescription": "Bitte klicke auf die Schaltfläche unten, um die Anwendung neu zu laden.", + "components.StatusChecker.reloadApp": "{applicationTitle} neu laden", + "components.StatusChecker.restartRequired": "Server-Neustart erforderlich", + "components.StatusChecker.restartRequiredDescription": "Bitte starte den Server neu, um die aktualisierten Einstellungen zu übernehmen.", + "components.TitleCard.cleardata": "Daten löschen", + "components.TitleCard.mediaerror": "{mediaType} nicht gefunden", + "components.TitleCard.tmdbid": "TMDB ID", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.TvDetails.Season.noepisodes": "Die Folgenliste ist nicht verfügbar.", + "components.TvDetails.Season.somethingwentwrong": "Beim Abrufen der Staffeldaten ist etwas schief gelaufen.", + "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", + "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Besetzung", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Folge} other {# Folgen}}", + "components.TvDetails.episodeRuntime": "Folgenlaufzeit", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", + "components.TvDetails.firstAirDate": "Erstausstrahlung", + "components.TvDetails.manageseries": "Serie verwalten", + "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", + "components.TvDetails.nextAirDate": "Nächstes Sendedatum", + "components.TvDetails.originallanguage": "Originalsprache", + "components.TvDetails.originaltitle": "Originaltitel", + "components.TvDetails.overview": "Übersicht", + "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", + "components.TvDetails.playonplex": "Auf Plex abspielen", + "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", + "components.TvDetails.recommendations": "Empfehlungen", + "components.TvDetails.reportissue": "Ein Problem melden", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.TvDetails.seasonnumber": "Staffel {seasonNumber}", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", + "components.TvDetails.seasonstitle": "Staffeln", + "components.TvDetails.showtype": "Serientyp", + "components.TvDetails.similar": "Ähnliche Serien", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.streamingproviders": "Streamt derzeit auf", + "components.TvDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.TvDetails.watchtrailer": "Trailer ansehen", + "components.UserList.accounttype": "Art", + "components.UserList.admin": "Admin", + "components.UserList.autogeneratepassword": "Passwort automatisch generieren", + "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", + "components.UserList.bulkedit": "Ausgewählte bearbeiten", + "components.UserList.create": "Erstellen", + "components.UserList.created": "Beigetreten", + "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", + "components.UserList.creating": "Erstelle…", + "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", + "components.UserList.deleteuser": "Benutzer löschen", + "components.UserList.displayName": "Anzeigename", + "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", + "components.UserList.email": "E-Mail-Adresse", + "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", + "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", + "components.UserList.importfromplex": "Plex-Benutzer importieren", + "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", + "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", + "components.UserList.localuser": "Lokaler Benutzer", + "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", + "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", + "components.UserList.owner": "Besitzer", + "components.UserList.password": "Passwort", + "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", + "components.UserList.plexuser": "Plex-Benutzer", + "components.UserList.role": "Rolle", + "components.UserList.sortCreated": "Beitrittsdatum", + "components.UserList.sortDisplayName": "Anzeigename", + "components.UserList.sortRequests": "Anzahl der Anfragen", + "components.UserList.totalrequests": "Anfragen", + "components.UserList.user": "Benutzer", + "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", + "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", + "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", + "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", + "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", + "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", + "components.UserList.userlist": "Benutzerliste", + "components.UserList.users": "Benutzer", + "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", + "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", + "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", + "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", + "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Filme", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Filme auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request-Serie", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Serien auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstelle ein Token aus deinen Kontoeinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Anwendungs-API-Token", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register eine Anwendung zur Verwendung mit {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Benutzer- oder Gruppenschlüssel", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Die 30-stellige Benutzer- oder Gruppenkennung", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Die Einstellungen für die Pushover-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ein Zugriffstoken muss angegeben werden", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Sie müssen ein gültiges Anwendungs-Token angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Du musst einen gültigen Benutzer- oder Gruppenschlüssel angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Du kannst deine eigenen Berechtigungen nicht ändern.", + "components.UserProfile.UserSettings.menuChangePass": "Passwort", + "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", + "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", + "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", + "components.UserProfile.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.UserProfile.limit": "{remaining} von {limit}", + "components.UserProfile.movierequests": "Filmanfragen", + "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.UserProfile.recentlywatched": "Kürzlich angesehen", + "components.UserProfile.recentrequests": "Kürzliche Anfragen", + "components.UserProfile.requestsperdays": "{limit} verbleibend", + "components.UserProfile.seriesrequest": "Serienanfragen", + "components.UserProfile.totalrequests": "Anfragen insgesamt", + "components.UserProfile.unlimited": "Unbegrenzt", + "i18n.advanced": "Erweitert", + "i18n.all": "Alle", + "i18n.approve": "Genehmigen", + "i18n.approved": "Genehmigt", + "i18n.areyousure": "Bist du sicher?", + "i18n.available": "Verfügbar", + "i18n.back": "Zurück", + "i18n.cancel": "Abbrechen", + "i18n.canceling": "Abbrechen…", + "i18n.close": "Schließen", + "i18n.decline": "Ablehnen", + "i18n.declined": "Abgelehnt", + "i18n.delete": "Löschen", + "i18n.deleting": "Löschen …", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Bearbeiten", + "i18n.experimental": "Experimentell", + "i18n.failed": "Fehlgeschlagen", + "i18n.import": "Importieren", + "i18n.importing": "Importieren…", + "i18n.loading": "Lade …", + "i18n.movie": "Film", + "i18n.movies": "Filme", + "i18n.next": "Weiter", + "i18n.noresults": "Keine Ergebnisse.", + "i18n.notrequested": "Nicht Angefragt", + "i18n.open": "Offen", + "i18n.partiallyavailable": "Teilweise verfügbar", + "i18n.pending": "Ausstehend", + "i18n.previous": "Bisherige", + "i18n.processing": "Verarbeiten", + "i18n.request": "Anfragen", + "i18n.request4k": "In 4K anfragen", + "i18n.requested": "Angefragt", + "i18n.requesting": "Anfordern…", + "i18n.resolved": "Gelöst", + "i18n.restartRequired": "Neustart erforderlich", + "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", + "i18n.retry": "Wiederholen", + "i18n.retrying": "Wiederholen…", + "i18n.save": "Änderungen speichern", + "i18n.saving": "Speichern…", + "i18n.settings": "Einstellungen", + "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", + "i18n.status": "Status", + "i18n.test": "Test", + "i18n.testing": "Testen…", + "i18n.tvshow": "Serie", + "i18n.tvshows": "Serien", + "i18n.unavailable": "Nicht verfügbar", + "i18n.usersettings": "Benutzereinstellungen", + "i18n.view": "Anzeigen", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Interner Serverfehler", + "pages.oops": "Hoppla", + "pages.pagenotfound": "Seite nicht gefunden", + "pages.returnHome": "Zur Startseite", + "pages.serviceunavailable": "Dienst nicht verfügbar", + "pages.somethingwentwrong": "Etwas ist schief gelaufen" } From b1bd5693351ed7c4540898952235746d6a96ad25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chechu=20Garc=C3=ADa?= <32913133+CheChu10@users.noreply.github.com> Date: Sat, 7 Jan 2023 09:15:28 +0000 Subject: [PATCH 32/65] Update es.json Added some missing Spanish translations and fixed a spelling mistake. Ordered by JSON Keys. --- src/i18n/locale/es.json | 1969 ++++++++++++++++++++------------------- 1 file changed, 986 insertions(+), 983 deletions(-) diff --git a/src/i18n/locale/es.json b/src/i18n/locale/es.json index 6798681ec..74eeb0d4b 100644 --- a/src/i18n/locale/es.json +++ b/src/i18n/locale/es.json @@ -1,985 +1,988 @@ { - "components.Settings.SonarrModal.ssl": "Usar SSL", - "components.Settings.SonarrModal.servername": "Nombre del Servidor", - "components.Settings.SonarrModal.server4k": "Servidor 4K", - "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", - "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.SonarrModal.port": "Puerto", - "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", - "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", - "components.Settings.SonarrModal.baseUrl": "URL Base", - "components.Settings.SonarrModal.apiKey": "Clave API", - "components.Settings.SonarrModal.add": "Agregar Servidor", - "components.Settings.SettingsAbout.version": "Versión", - "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", - "components.Settings.SettingsAbout.totalmedia": "Contenido Total", - "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", - "components.Settings.SettingsAbout.githubdiscussions": "Discursiones en GitHub", - "components.Settings.SettingsAbout.gettingsupport": "Soporte", - "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", - "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", - "components.Settings.RadarrModal.ssl": "Usar SSL", - "components.Settings.RadarrModal.servername": "Nombre del Servidor", - "components.Settings.RadarrModal.server4k": "Servidor 4K", - "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", - "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.RadarrModal.port": "Puerto", - "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", - "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", - "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", - "components.Settings.RadarrModal.baseUrl": "URL Base", - "components.Settings.RadarrModal.apiKey": "Clave API", - "components.Settings.RadarrModal.add": "Agregar Servidor", - "components.Settings.Notifications.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", - "components.Settings.Notifications.smtpPort": "Puerto SMTP", - "components.Settings.Notifications.smtpHost": "Host SMTP", - "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", - "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", - "components.Settings.Notifications.emailsender": "Dirección del Remitente", - "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", - "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", - "components.Settings.Notifications.authUser": "Usuario SMTP", - "components.Settings.Notifications.authPass": "Contraseña SMTP", - "components.Settings.Notifications.agentenabled": "Habilitar Agente", - "components.Search.searchresults": "Resultado de la búsqueda", - "components.RequestModal.selectseason": "Seleccionar Temporada(s)", - "components.RequestModal.seasonnumber": "Temporada {number}", - "components.RequestModal.season": "Temporada", - "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", - "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", - "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", - "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", - "components.RequestModal.pendingrequest": "Solicitud pendiente", - "components.RequestModal.numberofepisodes": "# de Episodios", - "components.RequestModal.extras": "Extras", - "components.RequestModal.cancel": "Cancelar Petición", - "components.RequestList.requests": "Solicitudes", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.PersonDetails.ascharacter": "como {character}", - "components.PersonDetails.appearsin": "Apariciones", - "components.MovieDetails.similar": "Títulos Similares", - "components.MovieDetails.runtime": "{minutes} minutos", - "components.MovieDetails.revenue": "Recaudado", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", - "components.MovieDetails.cast": "Reparto", - "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", - "components.MovieDetails.recommendations": "Recomendaciones", - "components.MovieDetails.overviewunavailable": "Resumen indisponible.", - "components.MovieDetails.overview": "Resumen", - "components.MovieDetails.originallanguage": "Idioma Original", - "components.MovieDetails.budget": "Presupuesto", - "components.Layout.UserDropdown.signout": "Cerrar Sesión", - "components.Layout.Sidebar.users": "Usuarios", - "components.Layout.Sidebar.settings": "Ajustes", - "components.Layout.Sidebar.requests": "Solicitudes", - "components.Layout.Sidebar.dashboard": "Descubrir", - "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", - "components.Discover.upcomingmovies": "Próximas Películas", - "components.Discover.upcoming": "Próximas Películas", - "components.Discover.trending": "Tendencias", - "components.Discover.recentrequests": "Peticiones Recientes", - "components.Discover.recentlyAdded": "Agregado Recientemente", - "components.Discover.populartv": "Series Populares", - "components.Discover.popularmovies": "Películas Populares", - "components.Discover.discovertv": "Series Populares", - "components.Discover.discovermovies": "Películas Populares", - "components.Settings.addsonarr": "Agregar servidor Sonarr", - "components.Settings.address": "Dirección", - "components.Settings.addradarr": "Agregar servidor Radarr", - "components.Settings.activeProfile": "Perfil activo", - "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", - "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", - "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.menuLogs": "Registro", - "pages.returnHome": "Volver al Inicio", - "pages.oops": "Ups", - "i18n.unavailable": "No Disponible", - "i18n.tvshows": "Series", - "i18n.processing": "Procesando", - "i18n.pending": "Pendiente", - "i18n.partiallyavailable": "Parcialmente Disponible", - "i18n.movies": "Películas", - "i18n.delete": "Eliminar", - "i18n.declined": "Rechazado", - "i18n.decline": "Rechazar", - "i18n.cancel": "Cancelar", - "i18n.available": "Disponible", - "i18n.approved": "Aprobado", - "i18n.approve": "Aprobar", - "components.UserList.userlist": "Lista de usuarios", - "components.UserList.user": "Usuario", - "components.UserList.totalrequests": "Solicitudes", - "components.UserList.role": "Rol", - "components.UserList.plexuser": "Usuario de Plex", - "components.UserList.created": "Unido", - "components.UserList.admin": "Administrador", - "components.TvDetails.similar": "Series Similares", - "components.TvDetails.recommendations": "Recomendaciones", - "components.TvDetails.overviewunavailable": "Resumen indisponible.", - "components.TvDetails.overview": "Resumen", - "components.TvDetails.originallanguage": "Idioma original", - "components.TvDetails.cast": "Reparto", - "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", - "components.Setup.welcome": "Bienvenido a Jellyseerr", - "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", - "components.Setup.loginwithplex": "Iniciar sesión con Plex", - "components.Setup.finishing": "Finalizando…", - "components.Setup.finish": "Finalizar configuración", - "components.Setup.continue": "Continuar", - "components.Setup.configureplex": "Configurar Plex", - "components.Setup.configureservices": "Configurar servicios", - "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.startscan": "Iniciar Escaneo", - "components.Settings.ssl": "SSL", - "components.Settings.sonarrsettings": "Ajustes de Sonarr", - "components.Settings.radarrsettings": "Ajustes de Radarr", - "components.Settings.port": "Puerto", - "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", - "components.Settings.plexsettings": "Ajustes de Plex", - "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", - "components.Settings.plexlibraries": "Bibliotecas Plex", - "components.Settings.notrunning": "Sin ejecutarse", - "components.Settings.notificationsettings": "Configuración de notificaciones", - "components.Settings.menuServices": "Servicios", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuNotifications": "Notificaciones", - "components.Settings.menuJobs": "Tareas y Caché", - "components.Settings.menuGeneralSettings": "General", - "components.Settings.menuAbout": "Acerca de", - "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", - "components.Settings.manualscan": "Escaneo Manual de Biblioteca", - "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", - "components.Settings.hostname": "Nombre de host o Dirección IP", - "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", - "components.Settings.generalsettings": "Configuración general", - "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", - "components.Settings.default4k": "4K predeterminado", - "components.Settings.default": "Predeterminado", - "components.Settings.currentlibrary": "Biblioteca actual: {name}", - "components.Settings.copied": "Clave API copiada en el portapapeles.", - "components.Settings.cancelscan": "Cancelar Escaneo", - "components.Settings.applicationurl": "URL de la aplicación", - "components.Settings.apikey": "Clave API", - "components.Setup.tip": "Consejo", - "i18n.deleting": "Eliminando…", - "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", - "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", - "components.UserList.deleteuser": "Eliminar usuario", - "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", - "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", - "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", - "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", - "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "i18n.close": "Cerrar", - "components.TvDetails.showtype": "Tipos de Series", - "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", - "components.TvDetails.anime": "Anime", - "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", - "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", - "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", - "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", - "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", - "components.Settings.SettingsAbout.timezone": "Zona horaria", - "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", - "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", - "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", - "components.Settings.SettingsAbout.Releases.releases": "Versiones", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", - "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", - "components.Settings.SettingsAbout.Releases.currentversion": "Actual", - "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", - "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", - "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", - "components.UserList.importfromplex": "Importar Usuarios de Plex", - "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", - "components.TvDetails.viewfullcrew": "Ver Equipo Completo", - "components.TvDetails.firstAirDate": "Primera fecha de emisión", - "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", - "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", - "components.PersonDetails.crewmember": "Equipo", - "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", - "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", - "components.CollectionDetails.requestcollection": "Solicitar Colección", - "components.CollectionDetails.overview": "Resumen", - "components.CollectionDetails.numberofmovies": "{count} Películas", - "i18n.retry": "Reintentar", - "i18n.requested": "Solicitado", - "i18n.failed": "Fallido", - "components.TvDetails.watchtrailer": "Ver Trailer", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", - "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", - "components.MovieDetails.watchtrailer": "Ver Trailer", - "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", - "components.StatusChacker.reloadOverseerr": "Recargar", - "components.StatusChacker.newversionavailable": "Actualización de Aplicación", - "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", - "components.Settings.SettingsAbout.documentation": "Documentación", - "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", - "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", - "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", - "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", - "components.Settings.Notifications.senderName": "Nombre del remitente", - "components.Settings.Notifications.chatId": "ID de chat", - "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", - "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", - "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", - "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", - "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", - "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", - "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", - "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", - "i18n.request": "Solicitar", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", - "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", - "components.RequestList.sortModified": "Última modificación", - "components.RequestList.sortAdded": "Más Reciente", - "components.RequestList.showallrequests": "Mostrar todas las solicitudes", - "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", - "i18n.edit": "Editar", - "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", - "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", - "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", - "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", - "components.UserList.password": "Contraseña", - "components.UserList.localuser": "Usuario local", - "components.UserList.email": "Dirección de correo electrónico", - "components.UserList.creating": "Creando…", - "components.UserList.createlocaluser": "Crear usuario local", - "components.UserList.create": "Crear", - "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", - "components.StatusBadge.status4k": "4K {status}", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", - "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", - "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", - "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", - "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", - "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", - "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", - "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", - "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", - "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", - "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", - "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", - "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", - "components.RequestButton.viewrequest": "Ver Solicitud", - "components.RequestButton.requestmore4k": "Solicitar más en 4K", - "components.RequestButton.requestmore": "Solicitar más", - "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", - "components.RequestButton.declinerequest": "Rechazar Solicitud", - "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", - "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", - "components.RequestButton.approverequest": "Aprobar Solicitud", - "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", - "components.RequestBlock.server": "Servidor de Destino", - "components.RequestBlock.rootfolder": "Carpeta Raíz", - "components.RequestBlock.profilechanged": "Perfil de Calidad", - "components.MediaSlider.ShowMoreCard.seemore": "Ver más", - "components.Login.validationpasswordrequired": "Se requiere contraseña", - "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", - "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", - "components.Login.password": "Contraseña", - "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", - "components.Login.email": "Dirección de correo electrónico", - "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", - "components.RequestModal.autoapproval": "Aprobación Automática", - "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", - "i18n.experimental": "Experimental", - "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", - "components.Login.signingin": "Iniciando sesión…", - "components.Login.signin": "Iniciar Sesión", - "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", - "components.PlexLoginButton.signingin": "Iniciando sesión…", - "components.Login.signinwithplex": "Usa tu cuenta de Plex", - "components.Login.signinheader": "Inicia sesión para continuar", - "components.PermissionEdit.request4k": "Solicitar 4K", - "components.PermissionEdit.request": "Solicitar", - "components.PermissionEdit.admin": "Administrador", - "components.Discover.discover": "Descubrir", - "components.Layout.UserDropdown.settings": "Ajustes", - "components.Layout.UserDropdown.myprofile": "Perfil", - "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", - "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", - "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", - "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", - "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", - "i18n.loading": "Cargando…", - "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", - "components.ResetPassword.email": "Dirección de Email", - "components.ResetPassword.confirmpassword": "Confirmar Contraseña", - "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", - "components.RequestModal.AdvancedRequester.requestas": "Pedir como", - "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.RequestList.RequestItem.requested": "Pedida", - "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", - "components.RequestList.RequestItem.modified": "Modificado", - "components.RegionSelector.regionServerDefault": "({Region}) por defecto", - "components.RegionSelector.regionDefault": "Todas las Regiones", - "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", - "components.PermissionEdit.viewrequests": "Ver Solicitudes", - "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", - "components.PermissionEdit.users": "Gestión de Usuarios", - "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", - "components.PermissionEdit.settings": "Gestionar Ajustes", - "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", - "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", - "components.PermissionEdit.request4kTv": "Pedir Series 4K", - "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", - "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", - "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", - "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", - "components.PermissionEdit.managerequests": "Gestionar Solicitudes", - "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", - "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", - "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", - "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", - "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", - "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", - "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", - "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", - "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", - "components.PermissionEdit.autoapprove": "Auto-Aprobación", - "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", - "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", - "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", - "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", - "components.MovieDetails.playonplex": "Ver en Plex", - "components.MovieDetails.play4konplex": "Ver en Plex en 4K", - "components.MovieDetails.markavailable": "Marcar como Disponible", - "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", - "components.Login.forgotpassword": "¿Contraseña olvidada?", - "components.Discover.upcomingtv": "Próximas Series", - "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", - "components.Discover.StudioSlider.studios": "Estudios", - "components.Discover.NetworkSlider.networks": "Cadenas de TV", - "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", - "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", - "components.AppDataWarning.dockerVolumeMissingDescription": "El montaje del volumen {appDataPath} no se ha configurado correctamente. Todos los datos se eliminarán cuando el contenedor se pare o reinicie.", - "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", - "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", - "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", - "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", - "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", - "components.Settings.SettingsJobsCache.process": "Procesamiento", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", - "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", - "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", - "components.Settings.SettingsJobsCache.jobtype": "Tipo", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", - "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", - "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", - "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", - "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", - "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", - "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", - "components.Settings.SettingsJobsCache.command": "Comando", - "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", - "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", - "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", - "components.Settings.SettingsJobsCache.cachemisses": "Fallos", - "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", - "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", - "components.Settings.SettingsJobsCache.cachehits": "Consultas", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", - "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", - "components.Settings.SettingsJobsCache.cache": "Caché", - "components.Settings.SettingsAbout.preferredmethod": "Preferida", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.RadarrModal.externalUrl": "URL externa", - "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", - "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", - "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", - "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", - "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", - "components.Search.search": "Buscar", - "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", - "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", - "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", - "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", - "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", - "components.ResetPassword.resetpassword": "Reiniciar contraseña", - "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", - "components.ResetPassword.password": "Contraseña", - "components.ResetPassword.gobacklogin": "Volver a la Página de Login", - "components.RequestModal.alreadyrequested": "Ya Pedida", - "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", - "components.Discover.MovieGenreList.moviegenres": "Géneros de Películas", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", - "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", - "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", - "components.UserProfile.ProfileHeader.profile": "Ver Perfil", - "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", - "components.UserList.validationEmail": "Debes indicar un dirección de email válida", - "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", - "components.UserList.users": "Usuarios", - "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", - "components.UserList.sortRequests": "Número de Solicitudes", - "components.UserList.sortDisplayName": "Nombre a mostrar", - "components.UserList.sortCreated": "Fecha de Unión", - "components.UserList.owner": "Propietario", - "components.UserList.edituser": "Editar Permisos de Usuario", - "components.UserList.bulkedit": "Edición Masiva", - "components.UserList.accounttype": "Tipo", - "components.TvDetails.playonplex": "Ver en Plex", - "components.TvDetails.play4konplex": "Ver en Plex en 4K", - "components.TvDetails.nextAirDate": "Próxima Emisión", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", - "components.TvDetails.episodeRuntime": "Duración del Episodio", - "components.Setup.setup": "Configuración", - "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", - "components.Settings.webhook": "Webhook", - "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", - "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", - "components.Settings.trustProxy": "Habilitar soporte Proxy", - "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", - "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", - "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", - "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", - "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", - "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", - "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", - "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", - "components.Settings.serverpresetManualMessage": "Configuración manual", - "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", - "components.Settings.serverpreset": "Servidor", - "components.Settings.serverRemote": "remoto", - "components.Settings.serverLocal": "local", - "components.Settings.scanning": "Sincronizando…", - "components.Settings.scan": "Sincronizar Bibliotecas", - "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.Settings.region": "Región para la sección \"Descubrir\"", - "components.Settings.originallanguage": "Idioma para la sección Descubrir", - "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", - "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", - "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", - "components.Settings.menuUsers": "Usuarios", - "components.Settings.email": "Email", - "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", - "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", - "components.Settings.csrfProtection": "Habilitar Protección CSRF", - "components.Settings.applicationTitle": "Título de la Aplicación", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", - "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", - "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", - "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", - "components.Settings.SonarrModal.externalUrl": "URL Externa", - "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", - "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", - "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", - "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", - "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", - "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", - "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", - "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", - "components.Settings.SettingsLogs.pauseLogs": "Pausar", - "components.Settings.SettingsLogs.resumeLogs": "Reanudar", - "components.Settings.SettingsLogs.message": "Mensaje", - "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", - "components.Settings.SettingsLogs.logs": "Logs", - "components.Settings.SettingsLogs.level": "Severidad", - "components.Settings.SettingsLogs.label": "Etiqueta", - "components.Settings.SettingsLogs.filterWarn": "Advertencia", - "components.Settings.SettingsLogs.filterInfo": "Info", - "components.Settings.SettingsLogs.filterError": "Error", - "components.Settings.SettingsLogs.filterDebug": "Depuración", - "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", - "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", - "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", - "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", - "components.Settings.services": "Servicios", - "components.Settings.plex": "Plex", - "components.Settings.notifications": "Notificaciones", - "components.Settings.general": "General", - "components.Settings.SettingsUsers.users": "Usuarios", - "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", - "components.Settings.SettingsAbout.about": "Acerca de", - "components.ResetPassword.passwordreset": "Reinicio de Contraseña", - "pages.errormessagewithcode": "{statusCode} - {error}", - "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", - "pages.somethingwentwrong": "Algo fue mal", - "pages.serviceunavailable": "Servicio No Disponible", - "pages.pagenotfound": "Página No Encontrada", - "pages.internalservererror": "Error Interno del Servidor", - "i18n.usersettings": "Ajustes de Usuario", - "i18n.settings": "Ajustes", - "i18n.advanced": "Avanzado", - "components.UserProfile.recentrequests": "Solicitudes Recientes", - "components.UserProfile.UserSettings.menuPermissions": "Permisos", - "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", - "components.UserProfile.UserSettings.menuGeneralSettings": "General", - "components.UserProfile.UserSettings.menuChangePass": "Contraseña", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", - "components.Settings.enablessl": "Usar SSL", - "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", - "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", - "components.Settings.SettingsLogs.logDetails": "Detalles del Log", - "components.Settings.SettingsLogs.extraData": "Datos Adicionales", - "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", - "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", - "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PersonDetails.birthdate": "Nacido el {birthdate}", - "components.PersonDetails.alsoknownas": "También Conocido como: {names}", - "i18n.delimitedlist": "{a}, {b}", - "i18n.view": "Ver", - "i18n.tvshow": "Series", - "i18n.testing": "Probando…", - "i18n.test": "Probar", - "i18n.status": "Estado", - "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", - "i18n.saving": "Guardando…", - "i18n.save": "Guardar Cambios", - "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", - "i18n.requesting": "Pidiendo…", - "i18n.request4k": "Pedir en 4K", - "i18n.previous": "Anterior", - "i18n.notrequested": "No Solicitado", - "i18n.noresults": "Sin resultados.", - "i18n.next": "Adelante", - "i18n.movie": "Película", - "i18n.canceling": "Cancelando…", - "i18n.back": "Atrás", - "i18n.areyousure": "¿Estás Seguro?", - "i18n.all": "Todas", - "components.UserProfile.unlimited": "Ilimitadas", - "components.UserProfile.totalrequests": "Solicitudes Totales", - "components.UserProfile.seriesrequest": "Solicitudes de Series", - "components.UserProfile.requestsperdays": "{limit} restantes", - "components.UserProfile.pastdays": "{type} (últimos {days} días)", - "components.UserProfile.movierequests": "Solicitudes de Películas", - "components.UserProfile.limit": "{remaining} de {limit}", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", - "components.TvDetails.originaltitle": "Título Original", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", - "components.RequestModal.QuotaDisplay.season": "temporada", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", - "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", - "components.RequestModal.QuotaDisplay.movie": "película", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", - "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", - "components.QuotaSelector.unlimited": "Ilimitadas", - "components.MovieDetails.originaltitle": "Título Original", - "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", - "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", - "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", - "components.Settings.mediaTypeMovie": "película", - "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.SonarrModal.tags": "Etiquetas", - "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", - "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", - "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", - "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", - "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", - "components.Settings.mediaTypeSeries": "serie", - "components.Settings.SettingsAbout.uptodate": "Actualizado", - "components.Settings.SettingsAbout.outofdate": "Desactualizado", - "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.RadarrModal.tags": "Etiquetas", - "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", - "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", - "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", - "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", - "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", - "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", - "components.RequestModal.AdvancedRequester.tags": "Etiquetas", - "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", - "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", - "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", - "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", - "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestCard.deleterequest": "Borrar Solicitud", - "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", - "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", - "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", - "components.Layout.VersionStatus.outofdate": "Desactualizado", - "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", - "i18n.retrying": "Reintentando…", - "components.Settings.serverSecure": "seguro", - "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", - "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.RequestModal.edit": "Editar Solicitud", - "components.RequestList.RequestItem.editrequest": "Editar Solicitud", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", - "components.Settings.webpush": "Web Push", - "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", - "components.Settings.is4k": "4K", - "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", - "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", - "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", - "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", - "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", - "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", - "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", - "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", - "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", - "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", - "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", - "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", - "components.PermissionEdit.requestTv": "Solicitar Series", - "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", - "components.PermissionEdit.requestMovies": "Solicitar películas", - "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", - "components.RequestList.RequestItem.requesteddate": "Solicitado", - "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", - "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", - "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", - "components.MovieDetails.showmore": "Mostrar más", - "components.MovieDetails.showless": "Mostrar menos", - "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", - "components.DownloadBlock.estimatedtime": "Estimación de {time}", - "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", - "components.TvDetails.streamingproviders": "Emisión Actual en", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", - "components.Settings.webAppUrl": "Url de la Web App", - "components.Settings.locale": "Idioma en Pantalla", - "components.UserList.displayName": "Nombre en Pantalla", - "components.Settings.Notifications.encryption": "Método de Encriptación", - "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", - "components.Settings.Notifications.encryptionNone": "Ninguna", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", - "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", - "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", - "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", - "components.MovieDetails.streamingproviders": "Emisión Actual en", - "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", - "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", - "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", - "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", - "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", - "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", - "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", - "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", - "components.StatusBadge.status": "{status}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", - "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", - "components.IssueDetails.IssueComment.areyousuredelete": "¿Estás seguro de querer borrar este comentario?", - "components.IssueDetails.IssueComment.delete": "Borrar Comentario", - "components.IssueDetails.IssueComment.edit": "Modificar Comentario", - "components.IssueDetails.IssueComment.postedby": "Escrito por {username} el {relativeTime}", - "components.IssueDetails.IssueComment.postedbyedited": "Escrito por {username} el {relativeTime} (Modificado)", - "components.IssueDetails.IssueComment.validationComment": "Debes introducir un mensaje", - "components.IssueDetails.allepisodes": "Todos los Episodios", - "components.IssueDetails.problemepisode": "Episodio Afectado", - "components.IssueDetails.IssueDescription.deleteissue": "Borrar Incidencia", - "components.IssueDetails.IssueDescription.description": "Descripción", - "components.IssueDetails.closeissue": "Cerrar Incidencia", - "components.IssueDetails.closeissueandcomment": "Cerrar con Comentarios", - "components.IssueDetails.comments": "Comentarios", - "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", - "components.IssueDetails.allseasons": "Todas las Temporadas", - "components.IssueDetails.deleteissue": "Borrar Incidencia", - "components.IssueDetails.deleteissueconfirm": "¿Estás seguro de querer borrar esta incidencia?", - "components.IssueDetails.episode": "Episodio {episodeNumber}", - "components.IssueDetails.issuepagetitle": "Incidencia", - "components.IssueDetails.issuetype": "Tipo", - "components.IssueDetails.lastupdated": "Última Actualización", - "components.IssueDetails.leavecomment": "Commentario", - "components.IssueDetails.nocomments": "Sin comentarios.", - "components.IssueDetails.openedby": "#{issueId} abierta {relativeTime} por {username}", - "components.IssueDetails.openinarr": "Abierta en {arr}", - "components.ManageSlideOver.movie": "película", - "i18n.open": "Abrir", - "i18n.resolved": "Resuelta", - "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", - "components.IssueList.IssueItem.issuestatus": "Estado", - "components.IssueList.IssueItem.opened": "Abierta", - "components.IssueList.issues": "Incidencias", - "components.IssueModal.issueOther": "Otro", - "components.IssueList.showallissues": "Mostrar Todas las Incidencias", - "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", - "components.ManageSlideOver.manageModalRequests": "Solicitudes", - "components.IssueList.sortModified": "Última Modificación", - "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", - "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", - "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", - "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", - "components.ManageSlideOver.tvshow": "series", - "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", - "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", - "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", - "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", - "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", - "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", - "components.ManageSlideOver.markavailable": "Marcar como Disponible", - "components.ManageSlideOver.openarr": "Abrir en {arr}", - "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", - "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", - "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", - "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", - "components.PermissionEdit.createissues": "Incidencias Reportadas", - "components.PermissionEdit.manageissues": "Gestionar Incidencias", - "components.IssueDetails.problemseason": "Temporada Afectada", - "components.IssueDetails.season": "Temporada {seasonNumber}", - "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", - "components.PermissionEdit.viewissues": "Ver Incidencias", - "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", - "components.IssueDetails.reopenissueandcomment": "Reabrir con Comentarios", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", - "components.IssueDetails.toasteditdescriptionfailed": "Algo fue mal mientras se modificaba la descripción de la incidencia.", - "components.IssueDetails.toasteditdescriptionsuccess": "¡La descripción de la incidencia se ha modificado correctamente!", - "components.IssueDetails.toastissuedeleted": "¡Incidencia eliminada correctamente!", - "components.IssueDetails.toastissuedeletefailed": "Algo fue mal mientras se eliminaba la incidencia.", - "components.IssueDetails.unknownissuetype": "Desconocido", - "components.IssueList.IssueItem.issuetype": "Tipo", - "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", - "components.IssueList.sortAdded": "Más Reciente", - "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", - "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", - "components.IssueList.IssueItem.unknownissuetype": "Desconocida", - "components.IssueList.IssueItem.viewissue": "Ver Incidencia", - "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", - "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", - "components.Layout.Sidebar.issues": "Incidencias", - "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", - "components.IssueModal.CreateIssueModal.problemepisode": "Episodio Afectado", - "components.IssueModal.CreateIssueModal.reportissue": "Reportar Incidencia", - "components.IssueModal.CreateIssueModal.submitissue": "Enviar Incidencia", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo fue mal mientras se enviaba la incidencia.", - "components.IssueModal.issueAudio": "Audio", - "components.IssueModal.issueSubtitles": "Subtítulo", - "components.IssueModal.issueVideo": "Vídeo", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de {mediaServerName}, la información de los contenidos se recreará en el siguiente escaneado.", - "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", - "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", - "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", - "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", - "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", - "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", - "components.IssueDetails.reopenissue": "Reabrir Incidencia", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", - "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", - "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", - "components.IssueDetails.playonplex": "Ver en {mediaServerName}", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", - "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.ManageSlideOver.manageModalIssues": "Incidencias Abiertas", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Notificar cuando se reabran incidencias por otros usuarios.", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", - "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", - "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", - "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta" + "components.AppDataWarning.dockerVolumeMissingDescription": "El montaje del volumen {appDataPath} no se ha configurado correctamente. Todos los datos se eliminarán cuando el contenedor se pare o reinicie.", + "components.CollectionDetails.numberofmovies": "{count} Películas", + "components.CollectionDetails.overview": "Resumen", + "components.CollectionDetails.requestcollection": "Solicitar Colección", + "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", + "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", + "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", + "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", + "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", + "components.Discover.MovieGenreList.moviegenres": "Géneros de Películas", + "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", + "components.Discover.NetworkSlider.networks": "Cadenas de TV", + "components.Discover.StudioSlider.studios": "Estudios", + "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", + "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", + "components.Discover.discover": "Descubrir", + "components.Discover.discovermovies": "Películas Populares", + "components.Discover.discovertv": "Series Populares", + "components.Discover.emptywatchlist": "Los medios añadidos a tu Lista de seguimiento de Plex aparecerán aquí.", + "components.Discover.noRequests": "No hay peticiones.", + "components.Discover.plexwatchlist": "Tu lista de seguimiento de Plex", + "components.Discover.popularmovies": "Películas Populares", + "components.Discover.populartv": "Series Populares", + "components.Discover.recentlyAdded": "Agregado Recientemente", + "components.Discover.recentrequests": "Peticiones Recientes", + "components.Discover.trending": "Tendencias", + "components.Discover.upcoming": "Próximas Películas", + "components.Discover.upcomingmovies": "Próximas Películas", + "components.Discover.upcomingtv": "Próximas Series", + "components.DownloadBlock.estimatedtime": "Estimación de {time}", + "components.IssueDetails.IssueComment.areyousuredelete": "¿Estás seguro de querer borrar este comentario?", + "components.IssueDetails.IssueComment.delete": "Borrar Comentario", + "components.IssueDetails.IssueComment.edit": "Modificar Comentario", + "components.IssueDetails.IssueComment.postedby": "Escrito por {username} el {relativeTime}", + "components.IssueDetails.IssueComment.postedbyedited": "Escrito por {username} el {relativeTime} (Modificado)", + "components.IssueDetails.IssueComment.validationComment": "Debes introducir un mensaje", + "components.IssueDetails.IssueDescription.deleteissue": "Borrar Incidencia", + "components.IssueDetails.IssueDescription.description": "Descripción", + "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", + "components.IssueDetails.allepisodes": "Todos los Episodios", + "components.IssueDetails.allseasons": "Todas las Temporadas", + "components.IssueDetails.closeissue": "Cerrar Incidencia", + "components.IssueDetails.closeissueandcomment": "Cerrar con Comentarios", + "components.IssueDetails.comments": "Comentarios", + "components.IssueDetails.deleteissue": "Borrar Incidencia", + "components.IssueDetails.deleteissueconfirm": "¿Estás seguro de querer borrar esta incidencia?", + "components.IssueDetails.episode": "Episodio {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Incidencia", + "components.IssueDetails.issuetype": "Tipo", + "components.IssueDetails.lastupdated": "Última Actualización", + "components.IssueDetails.leavecomment": "Commentario", + "components.IssueDetails.nocomments": "Sin comentarios.", + "components.IssueDetails.openedby": "#{issueId} abierta {relativeTime} por {username}", + "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", + "components.IssueDetails.openinarr": "Abierta en {arr}", + "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", + "components.IssueDetails.playonplex": "Ver en {mediaServerName}", + "components.IssueDetails.problemepisode": "Episodio Afectado", + "components.IssueDetails.problemseason": "Temporada Afectada", + "components.IssueDetails.reopenissue": "Reabrir Incidencia", + "components.IssueDetails.reopenissueandcomment": "Reabrir con Comentarios", + "components.IssueDetails.season": "Temporada {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Algo fue mal mientras se modificaba la descripción de la incidencia.", + "components.IssueDetails.toasteditdescriptionsuccess": "¡La descripción de la incidencia se ha modificado correctamente!", + "components.IssueDetails.toastissuedeleted": "¡Incidencia eliminada correctamente!", + "components.IssueDetails.toastissuedeletefailed": "Algo fue mal mientras se eliminaba la incidencia.", + "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", + "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", + "components.IssueDetails.unknownissuetype": "Desconocido", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", + "components.IssueList.IssueItem.issuestatus": "Estado", + "components.IssueList.IssueItem.issuetype": "Tipo", + "components.IssueList.IssueItem.opened": "Abierta", + "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", + "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.IssueList.IssueItem.unknownissuetype": "Desconocida", + "components.IssueList.IssueItem.viewissue": "Ver Incidencia", + "components.IssueList.issues": "Incidencias", + "components.IssueList.showallissues": "Mostrar Todas las Incidencias", + "components.IssueList.sortAdded": "Más Reciente", + "components.IssueList.sortModified": "Última Modificación", + "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", + "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", + "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.problemepisode": "Episodio Afectado", + "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", + "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", + "components.IssueModal.CreateIssueModal.reportissue": "Reportar Incidencia", + "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Enviar Incidencia", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo fue mal mientras se enviaba la incidencia.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", + "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", + "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Otro", + "components.IssueModal.issueSubtitles": "Subtítulo", + "components.IssueModal.issueVideo": "Vídeo", + "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", + "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", + "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", + "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", + "components.Layout.Sidebar.dashboard": "Descubrir", + "components.Layout.Sidebar.issues": "Incidencias", + "components.Layout.Sidebar.requests": "Solicitudes", + "components.Layout.Sidebar.settings": "Ajustes", + "components.Layout.Sidebar.users": "Usuarios", + "components.Layout.UserDropdown.myprofile": "Perfil", + "components.Layout.UserDropdown.settings": "Ajustes", + "components.Layout.UserDropdown.signout": "Cerrar Sesión", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", + "components.Layout.VersionStatus.outofdate": "Desactualizado", + "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", + "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", + "components.Login.email": "Dirección de correo electrónico", + "components.Login.forgotpassword": "¿Contraseña olvidada?", + "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", + "components.Login.password": "Contraseña", + "components.Login.signin": "Iniciar Sesión", + "components.Login.signingin": "Iniciando sesión…", + "components.Login.signinheader": "Inicia sesión para continuar", + "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", + "components.Login.signinwithplex": "Usa tu cuenta de Plex", + "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", + "components.Login.validationpasswordrequired": "Se requiere contraseña", + "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", + "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de {mediaServerName}, la información de los contenidos se recreará en el siguiente escaneado.", + "components.ManageSlideOver.manageModalIssues": "Incidencias Abiertas", + "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", + "components.ManageSlideOver.manageModalRequests": "Solicitudes", + "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", + "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", + "components.ManageSlideOver.markavailable": "Marcar como Disponible", + "components.ManageSlideOver.movie": "película", + "components.ManageSlideOver.openarr": "Abrir en {arr}", + "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", + "components.ManageSlideOver.tvshow": "series", + "components.MediaSlider.ShowMoreCard.seemore": "Ver más", + "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", + "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", + "components.MovieDetails.budget": "Presupuesto", + "components.MovieDetails.cast": "Reparto", + "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", + "components.MovieDetails.markavailable": "Marcar como Disponible", + "components.MovieDetails.originallanguage": "Idioma Original", + "components.MovieDetails.originaltitle": "Título Original", + "components.MovieDetails.overview": "Resumen", + "components.MovieDetails.overviewunavailable": "Resumen indisponible.", + "components.MovieDetails.play4konplex": "Ver en Plex en 4K", + "components.MovieDetails.playonplex": "Ver en Plex", + "components.MovieDetails.recommendations": "Recomendaciones", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", + "components.MovieDetails.revenue": "Recaudado", + "components.MovieDetails.runtime": "{minutes} minutos", + "components.MovieDetails.showless": "Mostrar menos", + "components.MovieDetails.showmore": "Mostrar más", + "components.MovieDetails.similar": "Títulos Similares", + "components.MovieDetails.streamingproviders": "Emisión Actual en", + "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", + "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", + "components.MovieDetails.watchtrailer": "Ver Trailer", + "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Notificar cuando se reabran incidencias por otros usuarios.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", + "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", + "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", + "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", + "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", + "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta", + "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", + "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", + "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", + "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", + "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", + "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", + "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", + "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", + "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", + "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", + "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", + "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", + "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", + "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", + "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", + "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", + "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", + "components.PermissionEdit.admin": "Administrador", + "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", + "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", + "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", + "components.PermissionEdit.autoapprove": "Auto-Aprobación", + "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", + "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", + "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", + "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", + "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", + "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", + "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", + "components.PermissionEdit.createissues": "Incidencias Reportadas", + "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", + "components.PermissionEdit.manageissues": "Gestionar Incidencias", + "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", + "components.PermissionEdit.managerequests": "Gestionar Solicitudes", + "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", + "components.PermissionEdit.request": "Solicitar", + "components.PermissionEdit.request4k": "Solicitar 4K", + "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", + "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", + "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", + "components.PermissionEdit.request4kTv": "Pedir Series 4K", + "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", + "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", + "components.PermissionEdit.requestMovies": "Solicitar películas", + "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", + "components.PermissionEdit.requestTv": "Solicitar Series", + "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", + "components.PermissionEdit.settings": "Gestionar Ajustes", + "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", + "components.PermissionEdit.users": "Gestión de Usuarios", + "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", + "components.PermissionEdit.viewissues": "Ver Incidencias", + "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", + "components.PermissionEdit.viewrequests": "Ver Solicitudes", + "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", + "components.PersonDetails.alsoknownas": "También Conocido como: {names}", + "components.PersonDetails.appearsin": "Apariciones", + "components.PersonDetails.ascharacter": "como {character}", + "components.PersonDetails.birthdate": "Nacido el {birthdate}", + "components.PersonDetails.crewmember": "Equipo", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Iniciando sesión…", + "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", + "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", + "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", + "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", + "components.QuotaSelector.unlimited": "Ilimitadas", + "components.RegionSelector.regionDefault": "Todas las Regiones", + "components.RegionSelector.regionServerDefault": "({Region}) por defecto", + "components.RequestBlock.profilechanged": "Perfil de Calidad", + "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", + "components.RequestBlock.rootfolder": "Carpeta Raíz", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestBlock.server": "Servidor de Destino", + "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", + "components.RequestButton.approverequest": "Aprobar Solicitud", + "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", + "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", + "components.RequestButton.declinerequest": "Rechazar Solicitud", + "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", + "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.requestmore": "Solicitar más", + "components.RequestButton.requestmore4k": "Solicitar más en 4K", + "components.RequestButton.viewrequest": "Ver Solicitud", + "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", + "components.RequestCard.deleterequest": "Borrar Solicitud", + "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", + "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", + "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", + "components.RequestList.RequestItem.editrequest": "Editar Solicitud", + "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", + "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestList.RequestItem.modified": "Modificado", + "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", + "components.RequestList.RequestItem.requested": "Pedida", + "components.RequestList.RequestItem.requesteddate": "Solicitado", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.requests": "Solicitudes", + "components.RequestList.showallrequests": "Mostrar todas las solicitudes", + "components.RequestList.sortAdded": "Más Reciente", + "components.RequestList.sortModified": "Última modificación", + "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", + "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", + "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", + "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", + "components.RequestModal.AdvancedRequester.requestas": "Pedir como", + "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", + "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", + "components.RequestModal.AdvancedRequester.tags": "Etiquetas", + "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.movie": "película", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", + "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", + "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.season": "temporada", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", + "components.RequestModal.alreadyrequested": "Ya Pedida", + "components.RequestModal.autoapproval": "Aprobación Automática", + "components.RequestModal.cancel": "Cancelar Petición", + "components.RequestModal.edit": "Editar Solicitud", + "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "# de Episodios", + "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", + "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", + "components.RequestModal.pendingrequest": "Solicitud pendiente", + "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", + "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", + "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", + "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", + "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", + "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", + "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", + "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestModal.season": "Temporada", + "components.RequestModal.seasonnumber": "Temporada {number}", + "components.RequestModal.selectseason": "Seleccionar Temporada(s)", + "components.ResetPassword.confirmpassword": "Confirmar Contraseña", + "components.ResetPassword.email": "Dirección de Email", + "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", + "components.ResetPassword.gobacklogin": "Volver a la Página de Login", + "components.ResetPassword.password": "Contraseña", + "components.ResetPassword.passwordreset": "Reinicio de Contraseña", + "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", + "components.ResetPassword.resetpassword": "Reiniciar contraseña", + "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", + "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", + "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", + "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", + "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", + "components.Search.search": "Buscar", + "components.Search.searchresults": "Resultado de la búsqueda", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", + "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", + "components.Settings.Notifications.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", + "components.Settings.Notifications.authPass": "Contraseña SMTP", + "components.Settings.Notifications.authUser": "Usuario SMTP", + "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", + "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", + "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", + "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", + "components.Settings.Notifications.chatId": "ID de chat", + "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", + "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", + "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", + "components.Settings.Notifications.emailsender": "Dirección del Remitente", + "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", + "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", + "components.Settings.Notifications.encryption": "Método de Encriptación", + "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", + "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", + "components.Settings.Notifications.encryptionNone": "Ninguna", + "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", + "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", + "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", + "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", + "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", + "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", + "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", + "components.Settings.Notifications.senderName": "Nombre del remitente", + "components.Settings.Notifications.smtpHost": "Host SMTP", + "components.Settings.Notifications.smtpPort": "Puerto SMTP", + "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", + "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", + "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", + "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", + "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", + "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", + "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", + "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", + "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", + "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", + "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", + "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", + "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", + "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", + "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", + "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", + "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", + "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", + "components.Settings.RadarrModal.add": "Agregar Servidor", + "components.Settings.RadarrModal.apiKey": "Clave API", + "components.Settings.RadarrModal.baseUrl": "URL Base", + "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", + "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", + "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", + "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", + "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.RadarrModal.externalUrl": "URL externa", + "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", + "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.RadarrModal.port": "Puerto", + "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", + "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.RadarrModal.server4k": "Servidor 4K", + "components.Settings.RadarrModal.servername": "Nombre del Servidor", + "components.Settings.RadarrModal.ssl": "Usar SSL", + "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.RadarrModal.tags": "Etiquetas", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", + "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", + "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", + "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", + "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", + "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.SettingsAbout.Releases.currentversion": "Actual", + "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", + "components.Settings.SettingsAbout.Releases.releases": "Versiones", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", + "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", + "components.Settings.SettingsAbout.about": "Acerca de", + "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", + "components.Settings.SettingsAbout.documentation": "Documentación", + "components.Settings.SettingsAbout.gettingsupport": "Soporte", + "components.Settings.SettingsAbout.githubdiscussions": "Discusiones en GitHub", + "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", + "components.Settings.SettingsAbout.outofdate": "Desactualizado", + "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Preferida", + "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", + "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zona horaria", + "components.Settings.SettingsAbout.totalmedia": "Contenido Total", + "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", + "components.Settings.SettingsAbout.uptodate": "Actualizado", + "components.Settings.SettingsAbout.version": "Versión", + "components.Settings.SettingsJobsCache.cache": "Caché", + "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", + "components.Settings.SettingsJobsCache.cachehits": "Consultas", + "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", + "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", + "components.Settings.SettingsJobsCache.cachemisses": "Fallos", + "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", + "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", + "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", + "components.Settings.SettingsJobsCache.command": "Comando", + "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", + "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", + "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", + "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", + "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", + "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", + "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", + "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", + "components.Settings.SettingsJobsCache.jobtype": "Tipo", + "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", + "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", + "components.Settings.SettingsJobsCache.process": "Procesamiento", + "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", + "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", + "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", + "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", + "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", + "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", + "components.Settings.SettingsLogs.extraData": "Datos Adicionales", + "components.Settings.SettingsLogs.filterDebug": "Depuración", + "components.Settings.SettingsLogs.filterError": "Error", + "components.Settings.SettingsLogs.filterInfo": "Info", + "components.Settings.SettingsLogs.filterWarn": "Advertencia", + "components.Settings.SettingsLogs.label": "Etiqueta", + "components.Settings.SettingsLogs.level": "Severidad", + "components.Settings.SettingsLogs.logDetails": "Detalles del Log", + "components.Settings.SettingsLogs.logs": "Logs", + "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.message": "Mensaje", + "components.Settings.SettingsLogs.pauseLogs": "Pausar", + "components.Settings.SettingsLogs.resumeLogs": "Reanudar", + "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", + "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", + "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", + "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", + "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", + "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", + "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", + "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", + "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", + "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", + "components.Settings.SettingsUsers.users": "Usuarios", + "components.Settings.SonarrModal.add": "Agregar Servidor", + "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", + "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", + "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", + "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", + "components.Settings.SonarrModal.apiKey": "Clave API", + "components.Settings.SonarrModal.baseUrl": "URL Base", + "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", + "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", + "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", + "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", + "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.SonarrModal.externalUrl": "URL Externa", + "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", + "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", + "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.SonarrModal.port": "Puerto", + "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", + "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", + "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.SonarrModal.server4k": "Servidor 4K", + "components.Settings.SonarrModal.servername": "Nombre del Servidor", + "components.Settings.SonarrModal.ssl": "Usar SSL", + "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.SonarrModal.tags": "Etiquetas", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", + "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", + "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", + "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", + "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", + "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", + "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.activeProfile": "Perfil activo", + "components.Settings.addradarr": "Agregar servidor Radarr", + "components.Settings.address": "Dirección", + "components.Settings.addsonarr": "Agregar servidor Sonarr", + "components.Settings.apikey": "Clave API", + "components.Settings.applicationTitle": "Título de la Aplicación", + "components.Settings.applicationurl": "URL de la aplicación", + "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", + "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", + "components.Settings.cancelscan": "Cancelar Escaneo", + "components.Settings.copied": "Clave API copiada en el portapapeles.", + "components.Settings.csrfProtection": "Habilitar Protección CSRF", + "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", + "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", + "components.Settings.currentlibrary": "Biblioteca actual: {name}", + "components.Settings.default": "Predeterminado", + "components.Settings.default4k": "4K predeterminado", + "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", + "components.Settings.email": "Email", + "components.Settings.enablessl": "Usar SSL", + "components.Settings.general": "General", + "components.Settings.generalsettings": "Configuración general", + "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", + "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", + "components.Settings.hostname": "Nombre de host o Dirección IP", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", + "components.Settings.locale": "Idioma en Pantalla", + "components.Settings.manualscan": "Escaneo Manual de Biblioteca", + "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", + "components.Settings.mediaTypeMovie": "película", + "components.Settings.mediaTypeSeries": "serie", + "components.Settings.menuAbout": "Acerca de", + "components.Settings.menuGeneralSettings": "General", + "components.Settings.menuJobs": "Tareas y Caché", + "components.Settings.menuLogs": "Registro", + "components.Settings.menuNotifications": "Notificaciones", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Servicios", + "components.Settings.menuUsers": "Usuarios", + "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", + "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", + "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", + "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", + "components.Settings.notifications": "Notificaciones", + "components.Settings.notificationsettings": "Configuración de notificaciones", + "components.Settings.notrunning": "Sin ejecutarse", + "components.Settings.originallanguage": "Idioma para la sección Descubrir", + "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", + "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Bibliotecas Plex", + "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", + "components.Settings.plexsettings": "Ajustes de Plex", + "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", + "components.Settings.port": "Puerto", + "components.Settings.radarrsettings": "Ajustes de Radarr", + "components.Settings.region": "Región para la sección \"Descubrir\"", + "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.Settings.scan": "Sincronizar Bibliotecas", + "components.Settings.scanning": "Sincronizando…", + "components.Settings.serverLocal": "local", + "components.Settings.serverRemote": "remoto", + "components.Settings.serverSecure": "seguro", + "components.Settings.serverpreset": "Servidor", + "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", + "components.Settings.serverpresetManualMessage": "Configuración manual", + "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", + "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", + "components.Settings.services": "Servicios", + "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", + "components.Settings.sonarrsettings": "Ajustes de Sonarr", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Iniciar Escaneo", + "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", + "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", + "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", + "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", + "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", + "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", + "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", + "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", + "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", + "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.Settings.trustProxy": "Habilitar soporte Proxy", + "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", + "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", + "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.webAppUrl": "Url de la Web App", + "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Configurar Plex", + "components.Setup.configureservices": "Configurar servicios", + "components.Setup.continue": "Continuar", + "components.Setup.finish": "Finalizar configuración", + "components.Setup.finishing": "Finalizando…", + "components.Setup.loginwithplex": "Iniciar sesión con Plex", + "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", + "components.Setup.setup": "Configuración", + "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", + "components.Setup.tip": "Consejo", + "components.Setup.welcome": "Bienvenido a Jellyseerr", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", + "components.StatusChacker.newversionavailable": "Actualización de Aplicación", + "components.StatusChacker.reloadOverseerr": "Recargar", + "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", + "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Reparto", + "components.TvDetails.episodeRuntime": "Duración del Episodio", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", + "components.TvDetails.firstAirDate": "Primera fecha de emisión", + "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", + "components.TvDetails.nextAirDate": "Próxima Emisión", + "components.TvDetails.originallanguage": "Idioma original", + "components.TvDetails.originaltitle": "Título Original", + "components.TvDetails.overview": "Resumen", + "components.TvDetails.overviewunavailable": "Resumen indisponible.", + "components.TvDetails.play4konplex": "Ver en Plex en 4K", + "components.TvDetails.playonplex": "Ver en Plex", + "components.TvDetails.recommendations": "Recomendaciones", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", + "components.TvDetails.showtype": "Tipos de Series", + "components.TvDetails.similar": "Series Similares", + "components.TvDetails.streamingproviders": "Emisión Actual en", + "components.TvDetails.viewfullcrew": "Ver Equipo Completo", + "components.TvDetails.watchtrailer": "Ver Trailer", + "components.UserList.accounttype": "Tipo", + "components.UserList.admin": "Administrador", + "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", + "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", + "components.UserList.bulkedit": "Edición Masiva", + "components.UserList.create": "Crear", + "components.UserList.created": "Unido", + "components.UserList.createlocaluser": "Crear usuario local", + "components.UserList.creating": "Creando…", + "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", + "components.UserList.deleteuser": "Eliminar usuario", + "components.UserList.displayName": "Nombre en Pantalla", + "components.UserList.edituser": "Editar Permisos de Usuario", + "components.UserList.email": "Dirección de correo electrónico", + "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", + "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", + "components.UserList.importfromplex": "Importar Usuarios de Plex", + "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", + "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", + "components.UserList.localuser": "Usuario local", + "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", + "components.UserList.owner": "Propietario", + "components.UserList.password": "Contraseña", + "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", + "components.UserList.plexuser": "Usuario de Plex", + "components.UserList.role": "Rol", + "components.UserList.sortCreated": "Fecha de Unión", + "components.UserList.sortDisplayName": "Nombre a mostrar", + "components.UserList.sortRequests": "Número de Solicitudes", + "components.UserList.totalrequests": "Solicitudes", + "components.UserList.user": "Usuario", + "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", + "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", + "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", + "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", + "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", + "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", + "components.UserList.userlist": "Lista de usuarios", + "components.UserList.users": "Usuarios", + "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", + "components.UserList.validationEmail": "Debes indicar un dirección de email válida", + "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", + "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", + "components.UserProfile.ProfileHeader.profile": "Ver Perfil", + "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", + "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", + "components.UserProfile.UserSettings.menuChangePass": "Contraseña", + "components.UserProfile.UserSettings.menuGeneralSettings": "General", + "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", + "components.UserProfile.UserSettings.menuPermissions": "Permisos", + "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", + "components.UserProfile.limit": "{remaining} de {limit}", + "components.UserProfile.movierequests": "Solicitudes de Películas", + "components.UserProfile.pastdays": "{type} (últimos {days} días)", + "components.UserProfile.recentrequests": "Solicitudes Recientes", + "components.UserProfile.requestsperdays": "{limit} restantes", + "components.UserProfile.seriesrequest": "Solicitudes de Series", + "components.UserProfile.totalrequests": "Solicitudes Totales", + "components.UserProfile.unlimited": "Ilimitadas", + "i18n.advanced": "Avanzado", + "i18n.all": "Todas", + "i18n.approve": "Aprobar", + "i18n.approved": "Aprobado", + "i18n.areyousure": "¿Estás Seguro?", + "i18n.available": "Disponible", + "i18n.back": "Atrás", + "i18n.cancel": "Cancelar", + "i18n.canceling": "Cancelando…", + "i18n.close": "Cerrar", + "i18n.decline": "Rechazar", + "i18n.declined": "Rechazado", + "i18n.delete": "Eliminar", + "i18n.deleting": "Eliminando…", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Editar", + "i18n.experimental": "Experimental", + "i18n.failed": "Fallido", + "i18n.loading": "Cargando…", + "i18n.movie": "Película", + "i18n.movies": "Películas", + "i18n.next": "Adelante", + "i18n.noresults": "Sin resultados.", + "i18n.notrequested": "No Solicitado", + "i18n.open": "Abrir", + "i18n.partiallyavailable": "Parcialmente Disponible", + "i18n.pending": "Pendiente", + "i18n.previous": "Anterior", + "i18n.processing": "Procesando", + "i18n.request": "Solicitar", + "i18n.request4k": "Pedir en 4K", + "i18n.requested": "Solicitado", + "i18n.requesting": "Pidiendo…", + "i18n.resolved": "Resuelta", + "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", + "i18n.retry": "Reintentar", + "i18n.retrying": "Reintentando…", + "i18n.save": "Guardar Cambios", + "i18n.saving": "Guardando…", + "i18n.settings": "Ajustes", + "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", + "i18n.status": "Estado", + "i18n.test": "Probar", + "i18n.testing": "Probando…", + "i18n.tvshow": "Series", + "i18n.tvshows": "Series", + "i18n.unavailable": "No Disponible", + "i18n.usersettings": "Ajustes de Usuario", + "i18n.view": "Ver", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Error Interno del Servidor", + "pages.oops": "Ups", + "pages.pagenotfound": "Página No Encontrada", + "pages.returnHome": "Volver al Inicio", + "pages.serviceunavailable": "Servicio No Disponible", + "pages.somethingwentwrong": "Algo fue mal" } From 0683f4f00025c6a7f11b7b11ee9d5c9fc42c11c7 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sun, 8 Jan 2023 00:12:31 +0900 Subject: [PATCH 33/65] refactor: redesign discover customization buttons (#3224) --- src/components/Discover/index.tsx | 134 +++++++++++++++++------------- 1 file changed, 75 insertions(+), 59 deletions(-) diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 31eaa9156..14927c7be 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -17,6 +17,7 @@ import MediaSlider from '@app/components/MediaSlider'; import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; +import { Transition } from '@headlessui/react'; import { ArrowDownOnSquareIcon, ArrowPathIcon, @@ -117,70 +118,85 @@ const Discover = () => { {hasPermission(Permission.ADMIN) && ( <> - {isEditing ? ( - <> -
- - - resetSliders()} - confirmText={intl.formatMessage(globalMessages.areyousure)} - > - - {intl.formatMessage(messages.resettodefault)} - - - + {isEditing && ( +
+
+ + + {intl.formatMessage(messages.createnewslider)} +
-
-
- - - {intl.formatMessage(messages.createnewslider)} - -
-
- { - const newSliders = await mutate(); +
+ { + const newSliders = await mutate(); - if (newSliders) { - setSliders(newSliders); - } - }} - /> -
+ if (newSliders) { + setSliders(newSliders); + } + }} + />
- - ) : ( -
- - -
)} + + + + + + + resetSliders()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full sm:w-auto" + > + + {intl.formatMessage(messages.resettodefault)} + + + + )} {(isEditing ? sliders : discoverData)?.map((slider, index) => { From 62e2de70bf37b72d5f63370b662d4103a642775b Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sun, 8 Jan 2023 00:35:08 +0900 Subject: [PATCH 34/65] fix: correct spacing between sliders (#3225) --- src/components/Discover/DiscoverSliderEdit/index.tsx | 2 +- src/components/Discover/index.tsx | 4 +--- src/styles/globals.css | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx index 2cd462e9a..0f97ac572 100644 --- a/src/components/Discover/DiscoverSliderEdit/index.tsx +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -290,7 +290,7 @@ const DiscoverSliderEdit = ({ />
) : ( -
+
{children}
)} diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 14927c7be..920acc1bf 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -404,9 +404,7 @@ const Discover = () => { } return ( -
- {sliderComponent} -
+
{sliderComponent}
); })} diff --git a/src/styles/globals.css b/src/styles/globals.css index 1757f65db..7e0900e0c 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -68,7 +68,7 @@ } .slider-header { - @apply relative mb-4 flex; + @apply relative mt-6 mb-4 flex; } .slider-title { From 50e85c975a6185e1380d39b2451e91aab1b48ef1 Mon Sep 17 00:00:00 2001 From: Chechu Date: Sat, 7 Jan 2023 19:31:50 +0100 Subject: [PATCH 35/65] Prettier fixed --- src/i18n/locale/es.json | 1972 +++++++++++++++++++-------------------- 1 file changed, 986 insertions(+), 986 deletions(-) diff --git a/src/i18n/locale/es.json b/src/i18n/locale/es.json index 74eeb0d4b..50ba6a770 100644 --- a/src/i18n/locale/es.json +++ b/src/i18n/locale/es.json @@ -1,988 +1,988 @@ { - "components.AppDataWarning.dockerVolumeMissingDescription": "El montaje del volumen {appDataPath} no se ha configurado correctamente. Todos los datos se eliminarán cuando el contenedor se pare o reinicie.", - "components.CollectionDetails.numberofmovies": "{count} Películas", - "components.CollectionDetails.overview": "Resumen", - "components.CollectionDetails.requestcollection": "Solicitar Colección", - "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", - "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", - "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", - "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", - "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", - "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", - "components.Discover.MovieGenreList.moviegenres": "Géneros de Películas", - "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", - "components.Discover.NetworkSlider.networks": "Cadenas de TV", - "components.Discover.StudioSlider.studios": "Estudios", - "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", - "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", - "components.Discover.discover": "Descubrir", - "components.Discover.discovermovies": "Películas Populares", - "components.Discover.discovertv": "Series Populares", - "components.Discover.emptywatchlist": "Los medios añadidos a tu Lista de seguimiento de Plex aparecerán aquí.", - "components.Discover.noRequests": "No hay peticiones.", - "components.Discover.plexwatchlist": "Tu lista de seguimiento de Plex", - "components.Discover.popularmovies": "Películas Populares", - "components.Discover.populartv": "Series Populares", - "components.Discover.recentlyAdded": "Agregado Recientemente", - "components.Discover.recentrequests": "Peticiones Recientes", - "components.Discover.trending": "Tendencias", - "components.Discover.upcoming": "Próximas Películas", - "components.Discover.upcomingmovies": "Próximas Películas", - "components.Discover.upcomingtv": "Próximas Series", - "components.DownloadBlock.estimatedtime": "Estimación de {time}", - "components.IssueDetails.IssueComment.areyousuredelete": "¿Estás seguro de querer borrar este comentario?", - "components.IssueDetails.IssueComment.delete": "Borrar Comentario", - "components.IssueDetails.IssueComment.edit": "Modificar Comentario", - "components.IssueDetails.IssueComment.postedby": "Escrito por {username} el {relativeTime}", - "components.IssueDetails.IssueComment.postedbyedited": "Escrito por {username} el {relativeTime} (Modificado)", - "components.IssueDetails.IssueComment.validationComment": "Debes introducir un mensaje", - "components.IssueDetails.IssueDescription.deleteissue": "Borrar Incidencia", - "components.IssueDetails.IssueDescription.description": "Descripción", - "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", - "components.IssueDetails.allepisodes": "Todos los Episodios", - "components.IssueDetails.allseasons": "Todas las Temporadas", - "components.IssueDetails.closeissue": "Cerrar Incidencia", - "components.IssueDetails.closeissueandcomment": "Cerrar con Comentarios", - "components.IssueDetails.comments": "Comentarios", - "components.IssueDetails.deleteissue": "Borrar Incidencia", - "components.IssueDetails.deleteissueconfirm": "¿Estás seguro de querer borrar esta incidencia?", - "components.IssueDetails.episode": "Episodio {episodeNumber}", - "components.IssueDetails.issuepagetitle": "Incidencia", - "components.IssueDetails.issuetype": "Tipo", - "components.IssueDetails.lastupdated": "Última Actualización", - "components.IssueDetails.leavecomment": "Commentario", - "components.IssueDetails.nocomments": "Sin comentarios.", - "components.IssueDetails.openedby": "#{issueId} abierta {relativeTime} por {username}", - "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", - "components.IssueDetails.openinarr": "Abierta en {arr}", - "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", - "components.IssueDetails.playonplex": "Ver en {mediaServerName}", - "components.IssueDetails.problemepisode": "Episodio Afectado", - "components.IssueDetails.problemseason": "Temporada Afectada", - "components.IssueDetails.reopenissue": "Reabrir Incidencia", - "components.IssueDetails.reopenissueandcomment": "Reabrir con Comentarios", - "components.IssueDetails.season": "Temporada {seasonNumber}", - "components.IssueDetails.toasteditdescriptionfailed": "Algo fue mal mientras se modificaba la descripción de la incidencia.", - "components.IssueDetails.toasteditdescriptionsuccess": "¡La descripción de la incidencia se ha modificado correctamente!", - "components.IssueDetails.toastissuedeleted": "¡Incidencia eliminada correctamente!", - "components.IssueDetails.toastissuedeletefailed": "Algo fue mal mientras se eliminaba la incidencia.", - "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", - "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", - "components.IssueDetails.unknownissuetype": "Desconocido", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", - "components.IssueList.IssueItem.issuestatus": "Estado", - "components.IssueList.IssueItem.issuetype": "Tipo", - "components.IssueList.IssueItem.opened": "Abierta", - "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", - "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.IssueList.IssueItem.unknownissuetype": "Desconocida", - "components.IssueList.IssueItem.viewissue": "Ver Incidencia", - "components.IssueList.issues": "Incidencias", - "components.IssueList.showallissues": "Mostrar Todas las Incidencias", - "components.IssueList.sortAdded": "Más Reciente", - "components.IssueList.sortModified": "Última Modificación", - "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", - "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", - "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", - "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.IssueModal.CreateIssueModal.problemepisode": "Episodio Afectado", - "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", - "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", - "components.IssueModal.CreateIssueModal.reportissue": "Reportar Incidencia", - "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", - "components.IssueModal.CreateIssueModal.submitissue": "Enviar Incidencia", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo fue mal mientras se enviaba la incidencia.", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", - "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", - "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", - "components.IssueModal.issueAudio": "Audio", - "components.IssueModal.issueOther": "Otro", - "components.IssueModal.issueSubtitles": "Subtítulo", - "components.IssueModal.issueVideo": "Vídeo", - "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", - "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", - "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", - "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", - "components.Layout.Sidebar.dashboard": "Descubrir", - "components.Layout.Sidebar.issues": "Incidencias", - "components.Layout.Sidebar.requests": "Solicitudes", - "components.Layout.Sidebar.settings": "Ajustes", - "components.Layout.Sidebar.users": "Usuarios", - "components.Layout.UserDropdown.myprofile": "Perfil", - "components.Layout.UserDropdown.settings": "Ajustes", - "components.Layout.UserDropdown.signout": "Cerrar Sesión", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", - "components.Layout.VersionStatus.outofdate": "Desactualizado", - "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", - "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", - "components.Login.email": "Dirección de correo electrónico", - "components.Login.forgotpassword": "¿Contraseña olvidada?", - "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", - "components.Login.password": "Contraseña", - "components.Login.signin": "Iniciar Sesión", - "components.Login.signingin": "Iniciando sesión…", - "components.Login.signinheader": "Inicia sesión para continuar", - "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", - "components.Login.signinwithplex": "Usa tu cuenta de Plex", - "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", - "components.Login.validationpasswordrequired": "Se requiere contraseña", - "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", - "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de {mediaServerName}, la información de los contenidos se recreará en el siguiente escaneado.", - "components.ManageSlideOver.manageModalIssues": "Incidencias Abiertas", - "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", - "components.ManageSlideOver.manageModalRequests": "Solicitudes", - "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", - "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", - "components.ManageSlideOver.markavailable": "Marcar como Disponible", - "components.ManageSlideOver.movie": "película", - "components.ManageSlideOver.openarr": "Abrir en {arr}", - "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", - "components.ManageSlideOver.tvshow": "series", - "components.MediaSlider.ShowMoreCard.seemore": "Ver más", - "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", - "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", - "components.MovieDetails.budget": "Presupuesto", - "components.MovieDetails.cast": "Reparto", - "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", - "components.MovieDetails.markavailable": "Marcar como Disponible", - "components.MovieDetails.originallanguage": "Idioma Original", - "components.MovieDetails.originaltitle": "Título Original", - "components.MovieDetails.overview": "Resumen", - "components.MovieDetails.overviewunavailable": "Resumen indisponible.", - "components.MovieDetails.play4konplex": "Ver en Plex en 4K", - "components.MovieDetails.playonplex": "Ver en Plex", - "components.MovieDetails.recommendations": "Recomendaciones", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", - "components.MovieDetails.revenue": "Recaudado", - "components.MovieDetails.runtime": "{minutes} minutos", - "components.MovieDetails.showless": "Mostrar menos", - "components.MovieDetails.showmore": "Mostrar más", - "components.MovieDetails.similar": "Títulos Similares", - "components.MovieDetails.streamingproviders": "Emisión Actual en", - "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", - "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", - "components.MovieDetails.watchtrailer": "Ver Trailer", - "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Notificar cuando se reabran incidencias por otros usuarios.", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", - "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", - "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", - "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", - "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", - "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta", - "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", - "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", - "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", - "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", - "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", - "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", - "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", - "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", - "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", - "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", - "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", - "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", - "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", - "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", - "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", - "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", - "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", - "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", - "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", - "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", - "components.PermissionEdit.admin": "Administrador", - "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", - "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", - "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", - "components.PermissionEdit.autoapprove": "Auto-Aprobación", - "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", - "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", - "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", - "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", - "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", - "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", - "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", - "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", - "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", - "components.PermissionEdit.createissues": "Incidencias Reportadas", - "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", - "components.PermissionEdit.manageissues": "Gestionar Incidencias", - "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", - "components.PermissionEdit.managerequests": "Gestionar Solicitudes", - "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", - "components.PermissionEdit.request": "Solicitar", - "components.PermissionEdit.request4k": "Solicitar 4K", - "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", - "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", - "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", - "components.PermissionEdit.request4kTv": "Pedir Series 4K", - "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", - "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", - "components.PermissionEdit.requestMovies": "Solicitar películas", - "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", - "components.PermissionEdit.requestTv": "Solicitar Series", - "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", - "components.PermissionEdit.settings": "Gestionar Ajustes", - "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", - "components.PermissionEdit.users": "Gestión de Usuarios", - "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", - "components.PermissionEdit.viewissues": "Ver Incidencias", - "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", - "components.PermissionEdit.viewrequests": "Ver Solicitudes", - "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", - "components.PersonDetails.alsoknownas": "También Conocido como: {names}", - "components.PersonDetails.appearsin": "Apariciones", - "components.PersonDetails.ascharacter": "como {character}", - "components.PersonDetails.birthdate": "Nacido el {birthdate}", - "components.PersonDetails.crewmember": "Equipo", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PlexLoginButton.signingin": "Iniciando sesión…", - "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", - "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", - "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", - "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", - "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", - "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", - "components.QuotaSelector.unlimited": "Ilimitadas", - "components.RegionSelector.regionDefault": "Todas las Regiones", - "components.RegionSelector.regionServerDefault": "({Region}) por defecto", - "components.RequestBlock.profilechanged": "Perfil de Calidad", - "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", - "components.RequestBlock.rootfolder": "Carpeta Raíz", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestBlock.server": "Servidor de Destino", - "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", - "components.RequestButton.approverequest": "Aprobar Solicitud", - "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", - "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", - "components.RequestButton.declinerequest": "Rechazar Solicitud", - "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", - "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.requestmore": "Solicitar más", - "components.RequestButton.requestmore4k": "Solicitar más en 4K", - "components.RequestButton.viewrequest": "Ver Solicitud", - "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", - "components.RequestCard.deleterequest": "Borrar Solicitud", - "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", - "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", - "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", - "components.RequestList.RequestItem.editrequest": "Editar Solicitud", - "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", - "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestList.RequestItem.modified": "Modificado", - "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", - "components.RequestList.RequestItem.requested": "Pedida", - "components.RequestList.RequestItem.requesteddate": "Solicitado", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestList.requests": "Solicitudes", - "components.RequestList.showallrequests": "Mostrar todas las solicitudes", - "components.RequestList.sortAdded": "Más Reciente", - "components.RequestList.sortModified": "Última modificación", - "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", - "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", - "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", - "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", - "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", - "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", - "components.RequestModal.AdvancedRequester.requestas": "Pedir como", - "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", - "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", - "components.RequestModal.AdvancedRequester.tags": "Etiquetas", - "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", - "components.RequestModal.QuotaDisplay.movie": "película", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", - "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", - "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.season": "temporada", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", - "components.RequestModal.alreadyrequested": "Ya Pedida", - "components.RequestModal.autoapproval": "Aprobación Automática", - "components.RequestModal.cancel": "Cancelar Petición", - "components.RequestModal.edit": "Editar Solicitud", - "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", - "components.RequestModal.extras": "Extras", - "components.RequestModal.numberofepisodes": "# de Episodios", - "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", - "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", - "components.RequestModal.pendingrequest": "Solicitud pendiente", - "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", - "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", - "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", - "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", - "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", - "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", - "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", - "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestModal.season": "Temporada", - "components.RequestModal.seasonnumber": "Temporada {number}", - "components.RequestModal.selectseason": "Seleccionar Temporada(s)", - "components.ResetPassword.confirmpassword": "Confirmar Contraseña", - "components.ResetPassword.email": "Dirección de Email", - "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", - "components.ResetPassword.gobacklogin": "Volver a la Página de Login", - "components.ResetPassword.password": "Contraseña", - "components.ResetPassword.passwordreset": "Reinicio de Contraseña", - "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", - "components.ResetPassword.resetpassword": "Reiniciar contraseña", - "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", - "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", - "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", - "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", - "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", - "components.Search.search": "Buscar", - "components.Search.searchresults": "Resultado de la búsqueda", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", - "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", - "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", - "components.Settings.Notifications.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", - "components.Settings.Notifications.authPass": "Contraseña SMTP", - "components.Settings.Notifications.authUser": "Usuario SMTP", - "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", - "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", - "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", - "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", - "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", - "components.Settings.Notifications.chatId": "ID de chat", - "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", - "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", - "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", - "components.Settings.Notifications.emailsender": "Dirección del Remitente", - "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", - "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", - "components.Settings.Notifications.encryption": "Método de Encriptación", - "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", - "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", - "components.Settings.Notifications.encryptionNone": "Ninguna", - "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", - "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", - "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", - "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", - "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", - "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", - "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", - "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", - "components.Settings.Notifications.senderName": "Nombre del remitente", - "components.Settings.Notifications.smtpHost": "Host SMTP", - "components.Settings.Notifications.smtpPort": "Puerto SMTP", - "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", - "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", - "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", - "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", - "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", - "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", - "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", - "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", - "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", - "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", - "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", - "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", - "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", - "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", - "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", - "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", - "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", - "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", - "components.Settings.RadarrModal.add": "Agregar Servidor", - "components.Settings.RadarrModal.apiKey": "Clave API", - "components.Settings.RadarrModal.baseUrl": "URL Base", - "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", - "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", - "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", - "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", - "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.Settings.RadarrModal.externalUrl": "URL externa", - "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", - "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.RadarrModal.port": "Puerto", - "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", - "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.RadarrModal.server4k": "Servidor 4K", - "components.Settings.RadarrModal.servername": "Nombre del Servidor", - "components.Settings.RadarrModal.ssl": "Usar SSL", - "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.RadarrModal.tags": "Etiquetas", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", - "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", - "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", - "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", - "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", - "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", - "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.SettingsAbout.Releases.currentversion": "Actual", - "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", - "components.Settings.SettingsAbout.Releases.releases": "Versiones", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", - "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", - "components.Settings.SettingsAbout.about": "Acerca de", - "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", - "components.Settings.SettingsAbout.documentation": "Documentación", - "components.Settings.SettingsAbout.gettingsupport": "Soporte", - "components.Settings.SettingsAbout.githubdiscussions": "Discusiones en GitHub", - "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", - "components.Settings.SettingsAbout.outofdate": "Desactualizado", - "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", - "components.Settings.SettingsAbout.preferredmethod": "Preferida", - "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", - "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", - "components.Settings.SettingsAbout.timezone": "Zona horaria", - "components.Settings.SettingsAbout.totalmedia": "Contenido Total", - "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", - "components.Settings.SettingsAbout.uptodate": "Actualizado", - "components.Settings.SettingsAbout.version": "Versión", - "components.Settings.SettingsJobsCache.cache": "Caché", - "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", - "components.Settings.SettingsJobsCache.cachehits": "Consultas", - "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", - "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", - "components.Settings.SettingsJobsCache.cachemisses": "Fallos", - "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", - "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", - "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", - "components.Settings.SettingsJobsCache.command": "Comando", - "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", - "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", - "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", - "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", - "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", - "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", - "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", - "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", - "components.Settings.SettingsJobsCache.jobtype": "Tipo", - "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", - "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", - "components.Settings.SettingsJobsCache.process": "Procesamiento", - "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", - "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", - "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", - "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", - "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", - "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", - "components.Settings.SettingsLogs.extraData": "Datos Adicionales", - "components.Settings.SettingsLogs.filterDebug": "Depuración", - "components.Settings.SettingsLogs.filterError": "Error", - "components.Settings.SettingsLogs.filterInfo": "Info", - "components.Settings.SettingsLogs.filterWarn": "Advertencia", - "components.Settings.SettingsLogs.label": "Etiqueta", - "components.Settings.SettingsLogs.level": "Severidad", - "components.Settings.SettingsLogs.logDetails": "Detalles del Log", - "components.Settings.SettingsLogs.logs": "Logs", - "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", - "components.Settings.SettingsLogs.message": "Mensaje", - "components.Settings.SettingsLogs.pauseLogs": "Pausar", - "components.Settings.SettingsLogs.resumeLogs": "Reanudar", - "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", - "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", - "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", - "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", - "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", - "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", - "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", - "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", - "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", - "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", - "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", - "components.Settings.SettingsUsers.users": "Usuarios", - "components.Settings.SonarrModal.add": "Agregar Servidor", - "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", - "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", - "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", - "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", - "components.Settings.SonarrModal.apiKey": "Clave API", - "components.Settings.SonarrModal.baseUrl": "URL Base", - "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", - "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", - "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", - "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", - "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.Settings.SonarrModal.externalUrl": "URL Externa", - "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", - "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", - "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.SonarrModal.port": "Puerto", - "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", - "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", - "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.SonarrModal.server4k": "Servidor 4K", - "components.Settings.SonarrModal.servername": "Nombre del Servidor", - "components.Settings.SonarrModal.ssl": "Usar SSL", - "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.SonarrModal.tags": "Etiquetas", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", - "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", - "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", - "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", - "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", - "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", - "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", - "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.activeProfile": "Perfil activo", - "components.Settings.addradarr": "Agregar servidor Radarr", - "components.Settings.address": "Dirección", - "components.Settings.addsonarr": "Agregar servidor Sonarr", - "components.Settings.apikey": "Clave API", - "components.Settings.applicationTitle": "Título de la Aplicación", - "components.Settings.applicationurl": "URL de la aplicación", - "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", - "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", - "components.Settings.cancelscan": "Cancelar Escaneo", - "components.Settings.copied": "Clave API copiada en el portapapeles.", - "components.Settings.csrfProtection": "Habilitar Protección CSRF", - "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", - "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", - "components.Settings.currentlibrary": "Biblioteca actual: {name}", - "components.Settings.default": "Predeterminado", - "components.Settings.default4k": "4K predeterminado", - "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", - "components.Settings.email": "Email", - "components.Settings.enablessl": "Usar SSL", - "components.Settings.general": "General", - "components.Settings.generalsettings": "Configuración general", - "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", - "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", - "components.Settings.hostname": "Nombre de host o Dirección IP", - "components.Settings.is4k": "4K", - "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", - "components.Settings.locale": "Idioma en Pantalla", - "components.Settings.manualscan": "Escaneo Manual de Biblioteca", - "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", - "components.Settings.mediaTypeMovie": "película", - "components.Settings.mediaTypeSeries": "serie", - "components.Settings.menuAbout": "Acerca de", - "components.Settings.menuGeneralSettings": "General", - "components.Settings.menuJobs": "Tareas y Caché", - "components.Settings.menuLogs": "Registro", - "components.Settings.menuNotifications": "Notificaciones", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuServices": "Servicios", - "components.Settings.menuUsers": "Usuarios", - "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", - "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", - "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", - "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", - "components.Settings.notifications": "Notificaciones", - "components.Settings.notificationsettings": "Configuración de notificaciones", - "components.Settings.notrunning": "Sin ejecutarse", - "components.Settings.originallanguage": "Idioma para la sección Descubrir", - "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", - "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", - "components.Settings.plex": "Plex", - "components.Settings.plexlibraries": "Bibliotecas Plex", - "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", - "components.Settings.plexsettings": "Ajustes de Plex", - "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", - "components.Settings.port": "Puerto", - "components.Settings.radarrsettings": "Ajustes de Radarr", - "components.Settings.region": "Región para la sección \"Descubrir\"", - "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.Settings.scan": "Sincronizar Bibliotecas", - "components.Settings.scanning": "Sincronizando…", - "components.Settings.serverLocal": "local", - "components.Settings.serverRemote": "remoto", - "components.Settings.serverSecure": "seguro", - "components.Settings.serverpreset": "Servidor", - "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", - "components.Settings.serverpresetManualMessage": "Configuración manual", - "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", - "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", - "components.Settings.services": "Servicios", - "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", - "components.Settings.sonarrsettings": "Ajustes de Sonarr", - "components.Settings.ssl": "SSL", - "components.Settings.startscan": "Iniciar Escaneo", - "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", - "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", - "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", - "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", - "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", - "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", - "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", - "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", - "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", - "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.Settings.trustProxy": "Habilitar soporte Proxy", - "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", - "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", - "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.webAppUrl": "Url de la Web App", - "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", - "components.Settings.webhook": "Webhook", - "components.Settings.webpush": "Web Push", - "components.Setup.configureplex": "Configurar Plex", - "components.Setup.configureservices": "Configurar servicios", - "components.Setup.continue": "Continuar", - "components.Setup.finish": "Finalizar configuración", - "components.Setup.finishing": "Finalizando…", - "components.Setup.loginwithplex": "Iniciar sesión con Plex", - "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", - "components.Setup.setup": "Configuración", - "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", - "components.Setup.tip": "Consejo", - "components.Setup.welcome": "Bienvenido a Jellyseerr", - "components.StatusBadge.status": "{status}", - "components.StatusBadge.status4k": "4K {status}", - "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", - "components.StatusChacker.newversionavailable": "Actualización de Aplicación", - "components.StatusChacker.reloadOverseerr": "Recargar", - "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", - "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", - "components.TvDetails.anime": "Anime", - "components.TvDetails.cast": "Reparto", - "components.TvDetails.episodeRuntime": "Duración del Episodio", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", - "components.TvDetails.firstAirDate": "Primera fecha de emisión", - "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", - "components.TvDetails.nextAirDate": "Próxima Emisión", - "components.TvDetails.originallanguage": "Idioma original", - "components.TvDetails.originaltitle": "Título Original", - "components.TvDetails.overview": "Resumen", - "components.TvDetails.overviewunavailable": "Resumen indisponible.", - "components.TvDetails.play4konplex": "Ver en Plex en 4K", - "components.TvDetails.playonplex": "Ver en Plex", - "components.TvDetails.recommendations": "Recomendaciones", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", - "components.TvDetails.showtype": "Tipos de Series", - "components.TvDetails.similar": "Series Similares", - "components.TvDetails.streamingproviders": "Emisión Actual en", - "components.TvDetails.viewfullcrew": "Ver Equipo Completo", - "components.TvDetails.watchtrailer": "Ver Trailer", - "components.UserList.accounttype": "Tipo", - "components.UserList.admin": "Administrador", - "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", - "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", - "components.UserList.bulkedit": "Edición Masiva", - "components.UserList.create": "Crear", - "components.UserList.created": "Unido", - "components.UserList.createlocaluser": "Crear usuario local", - "components.UserList.creating": "Creando…", - "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", - "components.UserList.deleteuser": "Eliminar usuario", - "components.UserList.displayName": "Nombre en Pantalla", - "components.UserList.edituser": "Editar Permisos de Usuario", - "components.UserList.email": "Dirección de correo electrónico", - "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", - "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", - "components.UserList.importfromplex": "Importar Usuarios de Plex", - "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", - "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", - "components.UserList.localuser": "Usuario local", - "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", - "components.UserList.owner": "Propietario", - "components.UserList.password": "Contraseña", - "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", - "components.UserList.plexuser": "Usuario de Plex", - "components.UserList.role": "Rol", - "components.UserList.sortCreated": "Fecha de Unión", - "components.UserList.sortDisplayName": "Nombre a mostrar", - "components.UserList.sortRequests": "Número de Solicitudes", - "components.UserList.totalrequests": "Solicitudes", - "components.UserList.user": "Usuario", - "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", - "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", - "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", - "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", - "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", - "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", - "components.UserList.userlist": "Lista de usuarios", - "components.UserList.users": "Usuarios", - "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", - "components.UserList.validationEmail": "Debes indicar un dirección de email válida", - "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", - "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", - "components.UserProfile.ProfileHeader.profile": "Ver Perfil", - "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", - "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", - "components.UserProfile.UserSettings.menuChangePass": "Contraseña", - "components.UserProfile.UserSettings.menuGeneralSettings": "General", - "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", - "components.UserProfile.UserSettings.menuPermissions": "Permisos", - "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", - "components.UserProfile.limit": "{remaining} de {limit}", - "components.UserProfile.movierequests": "Solicitudes de Películas", - "components.UserProfile.pastdays": "{type} (últimos {days} días)", - "components.UserProfile.recentrequests": "Solicitudes Recientes", - "components.UserProfile.requestsperdays": "{limit} restantes", - "components.UserProfile.seriesrequest": "Solicitudes de Series", - "components.UserProfile.totalrequests": "Solicitudes Totales", - "components.UserProfile.unlimited": "Ilimitadas", - "i18n.advanced": "Avanzado", - "i18n.all": "Todas", - "i18n.approve": "Aprobar", - "i18n.approved": "Aprobado", - "i18n.areyousure": "¿Estás Seguro?", - "i18n.available": "Disponible", - "i18n.back": "Atrás", - "i18n.cancel": "Cancelar", - "i18n.canceling": "Cancelando…", - "i18n.close": "Cerrar", - "i18n.decline": "Rechazar", - "i18n.declined": "Rechazado", - "i18n.delete": "Eliminar", - "i18n.deleting": "Eliminando…", - "i18n.delimitedlist": "{a}, {b}", - "i18n.edit": "Editar", - "i18n.experimental": "Experimental", - "i18n.failed": "Fallido", - "i18n.loading": "Cargando…", - "i18n.movie": "Película", - "i18n.movies": "Películas", - "i18n.next": "Adelante", - "i18n.noresults": "Sin resultados.", - "i18n.notrequested": "No Solicitado", - "i18n.open": "Abrir", - "i18n.partiallyavailable": "Parcialmente Disponible", - "i18n.pending": "Pendiente", - "i18n.previous": "Anterior", - "i18n.processing": "Procesando", - "i18n.request": "Solicitar", - "i18n.request4k": "Pedir en 4K", - "i18n.requested": "Solicitado", - "i18n.requesting": "Pidiendo…", - "i18n.resolved": "Resuelta", - "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", - "i18n.retry": "Reintentar", - "i18n.retrying": "Reintentando…", - "i18n.save": "Guardar Cambios", - "i18n.saving": "Guardando…", - "i18n.settings": "Ajustes", - "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", - "i18n.status": "Estado", - "i18n.test": "Probar", - "i18n.testing": "Probando…", - "i18n.tvshow": "Series", - "i18n.tvshows": "Series", - "i18n.unavailable": "No Disponible", - "i18n.usersettings": "Ajustes de Usuario", - "i18n.view": "Ver", - "pages.errormessagewithcode": "{statusCode} - {error}", - "pages.internalservererror": "Error Interno del Servidor", - "pages.oops": "Ups", - "pages.pagenotfound": "Página No Encontrada", - "pages.returnHome": "Volver al Inicio", - "pages.serviceunavailable": "Servicio No Disponible", - "pages.somethingwentwrong": "Algo fue mal" + "components.AppDataWarning.dockerVolumeMissingDescription": "El montaje del volumen {appDataPath} no se ha configurado correctamente. Todos los datos se eliminarán cuando el contenedor se pare o reinicie.", + "components.CollectionDetails.numberofmovies": "{count} Películas", + "components.CollectionDetails.overview": "Resumen", + "components.CollectionDetails.requestcollection": "Solicitar Colección", + "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", + "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", + "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", + "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", + "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", + "components.Discover.MovieGenreList.moviegenres": "Géneros de Películas", + "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", + "components.Discover.NetworkSlider.networks": "Cadenas de TV", + "components.Discover.StudioSlider.studios": "Estudios", + "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", + "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", + "components.Discover.discover": "Descubrir", + "components.Discover.discovermovies": "Películas Populares", + "components.Discover.discovertv": "Series Populares", + "components.Discover.emptywatchlist": "Los medios añadidos a tu Lista de seguimiento de Plex aparecerán aquí.", + "components.Discover.noRequests": "No hay peticiones.", + "components.Discover.plexwatchlist": "Tu lista de seguimiento de Plex", + "components.Discover.popularmovies": "Películas Populares", + "components.Discover.populartv": "Series Populares", + "components.Discover.recentlyAdded": "Agregado Recientemente", + "components.Discover.recentrequests": "Peticiones Recientes", + "components.Discover.trending": "Tendencias", + "components.Discover.upcoming": "Próximas Películas", + "components.Discover.upcomingmovies": "Próximas Películas", + "components.Discover.upcomingtv": "Próximas Series", + "components.DownloadBlock.estimatedtime": "Estimación de {time}", + "components.IssueDetails.IssueComment.areyousuredelete": "¿Estás seguro de querer borrar este comentario?", + "components.IssueDetails.IssueComment.delete": "Borrar Comentario", + "components.IssueDetails.IssueComment.edit": "Modificar Comentario", + "components.IssueDetails.IssueComment.postedby": "Escrito por {username} el {relativeTime}", + "components.IssueDetails.IssueComment.postedbyedited": "Escrito por {username} el {relativeTime} (Modificado)", + "components.IssueDetails.IssueComment.validationComment": "Debes introducir un mensaje", + "components.IssueDetails.IssueDescription.deleteissue": "Borrar Incidencia", + "components.IssueDetails.IssueDescription.description": "Descripción", + "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", + "components.IssueDetails.allepisodes": "Todos los Episodios", + "components.IssueDetails.allseasons": "Todas las Temporadas", + "components.IssueDetails.closeissue": "Cerrar Incidencia", + "components.IssueDetails.closeissueandcomment": "Cerrar con Comentarios", + "components.IssueDetails.comments": "Comentarios", + "components.IssueDetails.deleteissue": "Borrar Incidencia", + "components.IssueDetails.deleteissueconfirm": "¿Estás seguro de querer borrar esta incidencia?", + "components.IssueDetails.episode": "Episodio {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Incidencia", + "components.IssueDetails.issuetype": "Tipo", + "components.IssueDetails.lastupdated": "Última Actualización", + "components.IssueDetails.leavecomment": "Commentario", + "components.IssueDetails.nocomments": "Sin comentarios.", + "components.IssueDetails.openedby": "#{issueId} abierta {relativeTime} por {username}", + "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", + "components.IssueDetails.openinarr": "Abierta en {arr}", + "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", + "components.IssueDetails.playonplex": "Ver en {mediaServerName}", + "components.IssueDetails.problemepisode": "Episodio Afectado", + "components.IssueDetails.problemseason": "Temporada Afectada", + "components.IssueDetails.reopenissue": "Reabrir Incidencia", + "components.IssueDetails.reopenissueandcomment": "Reabrir con Comentarios", + "components.IssueDetails.season": "Temporada {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Algo fue mal mientras se modificaba la descripción de la incidencia.", + "components.IssueDetails.toasteditdescriptionsuccess": "¡La descripción de la incidencia se ha modificado correctamente!", + "components.IssueDetails.toastissuedeleted": "¡Incidencia eliminada correctamente!", + "components.IssueDetails.toastissuedeletefailed": "Algo fue mal mientras se eliminaba la incidencia.", + "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", + "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", + "components.IssueDetails.unknownissuetype": "Desconocido", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", + "components.IssueList.IssueItem.issuestatus": "Estado", + "components.IssueList.IssueItem.issuetype": "Tipo", + "components.IssueList.IssueItem.opened": "Abierta", + "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", + "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.IssueList.IssueItem.unknownissuetype": "Desconocida", + "components.IssueList.IssueItem.viewissue": "Ver Incidencia", + "components.IssueList.issues": "Incidencias", + "components.IssueList.showallissues": "Mostrar Todas las Incidencias", + "components.IssueList.sortAdded": "Más Reciente", + "components.IssueList.sortModified": "Última Modificación", + "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", + "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", + "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.problemepisode": "Episodio Afectado", + "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", + "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", + "components.IssueModal.CreateIssueModal.reportissue": "Reportar Incidencia", + "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Enviar Incidencia", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo fue mal mientras se enviaba la incidencia.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", + "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", + "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Otro", + "components.IssueModal.issueSubtitles": "Subtítulo", + "components.IssueModal.issueVideo": "Vídeo", + "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", + "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", + "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", + "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", + "components.Layout.Sidebar.dashboard": "Descubrir", + "components.Layout.Sidebar.issues": "Incidencias", + "components.Layout.Sidebar.requests": "Solicitudes", + "components.Layout.Sidebar.settings": "Ajustes", + "components.Layout.Sidebar.users": "Usuarios", + "components.Layout.UserDropdown.myprofile": "Perfil", + "components.Layout.UserDropdown.settings": "Ajustes", + "components.Layout.UserDropdown.signout": "Cerrar Sesión", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", + "components.Layout.VersionStatus.outofdate": "Desactualizado", + "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", + "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", + "components.Login.email": "Dirección de correo electrónico", + "components.Login.forgotpassword": "¿Contraseña olvidada?", + "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", + "components.Login.password": "Contraseña", + "components.Login.signin": "Iniciar Sesión", + "components.Login.signingin": "Iniciando sesión…", + "components.Login.signinheader": "Inicia sesión para continuar", + "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", + "components.Login.signinwithplex": "Usa tu cuenta de Plex", + "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", + "components.Login.validationpasswordrequired": "Se requiere contraseña", + "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", + "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de {mediaServerName}, la información de los contenidos se recreará en el siguiente escaneado.", + "components.ManageSlideOver.manageModalIssues": "Incidencias Abiertas", + "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", + "components.ManageSlideOver.manageModalRequests": "Solicitudes", + "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", + "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", + "components.ManageSlideOver.markavailable": "Marcar como Disponible", + "components.ManageSlideOver.movie": "película", + "components.ManageSlideOver.openarr": "Abrir en {arr}", + "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", + "components.ManageSlideOver.tvshow": "series", + "components.MediaSlider.ShowMoreCard.seemore": "Ver más", + "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", + "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", + "components.MovieDetails.budget": "Presupuesto", + "components.MovieDetails.cast": "Reparto", + "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", + "components.MovieDetails.markavailable": "Marcar como Disponible", + "components.MovieDetails.originallanguage": "Idioma Original", + "components.MovieDetails.originaltitle": "Título Original", + "components.MovieDetails.overview": "Resumen", + "components.MovieDetails.overviewunavailable": "Resumen indisponible.", + "components.MovieDetails.play4konplex": "Ver en Plex en 4K", + "components.MovieDetails.playonplex": "Ver en Plex", + "components.MovieDetails.recommendations": "Recomendaciones", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", + "components.MovieDetails.revenue": "Recaudado", + "components.MovieDetails.runtime": "{minutes} minutos", + "components.MovieDetails.showless": "Mostrar menos", + "components.MovieDetails.showmore": "Mostrar más", + "components.MovieDetails.similar": "Títulos Similares", + "components.MovieDetails.streamingproviders": "Emisión Actual en", + "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", + "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", + "components.MovieDetails.watchtrailer": "Ver Trailer", + "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Notificar cuando se reabran incidencias por otros usuarios.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", + "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", + "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", + "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", + "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", + "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta", + "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", + "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", + "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", + "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", + "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", + "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", + "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", + "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", + "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", + "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", + "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", + "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", + "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", + "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", + "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", + "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", + "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", + "components.PermissionEdit.admin": "Administrador", + "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", + "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", + "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", + "components.PermissionEdit.autoapprove": "Auto-Aprobación", + "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", + "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", + "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", + "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", + "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", + "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", + "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", + "components.PermissionEdit.createissues": "Incidencias Reportadas", + "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", + "components.PermissionEdit.manageissues": "Gestionar Incidencias", + "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", + "components.PermissionEdit.managerequests": "Gestionar Solicitudes", + "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", + "components.PermissionEdit.request": "Solicitar", + "components.PermissionEdit.request4k": "Solicitar 4K", + "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", + "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", + "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", + "components.PermissionEdit.request4kTv": "Pedir Series 4K", + "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", + "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", + "components.PermissionEdit.requestMovies": "Solicitar películas", + "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", + "components.PermissionEdit.requestTv": "Solicitar Series", + "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", + "components.PermissionEdit.settings": "Gestionar Ajustes", + "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", + "components.PermissionEdit.users": "Gestión de Usuarios", + "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", + "components.PermissionEdit.viewissues": "Ver Incidencias", + "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", + "components.PermissionEdit.viewrequests": "Ver Solicitudes", + "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", + "components.PersonDetails.alsoknownas": "También Conocido como: {names}", + "components.PersonDetails.appearsin": "Apariciones", + "components.PersonDetails.ascharacter": "como {character}", + "components.PersonDetails.birthdate": "Nacido el {birthdate}", + "components.PersonDetails.crewmember": "Equipo", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Iniciando sesión…", + "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", + "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", + "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", + "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", + "components.QuotaSelector.unlimited": "Ilimitadas", + "components.RegionSelector.regionDefault": "Todas las Regiones", + "components.RegionSelector.regionServerDefault": "({Region}) por defecto", + "components.RequestBlock.profilechanged": "Perfil de Calidad", + "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", + "components.RequestBlock.rootfolder": "Carpeta Raíz", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestBlock.server": "Servidor de Destino", + "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", + "components.RequestButton.approverequest": "Aprobar Solicitud", + "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", + "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", + "components.RequestButton.declinerequest": "Rechazar Solicitud", + "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", + "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.requestmore": "Solicitar más", + "components.RequestButton.requestmore4k": "Solicitar más en 4K", + "components.RequestButton.viewrequest": "Ver Solicitud", + "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", + "components.RequestCard.deleterequest": "Borrar Solicitud", + "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", + "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", + "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", + "components.RequestList.RequestItem.editrequest": "Editar Solicitud", + "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", + "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestList.RequestItem.modified": "Modificado", + "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", + "components.RequestList.RequestItem.requested": "Pedida", + "components.RequestList.RequestItem.requesteddate": "Solicitado", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.requests": "Solicitudes", + "components.RequestList.showallrequests": "Mostrar todas las solicitudes", + "components.RequestList.sortAdded": "Más Reciente", + "components.RequestList.sortModified": "Última modificación", + "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", + "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", + "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", + "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", + "components.RequestModal.AdvancedRequester.requestas": "Pedir como", + "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", + "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", + "components.RequestModal.AdvancedRequester.tags": "Etiquetas", + "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.movie": "película", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", + "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", + "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.season": "temporada", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", + "components.RequestModal.alreadyrequested": "Ya Pedida", + "components.RequestModal.autoapproval": "Aprobación Automática", + "components.RequestModal.cancel": "Cancelar Petición", + "components.RequestModal.edit": "Editar Solicitud", + "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "# de Episodios", + "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", + "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", + "components.RequestModal.pendingrequest": "Solicitud pendiente", + "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", + "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", + "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", + "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", + "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", + "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", + "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", + "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestModal.season": "Temporada", + "components.RequestModal.seasonnumber": "Temporada {number}", + "components.RequestModal.selectseason": "Seleccionar Temporada(s)", + "components.ResetPassword.confirmpassword": "Confirmar Contraseña", + "components.ResetPassword.email": "Dirección de Email", + "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", + "components.ResetPassword.gobacklogin": "Volver a la Página de Login", + "components.ResetPassword.password": "Contraseña", + "components.ResetPassword.passwordreset": "Reinicio de Contraseña", + "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", + "components.ResetPassword.resetpassword": "Reiniciar contraseña", + "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", + "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", + "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", + "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", + "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", + "components.Search.search": "Buscar", + "components.Search.searchresults": "Resultado de la búsqueda", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", + "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", + "components.Settings.Notifications.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", + "components.Settings.Notifications.authPass": "Contraseña SMTP", + "components.Settings.Notifications.authUser": "Usuario SMTP", + "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", + "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", + "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", + "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", + "components.Settings.Notifications.chatId": "ID de chat", + "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", + "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", + "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", + "components.Settings.Notifications.emailsender": "Dirección del Remitente", + "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", + "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", + "components.Settings.Notifications.encryption": "Método de Encriptación", + "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", + "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", + "components.Settings.Notifications.encryptionNone": "Ninguna", + "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", + "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", + "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", + "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", + "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", + "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", + "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", + "components.Settings.Notifications.senderName": "Nombre del remitente", + "components.Settings.Notifications.smtpHost": "Host SMTP", + "components.Settings.Notifications.smtpPort": "Puerto SMTP", + "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", + "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", + "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", + "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", + "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", + "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", + "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", + "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", + "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", + "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", + "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", + "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", + "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", + "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", + "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", + "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", + "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", + "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", + "components.Settings.RadarrModal.add": "Agregar Servidor", + "components.Settings.RadarrModal.apiKey": "Clave API", + "components.Settings.RadarrModal.baseUrl": "URL Base", + "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", + "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", + "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", + "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", + "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.RadarrModal.externalUrl": "URL externa", + "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", + "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.RadarrModal.port": "Puerto", + "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", + "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.RadarrModal.server4k": "Servidor 4K", + "components.Settings.RadarrModal.servername": "Nombre del Servidor", + "components.Settings.RadarrModal.ssl": "Usar SSL", + "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.RadarrModal.tags": "Etiquetas", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", + "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", + "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", + "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", + "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", + "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.SettingsAbout.Releases.currentversion": "Actual", + "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", + "components.Settings.SettingsAbout.Releases.releases": "Versiones", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", + "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", + "components.Settings.SettingsAbout.about": "Acerca de", + "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", + "components.Settings.SettingsAbout.documentation": "Documentación", + "components.Settings.SettingsAbout.gettingsupport": "Soporte", + "components.Settings.SettingsAbout.githubdiscussions": "Discusiones en GitHub", + "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", + "components.Settings.SettingsAbout.outofdate": "Desactualizado", + "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Preferida", + "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", + "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zona horaria", + "components.Settings.SettingsAbout.totalmedia": "Contenido Total", + "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", + "components.Settings.SettingsAbout.uptodate": "Actualizado", + "components.Settings.SettingsAbout.version": "Versión", + "components.Settings.SettingsJobsCache.cache": "Caché", + "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", + "components.Settings.SettingsJobsCache.cachehits": "Consultas", + "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", + "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", + "components.Settings.SettingsJobsCache.cachemisses": "Fallos", + "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", + "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", + "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", + "components.Settings.SettingsJobsCache.command": "Comando", + "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", + "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", + "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", + "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", + "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", + "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", + "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", + "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", + "components.Settings.SettingsJobsCache.jobtype": "Tipo", + "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", + "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", + "components.Settings.SettingsJobsCache.process": "Procesamiento", + "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", + "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", + "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", + "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", + "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", + "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", + "components.Settings.SettingsLogs.extraData": "Datos Adicionales", + "components.Settings.SettingsLogs.filterDebug": "Depuración", + "components.Settings.SettingsLogs.filterError": "Error", + "components.Settings.SettingsLogs.filterInfo": "Info", + "components.Settings.SettingsLogs.filterWarn": "Advertencia", + "components.Settings.SettingsLogs.label": "Etiqueta", + "components.Settings.SettingsLogs.level": "Severidad", + "components.Settings.SettingsLogs.logDetails": "Detalles del Log", + "components.Settings.SettingsLogs.logs": "Logs", + "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.message": "Mensaje", + "components.Settings.SettingsLogs.pauseLogs": "Pausar", + "components.Settings.SettingsLogs.resumeLogs": "Reanudar", + "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", + "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", + "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", + "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", + "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", + "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", + "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", + "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", + "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", + "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", + "components.Settings.SettingsUsers.users": "Usuarios", + "components.Settings.SonarrModal.add": "Agregar Servidor", + "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", + "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", + "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", + "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", + "components.Settings.SonarrModal.apiKey": "Clave API", + "components.Settings.SonarrModal.baseUrl": "URL Base", + "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", + "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", + "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", + "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", + "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.SonarrModal.externalUrl": "URL Externa", + "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", + "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", + "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.SonarrModal.port": "Puerto", + "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", + "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", + "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.SonarrModal.server4k": "Servidor 4K", + "components.Settings.SonarrModal.servername": "Nombre del Servidor", + "components.Settings.SonarrModal.ssl": "Usar SSL", + "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.SonarrModal.tags": "Etiquetas", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", + "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", + "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", + "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", + "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", + "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", + "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.activeProfile": "Perfil activo", + "components.Settings.addradarr": "Agregar servidor Radarr", + "components.Settings.address": "Dirección", + "components.Settings.addsonarr": "Agregar servidor Sonarr", + "components.Settings.apikey": "Clave API", + "components.Settings.applicationTitle": "Título de la Aplicación", + "components.Settings.applicationurl": "URL de la aplicación", + "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", + "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", + "components.Settings.cancelscan": "Cancelar Escaneo", + "components.Settings.copied": "Clave API copiada en el portapapeles.", + "components.Settings.csrfProtection": "Habilitar Protección CSRF", + "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", + "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", + "components.Settings.currentlibrary": "Biblioteca actual: {name}", + "components.Settings.default": "Predeterminado", + "components.Settings.default4k": "4K predeterminado", + "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", + "components.Settings.email": "Email", + "components.Settings.enablessl": "Usar SSL", + "components.Settings.general": "General", + "components.Settings.generalsettings": "Configuración general", + "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", + "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", + "components.Settings.hostname": "Nombre de host o Dirección IP", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", + "components.Settings.locale": "Idioma en Pantalla", + "components.Settings.manualscan": "Escaneo Manual de Biblioteca", + "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", + "components.Settings.mediaTypeMovie": "película", + "components.Settings.mediaTypeSeries": "serie", + "components.Settings.menuAbout": "Acerca de", + "components.Settings.menuGeneralSettings": "General", + "components.Settings.menuJobs": "Tareas y Caché", + "components.Settings.menuLogs": "Registro", + "components.Settings.menuNotifications": "Notificaciones", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Servicios", + "components.Settings.menuUsers": "Usuarios", + "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", + "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", + "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", + "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", + "components.Settings.notifications": "Notificaciones", + "components.Settings.notificationsettings": "Configuración de notificaciones", + "components.Settings.notrunning": "Sin ejecutarse", + "components.Settings.originallanguage": "Idioma para la sección Descubrir", + "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", + "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Bibliotecas Plex", + "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", + "components.Settings.plexsettings": "Ajustes de Plex", + "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", + "components.Settings.port": "Puerto", + "components.Settings.radarrsettings": "Ajustes de Radarr", + "components.Settings.region": "Región para la sección \"Descubrir\"", + "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.Settings.scan": "Sincronizar Bibliotecas", + "components.Settings.scanning": "Sincronizando…", + "components.Settings.serverLocal": "local", + "components.Settings.serverRemote": "remoto", + "components.Settings.serverSecure": "seguro", + "components.Settings.serverpreset": "Servidor", + "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", + "components.Settings.serverpresetManualMessage": "Configuración manual", + "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", + "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", + "components.Settings.services": "Servicios", + "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", + "components.Settings.sonarrsettings": "Ajustes de Sonarr", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Iniciar Escaneo", + "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", + "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", + "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", + "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", + "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", + "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", + "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", + "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", + "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", + "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.Settings.trustProxy": "Habilitar soporte Proxy", + "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", + "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", + "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.webAppUrl": "Url de la Web App", + "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Configurar Plex", + "components.Setup.configureservices": "Configurar servicios", + "components.Setup.continue": "Continuar", + "components.Setup.finish": "Finalizar configuración", + "components.Setup.finishing": "Finalizando…", + "components.Setup.loginwithplex": "Iniciar sesión con Plex", + "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", + "components.Setup.setup": "Configuración", + "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", + "components.Setup.tip": "Consejo", + "components.Setup.welcome": "Bienvenido a Jellyseerr", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", + "components.StatusChacker.newversionavailable": "Actualización de Aplicación", + "components.StatusChacker.reloadOverseerr": "Recargar", + "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", + "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Reparto", + "components.TvDetails.episodeRuntime": "Duración del Episodio", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", + "components.TvDetails.firstAirDate": "Primera fecha de emisión", + "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", + "components.TvDetails.nextAirDate": "Próxima Emisión", + "components.TvDetails.originallanguage": "Idioma original", + "components.TvDetails.originaltitle": "Título Original", + "components.TvDetails.overview": "Resumen", + "components.TvDetails.overviewunavailable": "Resumen indisponible.", + "components.TvDetails.play4konplex": "Ver en Plex en 4K", + "components.TvDetails.playonplex": "Ver en Plex", + "components.TvDetails.recommendations": "Recomendaciones", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", + "components.TvDetails.showtype": "Tipos de Series", + "components.TvDetails.similar": "Series Similares", + "components.TvDetails.streamingproviders": "Emisión Actual en", + "components.TvDetails.viewfullcrew": "Ver Equipo Completo", + "components.TvDetails.watchtrailer": "Ver Trailer", + "components.UserList.accounttype": "Tipo", + "components.UserList.admin": "Administrador", + "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", + "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", + "components.UserList.bulkedit": "Edición Masiva", + "components.UserList.create": "Crear", + "components.UserList.created": "Unido", + "components.UserList.createlocaluser": "Crear usuario local", + "components.UserList.creating": "Creando…", + "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", + "components.UserList.deleteuser": "Eliminar usuario", + "components.UserList.displayName": "Nombre en Pantalla", + "components.UserList.edituser": "Editar Permisos de Usuario", + "components.UserList.email": "Dirección de correo electrónico", + "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", + "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", + "components.UserList.importfromplex": "Importar Usuarios de Plex", + "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", + "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", + "components.UserList.localuser": "Usuario local", + "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", + "components.UserList.owner": "Propietario", + "components.UserList.password": "Contraseña", + "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", + "components.UserList.plexuser": "Usuario de Plex", + "components.UserList.role": "Rol", + "components.UserList.sortCreated": "Fecha de Unión", + "components.UserList.sortDisplayName": "Nombre a mostrar", + "components.UserList.sortRequests": "Número de Solicitudes", + "components.UserList.totalrequests": "Solicitudes", + "components.UserList.user": "Usuario", + "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", + "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", + "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", + "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", + "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", + "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", + "components.UserList.userlist": "Lista de usuarios", + "components.UserList.users": "Usuarios", + "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", + "components.UserList.validationEmail": "Debes indicar un dirección de email válida", + "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", + "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", + "components.UserProfile.ProfileHeader.profile": "Ver Perfil", + "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", + "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", + "components.UserProfile.UserSettings.menuChangePass": "Contraseña", + "components.UserProfile.UserSettings.menuGeneralSettings": "General", + "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", + "components.UserProfile.UserSettings.menuPermissions": "Permisos", + "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", + "components.UserProfile.limit": "{remaining} de {limit}", + "components.UserProfile.movierequests": "Solicitudes de Películas", + "components.UserProfile.pastdays": "{type} (últimos {days} días)", + "components.UserProfile.recentrequests": "Solicitudes Recientes", + "components.UserProfile.requestsperdays": "{limit} restantes", + "components.UserProfile.seriesrequest": "Solicitudes de Series", + "components.UserProfile.totalrequests": "Solicitudes Totales", + "components.UserProfile.unlimited": "Ilimitadas", + "i18n.advanced": "Avanzado", + "i18n.all": "Todas", + "i18n.approve": "Aprobar", + "i18n.approved": "Aprobado", + "i18n.areyousure": "¿Estás Seguro?", + "i18n.available": "Disponible", + "i18n.back": "Atrás", + "i18n.cancel": "Cancelar", + "i18n.canceling": "Cancelando…", + "i18n.close": "Cerrar", + "i18n.decline": "Rechazar", + "i18n.declined": "Rechazado", + "i18n.delete": "Eliminar", + "i18n.deleting": "Eliminando…", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Editar", + "i18n.experimental": "Experimental", + "i18n.failed": "Fallido", + "i18n.loading": "Cargando…", + "i18n.movie": "Película", + "i18n.movies": "Películas", + "i18n.next": "Adelante", + "i18n.noresults": "Sin resultados.", + "i18n.notrequested": "No Solicitado", + "i18n.open": "Abrir", + "i18n.partiallyavailable": "Parcialmente Disponible", + "i18n.pending": "Pendiente", + "i18n.previous": "Anterior", + "i18n.processing": "Procesando", + "i18n.request": "Solicitar", + "i18n.request4k": "Pedir en 4K", + "i18n.requested": "Solicitado", + "i18n.requesting": "Pidiendo…", + "i18n.resolved": "Resuelta", + "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", + "i18n.retry": "Reintentar", + "i18n.retrying": "Reintentando…", + "i18n.save": "Guardar Cambios", + "i18n.saving": "Guardando…", + "i18n.settings": "Ajustes", + "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", + "i18n.status": "Estado", + "i18n.test": "Probar", + "i18n.testing": "Probando…", + "i18n.tvshow": "Series", + "i18n.tvshows": "Series", + "i18n.unavailable": "No Disponible", + "i18n.usersettings": "Ajustes de Usuario", + "i18n.view": "Ver", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Error Interno del Servidor", + "pages.oops": "Ups", + "pages.pagenotfound": "Página No Encontrada", + "pages.returnHome": "Volver al Inicio", + "pages.serviceunavailable": "Servicio No Disponible", + "pages.somethingwentwrong": "Algo fue mal" } From 2eebb7fd3941b34fe9472aaf9d28265df8cce311 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sun, 8 Jan 2023 09:18:08 +0900 Subject: [PATCH 36/65] fix: restore border to ghost button and fix discover slider visibility toggle position (#3226) --- src/components/Common/Button/index.tsx | 4 +- .../Discover/DiscoverSliderEdit/index.tsx | 84 ++++++++++--------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/src/components/Common/Button/index.tsx b/src/components/Common/Button/index.tsx index 7dc4e637d..a4df31150 100644 --- a/src/components/Common/Button/index.tsx +++ b/src/components/Common/Button/index.tsx @@ -46,7 +46,7 @@ function Button

( ref?: React.Ref> ): JSX.Element { const buttonStyle = [ - 'inline-flex items-center justify-center border border-transparent leading-5 font-medium rounded-md focus:outline-none transition ease-in-out duration-150 cursor-pointer disabled:opacity-50 whitespace-nowrap', + 'inline-flex items-center justify-center border leading-5 font-medium rounded-md focus:outline-none transition ease-in-out duration-150 cursor-pointer disabled:opacity-50 whitespace-nowrap', ]; switch (buttonType) { case 'primary': @@ -71,7 +71,7 @@ function Button

( break; case 'ghost': buttonStyle.push( - 'text-white bg-transaprent border-gray-600 hover:border-gray-200 focus:border-gray-100 active:border-gray-100' + 'text-white bg-transparent border-gray-600 hover:border-gray-200 focus:border-gray-100 active:border-gray-100' ); break; default: diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx index 0f97ac572..8c5c36660 100644 --- a/src/components/Discover/DiscoverSliderEdit/index.tsx +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -184,48 +184,52 @@ const DiscoverSliderEdit = ({ /> )}

-
+
{getSliderTitle(slider)}
-
- {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || - slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( -
- {slider.data?.split(',').map((keywordId) => ( - - ))} -
- )} - {(slider.type === DiscoverSliderType.TMDB_NETWORK || - slider.type === DiscoverSliderType.TMDB_STUDIO) && ( - - )} - {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || - slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( - - )} - {slider.type === DiscoverSliderType.TMDB_SEARCH && ( - }>{slider.data} - )} -
+ {slider.data && ( +
+ {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || + slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( +
+ {slider.data?.split(',').map((keywordId) => ( + + ))} +
+ )} + {(slider.type === DiscoverSliderType.TMDB_NETWORK || + slider.type === DiscoverSliderType.TMDB_STUDIO) && ( + + )} + {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( + + )} + {slider.type === DiscoverSliderType.TMDB_SEARCH && ( + }>{slider.data} + )} +
+ )}
{!slider.isBuiltIn && ( <> @@ -265,7 +269,7 @@ const DiscoverSliderEdit = ({ )} -
+
Date: Mon, 9 Jan 2023 15:15:26 +0900 Subject: [PATCH 37/65] fix: correct checkbox position (again) for slider edits (#3227) --- .../Discover/DiscoverSliderEdit/index.tsx | 82 ++++++++++--------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx index 8c5c36660..22ade1303 100644 --- a/src/components/Discover/DiscoverSliderEdit/index.tsx +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -190,46 +190,48 @@ const DiscoverSliderEdit = ({
{getSliderTitle(slider)}
- {slider.data && ( -
- {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || - slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( -
- {slider.data?.split(',').map((keywordId) => ( - - ))} -
- )} - {(slider.type === DiscoverSliderType.TMDB_NETWORK || - slider.type === DiscoverSliderType.TMDB_STUDIO) && ( - - )} - {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || - slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( - - )} - {slider.type === DiscoverSliderType.TMDB_SEARCH && ( - }>{slider.data} - )} -
- )} +
+ {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || + slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( +
+ {slider.data?.split(',').map((keywordId) => ( + + ))} +
+ )} + {(slider.type === DiscoverSliderType.TMDB_NETWORK || + slider.type === DiscoverSliderType.TMDB_STUDIO) && ( + + )} + {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( + + )} + {slider.type === DiscoverSliderType.TMDB_SEARCH && ( + }>{slider.data} + )} +
{!slider.isBuiltIn && ( <> From 7b6db50ae55b1fc60d19a5cff62dd46bb989fa51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:28:15 +0900 Subject: [PATCH 38/65] fix(deps): update dependency swr to v2 (#3212) * fix(deps): update dependency swr to v2 * fix: correct type import for swr Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: sct --- package.json | 2 +- src/hooks/useUser.ts | 2 +- yarn.lock | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2ebcf182f..578dc1317 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "semver": "7.3.8", "sqlite3": "5.1.4", "swagger-ui-express": "4.6.0", - "swr": "1.3.0", + "swr": "2.0.0", "typeorm": "0.3.11", "web-push": "3.5.0", "winston": "3.8.2", diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts index 4dfcf0902..192b3fe9d 100644 --- a/src/hooks/useUser.ts +++ b/src/hooks/useUser.ts @@ -2,8 +2,8 @@ import { UserType } from '@server/constants/user'; import type { PermissionCheckOptions } from '@server/lib/permissions'; import { hasPermission, Permission } from '@server/lib/permissions'; import type { NotificationAgentKey } from '@server/lib/settings'; +import type { MutatorCallback } from 'swr'; import useSWR from 'swr'; -import type { MutatorCallback } from 'swr/dist/types'; export { Permission, UserType }; export type { PermissionCheckOptions }; diff --git a/yarn.lock b/yarn.lock index 22f41e8e7..03338c4a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12491,10 +12491,12 @@ swagger-ui-express@4.6.0: dependencies: swagger-ui-dist ">=4.11.0" -swr@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" - integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== +swr@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/swr/-/swr-2.0.0.tgz#91d999359e2be92de1a41f6b6711d72be20ffdbd" + integrity sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w== + dependencies: + use-sync-external-store "^1.2.0" tailwindcss@3.2.4: version "3.2.4" @@ -13118,7 +13120,7 @@ use-isomorphic-layout-effect@^1.1.2: resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== -use-sync-external-store@1.2.0: +use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== From b5157010c46cd9083993d5ee0172007b83d631da Mon Sep 17 00:00:00 2001 From: Danshil Kokil Mungur Date: Thu, 12 Jan 2023 11:34:53 +0400 Subject: [PATCH 39/65] fix(request): approve request when retrying request (#3234) chore(request): clarify comment --- server/routes/request.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/routes/request.ts b/server/routes/request.ts index 9c9d96a82..83c05b485 100644 --- a/server/routes/request.ts +++ b/server/routes/request.ts @@ -492,8 +492,10 @@ requestRoutes.post<{ relations: { requestedBy: true, modifiedBy: true }, }); - await request.updateParentStatus(); - await request.sendMedia(); + // this also triggers updating the parent media's status & sending to *arr + request.status = MediaRequestStatus.APPROVED; + await requestRepository.save(request); + return res.status(200).json(request); } catch (e) { logger.error('Error processing request retry', { From dd00e48f59054b44bef6b32a2c169e59f6175051 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Fri, 13 Jan 2023 16:54:35 +0900 Subject: [PATCH 40/65] feat: discover overhaul (filters!) (#3232) --- cypress/e2e/discover.cy.ts | 8 +- overseerr-api.yml | 72 ++++- package.json | 5 +- server/api/themoviedb/index.ts | 130 ++++++--- server/routes/discover.ts | 76 ++++- .../Common/MultiRangeSlider/index.tsx | 113 ++++++++ src/components/Common/SlideOver/index.tsx | 10 +- src/components/Discover/DiscoverMovies.tsx | 51 ---- .../Discover/DiscoverMovies/index.tsx | 147 ++++++++++ src/components/Discover/DiscoverTv.tsx | 51 ---- src/components/Discover/DiscoverTv/index.tsx | 145 ++++++++++ .../Discover/FilterSlideover/index.tsx | 271 ++++++++++++++++++ .../Discover/MovieGenreSlider/index.tsx | 2 +- .../Discover/TvGenreSlider/index.tsx | 2 +- src/components/Discover/constants.ts | 103 +++++++ src/components/Discover/index.tsx | 30 +- src/components/Layout/Sidebar/index.tsx | 18 +- src/components/MovieDetails/index.tsx | 4 +- src/components/Selector/index.tsx | 261 +++++++++++++++++ src/components/TvDetails/index.tsx | 4 +- src/hooks/useDiscover.ts | 14 +- src/hooks/useUpdateQueryParams.ts | 17 ++ src/i18n/locale/en.json | 44 ++- src/styles/globals.css | 28 ++ tailwind.config.js | 6 +- yarn.lock | 12 +- 26 files changed, 1445 insertions(+), 179 deletions(-) create mode 100644 src/components/Common/MultiRangeSlider/index.tsx delete mode 100644 src/components/Discover/DiscoverMovies.tsx create mode 100644 src/components/Discover/DiscoverMovies/index.tsx delete mode 100644 src/components/Discover/DiscoverTv.tsx create mode 100644 src/components/Discover/DiscoverTv/index.tsx create mode 100644 src/components/Discover/FilterSlideover/index.tsx create mode 100644 src/components/Selector/index.tsx diff --git a/cypress/e2e/discover.cy.ts b/cypress/e2e/discover.cy.ts index 3489061b0..545f25658 100644 --- a/cypress/e2e/discover.cy.ts +++ b/cypress/e2e/discover.cy.ts @@ -36,7 +36,9 @@ describe('Discover', () => { }); it('loads upcoming movies', () => { - cy.intercept('/api/v1/discover/movies/upcoming*').as('getUpcomingMovies'); + cy.intercept('/api/v1/discover/movies?page=1&primaryReleaseDateGte*').as( + 'getUpcomingMovies' + ); cy.visit('/'); cy.wait('@getUpcomingMovies'); clickFirstTitleCardInSlider('Upcoming Movies'); @@ -50,7 +52,9 @@ describe('Discover', () => { }); it('loads upcoming series', () => { - cy.intercept('/api/v1/discover/tv/upcoming*').as('getUpcomingSeries'); + cy.intercept('/api/v1/discover/tv?page=1&firstAirDateGte=*').as( + 'getUpcomingSeries' + ); cy.visit('/'); cy.wait('@getUpcomingSeries'); clickFirstTitleCardInSlider('Upcoming Series'); diff --git a/overseerr-api.yml b/overseerr-api.yml index d31f4e239..58b9b41fc 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -4130,7 +4130,7 @@ paths: - in: query name: genre schema: - type: number + type: string example: 18 - in: query name: studio @@ -4142,6 +4142,41 @@ paths: schema: type: string example: 1,2 + - in: query + name: sortBy + schema: + type: string + example: popularity.desc + - in: query + name: primaryReleaseDateGte + schema: + type: string + example: 2022-01-01 + - in: query + name: primaryReleaseDateLte + schema: + type: string + example: 2023-01-01 + - in: query + name: withRuntimeGte + schema: + type: number + example: 60 + - in: query + name: withRuntimeLte + schema: + type: number + example: 120 + - in: query + name: voteAverageGte + schema: + type: number + example: 7 + - in: query + name: voteAverageLte + schema: + type: number + example: 10 responses: '200': description: Results @@ -4376,6 +4411,41 @@ paths: schema: type: string example: 1,2 + - in: query + name: sortBy + schema: + type: string + example: popularity.desc + - in: query + name: firstAirDateGte + schema: + type: string + example: 2022-01-01 + - in: query + name: firstAirDateLte + schema: + type: string + example: 2023-01-01 + - in: query + name: withRuntimeGte + schema: + type: number + example: 60 + - in: query + name: withRuntimeLte + schema: + type: number + example: 120 + - in: query + name: voteAverageGte + schema: + type: number + example: 7 + - in: query + name: voteAverageLte + schema: + type: number + example: 10 responses: '200': description: Results diff --git a/package.json b/package.json index 578dc1317..f210da459 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "cronstrue": "2.21.0", "csurf": "1.11.0", "date-fns": "2.29.3", + "dayjs": "1.11.7", "email-templates": "9.0.0", "express": "4.18.2", "express-openapi-validator": "4.13.8", @@ -79,6 +80,7 @@ "react-popper-tooltip": "4.4.2", "react-select": "5.7.0", "react-spring": "9.6.1", + "react-tailwindcss-datepicker-sct": "1.3.4", "react-toast-notifications": "2.5.1", "react-truncate-markup": "5.1.2", "react-use-clipboard": "1.0.9", @@ -94,7 +96,8 @@ "winston-daily-rotate-file": "4.7.1", "xml2js": "0.4.23", "yamljs": "0.3.0", - "yup": "0.32.11" + "yup": "0.32.11", + "zod": "3.20.2" }, "devDependencies": { "@babel/cli": "7.20.7", diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index b6421edd5..c6d0d29f1 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -35,31 +35,39 @@ interface SingleSearchOptions extends SearchOptions { year?: number; } +export type SortOptions = + | 'popularity.asc' + | 'popularity.desc' + | 'release_date.asc' + | 'release_date.desc' + | 'revenue.asc' + | 'revenue.desc' + | 'primary_release_date.asc' + | 'primary_release_date.desc' + | 'original_title.asc' + | 'original_title.desc' + | 'vote_average.asc' + | 'vote_average.desc' + | 'vote_count.asc' + | 'vote_count.desc' + | 'first_air_date.asc' + | 'first_air_date.desc'; + interface DiscoverMovieOptions { page?: number; includeAdult?: boolean; language?: string; primaryReleaseDateGte?: string; primaryReleaseDateLte?: string; + withRuntimeGte?: string; + withRuntimeLte?: string; + voteAverageGte?: string; + voteAverageLte?: string; originalLanguage?: string; - genre?: number; - studio?: number; + genre?: string; + studio?: string; keywords?: string; - sortBy?: - | 'popularity.asc' - | 'popularity.desc' - | 'release_date.asc' - | 'release_date.desc' - | 'revenue.asc' - | 'revenue.desc' - | 'primary_release_date.asc' - | 'primary_release_date.desc' - | 'original_title.asc' - | 'original_title.desc' - | 'vote_average.asc' - | 'vote_average.desc' - | 'vote_count.asc' - | 'vote_count.desc'; + sortBy?: SortOptions; } interface DiscoverTvOptions { @@ -67,20 +75,16 @@ interface DiscoverTvOptions { language?: string; firstAirDateGte?: string; firstAirDateLte?: string; + withRuntimeGte?: string; + withRuntimeLte?: string; + voteAverageGte?: string; + voteAverageLte?: string; includeEmptyReleaseDate?: boolean; originalLanguage?: string; genre?: number; network?: number; keywords?: string; - sortBy?: - | 'popularity.asc' - | 'popularity.desc' - | 'vote_average.asc' - | 'vote_average.desc' - | 'vote_count.asc' - | 'vote_count.desc' - | 'first_air_date.asc' - | 'first_air_date.desc'; + sortBy?: SortOptions; } class TheMovieDb extends ExternalAPI { @@ -446,8 +450,22 @@ class TheMovieDb extends ExternalAPI { genre, studio, keywords, + withRuntimeGte, + withRuntimeLte, + voteAverageGte, + voteAverageLte, }: DiscoverMovieOptions = {}): Promise => { try { + const defaultFutureDate = new Date( + Date.now() + 1000 * 60 * 60 * 24 * (365 * 1.5) + ) + .toISOString() + .split('T')[0]; + + const defaultPastDate = new Date('1900-01-01') + .toISOString() + .split('T')[0]; + const data = await this.get('/discover/movie', { params: { sort_by: sortBy, @@ -455,12 +473,29 @@ class TheMovieDb extends ExternalAPI { include_adult: includeAdult, language, region: this.region, - with_original_language: originalLanguage ?? this.originalLanguage, - 'primary_release_date.gte': primaryReleaseDateGte, - 'primary_release_date.lte': primaryReleaseDateLte, + with_original_language: + originalLanguage && originalLanguage !== 'all' + ? originalLanguage + : originalLanguage === 'all' + ? undefined + : this.originalLanguage, + // Set our release date values, but check if one is set and not the other, + // so we can force a past date or a future date. TMDB Requires both values if one is set! + 'primary_release_date.gte': + !primaryReleaseDateGte && primaryReleaseDateLte + ? defaultPastDate + : primaryReleaseDateGte, + 'primary_release_date.lte': + !primaryReleaseDateLte && primaryReleaseDateGte + ? defaultFutureDate + : primaryReleaseDateLte, with_genres: genre, with_companies: studio, with_keywords: keywords, + 'with_runtime.gte': withRuntimeGte, + 'with_runtime.lte': withRuntimeLte, + 'vote_average.gte': voteAverageGte, + 'vote_average.lte': voteAverageLte, }, }); @@ -481,21 +516,52 @@ class TheMovieDb extends ExternalAPI { genre, network, keywords, + withRuntimeGte, + withRuntimeLte, + voteAverageGte, + voteAverageLte, }: DiscoverTvOptions = {}): Promise => { try { + const defaultFutureDate = new Date( + Date.now() + 1000 * 60 * 60 * 24 * (365 * 1.5) + ) + .toISOString() + .split('T')[0]; + + const defaultPastDate = new Date('1900-01-01') + .toISOString() + .split('T')[0]; + const data = await this.get('/discover/tv', { params: { sort_by: sortBy, page, language, region: this.region, - 'first_air_date.gte': firstAirDateGte, - 'first_air_date.lte': firstAirDateLte, - with_original_language: originalLanguage ?? this.originalLanguage, + // Set our release date values, but check if one is set and not the other, + // so we can force a past date or a future date. TMDB Requires both values if one is set! + 'first_air_date.gte': + !firstAirDateGte && firstAirDateLte + ? defaultPastDate + : firstAirDateGte, + 'first_air_date.lte': + !firstAirDateLte && firstAirDateGte + ? defaultFutureDate + : firstAirDateLte, + with_original_language: + originalLanguage && originalLanguage !== 'all' + ? originalLanguage + : originalLanguage === 'all' + ? undefined + : this.originalLanguage, include_null_first_air_dates: includeEmptyReleaseDate, with_genres: genre, with_networks: network, with_keywords: keywords, + 'with_runtime.gte': withRuntimeGte, + 'with_runtime.lte': withRuntimeLte, + 'vote_average.gte': voteAverageGte, + 'vote_average.lte': voteAverageLte, }, }); diff --git a/server/routes/discover.ts b/server/routes/discover.ts index 428e4f7de..079f37e10 100644 --- a/server/routes/discover.ts +++ b/server/routes/discover.ts @@ -1,4 +1,5 @@ import PlexTvAPI from '@server/api/plextv'; +import type { SortOptions } from '@server/api/themoviedb'; import TheMovieDb from '@server/api/themoviedb'; import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; import { MediaType } from '@server/constants/media'; @@ -21,6 +22,7 @@ import { mapNetwork } from '@server/models/Tv'; import { isMovie, isPerson } from '@server/utils/typeHelpers'; import { Router } from 'express'; import { sortBy } from 'lodash'; +import { z } from 'zod'; export const createTmdbWithRegionLanguage = (user?: User): TheMovieDb => { const settings = getSettings(); @@ -47,17 +49,50 @@ export const createTmdbWithRegionLanguage = (user?: User): TheMovieDb => { const discoverRoutes = Router(); +const QueryFilterOptions = z.object({ + page: z.coerce.string().optional(), + sortBy: z.coerce.string().optional(), + primaryReleaseDateGte: z.coerce.string().optional(), + primaryReleaseDateLte: z.coerce.string().optional(), + firstAirDateGte: z.coerce.string().optional(), + firstAirDateLte: z.coerce.string().optional(), + studio: z.coerce.string().optional(), + genre: z.coerce.string().optional(), + keywords: z.coerce.string().optional(), + language: z.coerce.string().optional(), + withRuntimeGte: z.coerce.string().optional(), + withRuntimeLte: z.coerce.string().optional(), + voteAverageGte: z.coerce.string().optional(), + voteAverageLte: z.coerce.string().optional(), + network: z.coerce.string().optional(), +}); + +export type FilterOptions = z.infer; + discoverRoutes.get('/movies', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); - const keywords = req.query.keywords as string; try { + const query = QueryFilterOptions.parse(req.query); + const keywords = query.keywords; const data = await tmdb.getDiscoverMovies({ - page: Number(req.query.page), - language: req.locale ?? (req.query.language as string), - genre: req.query.genre ? Number(req.query.genre) : undefined, - studio: req.query.studio ? Number(req.query.studio) : undefined, + page: Number(query.page), + sortBy: query.sortBy as SortOptions, + language: req.locale ?? query.language, + originalLanguage: query.language, + genre: query.genre, + studio: query.studio, + primaryReleaseDateLte: query.primaryReleaseDateLte + ? new Date(query.primaryReleaseDateLte).toISOString().split('T')[0] + : undefined, + primaryReleaseDateGte: query.primaryReleaseDateGte + ? new Date(query.primaryReleaseDateGte).toISOString().split('T')[0] + : undefined, keywords, + withRuntimeGte: query.withRuntimeGte, + withRuntimeLte: query.withRuntimeLte, + voteAverageGte: query.voteAverageGte, + voteAverageLte: query.voteAverageLte, }); const media = await Media.getRelatedMedia( @@ -178,7 +213,7 @@ discoverRoutes.get<{ genreId: string }>( const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - genre: Number(req.params.genreId), + genre: req.params.genreId as string, }); const media = await Media.getRelatedMedia( @@ -225,7 +260,7 @@ discoverRoutes.get<{ studioId: string }>( const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - studio: Number(req.params.studioId), + studio: req.params.studioId as string, }); const media = await Media.getRelatedMedia( @@ -309,15 +344,28 @@ discoverRoutes.get('/movies/upcoming', async (req, res, next) => { discoverRoutes.get('/tv', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); - const keywords = req.query.keywords as string; try { + const query = QueryFilterOptions.parse(req.query); + const keywords = query.keywords; const data = await tmdb.getDiscoverTv({ - page: Number(req.query.page), - language: req.locale ?? (req.query.language as string), - genre: req.query.genre ? Number(req.query.genre) : undefined, - network: req.query.network ? Number(req.query.network) : undefined, + page: Number(query.page), + sortBy: query.sortBy as SortOptions, + language: req.locale ?? query.language, + genre: query.genre ? Number(query.genre) : undefined, + network: query.network ? Number(query.network) : undefined, + firstAirDateLte: query.firstAirDateLte + ? new Date(query.firstAirDateLte).toISOString().split('T')[0] + : undefined, + firstAirDateGte: query.firstAirDateGte + ? new Date(query.firstAirDateGte).toISOString().split('T')[0] + : undefined, + originalLanguage: query.language, keywords, + withRuntimeGte: query.withRuntimeGte, + withRuntimeLte: query.withRuntimeLte, + voteAverageGte: query.voteAverageGte, + voteAverageLte: query.voteAverageLte, }); const media = await Media.getRelatedMedia( @@ -672,7 +720,9 @@ discoverRoutes.get<{ language: string }, GenreSliderItem[]>( await Promise.all( genres.map(async (genre) => { - const genreData = await tmdb.getDiscoverMovies({ genre: genre.id }); + const genreData = await tmdb.getDiscoverMovies({ + genre: genre.id.toString(), + }); mappedGenres.push({ id: genre.id, diff --git a/src/components/Common/MultiRangeSlider/index.tsx b/src/components/Common/MultiRangeSlider/index.tsx new file mode 100644 index 000000000..c3da2b577 --- /dev/null +++ b/src/components/Common/MultiRangeSlider/index.tsx @@ -0,0 +1,113 @@ +import Tooltip from '@app/components/Common/Tooltip'; +import useDebouncedState from '@app/hooks/useDebouncedState'; +import { useEffect, useRef } from 'react'; + +type MultiRangeSliderProps = { + min: number; + max: number; + defaultMinValue?: number; + defaultMaxValue?: number; + subText?: string; + onUpdateMin: (min: number) => void; + onUpdateMax: (max: number) => void; +}; + +const MultiRangeSlider = ({ + min, + max, + defaultMinValue, + defaultMaxValue, + subText, + onUpdateMin, + onUpdateMax, +}: MultiRangeSliderProps) => { + const touched = useRef(false); + const [valueMin, finalValueMin, setValueMin] = useDebouncedState( + defaultMinValue ?? min + ); + const [valueMax, finalValueMax, setValueMax] = useDebouncedState( + defaultMaxValue ?? max + ); + + const minThumb = ((valueMin - min) / (max - min)) * 100; + const maxThumb = ((valueMax - min) / (max - min)) * 100; + + useEffect(() => { + if (touched.current) { + onUpdateMin(finalValueMin); + } + }, [finalValueMin, onUpdateMin]); + + useEffect(() => { + if (touched.current) { + onUpdateMax(finalValueMax); + } + }, [finalValueMax, onUpdateMax]); + + useEffect(() => { + touched.current = false; + setValueMax(defaultMaxValue ?? max); + setValueMin(defaultMinValue ?? min); + }, [defaultMinValue, defaultMaxValue, setValueMax, setValueMin, min, max]); + + return ( +
+ + = valueMax && valueMin !== min ? 'z-30' : 'z-10' + }`} + onChange={(e) => { + const value = Number(e.target.value); + + if (value <= valueMax) { + touched.current = true; + setValueMin(value); + } + }} + /> + + + { + const value = Number(e.target.value); + + if (value >= valueMin) { + touched.current = true; + setValueMax(value); + } + }} + /> + +
+ {subText && ( +
+ {subText} +
+ )} +
+ ); +}; + +export default MultiRangeSlider; diff --git a/src/components/Common/SlideOver/index.tsx b/src/components/Common/SlideOver/index.tsx index fd0ecb37a..48c1f8549 100644 --- a/src/components/Common/SlideOver/index.tsx +++ b/src/components/Common/SlideOver/index.tsx @@ -67,11 +67,11 @@ const SlideOver = ({ > {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
e.stopPropagation()} > -
+

@@ -95,8 +95,10 @@ const SlideOver = ({

)}
-
- {children} +
+
+ {children} +
diff --git a/src/components/Discover/DiscoverMovies.tsx b/src/components/Discover/DiscoverMovies.tsx deleted file mode 100644 index b9ec8dea8..000000000 --- a/src/components/Discover/DiscoverMovies.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import Header from '@app/components/Common/Header'; -import ListView from '@app/components/Common/ListView'; -import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; -import Error from '@app/pages/_error'; -import type { MovieResult } from '@server/models/Search'; -import { defineMessages, useIntl } from 'react-intl'; - -const messages = defineMessages({ - discovermovies: 'Popular Movies', -}); - -const DiscoverMovies = () => { - const intl = useIntl(); - - const { - isLoadingInitialData, - isEmpty, - isLoadingMore, - isReachingEnd, - titles, - fetchMore, - error, - } = useDiscover('/api/v1/discover/movies'); - - if (error) { - return ; - } - - const title = intl.formatMessage(messages.discovermovies); - - return ( - <> - -
-
{title}
-
- 0) - } - isReachingEnd={isReachingEnd} - onScrollBottom={fetchMore} - /> - - ); -}; - -export default DiscoverMovies; diff --git a/src/components/Discover/DiscoverMovies/index.tsx b/src/components/Discover/DiscoverMovies/index.tsx new file mode 100644 index 000000000..2cc511770 --- /dev/null +++ b/src/components/Discover/DiscoverMovies/index.tsx @@ -0,0 +1,147 @@ +import Button from '@app/components/Common/Button'; +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { + countActiveFilters, + prepareFilterValues, +} from '@app/components/Discover/constants'; +import FilterSlideover from '@app/components/Discover/FilterSlideover'; +import useDiscover from '@app/hooks/useDiscover'; +import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; +import Error from '@app/pages/_error'; +import { BarsArrowDownIcon, FunnelIcon } from '@heroicons/react/24/solid'; +import type { SortOptions as TMDBSortOptions } from '@server/api/themoviedb'; +import type { MovieResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + discovermovies: 'Movies', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + sortPopularityAsc: 'Popularity Ascending', + sortPopularityDesc: 'Popularity Descending', + sortReleaseDateAsc: 'Release Date Ascending', + sortReleaseDateDesc: 'Release Date Descending', + sortTmdbRatingAsc: 'TMDB Rating Ascending', + sortTmdbRatingDesc: 'TMDB Rating Descending', + sortTitleAsc: 'Title (A-Z) Ascending', + sortTitleDesc: 'Title (Z-A) Descending', +}); + +const SortOptions: Record = { + PopularityAsc: 'popularity.asc', + PopularityDesc: 'popularity.desc', + ReleaseDateAsc: 'release_date.asc', + ReleaseDateDesc: 'release_date.desc', + TmdbRatingAsc: 'vote_average.asc', + TmdbRatingDesc: 'vote_average.desc', + TitleAsc: 'original_title.asc', + TitleDesc: 'original_title.desc', +} as const; + +const DiscoverMovies = () => { + const intl = useIntl(); + const router = useRouter(); + const updateQueryParams = useUpdateQueryParams({}); + + const preparedFilters = prepareFilterValues(router.query); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + } = useDiscover( + '/api/v1/discover/movies', + preparedFilters + ); + const [showFilters, setShowFilters] = useState(false); + + if (error) { + return ; + } + + const title = intl.formatMessage(messages.discovermovies); + + return ( + <> + +
+
{title}
+
+
+ + + + +
+ setShowFilters(false)} + show={showFilters} + /> +
+ +
+
+
+ 0) + } + isReachingEnd={isReachingEnd} + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverMovies; diff --git a/src/components/Discover/DiscoverTv.tsx b/src/components/Discover/DiscoverTv.tsx deleted file mode 100644 index 404b1aa5b..000000000 --- a/src/components/Discover/DiscoverTv.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import Header from '@app/components/Common/Header'; -import ListView from '@app/components/Common/ListView'; -import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; -import Error from '@app/pages/_error'; -import type { TvResult } from '@server/models/Search'; -import { defineMessages, useIntl } from 'react-intl'; - -const messages = defineMessages({ - discovertv: 'Popular Series', -}); - -const DiscoverTv = () => { - const intl = useIntl(); - - const { - isLoadingInitialData, - isEmpty, - isLoadingMore, - isReachingEnd, - titles, - fetchMore, - error, - } = useDiscover('/api/v1/discover/tv'); - - if (error) { - return ; - } - - const title = intl.formatMessage(messages.discovertv); - - return ( - <> - -
-
{title}
-
- 0) - } - onScrollBottom={fetchMore} - /> - - ); -}; - -export default DiscoverTv; diff --git a/src/components/Discover/DiscoverTv/index.tsx b/src/components/Discover/DiscoverTv/index.tsx new file mode 100644 index 000000000..bd3a17015 --- /dev/null +++ b/src/components/Discover/DiscoverTv/index.tsx @@ -0,0 +1,145 @@ +import Button from '@app/components/Common/Button'; +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { + countActiveFilters, + prepareFilterValues, +} from '@app/components/Discover/constants'; +import FilterSlideover from '@app/components/Discover/FilterSlideover'; +import useDiscover from '@app/hooks/useDiscover'; +import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; +import Error from '@app/pages/_error'; +import { BarsArrowDownIcon, FunnelIcon } from '@heroicons/react/24/solid'; +import type { SortOptions as TMDBSortOptions } from '@server/api/themoviedb'; +import type { TvResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + discovertv: 'Series', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + sortPopularityAsc: 'Popularity Ascending', + sortPopularityDesc: 'Popularity Descending', + sortFirstAirDateAsc: 'First Air Date Ascending', + sortFirstAirDateDesc: 'First Air Date Descending', + sortTmdbRatingAsc: 'TMDB Rating Ascending', + sortTmdbRatingDesc: 'TMDB Rating Descending', + sortTitleAsc: 'Title (A-Z) Ascending', + sortTitleDesc: 'Title (Z-A) Descending', +}); + +const SortOptions: Record = { + PopularityAsc: 'popularity.asc', + PopularityDesc: 'popularity.desc', + FirstAirDateAsc: 'first_air_date.asc', + FirstAirDateDesc: 'first_air_date.desc', + TmdbRatingAsc: 'vote_average.asc', + TmdbRatingDesc: 'vote_average.desc', + TitleAsc: 'original_title.asc', + TitleDesc: 'original_title.desc', +} as const; + +const DiscoverTv = () => { + const intl = useIntl(); + const router = useRouter(); + const [showFilters, setShowFilters] = useState(false); + const preparedFilters = prepareFilterValues(router.query); + const updateQueryParams = useUpdateQueryParams({}); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + } = useDiscover('/api/v1/discover/tv', { + ...preparedFilters, + }); + + if (error) { + return ; + } + + const title = intl.formatMessage(messages.discovertv); + + return ( + <> + +
+
{title}
+
+
+ + + + +
+ setShowFilters(false)} + show={showFilters} + /> +
+ +
+
+
+ 0) + } + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverTv; diff --git a/src/components/Discover/FilterSlideover/index.tsx b/src/components/Discover/FilterSlideover/index.tsx new file mode 100644 index 000000000..5a431f698 --- /dev/null +++ b/src/components/Discover/FilterSlideover/index.tsx @@ -0,0 +1,271 @@ +import Button from '@app/components/Common/Button'; +import MultiRangeSlider from '@app/components/Common/MultiRangeSlider'; +import SlideOver from '@app/components/Common/SlideOver'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { countActiveFilters } from '@app/components/Discover/constants'; +import LanguageSelector from '@app/components/LanguageSelector'; +import { + CompanySelector, + GenreSelector, + KeywordSelector, +} from '@app/components/Selector'; +import useSettings from '@app/hooks/useSettings'; +import { + useBatchUpdateQueryParams, + useUpdateQueryParams, +} from '@app/hooks/useUpdateQueryParams'; +import { XCircleIcon } from '@heroicons/react/24/outline'; +import { defineMessages, useIntl } from 'react-intl'; +import Datepicker from 'react-tailwindcss-datepicker-sct'; + +const messages = defineMessages({ + filters: 'Filters', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + releaseDate: 'Release Date', + firstAirDate: 'First Air Date', + from: 'From', + to: 'To', + studio: 'Studio', + genres: 'Genres', + keywords: 'Keywords', + originalLanguage: 'Original Language', + runtimeText: '{minValue}-{maxValue} minute runtime', + ratingText: 'Ratings between {minValue} and {maxValue}', + clearfilters: 'Clear Active Filters', + tmdbuserscore: 'TMDB User Score', + runtime: 'Runtime', +}); + +type FilterSlideoverProps = { + show: boolean; + onClose: () => void; + type: 'movie' | 'tv'; + currentFilters: FilterOptions; +}; + +const FilterSlideover = ({ + show, + onClose, + type, + currentFilters, +}: FilterSlideoverProps) => { + const intl = useIntl(); + const { currentSettings } = useSettings(); + const updateQueryParams = useUpdateQueryParams({}); + const batchUpdateQueryParams = useBatchUpdateQueryParams({}); + + const dateGte = + type === 'movie' ? 'primaryReleaseDateGte' : 'firstAirDateGte'; + const dateLte = + type === 'movie' ? 'primaryReleaseDateLte' : 'firstAirDateLte'; + + return ( + onClose()} + > +
+
+
+ {intl.formatMessage( + type === 'movie' ? messages.releaseDate : messages.firstAirDate + )} +
+
+
+
{intl.formatMessage(messages.from)}
+ { + updateQueryParams( + dateGte, + value?.startDate ? (value.startDate as string) : undefined + ); + }} + inputName="fromdate" + useRange={false} + asSingle + containerClassName="datepicker-wrapper" + inputClassName="pr-1 sm:pr-4" + /> +
+
+
{intl.formatMessage(messages.to)}
+ { + updateQueryParams( + dateLte, + value?.startDate ? (value.startDate as string) : undefined + ); + }} + inputName="todate" + useRange={false} + asSingle + containerClassName="datepicker-wrapper" + inputClassName="pr-1 sm:pr-4" + /> +
+
+
+ {type === 'movie' && ( + <> + + {intl.formatMessage(messages.studio)} + + { + updateQueryParams('studio', value?.value.toString()); + }} + /> + + )} + + {intl.formatMessage(messages.genres)} + + { + updateQueryParams('genre', value?.map((v) => v.value).join(',')); + }} + /> + + {intl.formatMessage(messages.keywords)} + + { + updateQueryParams('keywords', value?.map((v) => v.value).join(',')); + }} + /> + + {intl.formatMessage(messages.originalLanguage)} + + { + updateQueryParams('language', value); + }} + /> + + {intl.formatMessage(messages.runtime)} + +
+ { + updateQueryParams( + 'withRuntimeGte', + min !== 0 && Number(currentFilters.withRuntimeLte) !== 400 + ? min.toString() + : undefined + ); + }} + onUpdateMax={(max) => { + updateQueryParams( + 'withRuntimeLte', + max !== 400 && Number(currentFilters.withRuntimeGte) !== 0 + ? max.toString() + : undefined + ); + }} + defaultMaxValue={ + currentFilters.withRuntimeLte + ? Number(currentFilters.withRuntimeLte) + : undefined + } + defaultMinValue={ + currentFilters.withRuntimeGte + ? Number(currentFilters.withRuntimeGte) + : undefined + } + subText={intl.formatMessage(messages.runtimeText, { + minValue: currentFilters.withRuntimeGte ?? 0, + maxValue: currentFilters.withRuntimeLte ?? 400, + })} + /> +
+ + {intl.formatMessage(messages.tmdbuserscore)} + +
+ { + updateQueryParams( + 'voteAverageGte', + min !== 1 && Number(currentFilters.voteAverageLte) !== 10 + ? min.toString() + : undefined + ); + }} + onUpdateMax={(max) => { + updateQueryParams( + 'voteAverageLte', + max !== 10 && Number(currentFilters.voteAverageGte) !== 1 + ? max.toString() + : undefined + ); + }} + subText={intl.formatMessage(messages.ratingText, { + minValue: currentFilters.voteAverageGte ?? 1, + maxValue: currentFilters.voteAverageLte ?? 10, + })} + /> +
+
+ +
+
+
+ ); +}; + +export default FilterSlideover; diff --git a/src/components/Discover/MovieGenreSlider/index.tsx b/src/components/Discover/MovieGenreSlider/index.tsx index b411a7d71..106d14a51 100644 --- a/src/components/Discover/MovieGenreSlider/index.tsx +++ b/src/components/Discover/MovieGenreSlider/index.tsx @@ -43,7 +43,7 @@ const MovieGenreSlider = () => { image={`https://image.tmdb.org/t/p/w1280_filter(duotone,${ genreColorMap[genre.id] ?? genreColorMap[0] })${genre.backdrops[4]}`} - url={`/discover/movies/genre/${genre.id}`} + url={`/discover/movies?genre=${genre.id}`} /> ))} placeholder={} diff --git a/src/components/Discover/TvGenreSlider/index.tsx b/src/components/Discover/TvGenreSlider/index.tsx index f8c74195d..34dfd1c74 100644 --- a/src/components/Discover/TvGenreSlider/index.tsx +++ b/src/components/Discover/TvGenreSlider/index.tsx @@ -43,7 +43,7 @@ const TvGenreSlider = () => { image={`https://image.tmdb.org/t/p/w1280_filter(duotone,${ genreColorMap[genre.id] ?? genreColorMap[0] })${genre.backdrops[4]}`} - url={`/discover/tv/genre/${genre.id}`} + url={`/discover/tv?genre=${genre.id}`} /> ))} placeholder={} diff --git a/src/components/Discover/constants.ts b/src/components/Discover/constants.ts index 3cef94dbb..80faf5c5e 100644 --- a/src/components/Discover/constants.ts +++ b/src/components/Discover/constants.ts @@ -1,4 +1,6 @@ +import type { ParsedUrlQuery } from 'querystring'; import { defineMessages } from 'react-intl'; +import { z } from 'zod'; type AvailableColors = | 'black' @@ -85,3 +87,104 @@ export const sliderTitles = defineMessages({ tmdbstudio: 'TMDB Studio', tmdbsearch: 'TMDB Search', }); + +export const QueryFilterOptions = z.object({ + sortBy: z.string().optional(), + primaryReleaseDateGte: z.string().optional(), + primaryReleaseDateLte: z.string().optional(), + firstAirDateGte: z.string().optional(), + firstAirDateLte: z.string().optional(), + studio: z.string().optional(), + genre: z.string().optional(), + keywords: z.string().optional(), + language: z.string().optional(), + withRuntimeGte: z.string().optional(), + withRuntimeLte: z.string().optional(), + voteAverageGte: z.string().optional(), + voteAverageLte: z.string().optional(), +}); + +export type FilterOptions = z.infer; + +export const prepareFilterValues = ( + inputValues: ParsedUrlQuery +): FilterOptions => { + const filterValues: FilterOptions = {}; + + const values = QueryFilterOptions.parse(inputValues); + + if (values.sortBy) { + filterValues.sortBy = values.sortBy; + } + + if (values.primaryReleaseDateGte) { + filterValues.primaryReleaseDateGte = values.primaryReleaseDateGte; + } + + if (values.primaryReleaseDateLte) { + filterValues.primaryReleaseDateLte = values.primaryReleaseDateLte; + } + + if (values.firstAirDateGte) { + filterValues.firstAirDateGte = values.firstAirDateGte; + } + + if (values.firstAirDateLte) { + filterValues.firstAirDateLte = values.firstAirDateLte; + } + + if (values.studio) { + filterValues.studio = values.studio; + } + + if (values.genre) { + filterValues.genre = values.genre; + } + + if (values.keywords) { + filterValues.keywords = values.keywords; + } + + if (values.language) { + filterValues.language = values.language; + } + + if (values.withRuntimeGte) { + filterValues.withRuntimeGte = values.withRuntimeGte; + } + + if (values.withRuntimeLte) { + filterValues.withRuntimeLte = values.withRuntimeLte; + } + + if (values.voteAverageGte) { + filterValues.voteAverageGte = values.voteAverageGte; + } + + if (values.voteAverageLte) { + filterValues.voteAverageLte = values.voteAverageLte; + } + + return filterValues; +}; + +export const countActiveFilters = (filterValues: FilterOptions): number => { + let totalCount = 0; + const clonedFilters = Object.assign({}, filterValues); + + if (clonedFilters.voteAverageGte || filterValues.voteAverageLte) { + totalCount += 1; + delete clonedFilters.voteAverageGte; + delete clonedFilters.voteAverageLte; + } + + if (clonedFilters.withRuntimeGte || filterValues.withRuntimeLte) { + totalCount += 1; + delete clonedFilters.withRuntimeGte; + delete clonedFilters.withRuntimeLte; + } + + totalCount += Object.keys(clonedFilters).length; + + return totalCount; +}; diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 920acc1bf..64ddf80c3 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -109,6 +109,12 @@ const Discover = () => { } }; + const now = new Date(); + const offset = now.getTimezoneOffset(); + const upcomingDate = new Date(now.getTime() - offset * 60 * 1000) + .toISOString() + .split('T')[0]; + if (!discoverData && !discoverError) { return ; } @@ -240,8 +246,9 @@ const Discover = () => { ); break; @@ -266,8 +273,9 @@ const Discover = () => { ); break; @@ -285,7 +293,7 @@ const Discover = () => { ? `keywords=${encodeURIExtraParams(slider.data)}` : '' } - linkUrl={`/discover/movies/keyword?keywords=${slider.data}`} + linkUrl={`/discover/movies?keywords=${slider.data}`} /> ); break; @@ -300,7 +308,7 @@ const Discover = () => { ? `keywords=${encodeURIExtraParams(slider.data)}` : '' } - linkUrl={`/discover/tv/keyword?keywords=${slider.data}`} + linkUrl={`/discover/tv?keywords=${slider.data}`} /> ); break; @@ -309,8 +317,9 @@ const Discover = () => { ); break; @@ -319,8 +328,9 @@ const Discover = () => { ); break; diff --git a/src/components/Layout/Sidebar/index.tsx b/src/components/Layout/Sidebar/index.tsx index 2ef9f1f53..de2fd8cdc 100644 --- a/src/components/Layout/Sidebar/index.tsx +++ b/src/components/Layout/Sidebar/index.tsx @@ -6,7 +6,9 @@ import { ClockIcon, CogIcon, ExclamationTriangleIcon, + FilmIcon, SparklesIcon, + TvIcon, UsersIcon, XMarkIcon, } from '@heroicons/react/24/outline'; @@ -17,6 +19,8 @@ import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ dashboard: 'Discover', + browsemovies: 'Movies', + browsetv: 'Series', requests: 'Requests', issues: 'Issues', users: 'Users', @@ -44,7 +48,19 @@ const SidebarLinks: SidebarLinkProps[] = [ href: '/', messagesKey: 'dashboard', svgIcon: , - activeRegExp: /^\/(discover\/?(movies|tv)?)?$/, + activeRegExp: /^\/(discover\/?)?$/, + }, + { + href: '/discover/movies', + messagesKey: 'browsemovies', + svgIcon: , + activeRegExp: /^\/discover\/movies$/, + }, + { + href: '/discover/tv', + messagesKey: 'browsetv', + svgIcon: , + activeRegExp: /^\/discover\/tv$/, }, { href: '/requests', diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index 2fd86f6f6..1b339b7f5 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -223,7 +223,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { movieAttributes.push( data.genres .map((g) => ( - + {g.name} )) @@ -458,7 +458,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => {
{data.keywords.map((keyword) => ( diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx new file mode 100644 index 000000000..87634d39b --- /dev/null +++ b/src/components/Selector/index.tsx @@ -0,0 +1,261 @@ +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import type { + TmdbCompanySearchResponse, + TmdbGenre, + TmdbKeywordSearchResponse, +} from '@server/api/themoviedb/interfaces'; +import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; +import type { Keyword, ProductionCompany } from '@server/models/common'; +import axios from 'axios'; +import { useEffect, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import type { MultiValue, SingleValue } from 'react-select'; +import AsyncSelect from 'react-select/async'; + +const messages = defineMessages({ + searchKeywords: 'Search keywords…', + searchGenres: 'Select genres…', + searchStudios: 'Search studios…', + starttyping: 'Starting typing to search.', + nooptions: 'No results.', +}); + +type SingleVal = { + label: string; + value: number; +}; + +type BaseSelectorMultiProps = { + defaultValue?: string; + isMulti: true; + onChange: (value: MultiValue | null) => void; +}; + +type BaseSelectorSingleProps = { + defaultValue?: string; + isMulti?: false; + onChange: (value: SingleValue | null) => void; +}; + +export const CompanySelector = ({ + defaultValue, + isMulti, + onChange, +}: BaseSelectorSingleProps | BaseSelectorMultiProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultCompany = async (): Promise => { + if (!defaultValue) { + return; + } + + const response = await axios.get( + `/api/v1/studio/${defaultValue}` + ); + + const studio = response.data; + + setDefaultDataValue([ + { + label: studio.name ?? '', + value: studio.id ?? 0, + }, + ]); + }; + + loadDefaultCompany(); + }, [defaultValue]); + + const loadCompanyOptions = async (inputValue: string) => { + if (inputValue === '') { + return []; + } + + const results = await axios.get( + '/api/v1/search/company', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + loadOptions={loadCompanyOptions} + placeholder={intl.formatMessage(messages.searchStudios)} + onChange={(value) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; + +type GenreSelectorProps = (BaseSelectorMultiProps | BaseSelectorSingleProps) & { + type: 'movie' | 'tv'; +}; + +export const GenreSelector = ({ + isMulti, + defaultValue, + onChange, + type, +}: GenreSelectorProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultGenre = async (): Promise => { + if (!defaultValue) { + return; + } + + const genres = defaultValue.split(','); + + const response = await axios.get(`/api/v1/genres/${type}`); + + const genreData = genres + .filter((genre) => response.data.find((gd) => gd.id === Number(genre))) + .map((g) => response.data.find((gd) => gd.id === Number(g))) + .map((g) => ({ + label: g?.name ?? '', + value: g?.id ?? 0, + })); + + setDefaultDataValue(genreData); + }; + + loadDefaultGenre(); + }, [defaultValue, type]); + + const loadGenreOptions = async () => { + const results = await axios.get( + `/api/v1/discover/genreslider/${type}` + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; + +export const KeywordSelector = ({ + isMulti, + defaultValue, + onChange, +}: BaseSelectorMultiProps | BaseSelectorSingleProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultKeywords = async (): Promise => { + if (!defaultValue) { + return; + } + + const keywords = await Promise.all( + defaultValue.split(',').map(async (keywordId) => { + const keyword = await axios.get( + `/api/v1/keyword/${keywordId}` + ); + + return keyword.data; + }) + ); + + setDefaultDataValue( + keywords.map((keyword) => ({ + label: keyword.name, + value: keyword.id, + })) + ); + }; + + loadDefaultKeywords(); + }, [defaultValue]); + + const loadKeywordOptions = async (inputValue: string) => { + const results = await axios.get( + '/api/v1/search/keyword', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + defaultValue={defaultDataValue} + loadOptions={loadKeywordOptions} + placeholder={intl.formatMessage(messages.searchKeywords)} + onChange={(value) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 14185e879..d3a601720 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -206,7 +206,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => { seriesAttributes.push( data.genres .map((g) => ( - + {g.name} )) @@ -499,7 +499,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => {
{data.keywords.map((keyword) => ( diff --git a/src/hooks/useDiscover.ts b/src/hooks/useDiscover.ts index 96ea9cc71..163a1cc5e 100644 --- a/src/hooks/useDiscover.ts +++ b/src/hooks/useDiscover.ts @@ -1,3 +1,4 @@ +import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; import { MediaStatus } from '@server/constants/media'; import useSWRInfinite from 'swr/infinite'; import useSettings from './useSettings'; @@ -27,9 +28,13 @@ interface DiscoverResult { firstResultData?: BaseSearchResult & S; } -const useDiscover = >( +const useDiscover = < + T extends BaseMedia, + S = Record, + O = Record +>( endpoint: string, - options?: Record, + options?: O, { hideAvailable = true } = {} ): DiscoverResult => { const settings = useSettings(); @@ -47,7 +52,10 @@ const useDiscover = >( }; const finalQueryString = Object.keys(params) - .map((paramKey) => `${paramKey}=${params[paramKey]}`) + .map( + (paramKey) => + `${paramKey}=${encodeURIExtraParams(params[paramKey] as string)}` + ) .join('&'); return `${endpoint}?${finalQueryString}`; diff --git a/src/hooks/useUpdateQueryParams.ts b/src/hooks/useUpdateQueryParams.ts index e2ef801de..aadfaac22 100644 --- a/src/hooks/useUpdateQueryParams.ts +++ b/src/hooks/useUpdateQueryParams.ts @@ -132,3 +132,20 @@ export const useUpdateQueryParams = ( [filter, updateQueryParams] ); }; + +export const useBatchUpdateQueryParams = ( + filter: ParsedUrlQuery +): ((items: Record) => void) => { + const updateQueryParams = useQueryParams(); + + return useCallback( + (items: Record) => { + const query = { + ...filter, + ...items, + }; + updateQueryParams(query, 'replace'); + }, + [filter, updateQueryParams] + ); +}; diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 909554224..44736d2dc 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -30,17 +30,52 @@ "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Movies", "components.Discover.DiscoverMovieKeyword.keywordMovies": "{keywordTitle} Movies", "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} Movies", + "components.Discover.DiscoverMovies.activefilters": "{count, plural, one {# Active Filter} other {# Active Filters}}", + "components.Discover.DiscoverMovies.discovermovies": "Movies", + "components.Discover.DiscoverMovies.sortPopularityAsc": "Popularity Ascending", + "components.Discover.DiscoverMovies.sortPopularityDesc": "Popularity Descending", + "components.Discover.DiscoverMovies.sortReleaseDateAsc": "Release Date Ascending", + "components.Discover.DiscoverMovies.sortReleaseDateDesc": "Release Date Descending", + "components.Discover.DiscoverMovies.sortTitleAsc": "Title (A-Z) Ascending", + "components.Discover.DiscoverMovies.sortTitleDesc": "Title (Z-A) Descending", + "components.Discover.DiscoverMovies.sortTmdbRatingAsc": "TMDB Rating Ascending", + "components.Discover.DiscoverMovies.sortTmdbRatingDesc": "TMDB Rating Descending", "components.Discover.DiscoverNetwork.networkSeries": "{network} Series", "components.Discover.DiscoverSliderEdit.deletefail": "Failed to delete slider.", "components.Discover.DiscoverSliderEdit.deletesuccess": "Sucessfully deleted slider.", "components.Discover.DiscoverSliderEdit.enable": "Toggle Visibility", "components.Discover.DiscoverSliderEdit.remove": "Remove", "components.Discover.DiscoverStudio.studioMovies": "{studio} Movies", + "components.Discover.DiscoverTv.activefilters": "{count, plural, one {# Active Filter} other {# Active Filters}}", + "components.Discover.DiscoverTv.discovertv": "Series", + "components.Discover.DiscoverTv.sortFirstAirDateAsc": "First Air Date Ascending", + "components.Discover.DiscoverTv.sortFirstAirDateDesc": "First Air Date Descending", + "components.Discover.DiscoverTv.sortPopularityAsc": "Popularity Ascending", + "components.Discover.DiscoverTv.sortPopularityDesc": "Popularity Descending", + "components.Discover.DiscoverTv.sortTitleAsc": "Title (A-Z) Ascending", + "components.Discover.DiscoverTv.sortTitleDesc": "Title (Z-A) Descending", + "components.Discover.DiscoverTv.sortTmdbRatingAsc": "TMDB Rating Ascending", + "components.Discover.DiscoverTv.sortTmdbRatingDesc": "TMDB Rating Descending", "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Series", "components.Discover.DiscoverTvKeyword.keywordSeries": "{keywordTitle} Series", "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Series", "components.Discover.DiscoverWatchlist.discoverwatchlist": "Your Plex Watchlist", "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.FilterSlideover.activefilters": "{count, plural, one {# Active Filter} other {# Active Filters}}", + "components.Discover.FilterSlideover.clearfilters": "Clear Active Filters", + "components.Discover.FilterSlideover.filters": "Filters", + "components.Discover.FilterSlideover.firstAirDate": "First Air Date", + "components.Discover.FilterSlideover.from": "From", + "components.Discover.FilterSlideover.genres": "Genres", + "components.Discover.FilterSlideover.keywords": "Keywords", + "components.Discover.FilterSlideover.originalLanguage": "Original Language", + "components.Discover.FilterSlideover.ratingText": "Ratings between {minValue} and {maxValue}", + "components.Discover.FilterSlideover.releaseDate": "Release Date", + "components.Discover.FilterSlideover.runtime": "Runtime", + "components.Discover.FilterSlideover.runtimeText": "{minValue}-{maxValue} minute runtime", + "components.Discover.FilterSlideover.studio": "Studio", + "components.Discover.FilterSlideover.tmdbuserscore": "TMDB User Score", + "components.Discover.FilterSlideover.to": "To", "components.Discover.MovieGenreList.moviegenres": "Movie Genres", "components.Discover.MovieGenreSlider.moviegenres": "Movie Genres", "components.Discover.NetworkSlider.networks": "Networks", @@ -53,8 +88,6 @@ "components.Discover.createnewslider": "Create New Slider", "components.Discover.customizediscover": "Customize Discover", "components.Discover.discover": "Discover", - "components.Discover.discovermovies": "Popular Movies", - "components.Discover.discovertv": "Popular Series", "components.Discover.emptywatchlist": "Media added to your Plex Watchlist will appear here.", "components.Discover.moviegenres": "Movie Genres", "components.Discover.networks": "Networks", @@ -161,6 +194,8 @@ "components.LanguageSelector.originalLanguageDefault": "All Languages", "components.Layout.LanguagePicker.displaylanguage": "Display Language", "components.Layout.SearchInput.searchPlaceholder": "Search Movies & TV", + "components.Layout.Sidebar.browsemovies": "Movies", + "components.Layout.Sidebar.browsetv": "Series", "components.Layout.Sidebar.dashboard": "Discover", "components.Layout.Sidebar.issues": "Issues", "components.Layout.Sidebar.requests": "Requests", @@ -472,6 +507,11 @@ "components.ResetPassword.validationpasswordrequired": "You must provide a password", "components.Search.search": "Search", "components.Search.searchresults": "Search Results", + "components.Selector.nooptions": "No results.", + "components.Selector.searchGenres": "Select genres…", + "components.Selector.searchKeywords": "Search keywords…", + "components.Selector.searchStudios": "Search studios…", + "components.Selector.starttyping": "Starting typing to search.", "components.Settings.Notifications.NotificationsGotify.agentenabled": "Enable Agent", "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Gotify notification settings failed to save.", "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify notification settings saved successfully!", diff --git a/src/styles/globals.css b/src/styles/globals.css index 7e0900e0c..c61d5dce1 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -425,6 +425,34 @@ .react-select-container .react-select__placeholder { @apply text-sm text-gray-500; } + + .datepicker-wrapper > button { + @apply top-0; + } + + .datepicker-wrapper > div { + @apply fixed left-0 right-0 w-full px-4 md:w-auto; + } + + .datepicker-wrapper > div > div:nth-child(2) > div { + @apply !flex-col; + } + + .datepicker-wrapper > div > div:nth-child(2) > div > div > div { + @apply !w-full !min-w-full; + } + + .datepicker-wrapper > div > div:first-child { + @apply hidden; + } + + input[type='range']::-webkit-slider-thumb { + @apply rounded-full bg-indigo-500; + pointer-events: all; + width: 16px; + height: 16px; + -webkit-appearance: none; + } } @layer utilities { diff --git a/tailwind.config.js b/tailwind.config.js index 96b5faadb..cd0bf1e4f 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -4,7 +4,11 @@ const defaultTheme = require('tailwindcss/defaultTheme'); /** @type {import('tailwindcss').Config} */ module.exports = { mode: 'jit', - content: ['./src/pages/**/*.{ts,tsx}', './src/components/**/*.{ts,tsx}'], + content: [ + './node_modules/react-tailwindcss-datepicker/dist/index.esm.js', + './src/pages/**/*.{ts,tsx}', + './src/components/**/*.{ts,tsx}', + ], theme: { extend: { transitionProperty: { diff --git a/yarn.lock b/yarn.lock index 03338c4a6..1da72e83b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5822,7 +5822,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -dayjs@^1.10.4: +dayjs@1.11.7, dayjs@^1.10.4: version "1.11.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== @@ -11304,6 +11304,11 @@ react-spring@9.6.1: "@react-spring/web" "~9.6.1" "@react-spring/zdog" "~9.6.1" +react-tailwindcss-datepicker-sct@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/react-tailwindcss-datepicker-sct/-/react-tailwindcss-datepicker-sct-1.3.4.tgz#e7e91c390a40822abca62e7259cee8156616d7d0" + integrity sha512-QlLekGZDbmW2DPGS33c4gfIxkk4gcgu4sRzBIm4/mZxfHuo7J+GR6SBVNIb5Xh8aCLlGtgyLqD+o0UmOVFIc4w== + react-toast-notifications@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/react-toast-notifications/-/react-toast-notifications-2.5.1.tgz#30216eedb5608ec69719a818b9a2e09283e90074" @@ -13579,3 +13584,8 @@ yup@0.32.11: nanoclone "^0.2.1" property-expr "^2.0.4" toposort "^2.0.2" + +zod@3.20.2: + version "3.20.2" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.2.tgz#068606642c8f51b3333981f91c0a8ab37dfc2807" + integrity sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ== From c2a1a20a3bb20039a1936c7fe0ecb9e8311a0aea Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Fri, 13 Jan 2023 20:42:03 +0900 Subject: [PATCH 41/65] fix: include new package calendar css in build (#3235) --- tailwind.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tailwind.config.js b/tailwind.config.js index cd0bf1e4f..b8b70fd54 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -5,7 +5,7 @@ const defaultTheme = require('tailwindcss/defaultTheme'); module.exports = { mode: 'jit', content: [ - './node_modules/react-tailwindcss-datepicker/dist/index.esm.js', + './node_modules/react-tailwindcss-datepicker-sct/dist/index.esm.js', './src/pages/**/*.{ts,tsx}', './src/components/**/*.{ts,tsx}', ], From a343f8ad915491a9c81512c7e541a1dac8906025 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Fri, 13 Jan 2023 18:21:54 -0500 Subject: [PATCH 42/65] fix: prevent double encode if we are on /search endpoint (#3238) --- .../Discover/CreateSlider/index.tsx | 2 +- .../Discover/DiscoverMovieKeyword/index.tsx | 3 +-- .../Discover/DiscoverTvKeyword/index.tsx | 3 +-- src/components/Discover/index.tsx | 2 +- src/components/Selector/index.tsx | 2 +- src/hooks/useDiscover.ts | 18 ++++++++++++++- src/hooks/useSearchInput.ts | 23 +++---------------- 7 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/components/Discover/CreateSlider/index.tsx b/src/components/Discover/CreateSlider/index.tsx index 3f70c980e..24b9d3fdc 100644 --- a/src/components/Discover/CreateSlider/index.tsx +++ b/src/components/Discover/CreateSlider/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import Tooltip from '@app/components/Common/Tooltip'; import { sliderTitles } from '@app/components/Discover/constants'; import MediaSlider from '@app/components/MediaSlider'; -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; import type { TmdbCompanySearchResponse, TmdbGenre, diff --git a/src/components/Discover/DiscoverMovieKeyword/index.tsx b/src/components/Discover/DiscoverMovieKeyword/index.tsx index 9d22ba645..7ae2e989f 100644 --- a/src/components/Discover/DiscoverMovieKeyword/index.tsx +++ b/src/components/Discover/DiscoverMovieKeyword/index.tsx @@ -1,8 +1,7 @@ import Header from '@app/components/Common/Header'; import ListView from '@app/components/Common/ListView'; import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import useDiscover, { encodeURIExtraParams } from '@app/hooks/useDiscover'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; diff --git a/src/components/Discover/DiscoverTvKeyword/index.tsx b/src/components/Discover/DiscoverTvKeyword/index.tsx index ee6186f29..0c0411386 100644 --- a/src/components/Discover/DiscoverTvKeyword/index.tsx +++ b/src/components/Discover/DiscoverTvKeyword/index.tsx @@ -1,8 +1,7 @@ import Header from '@app/components/Common/Header'; import ListView from '@app/components/Common/ListView'; import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import useDiscover, { encodeURIExtraParams } from '@app/hooks/useDiscover'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 64ddf80c3..f7f5aeb79 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -14,7 +14,7 @@ import RecentRequestsSlider from '@app/components/Discover/RecentRequestsSlider' import StudioSlider from '@app/components/Discover/StudioSlider'; import TvGenreSlider from '@app/components/Discover/TvGenreSlider'; import MediaSlider from '@app/components/MediaSlider'; -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { Transition } from '@headlessui/react'; diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx index 87634d39b..3a5227793 100644 --- a/src/components/Selector/index.tsx +++ b/src/components/Selector/index.tsx @@ -1,4 +1,4 @@ -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; import type { TmdbCompanySearchResponse, TmdbGenre, diff --git a/src/hooks/useDiscover.ts b/src/hooks/useDiscover.ts index 163a1cc5e..f9aff8e29 100644 --- a/src/hooks/useDiscover.ts +++ b/src/hooks/useDiscover.ts @@ -1,4 +1,3 @@ -import { encodeURIExtraParams } from '@app/hooks/useSearchInput'; import { MediaStatus } from '@server/constants/media'; import useSWRInfinite from 'swr/infinite'; import useSettings from './useSettings'; @@ -28,6 +27,23 @@ interface DiscoverResult { firstResultData?: BaseSearchResult & S; } +const extraEncodes: [RegExp, string][] = [ + [/\(/g, '%28'], + [/\)/g, '%29'], + [/!/g, '%21'], + [/\*/g, '%2A'], +]; + +export const encodeURIExtraParams = (string: string): string => { + let finalString = encodeURIComponent(string); + + extraEncodes.forEach((encode) => { + finalString = finalString.replace(encode[0], encode[1]); + }); + + return finalString; +}; + const useDiscover = < T extends BaseMedia, S = Record, diff --git a/src/hooks/useSearchInput.ts b/src/hooks/useSearchInput.ts index a27a6d109..a60b28c07 100644 --- a/src/hooks/useSearchInput.ts +++ b/src/hooks/useSearchInput.ts @@ -8,23 +8,6 @@ import useDebouncedState from './useDebouncedState'; type Url = string | UrlObject; -const extraEncodes: [RegExp, string][] = [ - [/\(/g, '%28'], - [/\)/g, '%29'], - [/!/g, '%21'], - [/\*/g, '%2A'], -]; - -export const encodeURIExtraParams = (string: string): string => { - let finalString = encodeURIComponent(string); - - extraEncodes.forEach((encode) => { - finalString = finalString.replace(encode[0], encode[1]); - }); - - return finalString; -}; - interface SearchObject { searchValue: string; searchOpen: boolean; @@ -55,7 +38,7 @@ const useSearchInput = (): SearchObject => { pathname: router.pathname, query: { ...router.query, - query: encodeURIExtraParams(debouncedValue), + query: debouncedValue, }, }); } else { @@ -63,7 +46,7 @@ const useSearchInput = (): SearchObject => { router .push({ pathname: '/search', - query: { query: encodeURIExtraParams(debouncedValue) }, + query: { query: debouncedValue }, }) .then(() => window.scrollTo(0, 0)); } @@ -106,7 +89,7 @@ const useSearchInput = (): SearchObject => { * is on /search */ useEffect(() => { - if (router.query.query !== encodeURIExtraParams(debouncedValue)) { + if (router.query.query !== debouncedValue) { setSearchValue( router.query.query ? decodeURIComponent(router.query.query as string) From a672b324ec391a20f6f3a1daed82a8d276a52c2c Mon Sep 17 00:00:00 2001 From: aedelbro <36162221+aedelbro@users.noreply.github.com> Date: Fri, 13 Jan 2023 20:10:38 -0500 Subject: [PATCH 43/65] feat(ui): add episode number to front of episode name in season details (#3086) --- src/components/TvDetails/Season/index.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/TvDetails/Season/index.tsx b/src/components/TvDetails/Season/index.tsx index c4c573009..37b18bc06 100644 --- a/src/components/TvDetails/Season/index.tsx +++ b/src/components/TvDetails/Season/index.tsx @@ -44,7 +44,9 @@ const Season = ({ seasonNumber, tvId }: SeasonProps) => { >
-

{episode.name}

+

+ {episode.episodeNumber} - {episode.name} +

{episode.airDate && ( )} From 1bf0103422433b96ee71dd4664707d91b2415baa Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 10:11:30 +0900 Subject: [PATCH 44/65] docs: add aedelbro as a contributor for code (#3240) [skip ci] * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++ README.md | 169 ++++++++++++++++++++++---------------------- 2 files changed, 94 insertions(+), 84 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4edfe8a0d..c57826d68 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -764,6 +764,15 @@ "contributions": [ "doc" ] + }, + { + "login": "aedelbro", + "name": "aedelbro", + "avatar_url": "https://avatars.githubusercontent.com/u/36162221?v=4", + "profile": "https://github.com/aedelbro", + "contributions": [ + "code" + ] } ], "badgeTemplate": "
\"All-orange.svg\"/>", diff --git a/README.md b/README.md index 34c29ff86..ae82f5489 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Translation status GitHub -All Contributors +All Contributors

@@ -75,111 +75,112 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + +
sct
sct

💻 🎨 🤔
Alex Zoitos
Alex Zoitos

💻
Brandon Cohen
Brandon Cohen

💻 📖
Ahreluth
Ahreluth

🌍
KovalevArtem
KovalevArtem

🌍
GiyomuWeb
GiyomuWeb

🌍
Angry Cuban
Angry Cuban

📖
sct
sct

💻 🎨 🤔
Alex Zoitos
Alex Zoitos

💻
Brandon Cohen
Brandon Cohen

💻 📖
Ahreluth
Ahreluth

🌍
KovalevArtem
KovalevArtem

🌍
GiyomuWeb
GiyomuWeb

🌍
Angry Cuban
Angry Cuban

📖
jvennik
jvennik

🌍
darknessgp
darknessgp

💻
salty
salty

🚇
Shutruk
Shutruk

🌍
Krystian Charubin
Krystian Charubin

🎨
Kieron Boswell
Kieron Boswell

💻
samwiseg0
samwiseg0

💬 🚇
jvennik
jvennik

🌍
darknessgp
darknessgp

💻
salty
salty

🚇
Shutruk
Shutruk

🌍
Krystian Charubin
Krystian Charubin

🎨
Kieron Boswell
Kieron Boswell

💻
samwiseg0
samwiseg0

💬 🚇
ecelebi29
ecelebi29

💻 📖
Mārtiņš Možeiko
Mārtiņš Možeiko

💻
mazzetta86
mazzetta86

🌍
Paul Hagedorn
Paul Hagedorn

🌍
Shagon94
Shagon94

🌍
sebstrgg
sebstrgg

🌍
Danshil Mungur
Danshil Mungur

💻 📖
ecelebi29
ecelebi29

💻 📖
Mārtiņš Možeiko
Mārtiņš Možeiko

💻
mazzetta86
mazzetta86

🌍
Paul Hagedorn
Paul Hagedorn

🌍
Shagon94
Shagon94

🌍
sebstrgg
sebstrgg

🌍
Danshil Mungur
Danshil Mungur

💻 📖
doob187
doob187

🚇
johnpyp
johnpyp

💻
Jakob Ankarhem
Jakob Ankarhem

📖 💻 🌍
Jayesh
Jayesh

💻
flying-sausages
flying-sausages

📖
hirenshah
hirenshah

📖
TheCatLady
TheCatLady

💻 🌍 📖
doob187
doob187

🚇
johnpyp
johnpyp

💻
Jakob Ankarhem
Jakob Ankarhem

📖 💻 🌍
Jayesh
Jayesh

💻
flying-sausages
flying-sausages

📖
hirenshah
hirenshah

📖
TheCatLady
TheCatLady

💻 🌍 📖
Chris Pritchard
Chris Pritchard

💻 📖
Tamberlox
Tamberlox

🌍
David
David

💻
Douglas Parker
Douglas Parker

📖
Daniel Carter
Daniel Carter

💻
nuro
nuro

📖
ᗪєνιη ᗷυнʟ
ᗪєνιη ᗷυнʟ

🚇
Chris Pritchard
Chris Pritchard

💻 📖
Tamberlox
Tamberlox

🌍
David
David

💻
Douglas Parker
Douglas Parker

📖
Daniel Carter
Daniel Carter

💻
nuro
nuro

📖
ᗪєνιη ᗷυнʟ
ᗪєνιη ᗷυнʟ

🚇
JonnyWong16
JonnyWong16

📖
Roxedus
Roxedus

📖
WoisWoi
WoisWoi

🌍
HubDuck
HubDuck

🌍 📖
costaht
costaht

📖 🌍
Shjosan
Shjosan

🌍
kobaubarr
kobaubarr

🌍
JonnyWong16
JonnyWong16

📖
Roxedus
Roxedus

📖
WoisWoi
WoisWoi

🌍
HubDuck
HubDuck

🌍 📖
costaht
costaht

📖 🌍
Shjosan
Shjosan

🌍
kobaubarr
kobaubarr

🌍
Ricardo González
Ricardo González

🌍
Torkil
Torkil

🌍
Jagandeep Brar
Jagandeep Brar

📖
dtalens
dtalens

🌍
Alex Cortelyou
Alex Cortelyou

💻
Jono Cairns
Jono Cairns

💻
DJScias
DJScias

🌍
Ricardo González
Ricardo González

🌍
Torkil
Torkil

🌍
Jagandeep Brar
Jagandeep Brar

📖
dtalens
dtalens

🌍
Alex Cortelyou
Alex Cortelyou

💻
Jono Cairns
Jono Cairns

💻
DJScias
DJScias

🌍
Dabu-dot
Dabu-dot

🌍
Jabster28
Jabster28

💻
littlerooster
littlerooster

🌍
Dustin Hildebrandt
Dustin Hildebrandt

💻
Bruno Guerreiro
Bruno Guerreiro

🌍
Alexander Neuhäuser
Alexander Neuhäuser

🌍
Livio
Livio

🎨
Dabu-dot
Dabu-dot

🌍
Jabster28
Jabster28

💻
littlerooster
littlerooster

🌍
Dustin Hildebrandt
Dustin Hildebrandt

💻
Bruno Guerreiro
Bruno Guerreiro

🌍
Alexander Neuhäuser
Alexander Neuhäuser

🌍
Livio
Livio

🎨
tangentThought
tangentThought

💻
Nicolás Espinoza
Nicolás Espinoza

💻
sootylunatic
sootylunatic

🌍
JoKerIsCraZy
JoKerIsCraZy

🌍
Daddie0
Daddie0

🌍
Simone
Simone

🌍
Seohyun Joo
Seohyun Joo

🌍
tangentThought
tangentThought

💻
Nicolás Espinoza
Nicolás Espinoza

💻
sootylunatic
sootylunatic

🌍
JoKerIsCraZy
JoKerIsCraZy

🌍
Daddie0
Daddie0

🌍
Simone
Simone

🌍
Seohyun Joo
Seohyun Joo

🌍
Sergey
Sergey

🌍
Shaaft
Shaaft

🌍
sr093906
sr093906

🌍
Nackophilz
Nackophilz

🌍
Sean Chambers
Sean Chambers

💻
deniscerri
deniscerri

🌍
tomgacz
tomgacz

🌍
Sergey
Sergey

🌍
Shaaft
Shaaft

🌍
sr093906
sr093906

🌍
Nackophilz
Nackophilz

🌍
Sean Chambers
Sean Chambers

💻
deniscerri
deniscerri

🌍
tomgacz
tomgacz

🌍
Andersborrits
Andersborrits

🌍
Maxent
Maxent

🌍
Samuel Bartík
Samuel Bartík

💻
Chun Yeung Wong
Chun Yeung Wong

💻
TheMeanCanEHdian
TheMeanCanEHdian

💻
Gylesie
Gylesie

💻
Fhd-pro
Fhd-pro

🌍
Andersborrits
Andersborrits

🌍
Maxent
Maxent

🌍
Samuel Bartík
Samuel Bartík

💻
Chun Yeung Wong
Chun Yeung Wong

💻
TheMeanCanEHdian
TheMeanCanEHdian

💻
Gylesie
Gylesie

💻
Fhd-pro
Fhd-pro

🌍
PovilasID
PovilasID

🌍
byakurau
byakurau

🌍
miknii
miknii

🌍
Mackenzie
Mackenzie

💻
soup
soup

📖
ceptonit
ceptonit

📖
PovilasID
PovilasID

🌍
byakurau
byakurau

🌍
miknii
miknii

🌍
Mackenzie
Mackenzie

💻
soup
soup

📖
ceptonit
ceptonit

📖
aedelbro
aedelbro

💻
From 3aefddd48834d86150d5f5cceb2d08af3a78847b Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Fri, 13 Jan 2023 21:40:39 -0500 Subject: [PATCH 45/65] fix: screen would zoom on mobile if date picker input was selected (#3241) --- src/components/Discover/FilterSlideover/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Discover/FilterSlideover/index.tsx b/src/components/Discover/FilterSlideover/index.tsx index 5a431f698..52d550fd1 100644 --- a/src/components/Discover/FilterSlideover/index.tsx +++ b/src/components/Discover/FilterSlideover/index.tsx @@ -95,7 +95,7 @@ const FilterSlideover = ({ useRange={false} asSingle containerClassName="datepicker-wrapper" - inputClassName="pr-1 sm:pr-4" + inputClassName="pr-1 sm:pr-4 text-base leading-5" />
@@ -116,7 +116,7 @@ const FilterSlideover = ({ useRange={false} asSingle containerClassName="datepicker-wrapper" - inputClassName="pr-1 sm:pr-4" + inputClassName="pr-1 sm:pr-4 text-base leading-5" />
From cb650745f6a33e69391a633e6d272831f314e098 Mon Sep 17 00:00:00 2001 From: Danshil Kokil Mungur Date: Sun, 15 Jan 2023 11:32:38 +0400 Subject: [PATCH 46/65] fix(request): mark request as approved if media is already available when retrying failed request (#3244) --- server/entity/MediaRequest.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts index eefbc11f3..fad97ef6b 100644 --- a/server/entity/MediaRequest.ts +++ b/server/entity/MediaRequest.ts @@ -767,7 +767,16 @@ export class MediaRequest { if ( media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE ) { - throw new Error('Media already available'); + logger.warn('Media already exists, marking request as APPROVED', { + label: 'Media Request', + requestId: this.id, + mediaId: this.media.id, + }); + + const requestRepository = getRepository(MediaRequest); + this.status = MediaRequestStatus.APPROVED; + await requestRepository.save(this); + return; } const radarrMovieOptions: RadarrMovieOptions = { @@ -908,7 +917,16 @@ export class MediaRequest { if ( media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE ) { - throw new Error('Media already available'); + logger.warn('Media already exists, marking request as APPROVED', { + label: 'Media Request', + requestId: this.id, + mediaId: this.media.id, + }); + + const requestRepository = getRepository(MediaRequest); + this.status = MediaRequestStatus.APPROVED; + await requestRepository.save(this); + return; } const tmdb = new TheMovieDb(); From 1154156459403494e8daf0c89a3ba356aeea1d97 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Mon, 16 Jan 2023 17:05:21 +0900 Subject: [PATCH 47/65] feat: add streaming services filter (#3247) * feat: add streaming services filter * fix: count watch region/provider as one filter --- overseerr-api.yml | 97 ++++++++- server/api/themoviedb/index.ts | 92 ++++++++ server/api/themoviedb/interfaces.ts | 6 + server/routes/discover.ts | 6 + server/routes/index.ts | 61 ++++++ .../Discover/FilterSlideover/index.tsx | 26 +++ src/components/Discover/constants.ts | 16 ++ src/components/RegionSelector/index.tsx | 50 +++-- src/components/Selector/index.tsx | 199 +++++++++++++++++- src/hooks/useUpdateQueryParams.ts | 4 +- src/i18n/locale/en.json | 3 + 11 files changed, 532 insertions(+), 28 deletions(-) diff --git a/overseerr-api.yml b/overseerr-api.yml index 58b9b41fc..ef31c749d 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -26,8 +26,8 @@ tags: description: Endpoints related to retrieving movies and their details. - name: tv description: Endpoints related to retrieving TV series and their details. - - name: keyword - description: Endpoints related to getting keywords and their details. + - name: other + description: Endpoints related to other TMDB data - name: person description: Endpoints related to retrieving person details. - name: media @@ -1820,6 +1820,15 @@ components: - enabled - title - data + WatchProviderRegion: + type: object + properties: + iso_3166_1: + type: string + english_name: + type: string + native_name: + type: string securitySchemes: cookieAuth: type: apiKey @@ -4177,6 +4186,16 @@ paths: schema: type: number example: 10 + - in: query + name: watchRegion + schema: + type: string + example: US + - in: query + name: watchProviders + schema: + type: string + example: 8|9 responses: '200': description: Results @@ -4446,6 +4465,16 @@ paths: schema: type: number example: 10 + - in: query + name: watchRegion + schema: + type: string + example: US + - in: query + name: watchProviders + schema: + type: string + example: 8|9 responses: '200': description: Results @@ -6250,7 +6279,7 @@ paths: description: | Returns a single keyword in JSON format. tags: - - keyword + - other parameters: - in: path name: keywordId @@ -6265,6 +6294,68 @@ paths: application/json: schema: $ref: '#/components/schemas/Keyword' + /watchproviders/regions: + get: + summary: Get watch provider regions + description: | + Returns a list of all available watch provider regions. + tags: + - other + responses: + '200': + description: Watch provider regions returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderRegion' + /watchproviders/movies: + get: + summary: Get watch provider movies + description: | + Returns a list of all available watch providers for movies. + tags: + - other + parameters: + - in: query + name: watchRegion + required: true + schema: + type: string + example: US + responses: + '200': + description: Watch providers for movies returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderDetails' + /watchproviders/tv: + get: + summary: Get watch provider series + description: | + Returns a list of all available watch providers for series. + tags: + - other + parameters: + - in: query + name: watchRegion + required: true + schema: + type: string + example: US + responses: + '200': + description: Watch providers for series returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderDetails' security: - cookieAuth: [] - apiKey: [] diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index c6d0d29f1..7aad32c1e 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -22,6 +22,8 @@ import type { TmdbSeasonWithEpisodes, TmdbTvDetails, TmdbUpcomingMoviesResponse, + TmdbWatchProviderDetails, + TmdbWatchProviderRegion, } from './interfaces'; interface SearchOptions { @@ -68,6 +70,8 @@ interface DiscoverMovieOptions { studio?: string; keywords?: string; sortBy?: SortOptions; + watchRegion?: string; + watchProviders?: string; } interface DiscoverTvOptions { @@ -85,6 +89,8 @@ interface DiscoverTvOptions { network?: number; keywords?: string; sortBy?: SortOptions; + watchRegion?: string; + watchProviders?: string; } class TheMovieDb extends ExternalAPI { @@ -454,6 +460,8 @@ class TheMovieDb extends ExternalAPI { withRuntimeLte, voteAverageGte, voteAverageLte, + watchProviders, + watchRegion, }: DiscoverMovieOptions = {}): Promise => { try { const defaultFutureDate = new Date( @@ -496,6 +504,8 @@ class TheMovieDb extends ExternalAPI { 'with_runtime.lte': withRuntimeLte, 'vote_average.gte': voteAverageGte, 'vote_average.lte': voteAverageLte, + watch_region: watchRegion, + with_watch_providers: watchProviders, }, }); @@ -520,6 +530,8 @@ class TheMovieDb extends ExternalAPI { withRuntimeLte, voteAverageGte, voteAverageLte, + watchProviders, + watchRegion, }: DiscoverTvOptions = {}): Promise => { try { const defaultFutureDate = new Date( @@ -562,6 +574,8 @@ class TheMovieDb extends ExternalAPI { 'with_runtime.lte': withRuntimeLte, 'vote_average.gte': voteAverageGte, 'vote_average.lte': voteAverageLte, + with_watch_providers: watchProviders, + watch_region: watchRegion, }, }); @@ -1017,6 +1031,84 @@ class TheMovieDb extends ExternalAPI { throw new Error(`[TMDB] Failed to search companies: ${e.message}`); } } + + public async getAvailableWatchProviderRegions({ + language, + }: { + language?: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderRegion[] }>( + '/watch/providers/regions', + { + params: { + language: language ?? this.originalLanguage, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch available watch regions: ${e.message}` + ); + } + } + + public async getMovieWatchProviders({ + language, + watchRegion, + }: { + language?: string; + watchRegion: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderDetails[] }>( + '/watch/providers/movie', + { + params: { + language: language ?? this.originalLanguage, + watch_region: watchRegion, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch movie watch providers: ${e.message}` + ); + } + } + + public async getTvWatchProviders({ + language, + watchRegion, + }: { + language?: string; + watchRegion: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderDetails[] }>( + '/watch/providers/tv', + { + params: { + language: language ?? this.originalLanguage, + watch_region: watchRegion, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch TV watch providers: ${e.message}` + ); + } + } } export default TheMovieDb; diff --git a/server/api/themoviedb/interfaces.ts b/server/api/themoviedb/interfaces.ts index 9a07d7697..955e1b12e 100644 --- a/server/api/themoviedb/interfaces.ts +++ b/server/api/themoviedb/interfaces.ts @@ -446,3 +446,9 @@ export interface TmdbCompany { export interface TmdbCompanySearchResponse extends TmdbPaginatedResponse { results: TmdbCompany[]; } + +export interface TmdbWatchProviderRegion { + iso_3166_1: string; + english_name: string; + native_name: string; +} diff --git a/server/routes/discover.ts b/server/routes/discover.ts index 079f37e10..ce9e3afff 100644 --- a/server/routes/discover.ts +++ b/server/routes/discover.ts @@ -65,6 +65,8 @@ const QueryFilterOptions = z.object({ voteAverageGte: z.coerce.string().optional(), voteAverageLte: z.coerce.string().optional(), network: z.coerce.string().optional(), + watchProviders: z.coerce.string().optional(), + watchRegion: z.coerce.string().optional(), }); export type FilterOptions = z.infer; @@ -93,6 +95,8 @@ discoverRoutes.get('/movies', async (req, res, next) => { withRuntimeLte: query.withRuntimeLte, voteAverageGte: query.voteAverageGte, voteAverageLte: query.voteAverageLte, + watchProviders: query.watchProviders, + watchRegion: query.watchRegion, }); const media = await Media.getRelatedMedia( @@ -366,6 +370,8 @@ discoverRoutes.get('/tv', async (req, res, next) => { withRuntimeLte: query.withRuntimeLte, voteAverageGte: query.voteAverageGte, voteAverageLte: query.voteAverageLte, + watchProviders: query.watchProviders, + watchRegion: query.watchRegion, }); const media = await Media.getRelatedMedia( diff --git a/server/routes/index.ts b/server/routes/index.ts index 8318bbfc0..f76f09fa0 100644 --- a/server/routes/index.ts +++ b/server/routes/index.ts @@ -11,6 +11,7 @@ import { Permission } from '@server/lib/permissions'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { checkUser, isAuthenticated } from '@server/middleware/auth'; +import { mapWatchProviderDetails } from '@server/models/common'; import { mapProductionCompany } from '@server/models/Movie'; import { mapNetwork } from '@server/models/Tv'; import settingsRoutes from '@server/routes/settings'; @@ -299,6 +300,66 @@ router.get('/keyword/:keywordId', async (req, res, next) => { } }); +router.get('/watchproviders/regions', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getAvailableWatchProviderRegions({}); + return res.status(200).json(result); + } catch (e) { + logger.debug('Something went wrong retrieving watch provider regions', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve watch provider regions.', + }); + } +}); + +router.get('/watchproviders/movies', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getMovieWatchProviders({ + watchRegion: req.query.watchRegion as string, + }); + + return res.status(200).json(mapWatchProviderDetails(result)); + } catch (e) { + logger.debug('Something went wrong retrieving movie watch providers', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve movie watch providers.', + }); + } +}); + +router.get('/watchproviders/tv', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getTvWatchProviders({ + watchRegion: req.query.watchRegion as string, + }); + + return res.status(200).json(mapWatchProviderDetails(result)); + } catch (e) { + logger.debug('Something went wrong retrieving tv watch providers', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve tv watch providers.', + }); + } +}); + router.get('/', (_req, res) => { return res.status(200).json({ api: 'Overseerr API', diff --git a/src/components/Discover/FilterSlideover/index.tsx b/src/components/Discover/FilterSlideover/index.tsx index 52d550fd1..10ee0fea2 100644 --- a/src/components/Discover/FilterSlideover/index.tsx +++ b/src/components/Discover/FilterSlideover/index.tsx @@ -8,6 +8,7 @@ import { CompanySelector, GenreSelector, KeywordSelector, + WatchProviderSelector, } from '@app/components/Selector'; import useSettings from '@app/hooks/useSettings'; import { @@ -35,6 +36,7 @@ const messages = defineMessages({ clearfilters: 'Clear Active Filters', tmdbuserscore: 'TMDB User Score', runtime: 'Runtime', + streamingservices: 'Streaming Services', }); type FilterSlideoverProps = { @@ -244,6 +246,30 @@ const FilterSlideover = ({ })} />
+ + {intl.formatMessage(messages.streamingservices)} + + Number(v)) ?? + [] + } + onChange={(region, providers) => { + if (providers.length) { + batchUpdateQueryParams({ + watchRegion: region, + watchProviders: providers.join('|'), + }); + } else { + batchUpdateQueryParams({ + watchRegion: undefined, + watchProviders: undefined, + }); + } + }} + />
+ )} + + )} + + ); +}; diff --git a/src/hooks/useUpdateQueryParams.ts b/src/hooks/useUpdateQueryParams.ts index aadfaac22..7b991267f 100644 --- a/src/hooks/useUpdateQueryParams.ts +++ b/src/hooks/useUpdateQueryParams.ts @@ -135,11 +135,11 @@ export const useUpdateQueryParams = ( export const useBatchUpdateQueryParams = ( filter: ParsedUrlQuery -): ((items: Record) => void) => { +): ((items: Record) => void) => { const updateQueryParams = useQueryParams(); return useCallback( - (items: Record) => { + (items: Record) => { const query = { ...filter, ...items, diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index 44736d2dc..72d58ca59 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -73,6 +73,7 @@ "components.Discover.FilterSlideover.releaseDate": "Release Date", "components.Discover.FilterSlideover.runtime": "Runtime", "components.Discover.FilterSlideover.runtimeText": "{minValue}-{maxValue} minute runtime", + "components.Discover.FilterSlideover.streamingservices": "Streaming Services", "components.Discover.FilterSlideover.studio": "Studio", "components.Discover.FilterSlideover.tmdbuserscore": "TMDB User Score", "components.Discover.FilterSlideover.to": "To", @@ -511,6 +512,8 @@ "components.Selector.searchGenres": "Select genres…", "components.Selector.searchKeywords": "Search keywords…", "components.Selector.searchStudios": "Search studios…", + "components.Selector.showless": "Show Less", + "components.Selector.showmore": "Show More", "components.Selector.starttyping": "Starting typing to search.", "components.Settings.Notifications.NotificationsGotify.agentenabled": "Enable Agent", "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Gotify notification settings failed to save.", From 6fd11cf4254e1a19310592bec78a6de52bc073a8 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Mon, 16 Jan 2023 21:04:55 +0900 Subject: [PATCH 48/65] fix: correct grid sizing for webkit on streaming services (#3248) --- src/components/Selector/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx index a477f436c..c49e486f5 100644 --- a/src/components/Selector/index.tsx +++ b/src/components/Selector/index.tsx @@ -342,7 +342,7 @@ export const WatchProviderSelector = ({ {isLoading ? ( ) : ( - <> +
{initialProviders.map((provider) => { const isActive = activeProvider.includes(provider.id); @@ -385,7 +385,7 @@ export const WatchProviderSelector = ({ })}
{showMore && otherProviders.length > 0 && ( -
+
{otherProviders.map((provider) => { const isActive = activeProvider.includes(provider.id); return ( @@ -429,7 +429,7 @@ export const WatchProviderSelector = ({ )} {otherProviders.length > 0 && ( )} - +
)} ); From 154f3e72efbf0b663358b3029156f54516f01a2f Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Mon, 16 Jan 2023 21:34:47 +0900 Subject: [PATCH 49/65] fix: correctly restore selected streaming service filters (#3249) --- src/components/RegionSelector/index.tsx | 4 ++-- src/components/Selector/index.tsx | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/RegionSelector/index.tsx b/src/components/RegionSelector/index.tsx index e64e48f81..d0a0113eb 100644 --- a/src/components/RegionSelector/index.tsx +++ b/src/components/RegionSelector/index.tsx @@ -76,8 +76,8 @@ const RegionSelector = ({ }, [value, regions, allRegion]); useEffect(() => { - if (onChange && regions) { - onChange(name, selectedRegion?.iso_3166_1 ?? ''); + if (onChange && regions && selectedRegion) { + onChange(name, selectedRegion.iso_3166_1); } }, [onChange, selectedRegion, name, regions]); diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx index c49e486f5..3b863fd72 100644 --- a/src/components/Selector/index.tsx +++ b/src/components/Selector/index.tsx @@ -307,10 +307,6 @@ export const WatchProviderSelector = ({ onChange(watchRegion, activeProvider); }, [activeProvider, watchRegion, onChange]); - useEffect(() => { - setActiveProvider([]); - }, [watchRegion]); - const orderedData = useMemo(() => { if (!data) { return []; @@ -335,7 +331,12 @@ export const WatchProviderSelector = ({ setWatchRegion(value)} + onChange={(_name, value) => { + if (value !== watchRegion) { + setActiveProvider([]); + } + setWatchRegion(value); + }} disableAll watchProviders /> From 19370f856c2572deb8ab98babbf7f0550cc73a1f Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Tue, 17 Jan 2023 10:36:00 +0900 Subject: [PATCH 50/65] chore: add holopin config (#3250) [skip ci] --- .github/holopin.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/holopin.yml diff --git a/.github/holopin.yml b/.github/holopin.yml new file mode 100644 index 000000000..ee4edc81b --- /dev/null +++ b/.github/holopin.yml @@ -0,0 +1,5 @@ +organization: overseerr +defaultSticker: clcyagj1j329008l468ya8pu2 +stickers: + - id: clcyagj1j329008l468ya8pu2 + alias: overseerr-contributor From fcbca1722f31f32633a57bc5048f46c9da057d87 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Tue, 17 Jan 2023 18:00:15 +0900 Subject: [PATCH 51/65] feat: new mobile menu (#3251) --- src/components/Discover/index.tsx | 6 +- src/components/Layout/MobileMenu/index.tsx | 206 +++++++++++++++++++++ src/components/Layout/Sidebar/index.tsx | 10 +- src/components/Layout/index.tsx | 29 +-- src/components/MovieDetails/index.tsx | 2 +- src/components/TvDetails/index.tsx | 2 +- src/styles/globals.css | 20 +- 7 files changed, 252 insertions(+), 23 deletions(-) create mode 100644 src/components/Layout/MobileMenu/index.tsx diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index f7f5aeb79..c3c43a212 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -153,12 +153,12 @@ const Discover = () => { leave="transition-opacity duration-300" leaveFrom="opacity-100" leaveTo="opacity-0" - className="fixed bottom-8 right-8 z-50 flex items-center" + className="absolute-bottom-shift fixed right-6 z-50 flex items-center sm:bottom-8" > @@ -171,7 +171,7 @@ const Discover = () => { leave="transition duration-300 transform" leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-6" - className="fixed bottom-0 right-0 left-0 z-50 flex flex-col items-center justify-end space-x-0 space-y-2 border-t border-gray-700 bg-gray-800 bg-opacity-80 p-4 backdrop-blur sm:flex-row sm:space-y-0 sm:space-x-3" + className="safe-shift-edit-menu fixed right-0 left-0 z-50 flex flex-col items-center justify-end space-x-0 space-y-2 border-t border-gray-700 bg-gray-800 bg-opacity-80 p-4 backdrop-blur sm:bottom-0 sm:flex-row sm:space-y-0 sm:space-x-3" > + )} +
+
+
+ ); +}; + +export default MobileMenu; diff --git a/src/components/Layout/Sidebar/index.tsx b/src/components/Layout/Sidebar/index.tsx index de2fd8cdc..4baf56a67 100644 --- a/src/components/Layout/Sidebar/index.tsx +++ b/src/components/Layout/Sidebar/index.tsx @@ -17,7 +17,7 @@ import { useRouter } from 'next/router'; import { Fragment, useRef } from 'react'; import { defineMessages, useIntl } from 'react-intl'; -const messages = defineMessages({ +export const menuMessages = defineMessages({ dashboard: 'Discover', browsemovies: 'Movies', browsetv: 'Series', @@ -35,7 +35,7 @@ interface SidebarProps { interface SidebarLinkProps { href: string; svgIcon: React.ReactNode; - messagesKey: keyof typeof messages; + messagesKey: keyof typeof menuMessages; activeRegExp: RegExp; as?: string; requiredPermission?: Permission | Permission[]; @@ -192,7 +192,7 @@ const Sidebar = ({ open, setClosed }: SidebarProps) => { > {sidebarLink.svgIcon} {intl.formatMessage( - messages[sidebarLink.messagesKey] + menuMessages[sidebarLink.messagesKey] )} @@ -253,7 +253,9 @@ const Sidebar = ({ open, setClosed }: SidebarProps) => { data-testid={sidebarLink.dataTestId} > {sidebarLink.svgIcon} - {intl.formatMessage(messages[sidebarLink.messagesKey])} + {intl.formatMessage( + menuMessages[sidebarLink.messagesKey] + )} ); diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx index d9353575e..b30b9712a 100644 --- a/src/components/Layout/index.tsx +++ b/src/components/Layout/index.tsx @@ -1,3 +1,4 @@ +import MobileMenu from '@app/components/Layout/MobileMenu'; import SearchInput from '@app/components/Layout/SearchInput'; import Sidebar from '@app/components/Layout/Sidebar'; import UserDropdown from '@app/components/Layout/UserDropdown'; @@ -6,8 +7,7 @@ import type { AvailableLocale } from '@app/context/LanguageContext'; import useLocale from '@app/hooks/useLocale'; import useSettings from '@app/hooks/useSettings'; import { useUser } from '@app/hooks/useUser'; -import { Bars3BottomLeftIcon } from '@heroicons/react/24/outline'; -import { ArrowLeftIcon } from '@heroicons/react/24/solid'; +import { ArrowLeftIcon, Bars3BottomLeftIcon } from '@heroicons/react/24/solid'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; @@ -56,6 +56,9 @@ const Layout = ({ children }: LayoutProps) => {
setSidebarOpen(false)} /> +
+ +
@@ -68,17 +71,17 @@ const Layout = ({ children }: LayoutProps) => { WebkitBackdropFilter: isScrolled ? 'blur(5px)' : undefined, }} > - -
+
+ )} -
+
+ + +
+
{ tempSliders[index].enabled = !tempSliders[index].enabled; setSliders(tempSliders); }} - onPositionUpdate={(updatedItemId, position) => { + onPositionUpdate={(updatedItemId, position, hasClickedArrows) => { const originalPosition = sliders.findIndex( (item) => item.id === updatedItemId ); @@ -393,16 +393,24 @@ const Discover = () => { const tempSliders = sliders.slice(); tempSliders.splice(originalPosition, 1); - tempSliders.splice( - position === 'Above' && index > originalPosition - ? Math.max(index - 1, 0) - : index, - 0, - originalItem - ); + hasClickedArrows + ? tempSliders.splice( + position === 'Above' ? index - 1 : index + 1, + 0, + originalItem + ) + : tempSliders.splice( + position === 'Above' && index > originalPosition + ? Math.max(index - 1, 0) + : index, + 0, + originalItem + ); setSliders(tempSliders); }} + disableUpButton={index === 0} + disableDownButton={index === sliders.length - 1} > {sliderComponent} From d328485161b9cae6a70ef0713b4878207bc6015e Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Fri, 20 Jan 2023 09:46:29 -0500 Subject: [PATCH 55/65] fix: arrow icons were misplaced on mobile in slider edit (#3260) --- src/components/Discover/DiscoverSliderEdit/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx index 5f207654c..970a9887a 100644 --- a/src/components/Discover/DiscoverSliderEdit/index.tsx +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -278,7 +278,7 @@ const DiscoverSliderEdit = ({ )} -
+
From fd219717c01c558814d7a80de6304272b5a7944e Mon Sep 17 00:00:00 2001 From: TheCatLady <52870424+TheCatLady@users.noreply.github.com> Date: Mon, 23 Jan 2023 18:58:56 -0800 Subject: [PATCH 56/65] fix: issues with issues (#3267) * fix: issues with issues * fix: don't notify on user closing/reopening own issue * fix: only show close/reopen buttons for OP and admins --- server/routes/issue.ts | 14 +++++++++++++- server/subscriber/IssueCommentSubscriber.ts | 11 ++++++++--- server/subscriber/IssueSubscriber.ts | 1 + src/components/IssueDetails/index.tsx | 3 ++- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/server/routes/issue.ts b/server/routes/issue.ts index 6349bb74a..953b37574 100644 --- a/server/routes/issue.ts +++ b/server/routes/issue.ts @@ -308,7 +308,9 @@ issueRoutes.post<{ issueId: string }, Issue, { message: string }>( issueRoutes.post<{ issueId: string; status: string }, Issue>( '/:issueId/:status', - isAuthenticated(Permission.MANAGE_ISSUES), + isAuthenticated([Permission.MANAGE_ISSUES, Permission.CREATE_ISSUES], { + type: 'or', + }), async (req, res, next) => { const issueRepository = getRepository(Issue); // Satisfy typescript here. User is set, we assure you! @@ -321,6 +323,16 @@ issueRoutes.post<{ issueId: string; status: string }, Issue>( where: { id: Number(req.params.issueId) }, }); + if ( + !req.user?.hasPermission(Permission.MANAGE_ISSUES) && + issue.createdBy.id !== req.user?.id + ) { + return next({ + status: 401, + message: 'You do not have permission to modify this issue.', + }); + } + let newStatus: IssueStatus | undefined; switch (req.params.status) { diff --git a/server/subscriber/IssueCommentSubscriber.ts b/server/subscriber/IssueCommentSubscriber.ts index cb95ba008..71db981da 100644 --- a/server/subscriber/IssueCommentSubscriber.ts +++ b/server/subscriber/IssueCommentSubscriber.ts @@ -4,6 +4,7 @@ import { MediaType } from '@server/constants/media'; import { getRepository } from '@server/datasource'; import IssueComment from '@server/entity/IssueComment'; import Media from '@server/entity/Media'; +import { User } from '@server/entity/User'; import notificationManager, { Notification } from '@server/lib/notifications'; import { Permission } from '@server/lib/permissions'; import logger from '@server/logger'; @@ -32,6 +33,10 @@ export class IssueCommentSubscriber }) ).issue; + const createdBy = await getRepository(User).findOneOrFail({ + where: { id: issue.createdBy.id }, + }); + const media = await getRepository(Media).findOneOrFail({ where: { id: issue.media.id }, }); @@ -71,9 +76,9 @@ export class IssueCommentSubscriber notifyAdmin: true, notifySystem: true, notifyUser: - !issue.createdBy.hasPermission(Permission.MANAGE_ISSUES) && - issue.createdBy.id !== entity.user.id - ? issue.createdBy + !createdBy.hasPermission(Permission.MANAGE_ISSUES) && + createdBy.id !== entity.user.id + ? createdBy : undefined, }); } diff --git a/server/subscriber/IssueSubscriber.ts b/server/subscriber/IssueSubscriber.ts index eb4020415..d54523cf8 100644 --- a/server/subscriber/IssueSubscriber.ts +++ b/server/subscriber/IssueSubscriber.ts @@ -87,6 +87,7 @@ export class IssueSubscriber implements EntitySubscriberInterface { notifySystem: true, notifyUser: !entity.createdBy.hasPermission(Permission.MANAGE_ISSUES) && + entity.modifiedBy?.id !== entity.createdBy.id && (type === Notification.ISSUE_RESOLVED || type === Notification.ISSUE_REOPENED) ? entity.createdBy diff --git a/src/components/IssueDetails/index.tsx b/src/components/IssueDetails/index.tsx index 4be5383c9..797611b41 100644 --- a/src/components/IssueDetails/index.tsx +++ b/src/components/IssueDetails/index.tsx @@ -475,7 +475,8 @@ const IssueDetails = () => { className="h-20" />
- {hasPermission(Permission.MANAGE_ISSUES) && ( + {(hasPermission(Permission.MANAGE_ISSUES) || + belongsToUser) && ( <> {issueData.status === IssueStatus.OPEN ? (
+
); }; From 5d1c6f706555613d97ed9e61d8b665543c2f239b Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Tue, 24 Jan 2023 19:30:38 +0900 Subject: [PATCH 58/65] fix: create shared class to add bottom spacing (#3269) --- src/components/IssueDetails/index.tsx | 2 +- src/components/MovieDetails/index.tsx | 2 +- src/components/TvDetails/index.tsx | 2 +- src/styles/globals.css | 4 ++++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/IssueDetails/index.tsx b/src/components/IssueDetails/index.tsx index 725adc7c5..1a299cd80 100644 --- a/src/components/IssueDetails/index.tsx +++ b/src/components/IssueDetails/index.tsx @@ -667,7 +667,7 @@ const IssueDetails = () => {
-
+
); }; diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index c16dc63c6..795ab7ded 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -834,7 +834,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { linkUrl={`/movie/${data.id}/similar`} hideWhenEmpty /> -
+
); }; diff --git a/src/components/TvDetails/index.tsx b/src/components/TvDetails/index.tsx index 5e5092075..5c59e4fb8 100644 --- a/src/components/TvDetails/index.tsx +++ b/src/components/TvDetails/index.tsx @@ -1016,7 +1016,7 @@ const TvDetails = ({ tv }: TvDetailsProps) => { linkUrl={`/tv/${data.id}/similar`} hideWhenEmpty /> -
+
); }; diff --git a/src/styles/globals.css b/src/styles/globals.css index 82518e95f..7598cb9b1 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -507,6 +507,10 @@ @apply hidden; } } + + .extra-bottom-space { + height: calc(4rem + env(safe-area-inset-bottom)); + } } .ptr--ptr { From f4a22dc437404558f301ccfc195cf0a300dd1ff2 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Wed, 25 Jan 2023 18:49:01 +0900 Subject: [PATCH 59/65] fix: correctly check mobile menu permissions (#3271) --- src/components/Layout/MobileMenu/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/Layout/MobileMenu/index.tsx b/src/components/Layout/MobileMenu/index.tsx index 3732032a6..2ccd75d3d 100644 --- a/src/components/Layout/MobileMenu/index.tsx +++ b/src/components/Layout/MobileMenu/index.tsx @@ -118,7 +118,11 @@ const MobileMenu = () => { ]; const filteredLinks = menuLinks.filter( - (link) => !link.requiredPermission || hasPermission(link.requiredPermission) + (link) => + !link.requiredPermission || + hasPermission(link.requiredPermission, { + type: link.permissionType ?? 'and', + }) ); return ( From 507693881b939819413f0959df5ef6b7a357eb5c Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Thu, 26 Jan 2023 17:10:02 -0500 Subject: [PATCH 60/65] fix: multiple genre filtering now works (#3282) --- overseerr-api.yml | 2 +- server/api/themoviedb/index.ts | 2 +- server/routes/discover.ts | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/overseerr-api.yml b/overseerr-api.yml index ef31c749d..443a9c948 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -4418,7 +4418,7 @@ paths: - in: query name: genre schema: - type: number + type: string example: 18 - in: query name: network diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index 7aad32c1e..4c931ff97 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -85,7 +85,7 @@ interface DiscoverTvOptions { voteAverageLte?: string; includeEmptyReleaseDate?: boolean; originalLanguage?: string; - genre?: number; + genre?: string; network?: number; keywords?: string; sortBy?: SortOptions; diff --git a/server/routes/discover.ts b/server/routes/discover.ts index ce9e3afff..2c3c665f1 100644 --- a/server/routes/discover.ts +++ b/server/routes/discover.ts @@ -356,7 +356,7 @@ discoverRoutes.get('/tv', async (req, res, next) => { page: Number(query.page), sortBy: query.sortBy as SortOptions, language: req.locale ?? query.language, - genre: query.genre ? Number(query.genre) : undefined, + genre: query.genre, network: query.network ? Number(query.network) : undefined, firstAirDateLte: query.firstAirDateLte ? new Date(query.firstAirDateLte).toISOString().split('T')[0] @@ -491,7 +491,7 @@ discoverRoutes.get<{ genreId: string }>( const data = await tmdb.getDiscoverTv({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - genre: Number(req.params.genreId), + genre: req.params.genreId, }); const media = await Media.getRelatedMedia( @@ -770,7 +770,9 @@ discoverRoutes.get<{ language: string }, GenreSliderItem[]>( await Promise.all( genres.map(async (genre) => { - const genreData = await tmdb.getDiscoverTv({ genre: genre.id }); + const genreData = await tmdb.getDiscoverTv({ + genre: genre.id.toString(), + }); mappedGenres.push({ id: genre.id, From 374c78c989cc86bb144a954a91d5d183c4b591c0 Mon Sep 17 00:00:00 2001 From: Brandon Cohen Date: Thu, 26 Jan 2023 17:22:38 -0500 Subject: [PATCH 61/65] fix(ui): series first air date sorting (#3283) --- src/components/Discover/DiscoverTv/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Discover/DiscoverTv/index.tsx b/src/components/Discover/DiscoverTv/index.tsx index bd3a17015..527393676 100644 --- a/src/components/Discover/DiscoverTv/index.tsx +++ b/src/components/Discover/DiscoverTv/index.tsx @@ -91,10 +91,10 @@ const DiscoverTv = () => { - -