From 357cab87ac7752b8e119b51c938b343c661d83c2 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Mon, 26 Dec 2022 16:42:08 +0900 Subject: [PATCH 01/53] 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 cc1e429ff3..33e40e4d4f 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 e190b7b974..7695e3987d 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/53] 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 2b8ec4cb8f..c004b47469 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 a5b9c1e8d0..eca0208c72 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 4aef968f12..cf29313e9f 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 52bd8a2693..60ce940537 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 82bc7a7a9d..e8574699ef 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 0597e3a6a3..6bb04b54f3 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 b98ecc7fba..f48d8fc0aa 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 88bd29c8b7..31c9009aed 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 22fa2bbe86..278c8819b0 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 628175f4fc..8764239059 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 d05928cd5c..18322e25ce 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/53] 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 278c8819b0..9dd1a7eb35 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/53] 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 9dd1a7eb35..02bf383a1f 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/53] 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 f48d8fc0aa..6efdb6a1f5 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 31c9009aed..864ca7e4f5 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 02bf383a1f..b301b11fa4 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 18322e25ce..4ffb110e1b 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/53] 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 f5f69605ed..cca56cb425 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/53] 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 b301b11fa4..3dbe6e74b3 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/53] 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 0000000000..10926bbd92 --- /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 d81193a2a7..f2edc25a77 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/53] 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 0000000000..8c96b6e3ca --- /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 3717f65b08..bcfce1a328 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 f114cce1a4..fb4e91aff3 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 9d9fca3ba3..bd88b9dd1f 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 ea05b8ab99..bcfc06bb3a 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 6d005dc94d..a351541671 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 0000000000..a19f07422e --- /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 0000000000..261419a078 --- /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 12df2f1fd7..93703402e5 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 0000000000..81cb143249 --- /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 b39a83325e..428e4f7de6 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 9561e171b1..faac1b4392 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 1152bce316..b9254221ad 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 0000000000..7d2a227da6 --- /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 7205b18966..8023ba960a 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 0000000000..a514d6c031 --- /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 0000000000..9d22ba6451 --- /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 0000000000..ee6186f29e --- /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 0000000000..02f4a47fe4 --- /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 0000000000..30f5e19f3b --- /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 0000000000..078f86ba33 --- /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 b53c42c129..3cef94dbb6 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 24dc6fea51..b2c1a07c21 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 ( + + ); + 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 ( + - ))} - placeholder={} - /> - - )} - {user?.userType === UserType.PLEX && - (!watchlistItems || - !!watchlistItems.results.length || - user.settings?.watchlistSyncMovies || - user.settings?.watchlistSyncTv) && - !watchlistError && ( - <> - - ( - - {msg} - - ), - })} - items={watchlistItems?.results.map((item) => ( - - ))} - /> - - )} - - - - - - - - - + ); + } + })} ); }; diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx index 9a9bc054c7..7345793748 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 0000000000..a2d0fdd2e6 --- /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 0000000000..02b24084e0 --- /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 0000000000..be405ad8b8 --- /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 7d4e188e50..352821059e 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 54876357f7..a27a6d1096 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 4ffb110e1b..14a680f69b 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 0000000000..4fc0cfd27c --- /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 0000000000..0c6ab00fff --- /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 a5f417ddbd..7e0900e0cd 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 3036e822ac..d638cfe1de 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/53] 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 | 7050 ++++++++++++------------- 8 files changed, 3485 insertions(+), 3821 deletions(-) create mode 100644 server/types/express-session.d.ts diff --git a/package.json b/package.json index bd88b9dd1f..c5405d5bda 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 a683929897..d4eadaa10d 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 0000000000..c4842b096e --- /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 7b82477adb..2fe842382e 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 dcf71e7b72..aefec7a9e7 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 8764239059..a3a29538c9 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 1ec82c4279..dd6579902b 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 d638cfe1de..c942fe24b9 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.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/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/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" - 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== - 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" + "@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/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== +"@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: - "@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" - 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" + browserslist "^4.21.3" + lru-cache "^5.1.1" 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== - 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== +"@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/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== - dependencies: - "@babel/types" "^7.18.9" - -"@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== +"@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.16.7" + "@babel/types" "^7.20.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.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-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-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/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== - dependencies: - "@babel/types" "^7.18.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== - dependencies: - "@babel/types" "^7.18.6" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" -"@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== +"@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.9" + "@babel/types" "^7.20.2" -"@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== +"@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.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-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-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-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/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== - 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/traverse" "^7.20.5" + "@babel/types" "^7.20.5" -"@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== +"@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/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== - dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" - -"@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== + 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.25.1" 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== +"@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: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + regenerator-runtime "^0.13.11" -"@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/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/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@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== - 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== +"@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-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== - dependencies: - "@commitlint/config-validator" "^17.0.0" - "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.0.0" - "@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/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== +"@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.3" + "@commitlint/config-validator" "^17.1.0" "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.0.3" + "@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/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/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.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== - dependencies: - "@commitlint/config-validator" "^17.0.0" - "@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/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/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.3" + "@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/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== +"@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/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== - 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" +"@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.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== - 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" + 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.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== +"@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== + +"@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.28" - tslib "2.4.0" + "@floating-ui/core" "^1.0.5" -"@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== +"@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.31" - tslib "2.4.0" + "@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== - 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" - integrity sha512-3PqMvKWV1oyok0BuiXUAHIaotdhdTJw6OICqCZbfUgKT+ZRwRWO4IlCgvXJeCITaKS5p+PY0XXKjf/vUyIpWjQ== - dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/icu-skeleton-parser" "1.3.10" - 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/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: - "@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/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: - "@formatjs/ecma402-abstract" "1.14.0" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-skeleton-parser" "1.3.18" + 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/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.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + 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-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: - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + 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== +"@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" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + 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== +"@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.11.8" - "@formatjs/intl-getcanonicallocales" "2.0.2" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + 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== +"@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: - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-getcanonicallocales" "2.0.5" + 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== +"@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" + 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== - 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/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.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/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/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.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-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-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-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-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-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-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-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-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-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-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-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-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-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.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.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.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.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.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.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.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.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.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.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.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.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== - 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/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" "^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== - 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/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: + "@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== - 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/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: + "@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== - 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-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: + "@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== - 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/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: + "@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" - -"@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" + "@swc/helpers" "^0.4.14" + +"@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: + "@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== - 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-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: + "@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== - 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/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: + "@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== - 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-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: + "@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== - 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/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: + "@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== - 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/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: + "@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== - 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-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: + "@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== - 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/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: + "@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== - 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/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: + "@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== - 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/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: + "@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== - 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/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: + "@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-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/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" + +"@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: + "@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" - -"@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" + "@swc/helpers" "^0.4.14" + +"@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: + "@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" - -"@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" + "@swc/helpers" "^0.4.14" + +"@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: + "@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== - 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/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: + "@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" - -"@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" + "@swc/helpers" "^0.4.14" + +"@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: + "@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== - 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/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: + "@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== - 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/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: + "@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== - 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/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: + "@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-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/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" + +"@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: + "@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== - 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/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: + "@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== - dependencies: - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" - -"@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== - 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/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== - 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/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== - 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/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/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== - dependencies: - "@react-spring/rafz" "~9.5.2" - "@react-spring/types" "~9.5.2" - -"@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== - 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/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/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== - 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/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== - 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-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-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.6.1" + "@react-spring/types" "~9.6.1" + +"@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.6.1" + "@react-spring/rafz" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@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.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@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.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@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.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.6.1" + "@react-spring/types" "~9.6.1" + +"@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.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@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.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.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@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.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.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: + "@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== - 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/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: + "@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== - 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-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: + "@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== - 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/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: + "@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-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-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-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-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-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-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-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-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== - 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/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== - dependencies: - "@svgr/plugin-jsx" "^6.3.1" +"@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@*": + 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@*": + 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.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.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.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.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.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.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.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.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: + "@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== - 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" - -"@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== +"@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.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.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/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/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@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== - dependencies: - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/typescript-estree" "5.33.1" - 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/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.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" + "@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/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== - 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== +"@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/types" "5.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/visitor-keys" "5.48.0" -"@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== +"@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/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.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== - dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" +"@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/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== +"@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.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" + "@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/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== - 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== +"@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.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,24 +4354,35 @@ 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" @@ -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== - 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== +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.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.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" - integrity sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw== +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== -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== - 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" - -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== +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" + 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" - -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== + "@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" + +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== - 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-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== +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-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== - dependencies: - dayjs "^1.10.6" - debug "^4.3.2" - mailparser "^3.3.0" - nodemailer "^6.6.3" + 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: + 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== - 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@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.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-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== - 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" +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.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.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== - 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" - -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== +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" + 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== - 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== +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 "^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/53] 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 c5405d5bda..6d98f2edcb 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 c942fe24b9..0f671095fb 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/53] 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 6d98f2edcb..2bd8143aef 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 60ce940537..0136113a91 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 8ffb4a2559..93ddd988fc 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 be6815b940..b5bc0cb649 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 6652f5519e..ae11b9517f 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 e7ccf7063c..fd0ecb37ab 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 0653c7d804..9404a93cb4 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 4899d3496b..b411a7d717 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 02f4a47fe4..76fba57ca7 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 30f5e19f3b..96309d613a 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 820012c321..f8c74195d2 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 c337c721cc..d4cb9d0e0f 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 b941c9f318..e1e265b0e4 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 5a714c7429..d4ad76b56c 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 e6a0c02bba..ca8cb5fa6b 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 f71589448b..56e91810b8 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 6efdb6a1f5..a7a76beca2 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 864ca7e4f5..dbce03e54a 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 0fa94d05db..bffd7c0671 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 dd6446424d..4c8bcfa3ae 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 da48fe5db7..c50213d3b6 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 eba0de4035..29a1030b29 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 242c0b859a..46d10d6cc9 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 77fb21b8df..390d2ed94e 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 116363252c..390cac3d28 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 bf6a5956e0..00cd179ae4 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 d2e90ac9c7..93e4a285b8 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 09c6344370..ac31d3c1ad 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 1959604e3f..690731e6e9 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 0f56c0c94a..5ff7ebf5f8 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 375d869c80..14f1e672eb 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 601d4f4496..93ffd6def7 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 1d3f056634..5c2a17ddd3 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 2600115bc2..cd98561955 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 fbf5d5e039..4b559e6215 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 121018fcc8..841e5f77f0 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 942ea707d3..137c7f65c5 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 5f665fa603..94109713e5 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 80a0ec72be..2c940d292c 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 97f1236995..b93c6da6cf 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 aea79f72d6..bf65e84409 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 84b671b5fd..889edaf756 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 c8bf3b2a66..bb0f7504e7 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 3df55fc1be..0b0a059f18 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 2d5102c49d..66d85fdbfb 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 0f671095fb..7faef2d0be 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/53] 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 a2d0fdd2e6..49ab90cd8b 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 14a680f69b..d773f17e9b 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/53] 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 2bd8143aef..8c64ab75d0 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 7faef2d0be..b6b4797265 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/53] 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 bcfc06bb3a..b6421edd54 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 a351541671..9a07d76977 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 3c4686b2cc..19f812dd18 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 0000000000..9a24c149a7 --- /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 787d815600..b91c7a2a6e 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 8e26be4bd3..e6b334afdd 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/53] 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 bd4ca37d9c..4a6b25b861 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 e6b334afdd..47d549bf2d 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/53] 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 9404a93cb4..0071126c60 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 f9a0faecc5..6f15bc0ae6 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/53] 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 009d62af73..7f5d62236b 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 4e9be7a3f7304ee7be5ee6fd34b1ea8f6c0cf399 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Thu, 5 Jan 2023 10:30:05 +0900 Subject: [PATCH 19/53] 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 47d549bf2d..f704b8e39d 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 20/53] 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 8c64ab75d0..c19abf865f 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 34a097d5f5..4ba6b97a75 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 b6b4797265..40727cd75e 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 21/53] 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 0071126c60..a7e24a3780 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 6f15bc0ae6..be5ad5fa84 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 22/53] 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 fb4e91aff3..9a6dc44577 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 23/53] 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 faa3f7534c..4edfe8a0df 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 f2edc25a77..34c29ff864 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 24/53] 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 c19abf865f..9d4d1ab607 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 40727cd75e..7fa4fe10d9 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 25/53] 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 9d4d1ab607..2ebcf182f3 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 7fa4fe10d9..22f41e8e7b 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== - 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/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.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/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/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/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/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.0.0" + "@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 26/53] 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 e6d6c81594..a9a95b3f45 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 5199a2a52d..8b3f567646 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 c4af1428d4..37c3c85c5e 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 3df86ad8fa..a255478202 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 5c96a71513..58ffdd113f 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 729ee4279f..95323380e9 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 a86022542d..aef7e6fd0b 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 ccf6f05958..46d5dd7e50 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 4f1942b42e..61f7287580 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 710ba1fbd8..7730a4dae0 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 56b0526987..bb4d6c9c19 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 f7ff46a7d3..97ffe91339 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 db85347bec..66126419c5 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 d9b78a448d..28d36d5f2a 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 de695af034..f3705ae5d4 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 1488ce330e..d41bcdd8b8 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 58aaf2086d..a46c10ed77 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 ba83cdd8b6..c59f780c3b 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 40156c1859..7f60065b4a 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 2676327c3b..aff13f01d8 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 0b0a4c436d..30ea8bda9e 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 d04487c996..83ec5c49eb 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 b363ea80d1..8f9cd84103 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 4232a1f789..b9cc1cb1f9 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 b58c3408fd..baa8dfea62 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 8bd10b5bf3d1b8069872b616c7c8596caeb4937e Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Fri, 6 Jan 2023 21:03:09 +0900 Subject: [PATCH 27/53] 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 | 205 +++++++++--- .../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, 1032 insertions(+), 579 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 8c96b6e3ca..a0756ae219 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-start-editing]').click(); - cy.get('[data-testid=discover-customization]') - .should('contain', 'Discover Customization') + 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-start-editing]').click(); - 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', '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 9a6dc44577..d31f4e2396 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 faac1b4392..8318bbfc01 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 7d2a227da6..344ce72bea 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 1f5756cb99..4234da68a6 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 9a24c149a7..dcb426d40f 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 0000000000..7c49b8ccac --- /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 49ab90cd8b..3f70c980ee 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, - }); - - addToast(intl.formatMessage(messages.addsuccess), { - appearance: 'success', - autoDismiss: true, - }); + 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( + 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 0000000000..6e9bd8b760 --- /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 b2c1a07c21..b627ab6ede 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 0000000000..bbb25afe0d --- /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 0000000000..8d5065bbdc --- /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 b91c7a2a6e..2fd86f6f62 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 79eff10e9c..0000000000 --- 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 5af3d1884c..0000000000 --- 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 cf40998874..62f26d49a2 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 f704b8e39d..14185e8799 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 d773f17e9b..9095542245 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 7e0900e0cd..1757f65db2 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 28/53] 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 6e9bd8b760..2cd462e9a6 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 b627ab6ede..31eaa9156c 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.resettodefault)} - - - - - + + resetSliders()} + confirmText={intl.formatMessage(globalMessages.areyousure)} > - - {intl.formatMessage(globalMessages.save)} - - + + {intl.formatMessage(messages.resettodefault)} + + +
-
+
{intl.formatMessage(messages.createnewslider)} diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx index b0fab251ac..54b5cc801a 100644 --- a/src/components/MediaSlider/index.tsx +++ b/src/components/MediaSlider/index.tsx @@ -149,8 +149,8 @@ const MediaSlider = ({
{linkUrl ? ( - - {title} + + {title} From 0683f4f00025c6a7f11b7b11ee9d5c9fc42c11c7 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sun, 8 Jan 2023 00:12:31 +0900 Subject: [PATCH 29/53] 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 31eaa9156c..14927c7bec 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 30/53] 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 2cd462e9a6..0f97ac5721 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 14927c7bec..920acc1bfe 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 1757f65db2..7e0900e0cd 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 2eebb7fd3941b34fe9472aaf9d28265df8cce311 Mon Sep 17 00:00:00 2001 From: Ryan Cohen Date: Sun, 8 Jan 2023 09:18:08 +0900 Subject: [PATCH 31/53] 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 7dc4e637d6..a4df31150d 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 0f97ac5721..8c5c36660d 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 32/53] 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 8c5c36660d..22ade1303c 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 33/53] 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 2ebcf182f3..578dc1317d 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 4dfcf09029..192b3fe9da 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 22f41e8e7b..03338c4a68 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 34/53] 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 9c9d96a825..83c05b4856 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 35/53] 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 3489061b0e..545f25658b 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 d31f4e2396..58b9b41fc9 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 578dc1317d..f210da459e 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 b6421edd54..c6d0d29f13 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 428e4f7de6..079f37e100 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 0000000000..c3da2b5778 --- /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 fd0ecb37ab..48c1f8549e 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 b9ec8dea84..0000000000 --- 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 0000000000..2cc5117707 --- /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 404b1aa5b1..0000000000 --- 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 0000000000..bd3a170150 --- /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 0000000000..5a431f698f --- /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 b411a7d717..106d14a514 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 f8c74195d2..34dfd1c74f 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 3cef94dbb6..80faf5c5ec 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 920acc1bfe..64ddf80c3e 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 2ef9f1f534..de2fd8cdcb 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 2fd86f6f62..1b339b7f5b 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 0000000000..87634d39b5 --- /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 14185e8799..d3a6017204 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 96ea9cc716..163a1cc5ed 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 e2ef801def..aadfaac220 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 9095542245..44736d2dcf 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 7e0900e0cd..c61d5dce15 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 96b5faadbb..cd0bf1e4f7 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 03338c4a68..1da72e83bc 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 36/53] 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 cd0bf1e4f7..b8b70fd541 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 37/53] 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 3f70c980ee..24b9d3fdc2 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 9d22ba6451..7ae2e989fc 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 ee6186f29e..0c04113862 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 64ddf80c3e..f7f5aeb796 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 87634d39b5..3a52277937 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 163a1cc5ed..f9aff8e296 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 a27a6d1096..a60b28c075 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 38/53] 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 c4c573009b..37b18bc06e 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 39/53] 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 4edfe8a0df..c57826d684 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 34c29ff864..ae82f5489a 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 40/53] 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 5a431f698f..52d550fd1f 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 41/53] 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 eefbc11f37..fad97ef6b6 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 42/53] 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 58b9b41fc9..ef31c749dc 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 c6d0d29f13..7aad32c1e7 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 9a07d76977..955e1b12eb 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 079f37e100..ce9e3afff1 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 8318bbfc01..f76f09fa09 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 52d550fd1f..10ee0fea24 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 aadfaac220..7b991267f0 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 44736d2dcf..72d58ca598 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 43/53] 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 a477f436c0..c49e486f57 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 44/53] 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 e64e48f813..d0a0113eb5 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 c49e486f57..3b863fd72c 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 45/53] 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 0000000000..ee4edc81b3 --- /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 46/53] 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 f7f5aeb796..c3c43a2125 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 de2fd8cdcb..4baf56a674 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 d9353575e3..b30b9712ae 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 50/53] 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 5f207654cf..970a9887a6 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 51/53] 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 6349bb74a5..953b375740 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 cb95ba008c..71db981da5 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 eb40204151..d54523cf83 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 4be5383c95..797611b419 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 53/53] 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 725adc7c54..1a299cd80a 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 c16dc63c6a..795ab7ded9 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 5e50920755..5c59e4fb84 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 82518e95fd..7598cb9b1d 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 {