SYMBOL INDEX (1308 symbols across 356 files) FILE: bin/duplicate-detector/build-index.mjs constant MODEL_NAME (line 15) | const MODEL_NAME = process.env.EMBEDDING_MODEL || 'Xenova/all-MiniLM-L6-... constant OUTPUT_PATH (line 16) | const OUTPUT_PATH = 'issue_index.json'; constant INCLUDE_CLOSED_DAYS (line 17) | const INCLUDE_CLOSED_DAYS = 90; constant MAX_ISSUES (line 18) | const MAX_ISSUES = 5000; constant BATCH_SIZE (line 19) | const BATCH_SIZE = 64; function main (line 21) | async function main() { FILE: bin/duplicate-detector/detect.mjs constant SIMILARITY_THRESHOLD (line 21) | const SIMILARITY_THRESHOLD = 0.55; constant TOP_K (line 22) | const TOP_K = 5; constant MAX_COMMENT_CANDIDATES (line 23) | const MAX_COMMENT_CANDIDATES = 3; constant MODEL_NAME (line 24) | const MODEL_NAME = process.env.EMBEDDING_MODEL || 'Xenova/all-MiniLM-L6-... constant GROQ_MODEL (line 25) | const GROQ_MODEL = process.env.GROQ_MODEL || 'llama-3.3-70b-versatile'; constant INDEX_PATH (line 26) | const INDEX_PATH = 'issue_index.json'; constant LABEL_NAME (line 27) | const LABEL_NAME = 'possible-duplicate'; constant GROQ_API_KEY (line 29) | const GROQ_API_KEY = process.env.GROQ_API_KEY || ''; constant ISSUE_NUMBER (line 30) | const ISSUE_NUMBER = parseInt(process.env.ISSUE_NUMBER, 10); function loadIndex (line 32) | function loadIndex(path) { function findSimilar (line 45) | function findSimilar( constant CONFIRM_SYSTEM_PROMPT (line 67) | const CONFIRM_SYSTEM_PROMPT = `You are a GitHub issue triage assistant. ... function confirmWithLlm (line 81) | async function confirmWithLlm(newIssue, candidates) { function formatComment (line 170) | function formatComment(candidates) { function main (line 197) | async function main() { FILE: bin/duplicate-detector/utils.mjs constant GITHUB_API (line 1) | const GITHUB_API = 'https://api.github.com'; constant GITHUB_TOKEN (line 2) | const GITHUB_TOKEN = process.env.GITHUB_TOKEN; constant GITHUB_REPOSITORY (line 3) | const GITHUB_REPOSITORY = process.env.GITHUB_REPOSITORY; function ghHeaders (line 5) | function ghHeaders() { function fetchIssues (line 12) | async function fetchIssues({ function getIssue (line 54) | async function getIssue(issueNumber) { function postComment (line 65) | async function postComment(issueNumber, body) { function addLabel (line 82) | async function addLabel(issueNumber, label) { function issueText (line 104) | function issueText(title, body) { function dotProduct (line 110) | function dotProduct(a, b) { FILE: cypress/support/commands.ts method validate (line 21) | validate() { FILE: cypress/support/index.ts type Chainable (line 6) | interface Chainable { FILE: gen-docs/src/components/SeerrVersion/index.tsx function fetchVersion (line 7) | async function fetchVersion() { FILE: next.config.js method webpack (line 16) | webpack(config) { FILE: public/sw.js constant OFFLINE_VERSION (line 6) | const OFFLINE_VERSION = 5; constant CACHE_NAME (line 7) | const CACHE_NAME = 'offline'; constant OFFLINE_URL (line 9) | const OFFLINE_URL = '/offline.html'; FILE: server/api/animelist.ts constant UPDATE_INTERVAL_MSEC (line 7) | const UPDATE_INTERVAL_MSEC = 24 * 3600 * 1000; constant MAPPING_URL (line 9) | const MAPPING_URL = constant LOCAL_PATH (line 11) | const LOCAL_PATH = process.env.CONFIG_DIRECTORY type AnimeMapping (line 20) | interface AnimeMapping { type Anime (line 28) | interface Anime { type AnimeList (line 41) | interface AnimeList { type AnidbItem (line 47) | interface AnidbItem { class AnimeListMapping (line 54) | class AnimeListMapping { FILE: server/api/externalapi.ts constant DEFAULT_TTL (line 8) | const DEFAULT_TTL = 300; constant DEFAULT_ROLLING_BUFFER (line 11) | const DEFAULT_ROLLING_BUFFER = 10000; type ExternalAPIOptions (line 13) | interface ExternalAPIOptions { class ExternalAPI (line 23) | class ExternalAPI { method constructor (line 28) | constructor( method get (line 56) | protected async get( method post (line 79) | protected async post( method getRolling (line 104) | protected async getRolling( method removeCache (line 139) | protected removeCache(endpoint: string, options?: Record = T extends { includeMediaInfo: true } type JellyfinItemsReponse (line 120) | interface JellyfinItemsReponse { class JellyfinAPI (line 126) | class JellyfinAPI extends ExternalAPI { method constructor (line 130) | constructor( method login (line 163) | public async login( method setUserId (line 220) | public setUserId(userId: string): void { method getSystemInfo (line 225) | public async getSystemInfo(): Promise { method getServerName (line 235) | public async getServerName(): Promise { method getUsers (line 252) | public async getUsers(): Promise { method getUser (line 267) | public async getUser(): Promise { method getLibraries (line 283) | public async getLibraries(): Promise { method mapLibraries (line 311) | private mapLibraries(mediaFolders: JellyfinMediaFolder[]): JellyfinLib... method getLibraryContents (line 337) | public async getLibraryContents(id: string): Promise { FILE: server/api/plexapi.ts type PlexStatusResponse (line 6) | interface PlexStatusResponse { type PlexLibraryItem (line 13) | interface PlexLibraryItem { type PlexLibraryResponse (line 30) | interface PlexLibraryResponse { type PlexLibrary (line 37) | interface PlexLibrary { type PlexLibrariesResponse (line 44) | interface PlexLibrariesResponse { type PlexMetadata (line 50) | interface PlexMetadata { type Media (line 72) | interface Media { type PlexMetadataResponse (line 88) | interface PlexMetadataResponse { class PlexAPI (line 94) | class PlexAPI extends ExternalAPI { method constructor (line 95) | constructor({ method getStatus (line 126) | public async getStatus(): Promise { method getLibraries (line 130) | public async getLibraries(): Promise { method syncLibraries (line 136) | public async syncLibraries(): Promise { method getLibraryContents (line 176) | public async getLibraryContents( method getMetadata (line 196) | public async getMetadata( method getChildrenMetadata (line 209) | public async getChildrenMetadata(key: string): Promise { method getRecentlyAdded (line 217) | public async getRecentlyAdded( FILE: server/api/plextv.ts type PlexAccountResponse (line 9) | interface PlexAccountResponse { type PlexUser (line 13) | interface PlexUser { type ConnectionResponse (line 35) | interface ConnectionResponse { type DeviceResponse (line 45) | interface DeviceResponse { type ServerResponse (line 74) | interface ServerResponse { type UsersResponse (line 86) | interface UsersResponse { type WatchlistResponse (line 101) | interface WatchlistResponse { type MetadataResponse (line 110) | interface MetadataResponse { type PlexWatchlistItem (line 123) | interface PlexWatchlistItem { type PlexWatchlistCache (line 131) | interface PlexWatchlistCache { class PlexTvAPI (line 136) | class PlexTvAPI extends ExternalAPI { method constructor (line 139) | constructor(authToken: string) { method getDevices (line 156) | public async getDevices(): Promise { method getUser (line 212) | public async getUser(): Promise { method checkUserAccess (line 228) | public async checkUserAccess(userId: number): Promise { method getUsers (line 257) | public async getUsers(): Promise { method getWatchlist (line 269) | public async getWatchlist({ method pingToken (line 383) | public async pingToken() { FILE: server/api/provider.ts type TvShowProvider (line 6) | interface TvShowProvider { FILE: server/api/pushover.ts type PushoverSoundsResponse (line 3) | interface PushoverSoundsResponse { type PushoverSound (line 11) | interface PushoverSound { class PushoverAPI (line 27) | class PushoverAPI extends ExternalAPI { method constructor (line 28) | constructor() { method getSounds (line 41) | public async getSounds(appToken: string): Promise { FILE: server/api/rating/imdbRadarrProxy.ts type IMDBRadarrProxyResponse (line 4) | type IMDBRadarrProxyResponse = IMDBMovie[]; type IMDBMovie (line 6) | interface IMDBMovie { type Rating (line 37) | interface Rating { type MovieRatings (line 44) | interface MovieRatings { type Tmdb (line 51) | interface Tmdb { type Imdb (line 57) | interface Imdb { type Metacritic (line 63) | interface Metacritic { type RottenTomatoes (line 69) | interface RottenTomatoes { type Image (line 75) | interface Image { type AlternativeTitle (line 80) | interface AlternativeTitle { type Translation (line 86) | interface Translation { type Recommendation (line 92) | interface Recommendation { type Credits (line 97) | interface Credits { type Cast (line 102) | interface Cast { type Image2 (line 111) | interface Image2 { type Crew (line 116) | interface Crew { type Image3 (line 125) | interface Image3 { type Certification (line 130) | interface Certification { type Collection (line 135) | interface Collection { type IMDBRating (line 144) | interface IMDBRating { class IMDBRadarrProxy (line 157) | class IMDBRadarrProxy extends ExternalAPI { method constructor (line 158) | constructor() { method getMovieRatings (line 173) | public async getMovieRatings(IMDBid: string): Promise { class ServarrBase (line 81) | class ServarrBase extends ExternalAPI { method buildUrl (line 82) | static buildUrl(settings: DVRSettings, path?: string): string { method constructor (line 90) | constructor({ method refreshMonitoredDownloads (line 232) | async refreshMonitoredDownloads(): Promise { method runCommand (line 236) | protected async runCommand( FILE: server/api/servarr/radarr.ts type RadarrMovieOptions (line 4) | interface RadarrMovieOptions { type RadarrMovie (line 17) | interface RadarrMovie { class RadarrAPI (line 66) | class RadarrAPI extends ServarrBase<{ movieId: number }> { method constructor (line 67) | constructor({ url, apiKey }: { url: string; apiKey: string }) { method getMovieByTmdbId (line 95) | public async getMovieByTmdbId(id: number): Promise { method searchMovie (line 251) | public async searchMovie(movieId: number): Promise { FILE: server/api/servarr/sonarr.ts type SonarrSeason (line 4) | interface SonarrSeason { type EpisodeResult (line 16) | interface EpisodeResult { type SonarrSeries (line 32) | interface SonarrSeries { type AddSeriesOptions (line 91) | interface AddSeriesOptions { type LanguageProfile (line 106) | interface LanguageProfile { class SonarrAPI (line 111) | class SonarrAPI extends ServarrBase<{ method constructor (line 116) | constructor({ url, apiKey }: { url: string; apiKey: string }) { method getSeries (line 120) | public async getSeries(): Promise { method getSeriesById (line 132) | public async getSeriesById(id: number): Promise { method getSeriesByTitle (line 145) | public async getSeriesByTitle(title: string): Promise { method getSeriesByTvdbId (line 168) | public async getSeriesByTvdbId(id: number): Promise { method addSeries (line 191) | public async addSeries(options: AddSeriesOptions): Promise { method searchSeries (line 337) | public async searchSeries(seriesId: number): Promise { method getEpisodes (line 357) | public async getEpisodes(seriesId: number): Promise { method monitorEpisodes (line 373) | public async monitorEpisodes(episodeIds: number[]): Promise { method buildSeasonList (line 389) | private buildSeasonList( FILE: server/api/tautulli.ts type TautulliHistoryRecord (line 9) | interface TautulliHistoryRecord { type TautulliHistoryResponse (line 50) | interface TautulliHistoryResponse { type TautulliWatchStats (line 65) | interface TautulliWatchStats { type TautulliWatchStatsResponse (line 71) | interface TautulliWatchStatsResponse { type TautulliWatchUser (line 79) | interface TautulliWatchUser { type TautulliWatchUsersResponse (line 88) | interface TautulliWatchUsersResponse { type TautulliInfo (line 96) | interface TautulliInfo { type TautulliInfoResponse (line 109) | interface TautulliInfoResponse { class TautulliAPI (line 117) | class TautulliAPI { method constructor (line 120) | constructor(settings: TautulliSettings) { method getInfo (line 130) | public async getInfo(): Promise { method getMediaWatchStats (line 149) | public async getMediaWatchStats( method getMediaWatchUsers (line 178) | public async getMediaWatchUsers( method getUserWatchStats (line 207) | public async getUserWatchStats(user: User): Promise { method getUserWatchHistory (line 239) | public async getUserWatchHistory( FILE: server/api/themoviedb/constants.ts constant ANIME_KEYWORD_ID (line 1) | const ANIME_KEYWORD_ID = 210024; FILE: server/api/themoviedb/index.ts type SearchOptions (line 31) | interface SearchOptions { type SingleSearchOptions (line 38) | interface SingleSearchOptions extends SearchOptions { type SortOptions (line 61) | type SortOptions = (typeof SortOptionsIterable)[number]; type TmdbCertificationResponse (line 63) | interface TmdbCertificationResponse { type DiscoverMovieOptions (line 73) | interface DiscoverMovieOptions { type DiscoverTvOptions (line 100) | interface DiscoverTvOptions { class TheMovieDb (line 127) | class TheMovieDb extends ExternalAPI implements TvShowProvider { method constructor (line 131) | constructor({ method getMovieRecommendations (line 446) | public async getMovieRecommendations({ method getMovieSimilar (line 474) | public async getMovieSimilar({ method getMoviesByKeyword (line 502) | public async getMoviesByKeyword({ method getTvRecommendations (line 531) | public async getTvRecommendations({ method getTvSimilar (line 560) | public async getTvSimilar({ method getByExternalId (line 874) | public async getByExternalId({ method getMediaByImdbId (line 908) | public async getMediaByImdbId({ method getShowByTvdbId (line 948) | public async getShowByTvdbId({ method getCollection (line 979) | public async getCollection({ method getRegions (line 1004) | public async getRegions(): Promise { method getLanguages (line 1022) | public async getLanguages(): Promise { method getStudio (line 1040) | public async getStudio(studioId: number): Promise { method getMovieGenres (line 1066) | public async getMovieGenres({ method getTvGenres (line 1119) | public async getTvGenres({ method getKeywordDetails (line 1206) | public async getKeywordDetails({ method searchKeyword (line 1229) | public async searchKeyword({ method searchCompany (line 1256) | public async searchCompany({ method getAvailableWatchProviderRegions (line 1283) | public async getAvailableWatchProviderRegions({ method getMovieWatchProviders (line 1308) | public async getMovieWatchProviders({ method getTvWatchProviders (line 1336) | public async getTvWatchProviders({ FILE: server/api/themoviedb/interfaces.ts type TmdbMediaResult (line 1) | interface TmdbMediaResult { type TmdbMovieResult (line 14) | interface TmdbMovieResult extends TmdbMediaResult { type TmdbTvResult (line 23) | interface TmdbTvResult extends TmdbMediaResult { type TmdbCollectionResult (line 31) | interface TmdbCollectionResult { type TmdbPersonResult (line 43) | interface TmdbPersonResult { type TmdbPaginatedResponse (line 53) | interface TmdbPaginatedResponse { type TmdbSearchMultiResponse (line 59) | interface TmdbSearchMultiResponse extends TmdbPaginatedResponse { type TmdbSearchMovieResponse (line 68) | interface TmdbSearchMovieResponse extends TmdbPaginatedResponse { type TmdbSearchTvResponse (line 72) | interface TmdbSearchTvResponse extends TmdbPaginatedResponse { type TmdbUpcomingMoviesResponse (line 76) | interface TmdbUpcomingMoviesResponse extends TmdbPaginatedResponse { type TmdbExternalIdResponse (line 84) | interface TmdbExternalIdResponse { type TmdbCreditCast (line 90) | interface TmdbCreditCast { type TmdbAggregateCreditCast (line 101) | interface TmdbAggregateCreditCast extends TmdbCreditCast { type TmdbCreditCrew (line 109) | interface TmdbCreditCrew { type TmdbExternalIds (line 119) | interface TmdbExternalIds { type TmdbProductionCompany (line 130) | interface TmdbProductionCompany { type TmdbMovieDetails (line 140) | interface TmdbMovieDetails { type TmdbVideo (line 196) | interface TmdbVideo { type TmdbTvEpisodeResult (line 212) | interface TmdbTvEpisodeResult { type TmdbTvSeasonResult (line 226) | interface TmdbTvSeasonResult { type TmdbTvDetails (line 236) | interface TmdbTvDetails { type TmdbVideoResult (line 307) | interface TmdbVideoResult { type TmdbTvRatingResult (line 311) | interface TmdbTvRatingResult { type TmdbRating (line 315) | interface TmdbRating { type TmdbMovieReleaseResult (line 320) | interface TmdbMovieReleaseResult { type TmdbRelease (line 324) | interface TmdbRelease extends TmdbRating { type TmdbKeyword (line 334) | interface TmdbKeyword { type TmdbPersonDetails (line 339) | interface TmdbPersonDetails { type TmdbPersonCredit (line 356) | interface TmdbPersonCredit { type TmdbPersonCreditCast (line 380) | interface TmdbPersonCreditCast extends TmdbPersonCredit { type TmdbPersonCreditCrew (line 384) | interface TmdbPersonCreditCrew extends TmdbPersonCredit { type TmdbPersonCombinedCredits (line 389) | interface TmdbPersonCombinedCredits { type TmdbSeasonWithEpisodes (line 395) | interface TmdbSeasonWithEpisodes extends Omit< type TmdbCollection (line 403) | interface TmdbCollection { type TmdbRegion (line 412) | interface TmdbRegion { type TmdbLanguage (line 417) | interface TmdbLanguage { type TmdbGenresResult (line 423) | interface TmdbGenresResult { type TmdbGenre (line 427) | interface TmdbGenre { type TmdbNetwork (line 432) | interface TmdbNetwork { type TmdbWatchProviders (line 441) | interface TmdbWatchProviders { type TmdbWatchProviderDetails (line 447) | interface TmdbWatchProviderDetails { type TmdbKeywordSearchResponse (line 454) | interface TmdbKeywordSearchResponse extends TmdbPaginatedResponse { type TmdbCompany (line 459) | interface TmdbCompany { type TmdbCompanySearchResponse (line 465) | interface TmdbCompanySearchResponse extends TmdbPaginatedResponse { type TmdbWatchProviderRegion (line 469) | interface TmdbWatchProviderRegion { FILE: server/api/tvdb/index.ts type TvdbConfig (line 21) | interface TvdbConfig { constant DEFAULT_CONFIG (line 28) | const DEFAULT_CONFIG: TvdbConfig = { type TvdbIdStatus (line 35) | const enum TvdbIdStatus { type TvdbId (line 39) | type TvdbId = number; type ValidTvdbId (line 40) | type ValidTvdbId = Exclude; class Tvdb (line 42) | class Tvdb extends ExternalAPI implements TvShowProvider { method constructor (line 50) | constructor(pin?: string) { method getInstance (line 67) | public static async getInstance(): Promise { method refreshToken (line 76) | private async refreshToken(): Promise { method test (line 103) | public async test(): Promise { method login (line 112) | async login(): Promise { method getShowByTvdbId (line 136) | public async getShowByTvdbId({ method getTvShow (line 168) | public async getTvShow({ method getTvSeason (line 198) | public async getTvSeason({ method enrichTmdbShowWithTvdbData (line 237) | private async enrichTmdbShowWithTvdbData( method fetchTvdbShowData (line 260) | private async fetchTvdbShowData(tvdbId: number): Promise { method processSeasons (line 274) | private processSeasons(tvdbData: TvdbTvDetails): TmdbTvSeasonResult[] { method createSeasonData (line 290) | private createSeasonData( method getTvdbSeasonData (line 322) | private async getTvdbSeasonData( method getSeasonWithTranslation (line 380) | private async getSeasonWithTranslation( method getSeasonWithOriginalLanguage (line 463) | private async getSeasonWithOriginalLanguage( method processEpisodes (line 500) | private processEpisodes( method createEpisodeData (line 515) | private createEpisodeData( method createEmptySeasonResponse (line 538) | private createEmptySeasonResponse(tvId: number): TmdbSeasonWithEpisodes { method getTvdbIdFromTmdb (line 550) | private getTvdbIdFromTmdb(tmdbTvShow: TmdbTvDetails): TvdbId { method isValidTvdbId (line 554) | private isValidTvdbId(tvdbId: TvdbId): tvdbId is ValidTvdbId { method handleError (line 558) | private handleError(context: string, error: Error): void { FILE: server/api/tvdb/interfaces.ts type TvdbBaseResponse (line 3) | interface TvdbBaseResponse { type TvdbPagination (line 9) | interface TvdbPagination { type TvdbLoginResponse (line 17) | interface TvdbLoginResponse { type TvDetailsAliases (line 21) | interface TvDetailsAliases { type TvDetailsStatus (line 26) | interface TvDetailsStatus { type TvdbTvDetails (line 33) | interface TvdbTvDetails { type TvdbCompanyType (line 56) | interface TvdbCompanyType { type TvdbParentCompany (line 61) | interface TvdbParentCompany { type TvdbCompany (line 70) | interface TvdbCompany { type TvdbType (line 86) | interface TvdbType { type TvdbArtwork (line 93) | interface TvdbArtwork { type TvdbEpisode (line 105) | interface TvdbEpisode { type TvdbSeasonDetails (line 126) | interface TvdbSeasonDetails { type TvdbEpisodeTranslation (line 151) | interface TvdbEpisodeTranslation { constant TMDB_TO_TVDB_MAPPING (line 157) | const TMDB_TO_TVDB_MAPPING: Record & { function convertTMDBToTVDB (line 199) | function convertTMDBToTVDB(tmdbCode: string): string | null { function convertTmdbLanguageToTvdbWithFallback (line 209) | function convertTmdbLanguageToTvdbWithFallback( FILE: server/constants/discover.ts type DiscoverSliderType (line 3) | enum DiscoverSliderType { FILE: server/constants/error.ts type ApiErrorCode (line 1) | enum ApiErrorCode { FILE: server/constants/issue.ts type IssueType (line 1) | enum IssueType { type IssueStatus (line 8) | enum IssueStatus { FILE: server/constants/media.ts type MediaRequestStatus (line 1) | enum MediaRequestStatus { type MediaType (line 9) | enum MediaType { type MediaStatus (line 14) | enum MediaStatus { FILE: server/constants/server.ts type MediaServerType (line 1) | enum MediaServerType { type ServerType (line 8) | enum ServerType { FILE: server/constants/user.ts type UserType (line 1) | enum UserType { FILE: server/datasource.ts constant DB_SSL_PREFIX (line 6) | const DB_SSL_PREFIX = 'DB_SSL_'; function boolFromEnv (line 8) | function boolFromEnv(envVar: string, defaultVal = false) { function stringOrReadFileFromEnv (line 15) | function stringOrReadFileFromEnv(envVar: string): Buffer | string | unde... function buildSslConfig (line 26) | function buildSslConfig(): TlsOptions | undefined { function getDataSource (line 118) | function getDataSource(): DataSourceOptions { FILE: server/entity/Blocklist.ts class Blocklist (line 22) | class Blocklist implements BlocklistItem { method constructor (line 54) | constructor(init?: Partial) { method addToBlocklist (line 58) | public static async addToBlocklist( FILE: server/entity/DiscoverSlider.ts class DiscoverSlider (line 8) | @Entity() method bootstrapSliders (line 10) | public static async bootstrapSliders(): Promise { method constructor (line 63) | constructor(init?: Partial) { FILE: server/entity/Issue.ts class Issue (line 17) | @Entity() method sortComments (line 74) | sortComments() { method constructor (line 78) | constructor(init?: Partial) { FILE: server/entity/IssueComment.ts class IssueComment (line 12) | @Entity() method constructor (line 43) | constructor(init?: Partial) { FILE: server/entity/Media.ts class Media (line 28) | @Entity() method getRelatedMedia (line 31) | public static async getRelatedMedia( method getMedia (line 64) | public static async getMedia( method constructor (line 202) | constructor(init?: Partial) { method resetServiceData (line 206) | public resetServiceData(): void { method setPlexUrls (line 220) | public setPlexUrls(): void { method setServiceUrl (line 273) | public setServiceUrl(): void { method getDownloadingItem (line 338) | public getDownloadingItem(): void { FILE: server/entity/MediaRequest.ts class RequestPermissionError (line 34) | class RequestPermissionError extends Error {} class QuotaRestrictedError (line 35) | class QuotaRestrictedError extends Error {} class DuplicateMediaRequestError (line 36) | class DuplicateMediaRequestError extends Error {} class NoSeasonsAvailableError (line 37) | class NoSeasonsAvailableError extends Error {} class BlocklistedMediaError (line 38) | class BlocklistedMediaError extends Error {} type MediaRequestOptions (line 40) | type MediaRequestOptions = { class MediaRequest (line 45) | class MediaRequest { method request (line 46) | public static async request( method constructor (line 614) | constructor(init?: Partial) { method notifyNewRequest (line 619) | public async notifyNewRequest(): Promise { method notifyApprovedOrDeclined (line 653) | public async notifyApprovedOrDeclined(autoApproved = false): Promise { method sortSeasons (line 711) | private sortSeasons() { method sendNotification (line 717) | static async sendNotification( FILE: server/entity/OverrideRule.ts class OverrideRule (line 4) | @Entity() method constructor (line 46) | constructor(init?: Partial) { FILE: server/entity/Season.ts class Season (line 12) | @Entity() method constructor (line 42) | constructor(init?: Partial) { FILE: server/entity/SeasonRequest.ts class SeasonRequest (line 12) | @Entity() method constructor (line 39) | constructor(init?: Partial) { FILE: server/entity/Session.ts class Session (line 5) | class Session implements ISession { FILE: server/entity/User.ts class User (line 34) | class User { method filterMany (line 35) | public static filterMany( method constructor (line 161) | constructor(init?: Partial) { method filter (line 165) | public filter(showFiltered?: boolean): Partial { method hasPermission (line 176) | public hasPermission( method passwordMatch (line 183) | public passwordMatch(password: string): Promise { method setPassword (line 193) | public async setPassword(password: string): Promise { method generatePassword (line 198) | public async generatePassword(): Promise { method resetPassword (line 229) | public async resetPassword(): Promise { method setDisplayName (line 268) | public setDisplayName(): void { method getQuota (line 273) | public async getQuota(): Promise { FILE: server/entity/UserPushSubscription.ts class UserPushSubscription (line 14) | class UserPushSubscription { method constructor (line 44) | constructor(init?: Partial) { FILE: server/entity/UserSettings.ts constant ALL_NOTIFICATIONS (line 13) | const ALL_NOTIFICATIONS = Object.values(Notification) class UserSettings (line 18) | class UserSettings { method constructor (line 19) | constructor(init?: Partial) { method hasNotificationType (line 135) | public hasNotificationType( FILE: server/entity/Watchlist.ts class DuplicateWatchlistRequestError (line 19) | class DuplicateWatchlistRequestError extends Error {} class NotFoundError (line 20) | class NotFoundError extends Error { method constructor (line 21) | constructor(message = 'Not found') { class Watchlist (line 29) | class Watchlist implements WatchlistItem { method constructor (line 70) | constructor(init?: Partial) { method createWatchlist (line 74) | public static async createWatchlist({ method deleteWatchlist (line 143) | public static async deleteWatchlist( FILE: server/index.ts constant API_SPEC_PATH (line 47) | const API_SPEC_PATH = path.join(__dirname, '../seerr-api.yml'); FILE: server/interfaces/api/blocklistInterfaces.ts type BlocklistItem (line 4) | interface BlocklistItem { type BlocklistResultsResponse (line 13) | interface BlocklistResultsResponse extends PaginatedResponse { FILE: server/interfaces/api/common.ts type PageInfo (line 1) | interface PageInfo { type PaginatedResponse (line 8) | interface PaginatedResponse { type NonFunctionPropertyNames (line 15) | type NonFunctionPropertyNames = { type NonFunctionProperties (line 23) | type NonFunctionProperties = Pick>; FILE: server/interfaces/api/discoverInterfaces.ts type GenreSliderItem (line 1) | interface GenreSliderItem { type WatchlistItem (line 7) | interface WatchlistItem { type WatchlistResponse (line 15) | interface WatchlistResponse { FILE: server/interfaces/api/issueInterfaces.ts type IssueResultsResponse (line 4) | interface IssueResultsResponse extends PaginatedResponse { FILE: server/interfaces/api/mediaInterfaces.ts type MediaResultsResponse (line 5) | interface MediaResultsResponse extends PaginatedResponse { type MediaWatchDataResponse (line 9) | interface MediaWatchDataResponse { FILE: server/interfaces/api/overrideRuleInterfaces.ts type OverrideRuleResultsResponse (line 3) | type OverrideRuleResultsResponse = OverrideRule[]; FILE: server/interfaces/api/personInterfaces.ts type PersonCombinedCreditsResponse (line 3) | interface PersonCombinedCreditsResponse { FILE: server/interfaces/api/plexInterfaces.ts type PlexStatus (line 3) | interface PlexStatus { type PlexConnection (line 9) | interface PlexConnection { type PlexDevice (line 19) | interface PlexDevice { FILE: server/interfaces/api/requestInterfaces.ts type RequestResultsResponse (line 5) | interface RequestResultsResponse extends PaginatedResponse { type MediaRequestBody (line 16) | type MediaRequestBody = { FILE: server/interfaces/api/serviceInterfaces.ts type ServiceCommonServer (line 4) | interface ServiceCommonServer { type ServiceCommonServerWithDetails (line 19) | interface ServiceCommonServerWithDetails { FILE: server/interfaces/api/settingsInterfaces.ts type LogMessage (line 4) | type LogMessage = { type LogsResultsResponse (line 12) | interface LogsResultsResponse extends PaginatedResponse { type SettingsAboutResponse (line 16) | interface SettingsAboutResponse { type PublicSettingsResponse (line 24) | interface PublicSettingsResponse { type CacheItem (line 53) | interface CacheItem { type CacheResponse (line 65) | interface CacheResponse { type StatusResponse (line 74) | interface StatusResponse { FILE: server/interfaces/api/userInterfaces.ts type UserResultsResponse (line 6) | interface UserResultsResponse extends PaginatedResponse { type UserRequestsResponse (line 10) | interface UserRequestsResponse extends PaginatedResponse { type QuotaStatus (line 14) | interface QuotaStatus { type QuotaResponse (line 22) | interface QuotaResponse { type UserWatchDataResponse (line 27) | interface UserWatchDataResponse { FILE: server/interfaces/api/userSettingsInterfaces.ts type UserSettingsGeneralResponse (line 3) | interface UserSettingsGeneralResponse { type NotificationAgentTypes (line 23) | type NotificationAgentTypes = Record; type UserSettingsNotificationsResponse (line 24) | interface UserSettingsNotificationsResponse { FILE: server/job/blocklistedTagsProcessor.ts constant TMDB_API_DELAY_MS (line 20) | const TMDB_API_DELAY_MS = 250; class AbortTransaction (line 21) | class AbortTransaction extends Error {} class BlocklistedTagProcessor (line 23) | class BlocklistedTagProcessor implements RunnableScanner { method run (line 28) | public async run() { method status (line 49) | public status(): StatusBase { method cancel (line 57) | public cancel() { method reset (line 63) | private reset() { method createBlocklistEntries (line 67) | private async createBlocklistEntries(em: EntityManager) { method processResults (line 166) | private async processResults( method cleanBlocklist (line 207) | private async cleanBlocklist(em: EntityManager) { FILE: server/job/schedule.ts type ScheduledJob (line 20) | interface ScheduledJob { FILE: server/lib/availabilitySync.ts class AvailabilitySync (line 20) | class AvailabilitySync { method run (line 32) | async run() { method cancel (line 414) | public cancel() { method loadAvailableMediaPaginated (line 418) | private async *loadAvailableMediaPaginated(pageSize: number) { method mediaUpdater (line 444) | private async mediaUpdater( method seasonUpdater (line 536) | private async seasonUpdater( method mediaExistsInRadarr (line 609) | private async mediaExistsInRadarr( method mediaExistsInSonarr (line 682) | private async mediaExistsInSonarr( method seasonExistsInSonarr (line 763) | private async seasonExistsInSonarr( method mediaExistsInPlex (line 804) | private async mediaExistsInPlex( method seasonExistsInPlex (line 933) | private async seasonExistsInPlex( method mediaExistsInJellyfin (line 965) | private async mediaExistsInJellyfin( method seasonExistsInJellyfin (line 1050) | private async seasonExistsInJellyfin( FILE: server/lib/cache.ts type AvailableCacheIds (line 3) | type AvailableCacheIds = constant DEFAULT_TTL (line 15) | const DEFAULT_TTL = 300; constant DEFAULT_CHECK_PERIOD (line 16) | const DEFAULT_CHECK_PERIOD = 120; class Cache (line 18) | class Cache { method constructor (line 23) | constructor( method getStats (line 36) | public getStats() { method flush (line 40) | public flush(): void { class CacheManager (line 45) | class CacheManager { method getCache (line 80) | public getCache(id: AvailableCacheIds): Cache { method getAllCaches (line 84) | public getAllCaches(): Record { FILE: server/lib/downloadtracker.ts type EpisodeNumberResult (line 8) | interface EpisodeNumberResult { type DownloadingItem (line 14) | interface DownloadingItem { class DownloadTracker (line 27) | class DownloadTracker { method getMovieProgress (line 31) | public getMovieProgress( method getSeriesProgress (line 44) | public getSeriesProgress( method resetDownloadTracker (line 57) | public async resetDownloadTracker() { method updateDownloads (line 62) | public updateDownloads() { method updateRadarrDownloads (line 67) | private async updateRadarrDownloads() { method updateSonarrDownloads (line 145) | private async updateSonarrDownloads() { FILE: server/lib/email/index.ts class PreparedEmail (line 8) | class PreparedEmail extends Email { method constructor (line 9) | public constructor(settings: NotificationAgentEmail, pgpKey?: string) { FILE: server/lib/email/openpgpEncrypt.ts type EncryptorOptions (line 7) | interface EncryptorOptions { class PGPEncryptor (line 13) | class PGPEncryptor extends Transform { method constructor (line 21) | constructor(options: EncryptorOptions) { FILE: server/lib/imageproxy.ts type ImageResponse (line 10) | type ImageResponse = { class ImageProxy (line 27) | class ImageProxy { method clearCache (line 28) | public static async clearCache(key: string) { method getImageStats (line 75) | public static async getImageStats( method getDirectorySize (line 89) | private static async getDirectorySize(dir: string): Promise { method getImageCount (line 121) | private static async getImageCount(dir: string) { method constructor (line 139) | constructor( method getImage (line 161) | public async getImage( method clearCachedImage (line 191) | public async clearCachedImage(path: string) { method get (line 232) | private async get(cacheKey: string): Promise { method set (line 264) | private async set( method writeToCacheDir (line 317) | private async writeToCacheDir( method getCacheKey (line 335) | private getCacheKey(path: string) { method getHash (line 339) | private getHash(items: (string | number | Buffer)[]) { method getCacheDirectory (line 351) | private getCacheDirectory() { FILE: server/lib/notifications/agents/agent.ts type NotificationPayload (line 9) | interface NotificationPayload { method constructor (line 28) | public constructor(settings?: T) { type NotificationAgent (line 35) | interface NotificationAgent { FILE: server/lib/notifications/agents/discord.ts type EmbedColors (line 16) | enum EmbedColors { type DiscordImageEmbed (line 42) | interface DiscordImageEmbed { type Field (line 49) | interface Field { type DiscordRichEmbed (line 54) | interface DiscordRichEmbed { type DiscordWebhookPayload (line 81) | interface DiscordWebhookPayload { class DiscordAgent (line 94) | class DiscordAgent method getSettings (line 98) | protected getSettings(): NotificationAgentDiscord { method buildEmbed (line 108) | public buildEmbed( method shouldSend (line 233) | public shouldSend(): boolean { method send (line 243) | public async send( FILE: server/lib/notifications/agents/email.ts class EmailAgent (line 16) | class EmailAgent method getSettings (line 20) | protected getSettings(): NotificationAgentEmail { method shouldSend (line 30) | public shouldSend(): boolean { method buildMessage (line 45) | private buildMessage( method send (line 197) | public async send( FILE: server/lib/notifications/agents/gotify.ts type GotifyPayload (line 10) | interface GotifyPayload { class GotifyAgent (line 17) | class GotifyAgent method getSettings (line 21) | protected getSettings(): NotificationAgentGotify { method shouldSend (line 31) | public shouldSend(): boolean { method getNotificationPayload (line 46) | private getNotificationPayload( method send (line 121) | public async send( FILE: server/lib/notifications/agents/ntfy.ts class NtfyAgent (line 10) | class NtfyAgent method getSettings (line 14) | protected getSettings(): NotificationAgentNtfy { method buildPayload (line 24) | private buildPayload(type: Notification, payload: NotificationPayload) { method shouldSend (line 94) | public shouldSend(): boolean { method send (line 104) | public async send( FILE: server/lib/notifications/agents/pushbullet.ts type PushbulletPayload (line 17) | interface PushbulletPayload { class PushbulletAgent (line 24) | class PushbulletAgent method getSettings (line 28) | protected getSettings(): NotificationAgentPushbullet { method shouldSend (line 38) | public shouldSend(): boolean { method getNotificationPayload (line 42) | private getNotificationPayload( method send (line 104) | public async send( FILE: server/lib/notifications/agents/pushover.ts type PushoverImagePayload (line 17) | interface PushoverImagePayload { type PushoverPayload (line 22) | interface PushoverPayload extends PushoverImagePayload { class PushoverAgent (line 33) | class PushoverAgent method getSettings (line 37) | protected getSettings(): NotificationAgentPushover { method shouldSend (line 47) | public shouldSend(): boolean { method getImagePayload (line 61) | private async getImagePayload( method getNotificationPayload (line 87) | private async getNotificationPayload( method send (line 190) | public async send( FILE: server/lib/notifications/agents/slack.ts type EmbedField (line 10) | interface EmbedField { type TextItem (line 15) | interface TextItem { type Element (line 21) | interface Element { type EmbedBlock (line 30) | interface EmbedBlock { type SlackBlockEmbed (line 43) | interface SlackBlockEmbed { class SlackAgent (line 48) | class SlackAgent method getSettings (line 52) | protected getSettings(): NotificationAgentSlack { method buildEmbed (line 62) | public buildEmbed( method shouldSend (line 215) | public shouldSend(): boolean { method send (line 225) | public async send( FILE: server/lib/notifications/agents/telegram.ts type TelegramMessagePayload (line 17) | interface TelegramMessagePayload { type TelegramPhotoPayload (line 25) | interface TelegramPhotoPayload { class TelegramAgent (line 34) | class TelegramAgent method getSettings (line 40) | protected getSettings(): NotificationAgentTelegram { method shouldSend (line 50) | public shouldSend(): boolean { method escapeText (line 60) | private escapeText(text: string | undefined): string { method getNotificationPayload (line 64) | private getNotificationPayload( method send (line 159) | public async send( FILE: server/lib/notifications/agents/webhook.ts type KeyMapFunction (line 12) | type KeyMapFunction = ( class WebhookAgent (line 63) | class WebhookAgent method getSettings (line 67) | protected getSettings(): NotificationAgentWebhook { method parseKeys (line 77) | private parseKeys( method buildPayload (line 143) | private buildPayload(type: Notification, payload: NotificationPayload) { method shouldSend (line 154) | public shouldSend(): boolean { method send (line 164) | public async send( FILE: server/lib/notifications/agents/webpush.ts type PushNotificationPayload (line 15) | interface PushNotificationPayload { type WebPushError (line 27) | interface WebPushError extends Error { class WebPushAgent (line 36) | class WebPushAgent method getSettings (line 40) | protected getSettings(): NotificationAgentConfig { method getNotificationPayload (line 50) | private getNotificationPayload( method shouldSend (line 151) | public shouldSend(): boolean { method send (line 159) | public async send( FILE: server/lib/notifications/index.ts type Notification (line 6) | enum Notification { class NotificationManager (line 92) | class NotificationManager { method sendNotification (line 100) | public sendNotification( FILE: server/lib/overseerrMerge.ts class SeerrMigration1759769291608 (line 148) | class SeerrMigration1759769291608 implements MigrationInterface { method up (line 151) | public async up(queryRunner: QueryRunner): Promise { method down (line 351) | public async down(queryRunner: QueryRunner): Promise { FILE: server/lib/permissions.ts type Permission (line 1) | enum Permission { type PermissionCheckOptions (line 34) | interface PermissionCheckOptions { FILE: server/lib/refreshToken.ts class RefreshToken (line 6) | class RefreshToken { method run (line 7) | public async run() { method refreshUserToken (line 21) | private async refreshUserToken(user: User) { FILE: server/lib/scanners/baseScanner.ts constant BUNDLE_SIZE (line 12) | const BUNDLE_SIZE = 20; constant UPDATE_RATE (line 13) | const UPDATE_RATE = 4 * 1000; type StatusBase (line 15) | type StatusBase = { type RunnableScanner (line 21) | interface RunnableScanner { type MediaIds (line 26) | interface MediaIds { type ProcessOptions (line 33) | interface ProcessOptions { type ProcessableSeason (line 46) | interface ProcessableSeason { class BaseScanner (line 55) | class BaseScanner { method constructor (line 69) | protected constructor( method getExisting (line 84) | private async getExisting(tmdbId: number, mediaType: MediaType) { method processMovie (line 94) | protected async processMovie( method processShow (line 251) | protected async processShow( method startRun (line 599) | protected startRun(): string { method endRun (line 630) | protected endRun(sessionId: string): void { method cancel (line 636) | public cancel(): void { method loop (line 640) | protected async loop( method processItems (line 680) | private async processItems( method log (line 691) | protected log( method protectedUpdateRate (line 699) | get protectedUpdateRate(): number { method protectedBundleSize (line 703) | get protectedBundleSize(): number { FILE: server/lib/scanners/jellyfin/index.ts type JellyfinSyncStatus (line 28) | interface JellyfinSyncStatus extends StatusBase { class JellyfinScanner (line 33) | class JellyfinScanner method constructor (line 43) | constructor({ isRecentOnly }: { isRecentOnly?: boolean } = {}) { method extractMovieIds (line 48) | private async extractMovieIds(jellyfinitem: JellyfinLibraryItem): Prom... method processJellyfinMovie (line 123) | private async processJellyfinMovie(jellyfinitem: JellyfinLibraryItem) { method getTvShow (line 181) | private async getTvShow({ method processJellyfinShow (line 217) | private async processJellyfinShow(jellyfinitem: JellyfinLibraryItem) { method processItem (line 446) | private async processItem(item: JellyfinLibraryItem): Promise { method run (line 454) | public async run(): Promise { method status (line 542) | public status(): JellyfinSyncStatus { FILE: server/lib/scanners/plex/index.ts constant HAMA_AGENT (line 34) | const HAMA_AGENT = 'com.plexapp.agents.hama'; type SyncStatus (line 36) | type SyncStatus = StatusBase & { class PlexScanner (line 41) | class PlexScanner method constructor (line 50) | public constructor(isRecentOnly = false) { method status (line 55) | public status(): SyncStatus { method run (line 65) | public async run(): Promise { method paginateLibrary (line 162) | private async paginateLibrary( method processItem (line 208) | private async processItem(plexitem: PlexLibraryItem) { method processPlexMovie (line 227) | private async processPlexMovie(plexitem: PlexLibraryItem) { method processPlexMovieByTmdbId (line 242) | private async processPlexMovieByTmdbId( method getTvShow (line 258) | private async getTvShow({ method processPlexShow (line 294) | private async processPlexShow(plexitem: PlexLibraryItem) { method getMediaIds (line 382) | private async getMediaIds(plexitem: PlexLibraryItem): Promise { method processHamaMovie (line 555) | private async processHamaMovie(metadata: PlexMetadata, tmdbId: number) { method processHamaSpecials (line 568) | private async processHamaSpecials(metadata: PlexMetadata, tvdbId: numb... method hasHamaAgent (line 595) | private async hasHamaAgent() { FILE: server/lib/scanners/radarr/index.ts type SyncStatus (line 12) | type SyncStatus = StatusBase & { class RadarrScanner (line 17) | class RadarrScanner method constructor (line 25) | constructor() { method status (line 29) | public status(): SyncStatus { method run (line 39) | public async run(): Promise { method processRadarrMovie (line 81) | private async processRadarrMovie(radarrMovie: RadarrMovie): Promise { method processSonarrSeries (line 91) | private async processSonarrSeries(sonarrSeries: SonarrSeries) { FILE: server/lib/search.ts type SearchProvider (line 24) | interface SearchProvider { FILE: server/lib/settings/index.ts type Library (line 16) | interface Library { type Region (line 24) | interface Region { type Language (line 30) | interface Language { type PlexSettings (line 36) | interface PlexSettings { type JellyfinSettings (line 46) | interface JellyfinSettings { type TautulliSettings (line 58) | interface TautulliSettings { type DVRSettings (line 67) | interface DVRSettings { type RadarrSettings (line 88) | interface RadarrSettings extends DVRSettings { type SonarrSettings (line 92) | interface SonarrSettings extends DVRSettings { type Quota (line 105) | interface Quota { type MetadataProviderType (line 110) | enum MetadataProviderType { type MetadataSettings (line 115) | interface MetadataSettings { type ProxySettings (line 120) | interface ProxySettings { type MainSettings (line 131) | interface MainSettings { type ProxySettings (line 158) | interface ProxySettings { type DnsCacheSettings (line 169) | interface DnsCacheSettings { type NetworkSettings (line 175) | interface NetworkSettings { type PublicSettings (line 184) | interface PublicSettings { type FullPublicSettings (line 188) | interface FullPublicSettings extends PublicSettings { type NotificationAgentConfig (line 216) | interface NotificationAgentConfig { type NotificationAgentDiscord (line 222) | interface NotificationAgentDiscord extends NotificationAgentConfig { type NotificationAgentSlack (line 232) | interface NotificationAgentSlack extends NotificationAgentConfig { type NotificationAgentEmail (line 238) | interface NotificationAgentEmail extends NotificationAgentConfig { type NotificationAgentTelegram (line 256) | interface NotificationAgentTelegram extends NotificationAgentConfig { type NotificationAgentPushbullet (line 266) | interface NotificationAgentPushbullet extends NotificationAgentConfig { type NotificationAgentPushover (line 273) | interface NotificationAgentPushover extends NotificationAgentConfig { type NotificationAgentWebhook (line 281) | interface NotificationAgentWebhook extends NotificationAgentConfig { type NotificationAgentGotify (line 291) | interface NotificationAgentGotify extends NotificationAgentConfig { type NotificationAgentNtfy (line 299) | interface NotificationAgentNtfy extends NotificationAgentConfig { type NotificationAgentKey (line 312) | enum NotificationAgentKey { type NotificationAgents (line 325) | interface NotificationAgents { type NotificationSettings (line 338) | interface NotificationSettings { type JobSettings (line 342) | interface JobSettings { type JobId (line 346) | type JobId = type AllSettings (line 361) | interface AllSettings { constant SETTINGS_PATH (line 379) | const SETTINGS_PATH = process.env.CONFIG_DIRECTORY class Settings (line 383) | class Settings { method constructor (line 387) | constructor(initialSettings?: AllSettings) { method main (line 617) | get main(): MainSettings { method main (line 621) | set main(data: MainSettings) { method plex (line 625) | get plex(): PlexSettings { method plex (line 629) | set plex(data: PlexSettings) { method jellyfin (line 633) | get jellyfin(): JellyfinSettings { method jellyfin (line 637) | set jellyfin(data: JellyfinSettings) { method tautulli (line 641) | get tautulli(): TautulliSettings { method tautulli (line 645) | set tautulli(data: TautulliSettings) { method metadataSettings (line 649) | get metadataSettings(): MetadataSettings { method metadataSettings (line 653) | set metadataSettings(data: MetadataSettings) { method radarr (line 660) | get radarr(): RadarrSettings[] { method radarr (line 664) | set radarr(data: RadarrSettings[]) { method sonarr (line 668) | get sonarr(): SonarrSettings[] { method sonarr (line 672) | set sonarr(data: SonarrSettings[]) { method public (line 676) | get public(): PublicSettings { method public (line 680) | set public(data: PublicSettings) { method fullPublicSettings (line 684) | get fullPublicSettings(): FullPublicSettings { method notifications (line 719) | get notifications(): NotificationSettings { method notifications (line 723) | set notifications(data: NotificationSettings) { method jobs (line 727) | get jobs(): Record { method jobs (line 731) | set jobs(data: Record) { method network (line 735) | get network(): NetworkSettings { method network (line 739) | set network(data: NetworkSettings) { method migrations (line 743) | get migrations(): string[] { method migrations (line 747) | set migrations(data: string[]) { method clientId (line 751) | get clientId(): string { method vapidPublic (line 755) | get vapidPublic(): string { method vapidPrivate (line 759) | get vapidPrivate(): string { method regenerateApiKey (line 763) | public async regenerateApiKey(): Promise { method generateApiKey (line 769) | private generateApiKey(): string { method load (line 786) | public async load( method save (line 837) | public async save(): Promise { FILE: server/lib/watchlistsync.ts class WatchlistSync (line 17) | class WatchlistSync { method syncWatchlist (line 18) | public async syncWatchlist() { method syncUserWatchlist (line 34) | private async syncUserWatchlist(user: User) { FILE: server/middleware/deprecation.ts type DeprecationOptions (line 4) | interface DeprecationOptions { FILE: server/migration/postgres/1734786061496-InitialMigration.ts class InitialMigration1734786061496 (line 3) | class InitialMigration1734786061496 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 114) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1734786596045-AddTelegramMessageThreadId.ts class AddTelegramMessageThreadId1734786596045 (line 3) | class AddTelegramMessageThreadId1734786596045 implements MigrationInterf... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1734805738349-AddOverrideRules.ts class AddOverrideRules1734805738349 (line 3) | class AddOverrideRules1734805738349 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1734809898562-FixNullFields.ts class FixNullFields1734809898562 (line 3) | class FixNullFields1734809898562 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 36) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1737320080282-AddBlacklistTagsColumn.ts class AddBlacklistTagsColumn1737320080282 (line 3) | class AddBlacklistTagsColumn1737320080282 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1743023615532-UpdateWebPush.ts class UpdateWebPush1743023615532 (line 3) | class UpdateWebPush1743023615532 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 18) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1743107707465-AddUserAvatarCacheFields.ts class AddUserAvatarCacheFields1743107707465 (line 3) | class AddUserAvatarCacheFields1743107707465 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 15) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1745492376568-UpdateWebPush.ts class UpdateWebPush1745492376568 (line 3) | class UpdateWebPush1745492376568 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1746811308203-FixIssueTimestamps.ts class FixIssueTimestamps1746811308203 (line 3) | class FixIssueTimestamps1746811308203 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 119) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1765233385034-AddUniqueConstraintToPushSubscription.ts class AddUniqueConstraintToPushSubscription1765233385034 (line 3) | class AddUniqueConstraintToPushSubscription1765233385034 implements Migr... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 21) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1770627987304-AddPerformanceIndexes.ts class AddPerformanceIndexes1770627987304 (line 3) | class AddPerformanceIndexes1770627987304 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 21) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1771080196816-RenameBlacklistToBlocklist.ts class RenameBlacklistToBlocklist1771080196816 (line 3) | class RenameBlacklistToBlocklist1771080196816 implements MigrationInterf... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 13) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1771259406751-AddForeignKeyIndexes.ts class AddForeignKeyIndexes1771259406751 (line 3) | class AddForeignKeyIndexes1771259406751 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 81) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1771337333450-RecoveryLinkExpirationDateTime.ts class RecoveryLinkExpirationDateTime1771337333450 (line 3) | class RecoveryLinkExpirationDateTime1771337333450 implements MigrationIn... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/postgres/1772000000000-FixBlocklistIdDefault.ts class FixBlocklistIdDefault1772000000000 (line 3) | class FixBlocklistIdDefault1772000000000 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 16) | public async down(): Promise { FILE: server/migration/postgres/1772048000333-AddMediaTypeToUniqueConstraints.ts class AddMediaTypeToUniqueConstraints1772048000333 (line 3) | class AddMediaTypeToUniqueConstraints1772048000333 implements MigrationI... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 30) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1603944374840-InitialMigration.ts class InitialMigration1603944374840 (line 3) | class InitialMigration1603944374840 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 56) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1605085519544-SeasonStatus.ts class SeasonStatus1605085519544 (line 3) | class SeasonStatus1605085519544 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1606730060700-CascadeMigration.ts class CascadeMigration1606730060700 (line 3) | class CascadeMigration1606730060700 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 59) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1607928251245-DropImdbIdConstraint.ts class DropImdbIdConstraint1607928251245 (line 4) | class DropImdbIdConstraint1607928251245 implements MigrationInterface { method up (line 5) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1608217312474-AddUserRequestDeleteCascades.ts class AddUserRequestDeleteCascades1608219049304 (line 3) | class AddUserRequestDeleteCascades1608219049304 implements MigrationInte... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1608477467935-AddLastSeasonChangeMedia.ts class AddLastSeasonChangeMedia1608477467935 (line 3) | class AddLastSeasonChangeMedia1608477467935 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1608477467936-ForceDropImdbUniqueConstraint.ts class ForceDropImdbUniqueConstraint1608477467935 (line 3) | class ForceDropImdbUniqueConstraint1608477467935 implements MigrationInt... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1609236552057-RemoveTmdbIdUniqueConstraint.ts class RemoveTmdbIdUniqueConstraint1609236552057 (line 3) | class RemoveTmdbIdUniqueConstraint1609236552057 implements MigrationInte... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1610070934506-LocalUsers.ts class LocalUsers1610070934506 (line 3) | class LocalUsers1610070934506 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 25) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1610370640747-Add4kStatusFields.ts class Add4kStatusFields1610370640747 (line 3) | class Add4kStatusFields1610370640747 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 49) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1610522845513-AddMediaAddedFieldToMedia.ts class AddMediaAddedFieldToMedia1610522845513 (line 3) | class AddMediaAddedFieldToMedia1610522845513 implements MigrationInterfa... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1611508672722-AddDisplayNameToUser.ts class AddDisplayNameToUser1611508672722 (line 3) | class AddDisplayNameToUser1611508672722 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 25) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1611757511674-SonarrRadarrSyncServiceFields.ts class SonarrRadarrSyncServiceFields1611757511674 (line 3) | class SonarrRadarrSyncServiceFields1611757511674 implements MigrationInt... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1611801511397-AddRatingKeysToMedia.ts class AddRatingKeysToMedia1611801511397 (line 3) | class AddRatingKeysToMedia1611801511397 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1612482778137-AddResetPasswordGuidAndExpiryDate.ts class AddResetPasswordGuidAndExpiryDate1612482778137 (line 3) | class AddResetPasswordGuidAndExpiryDate1612482778137 implements Migratio... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 17) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1612571545781-AddLanguageProfileId.ts class AddLanguageProfileId1612571545781 (line 3) | class AddLanguageProfileId1612571545781 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1613379909641-AddJellyfinUserParams.ts class AddJellyfinUserParams1613379909641 (line 3) | class AddJellyfinUserParams1613379909641 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 37) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1613412948344-ServerTypeEnum.ts class ServerTypeEnum1613412948344 (line 3) | class ServerTypeEnum1613412948344 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 49) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1613615266968-CreateUserSettings.ts class CreateUserSettings1613615266968 (line 3) | class CreateUserSettings1613615266968 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 22) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1613670041760-AddJellyfinDeviceId.ts class AddJellyfinDeviceId1613670041760 (line 3) | class AddJellyfinDeviceId1613670041760 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 65) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1613955393450-UpdateUserSettingsRegions.ts class UpdateUserSettingsRegions1613955393450 (line 3) | class UpdateUserSettingsRegions1613955393450 implements MigrationInterfa... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1614334195680-AddTelegramSettingsToUserSettings.ts class AddTelegramSettingsToUserSettings1614334195680 (line 3) | class AddTelegramSettingsToUserSettings1614334195680 implements Migratio... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1615333940450-AddPGPToUserSettings.ts class AddPGPToUserSettings1615333940450 (line 3) | class AddPGPToUserSettings1615333940450 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1616576677254-AddUserQuotaFields.ts class AddUserQuotaFields1616576677254 (line 3) | class AddUserQuotaFields1616576677254 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 17) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1617624225464-CreateTagsFieldonMediaRequest.ts class CreateTagsFieldonMediaRequest1617624225464 (line 3) | class CreateTagsFieldonMediaRequest1617624225464 implements MigrationInt... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1617730837489-AddUserSettingsNotificationAgentsField.ts class AddUserSettingsNotificationAgentsField1617730837489 (line 3) | class AddUserSettingsNotificationAgentsField1617730837489 implements Mig... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1618912653565-CreateUserPushSubscriptions.ts class CreateUserPushSubscriptions1618912653565 (line 3) | class CreateUserPushSubscriptions1618912653565 implements MigrationInter... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 22) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1619239659754-AddUserSettingsLocale.ts class AddUserSettingsLocale1619239659754 (line 3) | class AddUserSettingsLocale1619239659754 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1619339817343-AddUserSettingsNotificationTypes.ts class AddUserSettingsNotificationTypes1619339817343 (line 3) | class AddUserSettingsNotificationTypes1619339817343 implements Migration... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1634904083966-AddIssues.ts class AddIssues1634904083966 (line 3) | class AddIssues1634904083966 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 33) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1635079863457-AddPushbulletPushoverUserSettings.ts class AddPushbulletPushoverUserSettings1635079863457 (line 3) | class AddPushbulletPushoverUserSettings1635079863457 implements Migratio... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1660632269368-AddWatchlistSyncUserSetting.ts class AddWatchlistSyncUserSetting1660632269368 (line 3) | class AddWatchlistSyncUserSetting1660632269368 implements MigrationInter... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1660714479373-AddMediaRequestIsAutoRequestedField.ts class AddMediaRequestIsAutoRequestedField1660714479373 (line 3) | class AddMediaRequestIsAutoRequestedField1660714479373 implements Migrat... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1672041273674-AddDiscoverSlider.ts class AddDiscoverSlider1672041273674 (line 3) | class AddDiscoverSlider1672041273674 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1682608634546-AddWatchlists.ts class AddWatchlists1682608634546 (line 3) | class AddWatchlists1682608634546 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 15) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1697393491630-AddUserPushoverSound.ts class AddUserPushoverSound1697393491630 (line 3) | class AddUserPushoverSound1697393491630 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1699901142442-AddBlacklist.ts class AddBlacklist1699901142442 (line 3) | class AddBlacklist1699901142442 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 16) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1727907530757-AddUserSettingsStreamingRegion.ts class AddUserSettingsStreamingRegion1727907530757 (line 3) | class AddUserSettingsStreamingRegion1727907530757 implements MigrationIn... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 29) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1734287582736-AddTelegramMessageThreadId.ts class AddTelegramMessageThreadId1734287582736 (line 3) | class AddTelegramMessageThreadId1734287582736 implements MigrationInterf... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 19) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1734805733535-AddOverrideRules.ts class AddOverrideRules1734805733535 (line 3) | class AddOverrideRules1734805733535 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 12) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1737320080282-AddBlacklistTagsColumn.ts class AddBlacklistTagsColumn1737320080282 (line 3) | class AddBlacklistTagsColumn1737320080282 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 22) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1743023610704-UpdateWebPush.ts class UpdateWebPush1743023610704 (line 3) | class UpdateWebPush1743023610704 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 105) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1743107645301-AddUserAvatarCacheFields.ts class AddUserAvatarCacheFields1743107645301 (line 3) | class AddUserAvatarCacheFields1743107645301 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 37) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1745492372230-UpdateWebPush.ts class UpdateWebPush1745492372230 (line 3) | class UpdateWebPush1745492372230 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 43) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1765233385034-AddUniqueConstraintToPushSubscription.ts class AddUniqueConstraintToPushSubscription1765233385034 (line 3) | class AddUniqueConstraintToPushSubscription1765233385034 implements Migr... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 21) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1770627968781-AddPerformanceIndexes.ts class AddPerformanceIndexes1770627968781 (line 3) | class AddPerformanceIndexes1770627968781 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 188) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1771080196816-RenameBlacklistToBlocklist.ts class RenameBlacklistToBlocklist1771080196816 (line 3) | class RenameBlacklistToBlocklist1771080196816 implements MigrationInterf... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 36) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1771259394105-AddForeignKeyIndexes.ts class AddForeignKeyIndexes1771259394105 (line 3) | class AddForeignKeyIndexes1771259394105 implements MigrationInterface { method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 120) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1771337037917-RecoveryLinkExpirationDateTime.ts class RecoveryLinkExpirationDateTime1771337037917 (line 3) | class RecoveryLinkExpirationDateTime1771337037917 implements MigrationIn... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 17) | public async down(queryRunner: QueryRunner): Promise { FILE: server/migration/sqlite/1772047972752-AddMediaTypeToUniqueConstraints.ts class AddMediaTypeToUniqueConstraints1772047972752 (line 3) | class AddMediaTypeToUniqueConstraints1772047972752 implements MigrationI... method up (line 6) | public async up(queryRunner: QueryRunner): Promise { method down (line 116) | public async down(queryRunner: QueryRunner): Promise { FILE: server/models/Collection.ts type Collection (line 8) | interface Collection { FILE: server/models/Movie.ts type Video (line 24) | interface Video { type MovieDetails (line 40) | interface MovieDetails { FILE: server/models/Person.ts type PersonDetails (line 8) | interface PersonDetails { type PersonCredit (line 25) | interface PersonCredit { type PersonCreditCast (line 50) | interface PersonCreditCast extends PersonCredit { type PersonCreditCrew (line 54) | interface PersonCreditCrew extends PersonCredit { type CombinedCredit (line 59) | interface CombinedCredit { FILE: server/models/Search.ts type MediaType (line 13) | type MediaType = 'tv' | 'movie' | 'person' | 'collection'; type SearchResult (line 15) | interface SearchResult { type MovieResult (line 29) | interface MovieResult extends SearchResult { type TvResult (line 39) | interface TvResult extends SearchResult { type CollectionResult (line 47) | interface CollectionResult { type PersonResult (line 59) | interface PersonResult { type Results (line 69) | type Results = MovieResult | TvResult | PersonResult | CollectionResult; FILE: server/models/Tv.ts type Episode (line 29) | interface Episode { type Season (line 43) | interface Season { type SeasonWithEpisodes (line 53) | interface SeasonWithEpisodes extends Omit { type SpokenLanguage (line 58) | interface SpokenLanguage { type TvDetails (line 64) | interface TvDetails { FILE: server/models/common.ts type ProductionCompany (line 13) | interface ProductionCompany { type TvNetwork (line 23) | interface TvNetwork { type Keyword (line 32) | interface Keyword { type Genre (line 37) | interface Genre { type Cast (line 42) | interface Cast { type Crew (line 53) | interface Crew { type ExternalIds (line 63) | interface ExternalIds { type WatchProviders (line 74) | interface WatchProviders { type WatchProviderDetails (line 81) | interface WatchProviderDetails { FILE: server/routes/auth.test.ts function createApp (line 22) | function createApp() { function authenticatedAgent (line 59) | async function authenticatedAgent(email: string, password: string) { function getResetGuid (line 290) | async function getResetGuid(email: string): Promise { FILE: server/routes/auth.ts function getUserAvatarUrl (line 222) | function getUserAvatarUrl(user: User): string { FILE: server/routes/avatarproxy.ts function initAvatarImageProxy (line 18) | async function initAvatarImageProxy() { function getJellyfinAvatarUrl (line 37) | function getJellyfinAvatarUrl(userId: string) { function computeImageHash (line 44) | function computeImageHash(buffer: Buffer): string { function checkAvatarChanged (line 48) | async function checkAvatarChanged( FILE: server/routes/discover.ts type FilterOptions (line 83) | type FilterOptions = z.infer; FILE: server/routes/imageproxy.ts function initTmdbImageProxy (line 9) | function initTmdbImageProxy() { function initTvdbImageProxy (line 21) | function initTvdbImageProxy() { FILE: server/routes/settings/metadata.ts function getTestResultString (line 11) | function getTestResultString(testValue: number): string { FILE: server/subscriber/IssueCommentSubscriber.ts class IssueCommentSubscriber (line 16) | class IssueCommentSubscriber implements EntitySubscriberInterface): void { FILE: server/subscriber/IssueSubscriber.ts class IssueSubscriber (line 17) | class IssueSubscriber implements EntitySubscriberInterface { method listenTo (line 18) | public listenTo(): typeof Issue { method sendIssueNotification (line 22) | private async sendIssueNotification(entity: Issue, type: Notification) { method afterInsert (line 105) | public afterInsert(event: InsertEvent): void { method beforeUpdate (line 113) | public beforeUpdate(event: UpdateEvent): void { FILE: server/subscriber/MediaRequestSubscriber.ts class MediaRequestSubscriber (line 44) | class MediaRequestSubscriber implements EntitySubscriberInterface { method sendToSonarr (line 477) | public async sendToSonarr(entity: MediaRequest): Promise { method updateParentStatus (line 820) | public async updateParentStatus(entity: MediaRequest): Promise { method handleRemoveParentUpdate (line 946) | public async handleRemoveParentUpdate( method afterUpdate (line 980) | public async afterUpdate(event: UpdateEvent): Promise): Promise): Promise { method updateChildRequestStatus (line 16) | private async updateChildRequestStatus(event: Media, is4k: boolean) { method updateRelatedMediaRequest (line 34) | private async updateRelatedMediaRequest( method beforeUpdate (line 124) | public async beforeUpdate(event: UpdateEvent): Promise { method afterUpdate (line 155) | public async afterUpdate(event: UpdateEvent): Promise { method listenTo (line 203) | public listenTo(): typeof Media { FILE: server/test/db.ts function setupTestDb (line 4) | function setupTestDb() { FILE: server/types/error.ts class ApiError (line 3) | class ApiError extends Error { method constructor (line 4) | constructor( FILE: server/types/express-session.d.ts type SessionData (line 6) | interface SessionData { FILE: server/types/express.d.ts type Request (line 8) | interface Request { type Middleware (line 14) | type Middleware = ( FILE: server/types/languages.d.ts type AvailableLocale (line 1) | type AvailableLocale = FILE: server/utils/DbColumnHelper.ts function resolveDbType (line 8) | function resolveDbType(pgType: ColumnType): ColumnType { function DbAwareColumn (line 15) | function DbAwareColumn(columnOptions: ColumnOptions) { FILE: server/utils/appDataVolume.ts constant CONFIG_PATH (line 4) | const CONFIG_PATH = process.env.CONFIG_DIRECTORY constant DOCKER_PATH (line 8) | const DOCKER_PATH = `${CONFIG_PATH}/DOCKER`; FILE: server/utils/appVersion.ts constant COMMIT_TAG_PATH (line 5) | const COMMIT_TAG_PATH = path.join(__dirname, '../../committag.json'); FILE: server/utils/asyncLock.ts class AsyncLock (line 8) | class AsyncLock { method constructor (line 12) | constructor() { FILE: server/utils/customProxyAgent.ts function createCustomProxyAgent (line 13) | async function createCustomProxyAgent( function isLocalAddress (line 124) | function isLocalAddress(hostname: string) { FILE: server/utils/dnsCache.ts function initializeDnsCache (line 6) | function initializeDnsCache({ FILE: server/utils/getHostname.ts type HostnameParams (line 3) | interface HostnameParams { FILE: server/utils/jellyfin.ts function normalizeJellyfinGuid (line 1) | function normalizeJellyfinGuid( FILE: server/utils/restartFlag.ts class RestartFlag (line 4) | class RestartFlag { method initializeSettings (line 7) | public initializeSettings(settings: AllSettings): void { method isSet (line 14) | public isSet(): boolean { FILE: server/utils/seedTestDb.ts type SeedDbOptions (line 6) | interface SeedDbOptions { constant TEST_USER_PASSWORD_HASH (line 15) | const TEST_USER_PASSWORD_HASH = function seedTestUsers (line 22) | async function seedTestUsers(): Promise { function seedTestDb (line 70) | async function seedTestDb(options: SeedDbOptions = {}): Promise { function resetTestDb (line 93) | async function resetTestDb(): Promise { FILE: src/components/AirDateBadge/index.tsx type AirDateBadgeProps (line 10) | type AirDateBadgeProps = { FILE: src/components/Blocklist/index.tsx type Filter (line 52) | enum Filter { type BlocklistedItemProps (line 268) | interface BlocklistedItemProps { FILE: src/components/BlocklistBlock/index.tsx type BlocklistBlockProps (line 24) | interface BlocklistBlockProps { FILE: src/components/BlocklistModal/index.tsx type BlocklistModalProps (line 11) | interface BlocklistModalProps { FILE: src/components/BlocklistedTagsBadge/index.tsx type BlocklistedTagsBadgeProps (line 15) | interface BlocklistedTagsBadgeProps { FILE: src/components/BlocklistedTagsSelector/index.tsx type SingleVal (line 48) | type SingleVal = { type BlocklistedTagsSelectorProps (line 53) | type BlocklistedTagsSelectorProps = { type BaseSelectorMultiProps (line 107) | type BaseSelectorMultiProps = { type BlocklistedTagsImportButtonProps (line 184) | type BlocklistedTagsImportButtonProps = { type BlocklistedTagImportFormProps (line 242) | type BlocklistedTagImportFormProps = BlocklistedTagsImportButtonProps; FILE: src/components/CollectionDetails/index.tsx type CollectionDetailsProps (line 32) | interface CollectionDetailsProps { FILE: src/components/Common/Accordion/index.tsx type AccordionProps (line 4) | interface AccordionProps { type AccordionChildProps (line 12) | interface AccordionChildProps { type AccordionContentProps (line 18) | type AccordionContentProps = { FILE: src/components/Common/Alert/index.tsx type AlertProps (line 7) | interface AlertProps { FILE: src/components/Common/Badge/index.tsx type BadgeProps (line 4) | interface BadgeProps { FILE: src/components/Common/Button/index.tsx type ButtonType (line 5) | type ButtonType = type MergeElementProps (line 14) | type MergeElementProps< type ElementTypes (line 19) | type ElementTypes = 'button' | 'a'; type Element (line 21) | type Element

= P extends 'a' type BaseProps (line 25) | type BaseProps

= { type ButtonProps (line 34) | type ButtonProps

= { function Button (line 38) | function Button

( FILE: src/components/Common/ButtonWithDropdown/index.tsx type ButtonWithDropdownProps (line 7) | type ButtonWithDropdownProps = { FILE: src/components/Common/CachedImage/index.tsx type CachedImageProps (line 7) | type CachedImageProps = ImageProps & { FILE: src/components/Common/ConfirmButton/index.tsx type ConfirmButtonProps (line 5) | interface ConfirmButtonProps { FILE: src/components/Common/Dropdown/index.tsx type DropdownItemProps (line 12) | interface DropdownItemProps extends AnchorHTMLAttributes & { type DropdownProps (line 74) | interface DropdownProps extends ButtonHTMLAttributes { FILE: src/components/Common/Header/index.tsx type HeaderProps (line 1) | interface HeaderProps { FILE: src/components/Common/ImageFader/index.tsx type ImageFaderProps (line 5) | interface ImageFaderProps extends HTMLAttributes { constant DEFAULT_ROTATION_SPEED (line 12) | const DEFAULT_ROTATION_SPEED = 6000; FILE: src/components/Common/LabeledCheckbox/index.tsx type LabeledCheckboxProps (line 4) | interface LabeledCheckboxProps { FILE: src/components/Common/List/index.tsx type ListItemProps (line 3) | interface ListItemProps { type ListProps (line 22) | interface ListProps { FILE: src/components/Common/ListView/index.tsx type ListViewProps (line 17) | type ListViewProps = { FILE: src/components/Common/Modal/index.tsx type ModalProps (line 14) | interface ModalProps { FILE: src/components/Common/MultiRangeSlider/index.tsx type MultiRangeSliderProps (line 5) | type MultiRangeSliderProps = { FILE: src/components/Common/PageTitle/index.tsx type PageTitleProps (line 4) | interface PageTitleProps { FILE: src/components/Common/PlayButton/index.tsx type PlayButtonProps (line 3) | interface PlayButtonProps { type PlayButtonLink (line 7) | interface PlayButtonLink { FILE: src/components/Common/ProgressCircle/index.tsx type ProgressCircleProps (line 3) | interface ProgressCircleProps { FILE: src/components/Common/SensitiveInput/index.tsx type CustomInputProps (line 5) | interface CustomInputProps extends React.ComponentProps<'input'> { type CustomFieldProps (line 9) | interface CustomFieldProps extends React.ComponentProps { type SensitiveInputProps (line 13) | type SensitiveInputProps = CustomInputProps | CustomFieldProps; FILE: src/components/Common/SettingsTabs/index.tsx type SettingsRoute (line 7) | interface SettingsRoute { type SettingsLinkProps (line 17) | type SettingsLinkProps = { FILE: src/components/Common/SlideCheckbox/index.tsx type SlideCheckboxProps (line 1) | type SlideCheckboxProps = { FILE: src/components/Common/SlideOver/index.tsx type SlideOverProps (line 8) | interface SlideOverProps { FILE: src/components/Common/StatusBadgeMini/index.tsx type StatusBadgeMiniProps (line 12) | interface StatusBadgeMiniProps { FILE: src/components/Common/Table/index.tsx type TBodyProps (line 3) | type TBodyProps = { type TDProps (line 33) | type TDProps = { type TableProps (line 74) | type TableProps = { FILE: src/components/Common/Tag/index.tsx type TagProps (line 4) | type TagProps = { FILE: src/components/Common/Tooltip/index.tsx type TooltipProps (line 6) | type TooltipProps = { FILE: src/components/CompanyCard/index.tsx type CompanyCardProps (line 5) | interface CompanyCardProps { FILE: src/components/CompanyTag/index.tsx type CompanyTagProps (line 7) | type CompanyTagProps = { FILE: src/components/Discover/CreateSlider/index.tsx type CreateSliderProps (line 49) | type CreateSliderProps = { type CreateOption (line 54) | type CreateOption = { FILE: src/components/Discover/DiscoverSliderEdit/index.tsx type DiscoverSliderEditProps (line 42) | type DiscoverSliderEditProps = { method getItems (line 74) | getItems() { FILE: src/components/Discover/FilterSlideover/index.tsx type FilterSlideoverProps (line 50) | type FilterSlideoverProps = { FILE: src/components/Discover/NetworkSlider/index.tsx type Network (line 10) | interface Network { FILE: src/components/Discover/StudioSlider/index.tsx type Studio (line 10) | interface Studio { FILE: src/components/Discover/Trending.tsx type MediaType (line 23) | type MediaType = 'all' | 'movie' | 'tv'; type TimeWindow (line 25) | type TimeWindow = 'day' | 'week'; FILE: src/components/Discover/constants.ts type AvailableColors (line 5) | type AvailableColors = type FilterOptions (line 120) | type FilterOptions = z.infer; FILE: src/components/DownloadBlock/index.tsx type DownloadBlockProps (line 12) | interface DownloadBlockProps { FILE: src/components/ExternalLinkBlock/index.tsx type ExternalLinkBlockProps (line 15) | interface ExternalLinkBlockProps { FILE: src/components/GenreCard/index.tsx type GenreCardProps (line 6) | interface GenreCardProps { FILE: src/components/GenreTag/index.tsx type GenreTagProps (line 7) | type GenreTagProps = { FILE: src/components/IssueBlock/index.tsx type IssueBlockProps (line 14) | interface IssueBlockProps { FILE: src/components/IssueDetails/IssueComment/index.tsx type IssueCommentProps (line 27) | interface IssueCommentProps { FILE: src/components/IssueDetails/IssueDescription/index.tsx type IssueDescriptionProps (line 18) | interface IssueDescriptionProps { FILE: src/components/IssueList/IssueItem/index.tsx type IssueItemProps (line 37) | interface IssueItemProps { FILE: src/components/IssueList/index.tsx type Filter (line 28) | enum Filter { type Sort (line 34) | type Sort = 'added' | 'modified'; FILE: src/components/IssueModal/CreateIssueModal/index.tsx type CreateIssueModalProps (line 50) | interface CreateIssueModalProps { FILE: src/components/IssueModal/constants.ts type IssueOption (line 12) | interface IssueOption { FILE: src/components/IssueModal/index.tsx type IssueModalProps (line 4) | interface IssueModalProps { FILE: src/components/JSONEditor/index.tsx type JSONEditorProps (line 6) | interface JSONEditorProps extends HTMLAttributes { FILE: src/components/KeywordTag/index.tsx type KeywordTagProps (line 6) | type KeywordTagProps = { FILE: src/components/LanguageSelector/index.tsx type OptionType (line 16) | type OptionType = { type LanguageSelectorProps (line 31) | interface LanguageSelectorProps { FILE: src/components/Layout/MobileMenu/index.tsx type MobileMenuProps (line 33) | interface MobileMenuProps { type MenuLink (line 40) | interface MenuLink { FILE: src/components/Layout/Sidebar/index.tsx type SidebarProps (line 36) | interface SidebarProps { type SidebarLinkProps (line 45) | interface SidebarLinkProps { FILE: src/components/Layout/UserDropdown/MiniQuotaDisplay/index.tsx type MiniQuotaDisplayProps (line 17) | type MiniQuotaDisplayProps = { FILE: src/components/Layout/UserWarnings/index.tsx type UserWarningsProps (line 13) | interface UserWarningsProps { FILE: src/components/Layout/VersionStatus/index.tsx type VersionStatusProps (line 21) | interface VersionStatusProps { FILE: src/components/Layout/index.tsx type LayoutProps (line 15) | type LayoutProps = { FILE: src/components/LoadingBar/index.tsx type BarProps (line 6) | interface BarProps { FILE: src/components/Login/AddEmailModal.tsx type AddEmailModalProps (line 22) | interface AddEmailModalProps { FILE: src/components/Login/JellyfinLogin.tsx type JellyfinLoginProps (line 32) | interface JellyfinLoginProps { FILE: src/components/Login/LocalLogin.tsx type LocalLoginProps (line 28) | interface LocalLoginProps { FILE: src/components/Login/PlexLoginButton.tsx type PlexLoginButtonProps (line 13) | interface PlexLoginButtonProps { FILE: src/components/ManageSlideOver/index.tsx type ManageSlideOverProps (line 84) | interface ManageSlideOverProps { type ManageSlideOverMovieProps (line 91) | interface ManageSlideOverMovieProps extends ManageSlideOverProps { type ManageSlideOverTvProps (line 96) | interface ManageSlideOverTvProps extends ManageSlideOverProps { FILE: src/components/MediaSlider/ShowMoreCard/index.tsx type ShowMoreCardProps (line 14) | interface ShowMoreCardProps { FILE: src/components/MediaSlider/index.tsx type MixedResult (line 19) | interface MixedResult { type MediaSliderProps (line 26) | interface MediaSliderProps { FILE: src/components/MetadataSelector/index.tsx type MetadataProviderType (line 5) | enum MetadataProviderType { type MetadataProviderOptionType (line 10) | type MetadataProviderOptionType = { type MetadataSelectorProps (line 22) | interface MetadataSelectorProps { FILE: src/components/MovieDetails/index.tsx type MovieDetailsProps (line 111) | interface MovieDetailsProps { function getAvailableMediaServerName (line 302) | function getAvailableMediaServerName() { function getAvailable4kMediaServerName (line 314) | function getAvailable4kMediaServerName() { FILE: src/components/NotificationTypeSelector/NotificationType/index.tsx type NotificationTypeProps (line 4) | interface NotificationTypeProps { FILE: src/components/NotificationTypeSelector/index.tsx type Notification (line 95) | enum Notification { constant ALL_NOTIFICATIONS (line 111) | const ALL_NOTIFICATIONS = Object.values(Notification) type NotificationItem (line 115) | interface NotificationItem { type NotificationTypeSelectorProps (line 125) | interface NotificationTypeSelectorProps { FILE: src/components/PWAHeader/index.tsx type PWAHeaderProps (line 1) | interface PWAHeaderProps { FILE: src/components/PermissionEdit/index.tsx type PermissionEditProps (line 90) | interface PermissionEditProps { FILE: src/components/PermissionOption/index.tsx type PermissionItem (line 6) | interface PermissionItem { type PermissionRequirement (line 15) | interface PermissionRequirement { type PermissionOptionProps (line 20) | interface PermissionOptionProps { FILE: src/components/PersonCard/index.tsx type PersonCardProps (line 6) | interface PersonCardProps { FILE: src/components/PersonDetails/index.tsx type MediaType (line 29) | type MediaType = 'all' | 'movie' | 'tv'; FILE: src/components/QuotaSelector/index.tsx type QuotaSelectorProps (line 16) | interface QuotaSelectorProps { FILE: src/components/RegionSelector/index.tsx type RegionSelectorProps (line 18) | interface RegionSelectorProps { FILE: src/components/RequestBlock/index.tsx type RequestBlockProps (line 43) | interface RequestBlockProps { FILE: src/components/RequestButton/index.tsx type ButtonOption (line 40) | interface ButtonOption { type RequestButtonProps (line 47) | interface RequestButtonProps { FILE: src/components/RequestCard/index.tsx type RequestCardErrorProps (line 61) | interface RequestCardErrorProps { type RequestCardProps (line 215) | interface RequestCardProps { FILE: src/components/RequestList/RequestItem/index.tsx type RequestItemErrorProps (line 55) | interface RequestItemErrorProps { type RequestItemProps (line 291) | interface RequestItemProps { FILE: src/components/RequestList/index.tsx type Filter (line 38) | enum Filter { type Sort (line 50) | type Sort = 'added' | 'modified'; type SortDirection (line 52) | type SortDirection = 'asc' | 'desc'; type MediaType (line 54) | type MediaType = 'all' | 'movie' | 'tv'; FILE: src/components/RequestModal/AdvancedRequester/index.tsx type OptionType (line 23) | type OptionType = { type RequestOverrides (line 43) | type RequestOverrides = { type AdvancedRequesterProps (line 52) | interface AdvancedRequesterProps { FILE: src/components/RequestModal/CollectionRequestModal.tsx type RequestModalProps (line 34) | interface RequestModalProps extends React.HTMLAttributes { FILE: src/components/RequestModal/MovieRequestModal.tsx type RequestModalProps (line 40) | interface RequestModalProps extends React.HTMLAttributes { FILE: src/components/RequestModal/QuotaDisplay/index.tsx type QuotaDisplayProps (line 31) | interface QuotaDisplayProps { FILE: src/components/RequestModal/SearchByNameModal/index.tsx type SearchByNameModalProps (line 16) | interface SearchByNameModalProps { FILE: src/components/RequestModal/TvRequestModal.tsx type RequestModalProps (line 55) | interface RequestModalProps extends React.HTMLAttributes { FILE: src/components/RequestModal/index.tsx type RequestModalProps (line 9) | interface RequestModalProps { FILE: src/components/Selector/CertificationSelector.tsx type Certification (line 9) | interface Certification { type CertificationResponse (line 15) | interface CertificationResponse { type CertificationOption (line 21) | interface CertificationOption { type CertificationSelectorProps (line 27) | interface CertificationSelectorProps { FILE: src/components/Selector/USCertificationSelector.tsx type USCertificationSelectorProps (line 3) | interface USCertificationSelectorProps { constant US_MOVIE_CERTIFICATIONS (line 12) | const US_MOVIE_CERTIFICATIONS = ['NR', 'G', 'PG', 'PG-13', 'R', 'NC-17']; constant US_TV_CERTIFICATIONS (line 13) | const US_TV_CERTIFICATIONS = [ FILE: src/components/Selector/index.tsx type SingleVal (line 47) | type SingleVal = { type BaseSelectorMultiProps (line 52) | type BaseSelectorMultiProps = { type BaseSelectorSingleProps (line 59) | type BaseSelectorSingleProps = { type GenreSelectorProps (line 146) | type GenreSelectorProps = (BaseSelectorMultiProps | BaseSelectorSinglePr... type WatchProviderSelectorProps (line 371) | type WatchProviderSelectorProps = { FILE: src/components/Settings/CopyButton.tsx type CopyButtonProps (line 8) | type CopyButtonProps = { FILE: src/components/Settings/LibraryItem.tsx type LibraryItemProps (line 3) | interface LibraryItemProps { FILE: src/components/Settings/Notifications/NotificationsEmail.tsx function OpenPgpLink (line 53) | function OpenPgpLink(msg: React.ReactNode) { FILE: src/components/Settings/OverrideRule/OverrideRuleModal.tsx type OptionType (line 50) | type OptionType = { type OverrideRuleModalProps (line 55) | interface OverrideRuleModalProps { FILE: src/components/Settings/OverrideRule/OverrideRuleTiles.tsx type OverrideRuleTilesProps (line 32) | interface OverrideRuleTilesProps { FILE: src/components/Settings/RadarrModal/index.tsx type OptionType (line 17) | type OptionType = { type RadarrModalProps (line 77) | interface RadarrModalProps { FILE: src/components/Settings/SettingsAbout/Releases/index.tsx constant REPO_RELEASE_API (line 31) | const REPO_RELEASE_API = type GitHubRelease (line 34) | interface GitHubRelease { type ReleaseProps (line 53) | interface ReleaseProps { type ReleasesProps (line 123) | interface ReleasesProps { FILE: src/components/Settings/SettingsJellyfin.tsx type Library (line 72) | interface Library { type SyncStatus (line 78) | interface SyncStatus { type SettingsJellyfinProps (line 86) | interface SettingsJellyfinProps { FILE: src/components/Settings/SettingsJobsCache/index.tsx type Job (line 115) | interface Job { type JobModalState (line 125) | type JobModalState = { type JobModalAction (line 134) | type JobModalAction = FILE: src/components/Settings/SettingsLayout.tsx type SettingsLayoutProps (line 24) | type SettingsLayoutProps = { function getAvailableMediaServerName (line 99) | function getAvailableMediaServerName() { FILE: src/components/Settings/SettingsLogs/index.tsx type Filter (line 57) | type Filter = 'debug' | 'info' | 'warn' | 'error'; FILE: src/components/Settings/SettingsMetadata.tsx type ProviderStatus (line 44) | type ProviderStatus = 'ok' | 'not tested' | 'failed'; type ProviderResponse (line 46) | interface ProviderResponse { type MetadataValues (line 51) | interface MetadataValues { type MetadataSettings (line 56) | interface MetadataSettings { FILE: src/components/Settings/SettingsNotifications.tsx type SettingsNotificationsProps (line 26) | type SettingsNotificationsProps = { FILE: src/components/Settings/SettingsPlex.tsx type Library (line 86) | interface Library { type SyncStatus (line 92) | interface SyncStatus { type PresetServerDisplay (line 100) | interface PresetServerDisplay { type SettingsPlexProps (line 110) | interface SettingsPlexProps { FILE: src/components/Settings/SettingsServices.tsx type ServerInstanceProps (line 55) | interface ServerInstanceProps { type DVRTestResponse (line 69) | interface DVRTestResponse { type RadarrTestResponse (line 85) | type RadarrTestResponse = DVRTestResponse; type SonarrTestResponse (line 87) | type SonarrTestResponse = DVRTestResponse & { FILE: src/components/Settings/SonarrModal/index.tsx type OptionType (line 18) | type OptionType = { type SonarrModalProps (line 84) | interface SonarrModalProps { FILE: src/components/Setup/JellyfinSetup.tsx type JellyfinSetupProps (line 49) | interface JellyfinSetupProps { function JellyfinSetup (line 55) | function JellyfinSetup({ FILE: src/components/Setup/LoginWithPlex.tsx type LoginWithPlexProps (line 13) | interface LoginWithPlexProps { FILE: src/components/Setup/SetupLogin.tsx type LoginWithMediaServerProps (line 21) | interface LoginWithMediaServerProps { FILE: src/components/Setup/SetupSteps.tsx type CurrentStep (line 3) | interface CurrentStep { FILE: src/components/Slider/index.tsx type SliderProps (line 9) | interface SliderProps { type Direction (line 18) | enum Direction { FILE: src/components/StatusBadge/index.tsx type StatusBadgeProps (line 24) | interface StatusBadgeProps { FILE: src/components/TitleCard/ErrorCard.tsx type ErrorCardProps (line 9) | interface ErrorCardProps { FILE: src/components/TitleCard/Placeholder.tsx type PlaceholderProps (line 1) | interface PlaceholderProps { FILE: src/components/TitleCard/TmdbTitleCard.tsx type TmdbTitleCardProps (line 8) | interface TmdbTitleCardProps { FILE: src/components/TitleCard/index.tsx type TitleCardProps (line 33) | interface TitleCardProps { FILE: src/components/TvDetails/Season/index.tsx type SeasonProps (line 14) | type SeasonProps = { FILE: src/components/TvDetails/index.tsx type TvDetailsProps (line 110) | interface TvDetailsProps { function getAvailableMediaServerName (line 330) | function getAvailableMediaServerName() { function getAvailable4kMediaServerName (line 342) | function getAvailable4kMediaServerName() { FILE: src/components/UserList/BulkEditModal.tsx type BulkEditProps (line 13) | interface BulkEditProps { FILE: src/components/UserList/JellyfinImportModal.tsx type JellyfinImportProps (line 15) | interface JellyfinImportProps { FILE: src/components/UserList/PlexImportModal.tsx type PlexImportProps (line 13) | interface PlexImportProps { FILE: src/components/UserList/index.tsx type Sort (line 88) | type Sort = 'created' | 'updated' | 'requests' | 'displayname'; FILE: src/components/UserProfile/ProfileHeader/index.tsx type ProfileHeaderProps (line 17) | interface ProfileHeaderProps { FILE: src/components/UserProfile/UserSettings/UserLinkedAccountsSettings/LinkJellyfinModal.tsx type LinkJellyfinModalProps (line 33) | interface LinkJellyfinModalProps { FILE: src/components/UserProfile/UserSettings/UserLinkedAccountsSettings/index.tsx type LinkedAccountType (line 41) | enum LinkedAccountType { type LinkedAccount (line 47) | type LinkedAccount = { FILE: src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush/DeviceItem.tsx type DeviceItemProps (line 14) | interface DeviceItemProps { FILE: src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx type UserNotificationSettingsProps (line 29) | type UserNotificationSettingsProps = { FILE: src/components/UserProfile/UserSettings/index.tsx type UserSettingsProps (line 28) | type UserSettingsProps = { FILE: src/components/UserProfile/index.tsx type MediaTitle (line 43) | type MediaTitle = MovieDetails | TvDetails; FILE: src/context/InteractionContext.tsx type InteractionContextProps (line 4) | interface InteractionContextProps { FILE: src/context/LanguageContext.tsx type AvailableLanguageObject (line 4) | type AvailableLanguageObject = Record< type LanguageContextProps (line 156) | interface LanguageContextProps { FILE: src/context/SettingsContext.tsx type SettingsContextProps (line 6) | interface SettingsContextProps { FILE: src/context/UserContext.tsx type UserContextProps (line 6) | interface UserContextProps { FILE: src/hooks/useDeepLinks.ts type useDeepLinksProps (line 5) | interface useDeepLinksProps { FILE: src/hooks/useDiscover.ts type BaseSearchResult (line 10) | interface BaseSearchResult { type BaseMedia (line 17) | interface BaseMedia { type DiscoverResult (line 25) | interface DiscoverResult { FILE: src/hooks/useInteraction.ts constant INTERACTION_TYPE (line 3) | const INTERACTION_TYPE = { constant UPDATE_INTERVAL (line 9) | const UPDATE_INTERVAL = 1000; FILE: src/hooks/usePlexLogin.ts function usePlexLogin (line 6) | function usePlexLogin({ FILE: src/hooks/useRequestOverride.ts type OverrideStatus (line 8) | interface OverrideStatus { FILE: src/hooks/useSearchInput.ts type Url (line 9) | type Url = string | UrlObject; type SearchObject (line 11) | interface SearchObject { FILE: src/hooks/useUpdateQueryParams.ts type UseQueryParamReturnedFunction (line 6) | type UseQueryParamReturnedFunction = ( type MergedQueryString (line 11) | interface MergedQueryString { FILE: src/hooks/useUser.ts type User (line 12) | interface User { type NotificationAgentTypes (line 29) | type NotificationAgentTypes = Record; type UserSettings (line 31) | interface UserSettings { type UserHookResponse (line 42) | interface UserHookResponse { FILE: src/hooks/useVerticalScroll.ts constant IS_SCROLLING_CHECK_THROTTLE (line 5) | const IS_SCROLLING_CHECK_THROTTLE = 200; constant BUFFER_HEIGHT (line 6) | const BUFFER_HEIGHT = 200; type SetTimeoutReturnType (line 20) | type SetTimeoutReturnType = ReturnType; FILE: src/i18n/extractMessages.ts function getFiles (line 5) | async function getFiles(dir: string): Promise { function extractMessages (line 17) | async function extractMessages( function processMessages (line 46) | async function processMessages(dir: string): Promise { function saveMessages (line 102) | async function saveMessages() { FILE: src/pages/_app.tsx type NextAppComponentType (line 110) | type NextAppComponentType = typeof App; type MessagesType (line 111) | type MessagesType = Record; type ExtendedAppProps (line 113) | interface ExtendedAppProps extends AppProps { FILE: src/pages/_document.tsx class MyDocument (line 4) | class MyDocument extends Document { method getInitialProps (line 5) | static async getInitialProps( method render (line 13) | render(): JSX.Element { FILE: src/pages/_error.tsx type ErrorProps (line 9) | interface ErrorProps { FILE: src/pages/collection/[collectionId]/index.tsx type CollectionPageProps (line 6) | interface CollectionPageProps { FILE: src/pages/movie/[movieId]/index.tsx type MoviePageProps (line 6) | interface MoviePageProps { FILE: src/pages/tv/[tvId]/index.tsx type TvPageProps (line 6) | interface TvPageProps { FILE: src/types/custom.d.ts type IClassNames (line 27) | interface IClassNames { FILE: src/types/react-intl-auto.d.ts type ExtractableMessage (line 4) | interface ExtractableMessage { FILE: src/utils/defineMessages.ts type Messages (line 3) | type Messages> = { function defineMessages (line 10) | function defineMessages>( FILE: src/utils/jellyfin.ts type JellyfinAuthenticationResult (line 4) | interface JellyfinAuthenticationResult { class JellyAPI (line 10) | class JellyAPI { method login (line 11) | public login( FILE: src/utils/plex.ts type PlexHeaders (line 4) | interface PlexHeaders extends Record { type PlexPin (line 18) | interface PlexPin { class PlexOAuth (line 36) | class PlexOAuth { method initializeHeaders (line 44) | public initializeHeaders(): void { method getPin (line 75) | public async getPin(): Promise { method preparePopup (line 92) | public preparePopup(): void { method login (line 96) | public async login(): Promise { method pinPoll (line 129) | private async pinPoll(): Promise { method closePopup (line 162) | private closePopup(): void { method openPopup (line 167) | private openPopup({ method encodeData (line 219) | private encodeData(data: Record): string { FILE: src/utils/pushSubscriptionHelpers.ts function urlBase64ToUint8Array (line 6) | function urlBase64ToUint8Array(base64String: string) { FILE: src/utils/typeHelpers.ts type Undefinable (line 1) | type Undefinable = T | undefined; type Nullable (line 2) | type Nullable = T | null; type Maybe (line 3) | type Maybe = T | null | undefined; function withProperties (line 12) | function withProperties( FILE: src/utils/urlValidationHelper.ts function isValidURL (line 1) | function isValidURL(value: unknown) {