import 'react-native-get-random-values'; import { URL as PolyURL, URLSearchParams as PolyURLSearchParams } from './utils/url-polyfill'; // Polyfill global scope if they don't exist if (typeof globalThis !== 'undefined') { // @ts-ignore if (!globalThis.URL) { (globalThis as any).URL = PolyURL; } // @ts-ignore if (!globalThis.URLSearchParams) { (globalThis as any).URLSearchParams = PolyURLSearchParams; } } // Providers (namespaced provider groups) import { ANIME, LIGHT_NOVELS, MANGA, MOVIES, META } from './providers'; // Provider metadata (catalog of built-in providers) import type { AnimeProvider, MovieProvider, animeProviders, movieProviders, AnimeProviderId, MovieProviderId, KnownAnimeProviderId, KnownMovieProviderId, ProviderInstanceOf, } from './utils'; import extensionRegistry from './extension-registry.json'; // Utils (contexts, and provider management) import { createProviderContext, ProviderManager, REQUIRED_PROVIDER_METHODS, ExtractorManager, createExtractorContext, defaultAxios, defaultExtractorContext, defaultExtractors, verifyExtensionCode, IntegrityError, CONTEXT_VERSION, REGISTRY_SCHEMA_VERSION, RegistryError, validateRegistry, isCompatibleEntry, assertCompatibleEntry, REGISTRY_SIGNING_KEYS, RegistrySignatureError, verifyRegistrySignature, parseSignedRegistry, parseChapterNumber, parseVolumeNumber, sortChaptersForReading, } from './utils'; import type { IntegrityErrorCode, IntegrityOptions, ExecuteCodeOptions, ProviderLoadOptions, ProviderOfCategory, RegistryErrorCode, RegistrySignatureErrorCode, RegistrySignatureOptions, } from './utils'; // Extractors (video/file hosters and scrapers) import { AsianLoad, Filemoon, GogoCDN, Kwik, MixDrop, Mp4Upload, RapidCloud, StreamHub, StreamLare, StreamSB, StreamTape, StreamWish, VidMoly, VizCloud, Mp4Player, MegaCloud, VidHide, Voe, MegaUp, MegaPlay, GDFlix, Gofile, HubCloud, FlixCloud, } from './extractors'; // Models (domain types, enums, and constants) import { type IProviderStats, type ISearch, type IAnimeEpisode, type IAnimeInfo, type IAnimeResult, type IEpisodeServer, type IVideo, StreamingServers, MediaStatus, SubOrDub, type IMangaResult, type IMangaChapter, type IMangaInfo, type ILightNovelResult, type ILightNovelInfo, type ILightNovelChapter, type ILightNovelChapterContent, type IMangaChapterPage, TvType, type IMovieEpisode, type IMovieInfo, type ISource, type ISubtitle, type IMovieResult, type Intro, Genres, type INewsFeed, Topics, type INewsInfo, type FuzzyDate, type ITitle, MediaFormat, type ProxyConfig, type AniZipEpisode, type IMetaAnimeEpisode, type ProviderCapabilities, type IAnimeProvider, type IMovieProvider, type IMovieSeason, type ExtensionManifest, type ExtractorInfo, type ExtensionRegistryData, type ProviderType, type ProviderConfig, type ProviderContext, type ProviderContextConfig, type ExtractorContext, type ExtractorContextConfig, type IVideoExtractor, AnimeParser, MovieParser, WatchListType, MetaError, type MetaErrorSource, } from './models'; // --------------------------------------------------------------------------- // Exports // --------------------------------------------------------------------------- // Providers (namespaced) export { ANIME, MANGA, LIGHT_NOVELS, MOVIES, META }; export type { AnimeProvider, MovieProvider, animeProviders, movieProviders, AnimeProviderId, MovieProviderId, KnownAnimeProviderId, KnownMovieProviderId, ProviderInstanceOf, }; // Models: runtime enums/constants export { Topics, Genres, SubOrDub, StreamingServers, MediaStatus, TvType, MediaFormat, WatchListType }; // Models: base classes that providers (including registry extensions) extend export { AnimeParser, MovieParser }; // Extractors export { GogoCDN, StreamSB, MixDrop, Kwik, RapidCloud, StreamTape, StreamLare, StreamHub, VizCloud, AsianLoad, Filemoon, Mp4Upload, StreamWish, VidMoly, MegaUp, Mp4Player, MegaCloud, VidHide, Voe, MegaPlay, GDFlix, Gofile, HubCloud, FlixCloud, }; // Models: TypeScript types export type { IProviderStats, IAnimeEpisode, IAnimeInfo, IAnimeResult, IEpisodeServer, IVideo, IMangaResult, IMangaChapter, IMangaInfo, ILightNovelResult, ILightNovelInfo, ILightNovelChapter, ILightNovelChapterContent, ISearch, IMangaChapterPage, IMovieEpisode, IMovieInfo, ISource, ISubtitle, IMovieResult, Intro, INewsFeed, INewsInfo, FuzzyDate, ITitle, ProxyConfig, AniZipEpisode, IMetaAnimeEpisode, IMovieSeason, ProviderCapabilities, IAnimeProvider, IMovieProvider, ExtensionManifest, ExtractorInfo, ProviderType, }; // Contexts handed to provider and extractor factories, provider metadata and the extractor interface export type { ProviderConfig, ProviderContext, ProviderContextConfig, ExtractorContext, ExtractorContextConfig, IVideoExtractor, }; export { extensionRegistry as ExtensionRegistry }; // Utils: context creation and provider management export { createProviderContext, ProviderManager, REQUIRED_PROVIDER_METHODS, ExtractorManager, createExtractorContext, PolyURL, PolyURLSearchParams, defaultAxios, defaultExtractorContext, defaultExtractors, verifyExtensionCode, IntegrityError, CONTEXT_VERSION, REGISTRY_SCHEMA_VERSION, RegistryError, validateRegistry, isCompatibleEntry, assertCompatibleEntry, REGISTRY_SIGNING_KEYS, RegistrySignatureError, verifyRegistrySignature, parseSignedRegistry, parseChapterNumber, parseVolumeNumber, sortChaptersForReading, MetaError, }; export type { MetaErrorSource }; export type { IntegrityErrorCode, IntegrityOptions, ExecuteCodeOptions, ProviderLoadOptions, ProviderOfCategory, RegistryErrorCode, RegistrySignatureErrorCode, RegistrySignatureOptions, }; export type { ExtensionRegistryData };