@lorenzopant/tmdb 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=class extends Error{tmdb_status_code;message;http_status_code;constructor(e,t,n){super(e),this.name=`TMDBError`,this.tmdb_status_code=n||-1,this.message=e,this.http_status_code=t}};const t=`http://image.tmdb.org/t/p/`,n=`https://image.tmdb.org/t/p/`,r=[`w300`,`w780`,`w1280`,`original`],i=[`w45`,`w92`,`w154`,`w185`,`w300`,`w500`,`original`],a=[`w92`,`w154`,`w185`,`w342`,`w500`,`w780`,`original`],o=[`w45`,`w185`,`h632`,`original`],s=[`w92`,`w185`,`w300`,`original`];var c=class e{logger;constructor(e){this.logger=e}static from(t){if(t)return t===!0?new e(e.defaultLogger):new e(t)}log(e){if(this.logger)try{this.logger(e)}catch(e){console.warn(`TMDB logger error: ${String(e)}`)}}static defaultLogger=e=>{let t=`🎬 [tmdb]`,n=new Date().toISOString();if(e.type===`request`){console.log(`${t} ${n} 🛰️ REQUEST ${e.method} ${e.endpoint} \n`);return}if(e.type===`response`){console.log(`${t} ${n} ✅ RESPONSE ${e.method} ${e.status} ${e.statusText} ${e.endpoint} (${e.durationMs}ms)\n`);return}let r=e.status==null?`NETWORK ERROR`:`${e.status} ${e.statusText}`,i=e.tmdbStatusCode==null?``:` (tmdb: ${e.tmdbStatusCode})`;console.log(`${t} ${n} ❌ ${e.method} ${r} ${e.endpoint} - ${e.errorMessage}${i}\n`)}};function l(e){return/^[A-Za-z0-9\-_]+$/.test(e)}function u(e){try{let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.padEnd(t.length+(4-t.length%4)%4,`=`);return atob(n)}catch{return null}}function d(e){return typeof e==`object`&&!!e}function f(e){return d(e)?typeof e.alg==`string`:!1}function p(e){return!(!d(e)||`exp`in e&&typeof e.exp!=`number`||`nbf`in e&&typeof e.nbf!=`number`||`iat`in e&&typeof e.iat!=`number`)}function m(e){if(typeof e!=`string`)return!1;let t=e.split(`.`);if(t.length!==3)return!1;let[n,r,i]=t;if(!l(n)||!l(r)||!l(i))return!1;let a=u(n),o=u(r);if(!a||!o)return!1;let s,c;try{s=JSON.parse(a),c=JSON.parse(o)}catch{return!1}return!(!f(s)||!p(c))}function h(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function g(e){if(!h(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function _(e){return typeof e==`object`&&!!e&&`poster_path`in e&&typeof e.poster_path==`string`}function ee(e){return typeof e==`object`&&!!e&&`backdrop_path`in e&&typeof e.backdrop_path==`string`}function te(e){return typeof e==`object`&&!!e&&`profile_path`in e&&typeof e.profile_path==`string`}function ne(e){return typeof e==`object`&&!!e&&`still_path`in e&&typeof e.still_path==`string`}function re(e){return typeof e==`object`&&!!e&&`logo_path`in e&&typeof e.logo_path==`string`}const v={NO_ACCESS_TOKEN:`TMDB requires a valid access token, please provide one.`,INVALID_CLIENT:`TMDB received an invalid ApiClient instance. Pass a valid ApiClient or an access token string.`,V4_REQUIRES_JWT:`TMDB v4 requires a Bearer (JWT) access token. API key strings are not supported for v4 endpoints.`,INVALID_START_PAGE:`Invalid page: Pages start at 1 and max at 500. They are expected to be an integer.`};async function*ie(e,t=1){if(!Number.isInteger(t)||t<1||t>500)throw RangeError(v.INVALID_START_PAGE);let n=t;for(;;){let t=await e(n);if(yield t,t.page>=t.total_pages)break;n++}}async function ae(e,t={}){let{maxPages:n=500,deduplicateBy:r}=t,i=[],a=1;for(;;){let t=await e(a);if(i.push(...t.results),t.page>=t.total_pages||a>=n)break;a++}if(r){let e=new Map;for(let t of i){let n=r(t);e.has(n)&&e.delete(n),e.set(n,t)}return[...e.values()]}return i}function oe(e){return e.page<e.total_pages}function se(e){return e.page>1}function ce(e){return{current:e.page,total:e.total_pages,totalResults:e.total_results,isFirst:e.page===1,isLast:e.page>=e.total_pages}}const y={backdrop_path:`backdrop`,logo_path:`logo`,poster_path:`poster`,profile_path:`profile`,still_path:`still`},le={backdrop_path:`backdrops`,logo_path:`logos`,poster_path:`posters`,profile_path:`profiles`,still_path:`stills`},b={backdrops:`backdrop_path`,logos:`logo_path`,posters:`poster_path`,profiles:`profile_path`,stills:`still_path`};var x=class{options;constructor(e={}){this.options={secure_images_url:!0,...e}}buildUrl(e,r){return`${this.options.secure_images_url?n:t}${r}${e}`}backdrop(e,t=this.options.default_image_sizes?.backdrops||`w780`){return this.buildUrl(e,t)}logo(e,t=this.options.default_image_sizes?.logos||`w185`){return this.buildUrl(e,t)}poster(e,t=this.options.default_image_sizes?.posters||`w500`){return this.buildUrl(e,t)}profile(e,t=this.options.default_image_sizes?.profiles||`w185`){return this.buildUrl(e,t)}still(e,t=this.options.default_image_sizes?.still||`w300`){return this.buildUrl(e,t)}autocompleteImagePaths(e,t){return this.traverse(e,t,!0)}applyFallbacksOnly(e){return this.traverse(e,void 0,!1)}traverse(e,t,n){if(Array.isArray(e)){let r=n&&t&&this.options.image_language_priority?.[t];return(r?this.sortByLanguagePriority(e,r):e).map(e=>this.traverse(e,t,n))}if(!g(e))return e;let r=Object.create(null);for(let[i,a]of Object.entries(e)){if(i===`__proto__`||i===`constructor`||i===`prototype`){r[i]=a;continue}if(a==null){if(Object.hasOwn(y,i)){let e=le[i];r[i]=this.getFallbackForCollection(e)??a;continue}if(i===`file_path`&&t){r[i]=this.getFallbackForCollection(t)??a;continue}r[i]=a;continue}if(typeof a==`string`){r[i]=n?this.transformPathValue(i,a,t):a;continue}let e=this.isImageCollectionKey(i)?i:t;r[i]=this.traverse(a,e,n)}return r}sortByLanguagePriority(e,t){let n=[],r=[...e];for(let e of t){if(e===`*`){n.push(...r.splice(0,r.length));break}let t=[];for(let i of r){let r=i?.iso_639_1;(e===`null`?r==null:r===e)?n.push(i):t.push(i)}r.length=0,r.push(...t)}return n.push(...r),n}isImageCollectionKey(e){return Object.hasOwn(b,e)}getFallbackForCollection(e){let t=this.options.fallback_url;if(t!=null)return typeof t==`string`?t:t[e]}isFullUrl(e){return/^https?:\/\//.test(e)}buildImageUrl(e,t){let n=y[e];return Object.hasOwn(this,n)||this[n],this[n](t)}transformPathValue(e,t,n){return!t.startsWith(`/`)||this.isFullUrl(t)?t:Object.hasOwn(y,e)?this.buildImageUrl(e,t):e===`file_path`&&n?this.buildImageUrl(b[n],t):t}},ue=class{ttl;maxSize;excludedEndpoints;store=new Map;constructor(e={}){let t=e.ttl??3e5;if(!Number.isFinite(t)||!Number.isInteger(t)||t<1)throw RangeError(`cache.ttl must be a finite integer >= 1 (got ${t})`);if(e.max_size!==void 0&&(!Number.isFinite(e.max_size)||!Number.isInteger(e.max_size)||e.max_size<1))throw RangeError(`cache.max_size must be a finite integer >= 1 (got ${e.max_size})`);this.ttl=t,this.maxSize=e.max_size,this.excludedEndpoints=(e.excluded_endpoints??[]).map(e=>typeof e!=`string`&&/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e)}shouldCache(e){return!this.excludedEndpoints.some(t=>typeof t==`string`?e.startsWith(t):t.test(e))}get(e){let t=this.store.get(e);if(t){if(Date.now()>t.expiresAt){this.store.delete(e);return}return t.value}}has(e){let t=this.store.get(e);return t?Date.now()>t.expiresAt?(this.store.delete(e),!1):!0:!1}set(e,t){this.maxSize!==void 0&&!this.store.has(e)&&this.store.size>=this.maxSize&&this.store.delete(this.store.keys().next().value),this.store.set(e,{value:t,expiresAt:Date.now()+this.ttl})}delete(e){return this.store.delete(e)}clear(){this.store.clear()}get size(){return this.store.size}},de=class{maxRequests;windowMs;timestamps=[];queue=[];processing=!1;constructor(e={}){let t=e.max_requests??40,n=e.per_ms??1e3;if(!Number.isFinite(t)||!Number.isInteger(t)||t<1)throw RangeError(`rate_limit.max_requests must be a finite integer >= 1 (got ${t})`);if(!Number.isFinite(n)||!Number.isInteger(n)||n<1)throw RangeError(`rate_limit.per_ms must be a finite integer >= 1 (got ${n})`);this.maxRequests=t,this.windowMs=n}acquire(){return new Promise(e=>{this.queue.push(e),this.processing||this.process()})}async process(){for(this.processing=!0;this.queue.length>0;){let e=Date.now();if(this.timestamps=this.timestamps.filter(t=>e-t<this.windowMs),this.timestamps.length<this.maxRequests)this.timestamps.push(Date.now()),this.queue.shift()();else{let e=this.timestamps[0],t=this.windowMs-(Date.now()-e)+1;await new Promise(e=>setTimeout(e,t))}}this.processing=!1}};function fe(t){if(t instanceof e)return t.http_status_code>=500;if(t instanceof Error)switch(t.name){case`FetchError`:case`AbortError`:return!0;case`SyntaxError`:return!1;case`TypeError`:return!0;default:return!1}return!0}var pe=class{maxRetries;baseDelayMs;maxDelayMs;shouldRetry;constructor(e={}){let t=e.max_retries??3,n=e.base_delay_ms??500,r=e.max_delay_ms??3e4;if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw RangeError(`retry.max_retries must be a finite integer >= 0 (got ${t})`);if(!Number.isFinite(n)||!Number.isInteger(n)||n<1)throw RangeError(`retry.base_delay_ms must be a finite integer >= 1 (got ${n})`);if(!Number.isFinite(r)||!Number.isInteger(r)||r<1)throw RangeError(`retry.max_delay_ms must be a finite integer >= 1 (got ${r})`);this.maxRetries=t,this.baseDelayMs=n,this.maxDelayMs=r,this.shouldRetry=e.shouldRetry??fe}delayFor(e){let t=Math.min(this.baseDelayMs*2**(e-1),this.maxDelayMs);return Math.floor(Math.random()*t)}async execute(e,t=me){let n;for(let r=0;r<=this.maxRetries;r++)try{return await e()}catch(e){if(n=e,r>=this.maxRetries||!await this.shouldRetry(e,r+1))break;let i=this.delayFor(r+1);i>0&&await t(i)}throw n}};function me(e){return new Promise(t=>setTimeout(t,e))}var S=class{accessToken;baseUrl;logger;inflightRequests=new Map;deduplication;rateLimiter;retryManager;requestInterceptors;onSuccessInterceptor;onErrorInterceptor;imageApi;imageOptions;responseCache;constructor(e,t={}){this.accessToken=e,this.baseUrl=`https://api.themoviedb.org/${t.version??3}`,this.logger=c.from(t.logger),this.deduplication=t.deduplication!==!1,t.rate_limit&&(this.rateLimiter=new de(t.rate_limit===!0?{}:t.rate_limit)),t.retry&&(this.retryManager=new pe(t.retry===!0?{}:t.retry)),t.cache&&(this.responseCache=new ue(t.cache===!0?{}:t.cache));let n=t.interceptors?.request;this.requestInterceptors=n==null?[]:Array.isArray(n)?n:[n],this.onSuccessInterceptor=t.interceptors?.response?.onSuccess,this.onErrorInterceptor=t.interceptors?.response?.onError,this.imageApi=t.images?.autocomplete_paths||t.images?.fallback_url!=null?new x(t.images):void 0,this.imageOptions=t.images}buildRequestKey(e,t){let n=this.serializeParams(t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}=${t}`);return n.length>0?`${e}?${n.join(`&`)}`:e}serializeParams(e){return Object.entries(e).flatMap(([e,t])=>t===void 0?[]:[[e,String(t)]])}async request(e,t={}){let n=await this.runRequestInterceptors({endpoint:e,params:t,method:`GET`}),r=n.endpoint,i=n.params,a=this.buildRequestKey(r,i),o=!!this.responseCache?.shouldCache(a);if(o&&this.responseCache.has(a))return this.responseCache.get(a);if(!this.deduplication){let e=await this.execute(`GET`,r,i,void 0,!0);return o&&this.responseCache.set(a,e),e}let s=this.inflightRequests.get(a);if(s)return s;let c=o?this.responseCache:void 0,l=this.execute(`GET`,r,i,void 0,!0).then(e=>(c?.set(a,e),e)).finally(()=>{this.inflightRequests.delete(a)});return this.inflightRequests.set(a,l),l}invalidateCache(e,t={}){return this.responseCache?this.responseCache.delete(this.buildRequestKey(e,t)):!1}clearCache(){this.responseCache?.clear()}get cacheSize(){return this.responseCache?.size??0}async runRequestInterceptors(e){let t=e;for(let e of this.requestInterceptors){let n=await e(t);n!=null&&(t=n)}return t}sanitizeNulls(e){if(e===null)return;if(typeof e!=`object`)return e;if(Array.isArray(e))return e.map(e=>this.sanitizeNulls(e));let t={};for(let[n,r]of Object.entries(e))t[n]=this.sanitizeNulls(r);return t}async normalizeError(t,n,r){let i=t.statusText,a=-1;try{let e=await t.json();if(e&&typeof e==`object`){let t=e;i=t.status_message||i,a=t.status_code||-1}}catch(e){console.error(`Unknown error: ${String(e)}`)}return this.logger?.log({type:`error`,method:r,endpoint:n,status:t.status,statusText:t.statusText,tmdbStatusCode:a,errorMessage:i}),new e(i,t.status,a)}async notifyErrorInterceptor(e){this.onErrorInterceptor&&await this.onErrorInterceptor(e)}async mutate(e,t,n,r={}){return this.execute(e,t,r,n)}async execute(t,n,r,i,a=!1){let o=i===void 0?void 0:JSON.stringify(i),s,c;if(a)s=n,c=r;else{let e=await this.runRequestInterceptors({endpoint:n,params:r,method:t});s=e.endpoint,c=e.params}let l=new URL(`${this.baseUrl}${s}`),u=m(this.accessToken);for(let[e,t]of this.serializeParams(c))l.searchParams.append(e,t);u||l.searchParams.append(`api_key`,this.accessToken);let d=Date.now();this.logger?.log({type:`request`,method:t,endpoint:s});let f=async()=>{this.rateLimiter&&await this.rateLimiter.acquire();let e;try{e=await fetch(l.toString(),{method:t,headers:u?{Authorization:`Bearer ${this.accessToken}`,"Content-Type":`application/json;charset=utf-8`}:{"Content-Type":`application/json;charset=utf-8`},...o===void 0?{}:{body:o}})}catch(e){throw this.logger?.log({type:`error`,method:t,endpoint:s,errorMessage:e instanceof Error?e.message:String(e),durationMs:Date.now()-d}),e}if(!e.ok)throw await this.normalizeError(e,s,t);return e},p;try{p=this.retryManager?await this.retryManager.execute(f):await f()}catch(t){throw t instanceof e&&await this.notifyErrorInterceptor(t),t}this.logger?.log({type:`response`,method:t,endpoint:s,status:p.status,statusText:p.statusText,durationMs:Date.now()-d});let h=await p.json(),g=this.sanitizeNulls(h),_=this.imageApi?this.imageOptions?.autocomplete_paths?this.imageApi.autocompleteImagePaths(g):this.imageApi.applyFallbacksOnly(g):g;if(this.onSuccessInterceptor){let e=await this.onSuccessInterceptor(_);return e===void 0?_:e}return _}};const C={AUTHENTICATION:{VALIDATE:`/authentication`,GUEST_SESSION:`/authentication/guest_session/new`,REQUEST_TOKEN:`/authentication/token/new`,CREATE_SESSION:`/authentication/session/new`,CREATE_SESSION_WITH_LOGIN:`/authentication/token/validate_with_login`,DELETE_SESSION:`/authentication/session`},ACCOUNT:{DETAILS:`/account`,ADD_FAVORITE:`/favorite`,ADD_TO_WATCHLIST:`/watchlist`,FAVORITE_MOVIES:`/favorite/movies`,FAVORITE_TV:`/favorite/tv`,WATCHLIST_MOVIES:`/watchlist/movies`,WATCHLIST_TV:`/watchlist/tv`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`,RATED_TV_EPISODES:`/rated/tv/episodes`,LISTS:`/lists`},CONFIGURATION:{DETAILS:`/configuration`,COUNTRIES:`/configuration/countries`,JOBS:`/configuration/jobs`,LANGUAGES:`/configuration/languages`,TIMEZONES:`/configuration/timezones`,PRIMARY_TRANSLATIONS:`/configuration/primary_translations`},CERTIFICATIONS:{MOVIE_CERTIFICATIONS:`/certification/movie/list`,TV_CERTIFICATIONS:`/certification/tv/list`},CHANGES:{MOVIE_LIST:`/movie/changes`,PEOPLE_LIST:`/person/changes`,TV_LIST:`/tv/changes`},DISCOVER:{MOVIE:`/discover/movie`,TV:`/discover/tv`},FIND:`/find`,CREDITS:{DETAILS:`/credit`},COMPANIES:{DETAILS:`/company`,ALTERNATIVE_NAMES:`/alternative_names`,IMAGES:`/images`},COLLECTIONS:{DETAILS:`/collection`,IMAGES:`/images`,TRANSLATIONS:`/translations`},GENRES:{MOVIE_LIST:`/genre/movie/list`,TV_LIST:`/genre/tv/list`},KEYWORDS:{DETAILS:`/keyword`,MOVIES:`/movies`},MOVIES:{DETAILS:`/movie`,ALTERNATIVE_TITLES:`/alternative_titles`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,KEYWORDS:`/keywords`,CHANGES:`/changes`,IMAGES:`/images`,LATEST:`/latest`,NOW_PLAYING:`/now_playing`,POPULAR:`/popular`,RECOMMENDATIONS:`/recommendations`,RELEASE_DATES:`/release_dates`,REVIEWS:`/reviews`,SIMILAR:`/similar`,TOP_RATED:`/top_rated`,TRANSLATIONS:`/translations`,UPCOMING:`/upcoming`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},NETWORKS:{DETAILS:`/network`,ALTERNATIVE_NAMES:`/alternative_names`,IMAGES:`/images`},PEOPLE:{DETAILS:`/person`,CHANGES:`/changes`,COMBINED_CREDITS:`/combined_credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,LATEST:`/latest`,MOVIE_CREDITS:`/movie_credits`,TAGGED_IMAGES:`/tagged_images`,TRANSLATIONS:`/translations`,TV_CREDITS:`/tv_credits`},SEARCH:{MOVIE:`/search/movie`,COLLECTION:`/search/collection`,COMPANY:`/search/company`,KEYWORD:`/search/keyword`,MULTI:`/search/multi`,PERSON:`/search/person`,TV:`/search/tv`},TV_SERIES:{DETAILS:`/tv`,AGGREGATE_CREDITS:`/aggregate_credits`,AIRING_TODAY:`/airing_today`,ALTERNATIVE_TITLES:`/alternative_titles`,CHANGES:`/changes`,CONTENT_RATINGS:`/content_ratings`,CREDITS:`/credits`,EPISODE_GROUPS:`/episode_groups`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,KEYWORDS:`/keywords`,LATEST:`/latest`,LISTS:`/lists`,ON_THE_AIR:`/on_the_air`,POPULAR:`/popular`,RECOMMENDATIONS:`/recommendations`,REVIEWS:`/reviews`,SCREENED_THEATRICALLY:`/screened_theatrically`,SIMILAR:`/similar`,TOP_RATED:`/top_rated`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},TV_SEASONS:{DETAILS:`/season`,AGGREGATE_CREDITS:`/aggregate_credits`,CHANGES:`/changes`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},TV_EPISODES:{DETAILS:`/episode`,CHANGES:`/changes`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`},TV_EPISODE_GROUPS:{DETAILS:`/tv/episode_group`},WATCH_PROVIDERS:{MOVIE:`/watch/providers/movie`,TV:`/watch/providers/tv`,REGIONS:`/watch/providers/regions`},TRENDING:{ALL:`/trending/all`,MOVIE:`/trending/movie`,TV:`/trending/tv`,PERSON:`/trending/person`},REVIEWS:{DETAILS:`/review`},PEOPLE_LISTS:{POPULAR:`/person/popular`},LISTS:{DETAILS:`/list`,ADD_ITEM:`/add_item`,ITEM_STATUS:`/item_status`,CLEAR:`/clear`,REMOVE_ITEM:`/remove_item`},GUEST_SESSIONS:{DETAILS:`/guest_session`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`,RATED_TV_EPISODES:`/rated/tv/episodes`}},w={AUTH:{REQUEST_TOKEN:`/auth/request_token`,ACCESS_TOKEN:`/auth/access_token`},ACCOUNT:{DETAILS:`/account`,LISTS:`/lists`,FAVORITE_MOVIES:`/favorite/movies`,FAVORITE_TV:`/favorite/tv`,WATCHLIST_MOVIES:`/watchlist/movies`,WATCHLIST_TV:`/watchlist/tv`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`},LISTS:{DETAILS:`/list`,ITEMS:`/items`,ITEM_STATUS:`/item_status`,CLEAR:`/clear`}};var T=class{client;defaultOptions;constructor(e,t={}){if(typeof e==`string`){if(!e)throw Error(v.NO_ACCESS_TOKEN);this.client=new S(e,{logger:t.logger,deduplication:t.deduplication,rate_limit:t.rate_limit,interceptors:t.interceptors})}else if(e instanceof S)this.client=e;else throw Error(e==null?v.NO_ACCESS_TOKEN:v.INVALID_CLIENT);this.defaultOptions=t}applyDefaults(e){let{language:t,region:n}=this.defaultOptions;return{...t!==void 0&&{language:t},...n!==void 0&&{region:n},...e}}withLanguage(e){let t=this.defaultOptions?.language;return e?e.language!==void 0||t===void 0?e:{...e,language:t}:t===void 0?void 0:{language:t}}injectImageLanguage(e){if(!this.defaultOptions.images?.auto_include_image_language||e.include_image_language!==void 0)return e;let t=this.defaultOptions.images?.image_language_priority;if(!t)return e;let n=[...new Set(Object.values(t).flat().filter(e=>e!==`*`))];return n.length?{...e,include_image_language:n}:e}},E=class extends T{async movie_certifications(){return this.client.request(C.CERTIFICATIONS.MOVIE_CERTIFICATIONS)}async tv_certifications(){return this.client.request(C.CERTIFICATIONS.TV_CERTIFICATIONS)}},D=class extends T{async movie_list(e){return this.client.request(C.CHANGES.MOVIE_LIST,e)}async people_list(e){return this.client.request(C.CHANGES.PEOPLE_LIST,e)}async tv_list(e){return this.client.request(C.CHANGES.TV_LIST,e)}},O=class extends T{companyPath(e){return`${C.COMPANIES.DETAILS}/${e}`}async details(e){let t=this.companyPath(e.company_id);return this.client.request(t)}async alternative_names(e){let t=`${this.companyPath(e.company_id)}${C.COMPANIES.ALTERNATIVE_NAMES}`;return this.client.request(t)}async images(e){let{company_id:t,...n}=e,r=`${this.companyPath(t)}${C.COMPANIES.IMAGES}`;return this.client.request(r,this.injectImageLanguage(this.withLanguage(n)??n))}},k=class extends T{creditPath(e){return`${C.CREDITS.DETAILS}/${e}`}async details(e){let{credit_id:t,...n}=e,r=this.creditPath(t);return this.client.request(r,this.withLanguage(n))}},A=class extends T{collectionPath(e){return`${C.COLLECTIONS.DETAILS}/${e}`}async details(e){let{language:t=this.defaultOptions.language,collection_id:n}=e,r=this.collectionPath(n);return this.client.request(r,{language:t})}async images(e){let{collection_id:t,...n}=e,r=`${this.collectionPath(t)}${C.COLLECTIONS.IMAGES}`;return this.client.request(r,this.injectImageLanguage(this.withLanguage(n)??n))}async translations(e){let t=`${this.collectionPath(e.collection_id)}${C.COLLECTIONS.TRANSLATIONS}`;return this.client.request(t)}},j=class extends T{async details(){return this.client.request(C.CONFIGURATION.DETAILS)}async countries(e){return this.client.request(C.CONFIGURATION.COUNTRIES,this.withLanguage(e))}async jobs(){return this.client.request(C.CONFIGURATION.JOBS)}async languages(){return this.client.request(C.CONFIGURATION.LANGUAGES)}async primary_translations(){return this.client.request(C.CONFIGURATION.PRIMARY_TRANSLATIONS)}async timezones(){return this.client.request(C.CONFIGURATION.TIMEZONES)}},M=class extends T{withMovieDefaults(e){if(!e&&!this.defaultOptions.language&&!this.defaultOptions.region)return;let t=e?.language??this.defaultOptions.language,n=e?.region??this.defaultOptions.region;return{...e,language:t,region:n}}withTVDefaults(e){if(!e&&!this.defaultOptions.language&&!this.defaultOptions.timezone)return;let t=e?.language??this.defaultOptions.language,n=e?.timezone??this.defaultOptions.timezone;return{...e,language:t,timezone:n}}async movie(e={}){return this.client.request(C.DISCOVER.MOVIE,this.withMovieDefaults(e))}async tv(e={}){return this.client.request(C.DISCOVER.TV,this.withTVDefaults(e))}},N=class extends T{async by_id(e){let{external_id:t,...n}=e,r=`${C.FIND}/${encodeURIComponent(t)}`,i=this.withLanguage(n);return this.client.request(r,i)}},P=class extends T{async movie_list(e){return this.client.request(C.GENRES.MOVIE_LIST,this.withLanguage(e))}async tv_list(e){return this.client.request(C.GENRES.TV_LIST,this.withLanguage(e))}},F=class extends T{keywordPath(e){return`${C.KEYWORDS.DETAILS}/${e}`}async details(e){let t=this.keywordPath(e.keyword_id);return this.client.request(t)}async movies(e){let{keyword_id:t,...n}=e,r=`${this.keywordPath(t)}${C.KEYWORDS.MOVIES}`,i=this.withLanguage(n);return this.client.request(r,i)}},I=class extends T{withDefaults(e){let{language:t=this.defaultOptions.language,region:n=this.defaultOptions.region,...r}=e;return{language:t,region:n,...r}}fetch_movie_list(e,t={}){return this.client.request(C.MOVIES.DETAILS+e,this.withDefaults(t))}async now_playing(e={}){return this.client.request(C.MOVIES.DETAILS+C.MOVIES.NOW_PLAYING,this.withDefaults(e))}async popular(e={}){return this.fetch_movie_list(C.MOVIES.POPULAR,e)}async top_rated(e={}){return this.fetch_movie_list(C.MOVIES.TOP_RATED,e)}async upcoming(e={}){return this.client.request(C.MOVIES.DETAILS+C.MOVIES.UPCOMING,this.withDefaults(e))}},L=class extends T{moviePath(e){return`${C.MOVIES.DETAILS}/${e}`}movieSubPath(e,t){return`${this.moviePath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,movie_id:n,append_to_response:r}=e,i=this.moviePath(n);return this.client.request(i,{language:t,append_to_response:r})}async alternative_titles(e){let{movie_id:t,...n}=e,r=this.movieSubPath(t,C.MOVIES.ALTERNATIVE_TITLES);return this.client.request(r,n)}async credits(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.CREDITS);return this.client.request(i,{language:n,...r})}async external_ids(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.EXTERNAL_IDS);return this.client.request(t)}async keywords(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.KEYWORDS);return this.client.request(t)}async changes(e){let{movie_id:t,...n}=e,r=this.movieSubPath(t,C.MOVIES.CHANGES);return this.client.request(r,n)}async images(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:n,...r}))}async latest(){let e=`${C.MOVIES.DETAILS}${C.MOVIES.LATEST}`;return this.client.request(e)}async recommendations(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.RECOMMENDATIONS);return this.client.request(i,{language:n,...r})}async release_dates(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.RELEASE_DATES);return this.client.request(t)}async reviews(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.REVIEWS);return this.client.request(i,{language:n,...r})}async similar(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.SIMILAR);return this.client.request(i,{language:n,...r})}async translations(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.TRANSLATIONS);return this.client.request(t)}async videos(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.VIDEOS);return this.client.request(i,{language:n,...r})}async watch_providers(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.WATCH_PROVIDERS);return this.client.request(t)}},R=class extends T{async collections(e){return this.client.request(C.SEARCH.COLLECTION,this.applyDefaults(e))}async movies(e){return this.client.request(C.SEARCH.MOVIE,this.applyDefaults(e))}async company(e){return this.client.request(C.SEARCH.COMPANY,this.applyDefaults(e))}async keyword(e){return this.client.request(C.SEARCH.KEYWORD,this.applyDefaults(e))}async person(e){return this.client.request(C.SEARCH.PERSON,this.applyDefaults(e))}async tv_series(e){return this.client.request(C.SEARCH.TV,this.applyDefaults(e))}async multi(e){return this.client.request(C.SEARCH.MULTI,this.applyDefaults(e))}},z=class extends T{seriesPath(e){return`${C.TV_SERIES.DETAILS}/${e}`}seriesSubPath(e,t){return`${this.seriesPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesPath(n);return this.client.request(i,{language:t,...r})}async aggregate_credits(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.AGGREGATE_CREDITS);return this.client.request(i,{language:t,...r})}async alternative_titles(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.ALTERNATIVE_TITLES);return this.client.request(t)}async changes(e){let{series_id:t,...n}=e,r=this.seriesSubPath(t,C.TV_SERIES.CHANGES);return this.client.request(r,{...n})}async content_ratings(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.CONTENT_RATINGS);return this.client.request(t)}async credits(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.CREDITS);return this.client.request(i,{language:t,...r})}async episode_groups(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.EPISODE_GROUPS);return this.client.request(t)}async external_ids(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,...r}))}async keywords(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.KEYWORDS);return this.client.request(t)}async latest(){let e=`${C.TV_SERIES.DETAILS}${C.TV_SERIES.LATEST}`;return this.client.request(e)}async lists(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.LISTS);return this.client.request(i,{language:t,...r})}async recommendations(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.RECOMMENDATIONS);return this.client.request(i,{language:t,...r})}async reviews(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.REVIEWS);return this.client.request(i,{language:t,...r})}async screened_theatrically(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.SCREENED_THEATRICALLY);return this.client.request(t)}async similar(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.SIMILAR);return this.client.request(i,{language:t,...r})}async translations(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.TRANSLATIONS);return this.client.request(t)}async videos(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.VIDEOS);return this.client.request(t)}async watch_providers(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.WATCH_PROVIDERS);return this.client.request(t)}},B=class extends T{withDefaults(e){let{language:t=this.defaultOptions.language,timezone:n=this.defaultOptions.timezone,...r}=e;return{language:t,timezone:n,...r}}fetch_tv_series_list(e,t={}){return this.client.request(C.TV_SERIES.DETAILS+e,this.withDefaults(t))}async airing_today(e={}){return this.fetch_tv_series_list(C.TV_SERIES.AIRING_TODAY,e)}async on_the_air(e={}){return this.fetch_tv_series_list(C.TV_SERIES.ON_THE_AIR,e)}async popular(e={}){return this.fetch_tv_series_list(C.TV_SERIES.POPULAR,e)}async top_rated(e={}){return this.fetch_tv_series_list(C.TV_SERIES.TOP_RATED,e)}},V=class extends T{async movie_providers(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.MOVIE,n)}async tv_providers(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.TV,n)}async available_regions(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.REGIONS,n)}},H=class extends T{networkPath(e){return`${C.NETWORKS.DETAILS}/${e}`}async details(e){let t=this.networkPath(e.network_id);return this.client.request(t)}async alternative_names(e){let t=`${this.networkPath(e.network_id)}${C.NETWORKS.ALTERNATIVE_NAMES}`;return this.client.request(t)}async images(e){let t=`${this.networkPath(e.network_id)}${C.NETWORKS.IMAGES}`;return this.client.request(t)}},U=class extends T{episodePath(e){return`${C.TV_SERIES.DETAILS}/${e.series_id}${C.TV_SEASONS.DETAILS}/${e.season_number}${C.TV_EPISODES.DETAILS}/${e.episode_number}`}episodeSubPath(e,t){return`${this.episodePath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,append_to_response:n,...r}=e,i=this.episodePath(r);return this.client.request(i,{language:t,append_to_response:n})}async changes(e){let{episode_id:t,...n}=e,r=`${C.TV_SERIES.DETAILS}${C.TV_EPISODES.DETAILS}/${t}${C.TV_EPISODES.CHANGES}`;return this.client.request(r,{...n})}async credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.episodeSubPath(n,C.TV_EPISODES.CREDITS);return this.client.request(r,{language:t})}async external_ids(e){let t=this.episodeSubPath(e,C.TV_EPISODES.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,include_image_language:n,...r}=e,i=this.episodeSubPath(r,C.TV_EPISODES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,include_image_language:n}))}async translations(e){let t=this.episodeSubPath(e,C.TV_EPISODES.TRANSLATIONS);return this.client.request(t)}async videos(e){let t=this.episodeSubPath(e,C.TV_EPISODES.VIDEOS);return this.client.request(t)}},W=class extends T{async details(e){let t=`${C.TV_EPISODE_GROUPS.DETAILS}/${e.episode_group_id}`;return this.client.request(t)}},G=class extends T{seasonPath(e){return`${C.TV_SERIES.DETAILS}/${e.series_id}${C.TV_SEASONS.DETAILS}/${e.season_number}`}seasonSubPath(e,t){return`${this.seasonPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,append_to_response:n,...r}=e,i=this.seasonPath(r);return this.client.request(i,{language:t,append_to_response:n})}async aggregate_credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.AGGREGATE_CREDITS);return this.client.request(r,{language:t})}async changes(e){let{season_id:t,...n}=e,r=`${C.TV_SERIES.DETAILS}${C.TV_SEASONS.DETAILS}/${t}${C.TV_SEASONS.CHANGES}`;return this.client.request(r,{...n})}async credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.CREDITS);return this.client.request(r,{language:t})}async external_ids(e){let t=this.seasonSubPath(e,C.TV_SEASONS.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,include_image_language:n,...r}=e,i=this.seasonSubPath(r,C.TV_SEASONS.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,include_image_language:n}))}async translations(e){let t=this.seasonSubPath(e,C.TV_SEASONS.TRANSLATIONS);return this.client.request(t)}async videos(e){let{language:t=this.defaultOptions.language,include_video_language:n,...r}=e,i=this.seasonSubPath(r,C.TV_SEASONS.VIDEOS);return this.client.request(i,{language:t,include_video_language:n})}async watch_providers(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.WATCH_PROVIDERS);return this.client.request(r,{language:t})}},K=class extends T{async all(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.ALL}/${t}`,{language:n,...r})}async movies(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.MOVIE}/${t}`,{language:n,...r})}async tv(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.TV}/${t}`,{language:n,...r})}async people(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.PERSON}/${t}`,{language:n,...r})}},q=class extends T{async details(e){return this.client.request(`${C.REVIEWS.DETAILS}/${e.review_id}`)}},J=class extends T{async popular(e={}){return this.client.request(C.PEOPLE_LISTS.POPULAR,this.withLanguage(e))}},Y=class extends T{personPath(e){return`${C.PEOPLE.DETAILS}/${e}`}personSubPath(e,t){return`${this.personPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personPath(n),{language:t,...r})}async changes(e){let{person_id:t,...n}=e;return this.client.request(this.personSubPath(t,C.PEOPLE.CHANGES),n)}async combined_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.COMBINED_CREDITS),{language:t,...r})}async external_ids(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.EXTERNAL_IDS))}async images(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.IMAGES))}async latest(){return this.client.request(`${C.PEOPLE.DETAILS}${C.PEOPLE.LATEST}`)}async movie_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.MOVIE_CREDITS),{language:t,...r})}async tagged_images(e){let{person_id:t,...n}=e;return this.client.request(this.personSubPath(t,C.PEOPLE.TAGGED_IMAGES),n)}async translations(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.TRANSLATIONS))}async tv_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.TV_CREDITS),{language:t,...r})}},X=class extends T{accountPath(e){return`${C.ACCOUNT.DETAILS}/${e}`}accountSubPath(e,t){return`${this.accountPath(e)}${t}`}async details(e){let{account_id:t,...n}=e;return this.client.request(this.accountPath(t),n)}async add_favorite(e,t){let{account_id:n,...r}=e;return this.client.mutate(`POST`,this.accountSubPath(n,C.ACCOUNT.ADD_FAVORITE),t,r)}async add_to_watchlist(e,t){let{account_id:n,...r}=e;return this.client.mutate(`POST`,this.accountSubPath(n,C.ACCOUNT.ADD_TO_WATCHLIST),t,r)}async favorite_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.FAVORITE_MOVIES),{language:n,...r})}async favorite_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.FAVORITE_TV),{language:n,...r})}async watchlist_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.WATCHLIST_MOVIES),{language:n,...r})}async watchlist_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.WATCHLIST_TV),{language:n,...r})}async rated_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_MOVIES),{language:n,...r})}async rated_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_TV),{language:n,...r})}async rated_tv_episodes(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_TV_EPISODES),{language:n,...r})}async lists(e){let{account_id:t,...n}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.LISTS),n)}},Z=class extends T{async validate_key(){return this.client.request(C.AUTHENTICATION.VALIDATE)}async create_guest_session(){return this.client.request(C.AUTHENTICATION.GUEST_SESSION)}async create_request_token(){return this.client.request(C.AUTHENTICATION.REQUEST_TOKEN)}async create_session(e){return this.client.mutate(`POST`,C.AUTHENTICATION.CREATE_SESSION,e)}async create_session_with_login(e){return this.client.mutate(`POST`,C.AUTHENTICATION.CREATE_SESSION_WITH_LOGIN,e)}async delete_session(e){return this.client.mutate(`DELETE`,C.AUTHENTICATION.DELETE_SESSION,e)}},Q=class extends T{guestSessionPath(e){return`${C.GUEST_SESSIONS.DETAILS}/${e}`}guestSessionSubPath(e,t){return`${this.guestSessionPath(e)}${t}`}async rated_movies(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_MOVIES),{language:n,...r})}async rated_tv(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_TV),{language:n,...r})}async rated_tv_episodes(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_TV_EPISODES),{language:n,...r})}},he=class extends T{listPath(e){return`${C.LISTS.DETAILS}/${e}`}listSubPath(e,t){return`${this.listPath(e)}${t}`}async details(e){let{list_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.listPath(t),{language:n,...r})}async create(e,t){return this.client.mutate(`POST`,C.LISTS.DETAILS,t,e)}async delete(e){let{list_id:t,...n}=e;return this.client.mutate(`DELETE`,this.listPath(t),void 0,n)}async add_movie(e,t){let{list_id:n,...r}=e;return this.client.mutate(`POST`,this.listSubPath(n,C.LISTS.ADD_ITEM),t,r)}async remove_movie(e,t){let{list_id:n,...r}=e;return this.client.mutate(`POST`,this.listSubPath(n,C.LISTS.REMOVE_ITEM),t,r)}async check_item_status(e){let{list_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.listSubPath(t,C.LISTS.ITEM_STATUS),{language:n,...r})}async clear(e){let{list_id:t,...n}=e;return this.client.mutate(`POST`,this.listSubPath(t,C.LISTS.CLEAR),void 0,n)}},ge=class extends T{async create_request_token(e){return this.client.mutate(`POST`,w.AUTH.REQUEST_TOKEN,e??{})}async create_access_token(e){return this.client.mutate(`POST`,w.AUTH.ACCESS_TOKEN,e)}async delete_access_token(e){return this.client.mutate(`DELETE`,w.AUTH.ACCESS_TOKEN,e)}},_e=class extends T{},ve=class extends T{listPath(e){return`${w.LISTS.DETAILS}/${e}`}async create(e){return this.client.mutate(`POST`,w.LISTS.DETAILS,e)}async details({list_id:e,...t}){return this.client.request(this.listPath(e),this.withLanguage(t))}async update({list_id:e,...t}){return this.client.mutate(`PUT`,this.listPath(e),t)}async delete({list_id:e}){return this.client.mutate(`DELETE`,this.listPath(e),{})}async add_items(e,t){return this.client.mutate(`POST`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async update_items(e,t){return this.client.mutate(`PUT`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async remove_items(e,t){return this.client.mutate(`DELETE`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async item_status({list_id:e,...t}){return this.client.request(`${this.listPath(e)}${w.LISTS.ITEM_STATUS}`,t)}async clear(e){return this.client.mutate(`GET`,`${this.listPath(e)}${w.LISTS.CLEAR}`)}},$=class{client;auth;account;lists;constructor(e,t={}){if(!e)throw Error(v.NO_ACCESS_TOKEN);this.client=new S(e,{...t,version:4}),this.auth=new ge(this.client,t),this.account=new _e(this.client,t),this.lists=new ve(this.client,t)}},ye=class{client;accessToken;options;movies;movie_lists;search;images;configuration;genres;keywords;tv_lists;tv_series;watch_providers;certifications;changes;companies;credits;collections;discover;find;networks;tv_episodes;tv_episode_groups;tv_seasons;trending;reviews;people_lists;people;account;authentication;guest_sessions;lists;get v4(){if(!m(this.accessToken))throw Error(v.V4_REQUIRES_JWT);return this._v4||=new $(this.accessToken,this.options),this._v4}_v4;get cache(){if(!this.options.cache)return;let e=this.client;return{clear(){e.clearCache()},invalidate(t,n){return e.invalidateCache(t,n)},get size(){return e.cacheSize}}}constructor(e,t={}){if(!e)throw Error(v.NO_ACCESS_TOKEN);this.accessToken=e,this.options=t,this.client=new S(e,{logger:t.logger,deduplication:t.deduplication,images:t.images,rate_limit:t.rate_limit,retry:t.retry,cache:t.cache,interceptors:t.interceptors}),this.movies=new L(this.client,this.options),this.movie_lists=new I(this.client,this.options),this.search=new R(this.client,this.options),this.images=new x(this.options.images),this.configuration=new j(this.client,this.options),this.genres=new P(this.client,this.options),this.keywords=new F(this.client,this.options),this.tv_lists=new B(this.client,this.options),this.tv_series=new z(this.client,this.options),this.watch_providers=new V(this.client,this.options),this.certifications=new E(this.client,this.options),this.changes=new D(this.client,this.options),this.companies=new O(this.client,this.options),this.credits=new k(this.client,this.options),this.collections=new A(this.client,this.options),this.discover=new M(this.client,this.options),this.find=new N(this.client,this.options),this.networks=new H(this.client,this.options),this.tv_episodes=new U(this.client,this.options),this.tv_episode_groups=new W(this.client,this.options),this.tv_seasons=new G(this.client,this.options),this.trending=new K(this.client,this.options),this.reviews=new q(this.client,this.options),this.people_lists=new J(this.client,this.options),this.people=new Y(this.client,this.options),this.account=new X(this.client,this.options),this.authentication=new Z(this.client,this.options),this.guest_sessions=new Q(this.client,this.options),this.lists=new he(this.client,this.options)}};const be={Premiere:1,TheatricalLimited:2,Theatrical:3,Digital:4,Physical:5,TV:6},xe={1:`Premiere`,2:`Theatrical (Limited)`,3:`Theatrical`,4:`Digital`,5:`Physical`,6:`TV`},Se={ReturningSeries:0,Planned:1,InProduction:2,Ended:3,Canceled:4,Pilot:5},Ce={0:`Returning Series`,1:`Planned`,2:`In Production`,3:`Ended`,4:`Canceled`,5:`Pilot`},we={Documentary:0,News:1,Miniseries:2,Reality:3,Scripted:4,TalkShow:5,Video:6},Te={0:`Documentary`,1:`News`,2:`Miniseries`,3:`Reality`,4:`Scripted`,5:`Talk Show`,6:`Video`},Ee={OriginalAirDate:1,Absolute:2,Dvd:3,Digital:4,StoryArc:5,Production:6,TV:7},De={1:`Original Air Date`,2:`Absolute`,3:`DVD`,4:`Digital`,5:`Story Arc`,6:`Production`,7:`TV`},Oe=[{iso_3166_1:`AD`,english_name:`Andorra`,native_name:`Andorra`},{iso_3166_1:`AE`,english_name:`United Arab Emirates`,native_name:`United Arab Emirates`},{iso_3166_1:`AF`,english_name:`Afghanistan`,native_name:`Afghanistan`},{iso_3166_1:`AG`,english_name:`Antigua and Barbuda`,native_name:`Antigua & Barbuda`},{iso_3166_1:`AI`,english_name:`Anguilla`,native_name:`Anguilla`},{iso_3166_1:`AL`,english_name:`Albania`,native_name:`Albania`},{iso_3166_1:`AM`,english_name:`Armenia`,native_name:`Armenia`},{iso_3166_1:`AN`,english_name:`Netherlands Antilles`,native_name:`Netherlands Antilles`},{iso_3166_1:`AO`,english_name:`Angola`,native_name:`Angola`},{iso_3166_1:`AQ`,english_name:`Antarctica`,native_name:`Antarctica`},{iso_3166_1:`AR`,english_name:`Argentina`,native_name:`Argentina`},{iso_3166_1:`AS`,english_name:`American Samoa`,native_name:`American Samoa`},{iso_3166_1:`AT`,english_name:`Austria`,native_name:`Austria`},{iso_3166_1:`AU`,english_name:`Australia`,native_name:`Australia`},{iso_3166_1:`AW`,english_name:`Aruba`,native_name:`Aruba`},{iso_3166_1:`AZ`,english_name:`Azerbaijan`,native_name:`Azerbaijan`},{iso_3166_1:`BA`,english_name:`Bosnia and Herzegovina`,native_name:`Bosnia & Herzegovina`},{iso_3166_1:`BB`,english_name:`Barbados`,native_name:`Barbados`},{iso_3166_1:`BD`,english_name:`Bangladesh`,native_name:`Bangladesh`},{iso_3166_1:`BE`,english_name:`Belgium`,native_name:`Belgium`},{iso_3166_1:`BF`,english_name:`Burkina Faso`,native_name:`Burkina Faso`},{iso_3166_1:`BG`,english_name:`Bulgaria`,native_name:`Bulgaria`},{iso_3166_1:`BH`,english_name:`Bahrain`,native_name:`Bahrain`},{iso_3166_1:`BI`,english_name:`Burundi`,native_name:`Burundi`},{iso_3166_1:`BJ`,english_name:`Benin`,native_name:`Benin`},{iso_3166_1:`BM`,english_name:`Bermuda`,native_name:`Bermuda`},{iso_3166_1:`BN`,english_name:`Brunei Darussalam`,native_name:`Brunei`},{iso_3166_1:`BO`,english_name:`Bolivia`,native_name:`Bolivia`},{iso_3166_1:`BR`,english_name:`Brazil`,native_name:`Brazil`},{iso_3166_1:`BS`,english_name:`Bahamas`,native_name:`Bahamas`},{iso_3166_1:`BT`,english_name:`Bhutan`,native_name:`Bhutan`},{iso_3166_1:`BU`,english_name:`Burma`,native_name:`Burma`},{iso_3166_1:`BV`,english_name:`Bouvet Island`,native_name:`Bouvet Island`},{iso_3166_1:`BW`,english_name:`Botswana`,native_name:`Botswana`},{iso_3166_1:`BY`,english_name:`Belarus`,native_name:`Belarus`},{iso_3166_1:`BZ`,english_name:`Belize`,native_name:`Belize`},{iso_3166_1:`CA`,english_name:`Canada`,native_name:`Canada`},{iso_3166_1:`CC`,english_name:`Cocos Islands`,native_name:`Cocos (Keeling) Islands`},{iso_3166_1:`CD`,english_name:`Congo`,native_name:`Democratic Republic of the Congo (Kinshasa)`},{iso_3166_1:`CF`,english_name:`Central African Republic`,native_name:`Central African Republic`},{iso_3166_1:`CG`,english_name:`Congo`,native_name:`Republic of the Congo (Brazzaville)`},{iso_3166_1:`CH`,english_name:`Switzerland`,native_name:`Switzerland`},{iso_3166_1:`CI`,english_name:`Cote D'Ivoire`,native_name:`Côte d’Ivoire`},{iso_3166_1:`CK`,english_name:`Cook Islands`,native_name:`Cook Islands`},{iso_3166_1:`CL`,english_name:`Chile`,native_name:`Chile`},{iso_3166_1:`CM`,english_name:`Cameroon`,native_name:`Cameroon`},{iso_3166_1:`CN`,english_name:`China`,native_name:`China`},{iso_3166_1:`CO`,english_name:`Colombia`,native_name:`Colombia`},{iso_3166_1:`CR`,english_name:`Costa Rica`,native_name:`Costa Rica`},{iso_3166_1:`CS`,english_name:`Serbia and Montenegro`,native_name:`Serbia and Montenegro`},{iso_3166_1:`CU`,english_name:`Cuba`,native_name:`Cuba`},{iso_3166_1:`CV`,english_name:`Cape Verde`,native_name:`Cape Verde`},{iso_3166_1:`CX`,english_name:`Christmas Island`,native_name:`Christmas Island`},{iso_3166_1:`CY`,english_name:`Cyprus`,native_name:`Cyprus`},{iso_3166_1:`CZ`,english_name:`Czech Republic`,native_name:`Czech Republic`},{iso_3166_1:`DE`,english_name:`Germany`,native_name:`Germany`},{iso_3166_1:`DJ`,english_name:`Djibouti`,native_name:`Djibouti`},{iso_3166_1:`DK`,english_name:`Denmark`,native_name:`Denmark`},{iso_3166_1:`DM`,english_name:`Dominica`,native_name:`Dominica`},{iso_3166_1:`DO`,english_name:`Dominican Republic`,native_name:`Dominican Republic`},{iso_3166_1:`DZ`,english_name:`Algeria`,native_name:`Algeria`},{iso_3166_1:`EC`,english_name:`Ecuador`,native_name:`Ecuador`},{iso_3166_1:`EE`,english_name:`Estonia`,native_name:`Estonia`},{iso_3166_1:`EG`,english_name:`Egypt`,native_name:`Egypt`},{iso_3166_1:`EH`,english_name:`Western Sahara`,native_name:`Western Sahara`},{iso_3166_1:`ER`,english_name:`Eritrea`,native_name:`Eritrea`},{iso_3166_1:`ES`,english_name:`Spain`,native_name:`Spain`},{iso_3166_1:`ET`,english_name:`Ethiopia`,native_name:`Ethiopia`},{iso_3166_1:`FI`,english_name:`Finland`,native_name:`Finland`},{iso_3166_1:`FJ`,english_name:`Fiji`,native_name:`Fiji`},{iso_3166_1:`FK`,english_name:`Falkland Islands`,native_name:`Falkland Islands`},{iso_3166_1:`FM`,english_name:`Micronesia`,native_name:`Micronesia`},{iso_3166_1:`FO`,english_name:`Faeroe Islands`,native_name:`Faroe Islands`},{iso_3166_1:`FR`,english_name:`France`,native_name:`France`},{iso_3166_1:`GA`,english_name:`Gabon`,native_name:`Gabon`},{iso_3166_1:`GB`,english_name:`United Kingdom`,native_name:`United Kingdom`},{iso_3166_1:`GD`,english_name:`Grenada`,native_name:`Grenada`},{iso_3166_1:`GE`,english_name:`Georgia`,native_name:`Georgia`},{iso_3166_1:`GF`,english_name:`French Guiana`,native_name:`French Guiana`},{iso_3166_1:`GH`,english_name:`Ghana`,native_name:`Ghana`},{iso_3166_1:`GI`,english_name:`Gibraltar`,native_name:`Gibraltar`},{iso_3166_1:`GL`,english_name:`Greenland`,native_name:`Greenland`},{iso_3166_1:`GM`,english_name:`Gambia`,native_name:`Gambia`},{iso_3166_1:`GN`,english_name:`Guinea`,native_name:`Guinea`},{iso_3166_1:`GP`,english_name:`Guadaloupe`,native_name:`Guadeloupe`},{iso_3166_1:`GQ`,english_name:`Equatorial Guinea`,native_name:`Equatorial Guinea`},{iso_3166_1:`GR`,english_name:`Greece`,native_name:`Greece`},{iso_3166_1:`GS`,english_name:`South Georgia and the South Sandwich Islands`,native_name:`South Georgia & South Sandwich Islands`},{iso_3166_1:`GT`,english_name:`Guatemala`,native_name:`Guatemala`},{iso_3166_1:`GU`,english_name:`Guam`,native_name:`Guam`},{iso_3166_1:`GW`,english_name:`Guinea-Bissau`,native_name:`Guinea-Bissau`},{iso_3166_1:`GY`,english_name:`Guyana`,native_name:`Guyana`},{iso_3166_1:`HK`,english_name:`Hong Kong`,native_name:`Hong Kong SAR China`},{iso_3166_1:`HM`,english_name:`Heard and McDonald Islands`,native_name:`Heard & McDonald Islands`},{iso_3166_1:`HN`,english_name:`Honduras`,native_name:`Honduras`},{iso_3166_1:`HR`,english_name:`Croatia`,native_name:`Croatia`},{iso_3166_1:`HT`,english_name:`Haiti`,native_name:`Haiti`},{iso_3166_1:`HU`,english_name:`Hungary`,native_name:`Hungary`},{iso_3166_1:`ID`,english_name:`Indonesia`,native_name:`Indonesia`},{iso_3166_1:`IE`,english_name:`Ireland`,native_name:`Ireland`},{iso_3166_1:`IL`,english_name:`Israel`,native_name:`Israel`},{iso_3166_1:`IN`,english_name:`India`,native_name:`India`},{iso_3166_1:`IO`,english_name:`British Indian Ocean Territory`,native_name:`British Indian Ocean Territory`},{iso_3166_1:`IQ`,english_name:`Iraq`,native_name:`Iraq`},{iso_3166_1:`IR`,english_name:`Iran`,native_name:`Iran`},{iso_3166_1:`IS`,english_name:`Iceland`,native_name:`Iceland`},{iso_3166_1:`IT`,english_name:`Italy`,native_name:`Italy`},{iso_3166_1:`JM`,english_name:`Jamaica`,native_name:`Jamaica`},{iso_3166_1:`JO`,english_name:`Jordan`,native_name:`Jordan`},{iso_3166_1:`JP`,english_name:`Japan`,native_name:`Japan`},{iso_3166_1:`KE`,english_name:`Kenya`,native_name:`Kenya`},{iso_3166_1:`KG`,english_name:`Kyrgyz Republic`,native_name:`Kyrgyzstan`},{iso_3166_1:`KH`,english_name:`Cambodia`,native_name:`Cambodia`},{iso_3166_1:`KI`,english_name:`Kiribati`,native_name:`Kiribati`},{iso_3166_1:`KM`,english_name:`Comoros`,native_name:`Comoros`},{iso_3166_1:`KN`,english_name:`St. Kitts and Nevis`,native_name:`St. Kitts & Nevis`},{iso_3166_1:`KP`,english_name:`North Korea`,native_name:`North Korea`},{iso_3166_1:`KR`,english_name:`South Korea`,native_name:`South Korea`},{iso_3166_1:`KW`,english_name:`Kuwait`,native_name:`Kuwait`},{iso_3166_1:`KY`,english_name:`Cayman Islands`,native_name:`Cayman Islands`},{iso_3166_1:`KZ`,english_name:`Kazakhstan`,native_name:`Kazakhstan`},{iso_3166_1:`LA`,english_name:`Lao People's Democratic Republic`,native_name:`Laos`},{iso_3166_1:`LB`,english_name:`Lebanon`,native_name:`Lebanon`},{iso_3166_1:`LC`,english_name:`St. Lucia`,native_name:`St. Lucia`},{iso_3166_1:`LI`,english_name:`Liechtenstein`,native_name:`Liechtenstein`},{iso_3166_1:`LK`,english_name:`Sri Lanka`,native_name:`Sri Lanka`},{iso_3166_1:`LR`,english_name:`Liberia`,native_name:`Liberia`},{iso_3166_1:`LS`,english_name:`Lesotho`,native_name:`Lesotho`},{iso_3166_1:`LT`,english_name:`Lithuania`,native_name:`Lithuania`},{iso_3166_1:`LU`,english_name:`Luxembourg`,native_name:`Luxembourg`},{iso_3166_1:`LV`,english_name:`Latvia`,native_name:`Latvia`},{iso_3166_1:`LY`,english_name:`Libyan Arab Jamahiriya`,native_name:`Libya`},{iso_3166_1:`MA`,english_name:`Morocco`,native_name:`Morocco`},{iso_3166_1:`MC`,english_name:`Monaco`,native_name:`Monaco`},{iso_3166_1:`MD`,english_name:`Moldova`,native_name:`Moldova`},{iso_3166_1:`ME`,english_name:`Montenegro`,native_name:`Montenegro`},{iso_3166_1:`MG`,english_name:`Madagascar`,native_name:`Madagascar`},{iso_3166_1:`MH`,english_name:`Marshall Islands`,native_name:`Marshall Islands`},{iso_3166_1:`MK`,english_name:`Macedonia`,native_name:`Macedonia`},{iso_3166_1:`ML`,english_name:`Mali`,native_name:`Mali`},{iso_3166_1:`MM`,english_name:`Myanmar`,native_name:`Myanmar (Burma)`},{iso_3166_1:`MN`,english_name:`Mongolia`,native_name:`Mongolia`},{iso_3166_1:`MO`,english_name:`Macao`,native_name:`Macau SAR China`},{iso_3166_1:`MP`,english_name:`Northern Mariana Islands`,native_name:`Northern Mariana Islands`},{iso_3166_1:`MQ`,english_name:`Martinique`,native_name:`Martinique`},{iso_3166_1:`MR`,english_name:`Mauritania`,native_name:`Mauritania`},{iso_3166_1:`MS`,english_name:`Montserrat`,native_name:`Montserrat`},{iso_3166_1:`MT`,english_name:`Malta`,native_name:`Malta`},{iso_3166_1:`MU`,english_name:`Mauritius`,native_name:`Mauritius`},{iso_3166_1:`MV`,english_name:`Maldives`,native_name:`Maldives`},{iso_3166_1:`MW`,english_name:`Malawi`,native_name:`Malawi`},{iso_3166_1:`MX`,english_name:`Mexico`,native_name:`Mexico`},{iso_3166_1:`MY`,english_name:`Malaysia`,native_name:`Malaysia`},{iso_3166_1:`MZ`,english_name:`Mozambique`,native_name:`Mozambique`},{iso_3166_1:`NA`,english_name:`Namibia`,native_name:`Namibia`},{iso_3166_1:`NC`,english_name:`New Caledonia`,native_name:`New Caledonia`},{iso_3166_1:`NE`,english_name:`Niger`,native_name:`Niger`},{iso_3166_1:`NF`,english_name:`Norfolk Island`,native_name:`Norfolk Island`},{iso_3166_1:`NG`,english_name:`Nigeria`,native_name:`Nigeria`},{iso_3166_1:`NI`,english_name:`Nicaragua`,native_name:`Nicaragua`},{iso_3166_1:`NL`,english_name:`Netherlands`,native_name:`Netherlands`},{iso_3166_1:`NO`,english_name:`Norway`,native_name:`Norway`},{iso_3166_1:`NP`,english_name:`Nepal`,native_name:`Nepal`},{iso_3166_1:`NR`,english_name:`Nauru`,native_name:`Nauru`},{iso_3166_1:`NU`,english_name:`Niue`,native_name:`Niue`},{iso_3166_1:`NZ`,english_name:`New Zealand`,native_name:`New Zealand`},{iso_3166_1:`OM`,english_name:`Oman`,native_name:`Oman`},{iso_3166_1:`PA`,english_name:`Panama`,native_name:`Panama`},{iso_3166_1:`PE`,english_name:`Peru`,native_name:`Peru`},{iso_3166_1:`PF`,english_name:`French Polynesia`,native_name:`French Polynesia`},{iso_3166_1:`PG`,english_name:`Papua New Guinea`,native_name:`Papua New Guinea`},{iso_3166_1:`PH`,english_name:`Philippines`,native_name:`Philippines`},{iso_3166_1:`PK`,english_name:`Pakistan`,native_name:`Pakistan`},{iso_3166_1:`PL`,english_name:`Poland`,native_name:`Poland`},{iso_3166_1:`PM`,english_name:`St. Pierre and Miquelon`,native_name:`St. Pierre & Miquelon`},{iso_3166_1:`PN`,english_name:`Pitcairn Island`,native_name:`Pitcairn Islands`},{iso_3166_1:`PR`,english_name:`Puerto Rico`,native_name:`Puerto Rico`},{iso_3166_1:`PS`,english_name:`Palestinian Territory`,native_name:`Palestinian Territories`},{iso_3166_1:`PT`,english_name:`Portugal`,native_name:`Portugal`},{iso_3166_1:`PW`,english_name:`Palau`,native_name:`Palau`},{iso_3166_1:`PY`,english_name:`Paraguay`,native_name:`Paraguay`},{iso_3166_1:`QA`,english_name:`Qatar`,native_name:`Qatar`},{iso_3166_1:`RE`,english_name:`Reunion`,native_name:`Réunion`},{iso_3166_1:`RO`,english_name:`Romania`,native_name:`Romania`},{iso_3166_1:`RS`,english_name:`Serbia`,native_name:`Serbia`},{iso_3166_1:`RU`,english_name:`Russia`,native_name:`Russia`},{iso_3166_1:`RW`,english_name:`Rwanda`,native_name:`Rwanda`},{iso_3166_1:`SA`,english_name:`Saudi Arabia`,native_name:`Saudi Arabia`},{iso_3166_1:`SB`,english_name:`Solomon Islands`,native_name:`Solomon Islands`},{iso_3166_1:`SC`,english_name:`Seychelles`,native_name:`Seychelles`},{iso_3166_1:`SD`,english_name:`Sudan`,native_name:`Sudan`},{iso_3166_1:`SE`,english_name:`Sweden`,native_name:`Sweden`},{iso_3166_1:`SG`,english_name:`Singapore`,native_name:`Singapore`},{iso_3166_1:`SH`,english_name:`St. Helena`,native_name:`St. Helena`},{iso_3166_1:`SI`,english_name:`Slovenia`,native_name:`Slovenia`},{iso_3166_1:`SJ`,english_name:`Svalbard & Jan Mayen Islands`,native_name:`Svalbard & Jan Mayen`},{iso_3166_1:`SK`,english_name:`Slovakia`,native_name:`Slovakia`},{iso_3166_1:`SL`,english_name:`Sierra Leone`,native_name:`Sierra Leone`},{iso_3166_1:`SM`,english_name:`San Marino`,native_name:`San Marino`},{iso_3166_1:`SN`,english_name:`Senegal`,native_name:`Senegal`},{iso_3166_1:`SO`,english_name:`Somalia`,native_name:`Somalia`},{iso_3166_1:`SR`,english_name:`Suriname`,native_name:`Suriname`},{iso_3166_1:`SS`,english_name:`South Sudan`,native_name:`South Sudan`},{iso_3166_1:`ST`,english_name:`Sao Tome and Principe`,native_name:`São Tomé & Príncipe`},{iso_3166_1:`SU`,english_name:`Soviet Union`,native_name:`Soviet Union`},{iso_3166_1:`SV`,english_name:`El Salvador`,native_name:`El Salvador`},{iso_3166_1:`SY`,english_name:`Syrian Arab Republic`,native_name:`Syria`},{iso_3166_1:`SZ`,english_name:`Swaziland`,native_name:`Eswatini (Swaziland)`},{iso_3166_1:`TC`,english_name:`Turks and Caicos Islands`,native_name:`Turks & Caicos Islands`},{iso_3166_1:`TD`,english_name:`Chad`,native_name:`Chad`},{iso_3166_1:`TF`,english_name:`French Southern Territories`,native_name:`French Southern Territories`},{iso_3166_1:`TG`,english_name:`Togo`,native_name:`Togo`},{iso_3166_1:`TH`,english_name:`Thailand`,native_name:`Thailand`},{iso_3166_1:`TJ`,english_name:`Tajikistan`,native_name:`Tajikistan`},{iso_3166_1:`TK`,english_name:`Tokelau`,native_name:`Tokelau`},{iso_3166_1:`TL`,english_name:`Timor-Leste`,native_name:`Timor-Leste`},{iso_3166_1:`TM`,english_name:`Turkmenistan`,native_name:`Turkmenistan`},{iso_3166_1:`TN`,english_name:`Tunisia`,native_name:`Tunisia`},{iso_3166_1:`TO`,english_name:`Tonga`,native_name:`Tonga`},{iso_3166_1:`TP`,english_name:`East Timor`,native_name:`East Timor`},{iso_3166_1:`TR`,english_name:`Turkey`,native_name:`Turkey`},{iso_3166_1:`TT`,english_name:`Trinidad and Tobago`,native_name:`Trinidad & Tobago`},{iso_3166_1:`TV`,english_name:`Tuvalu`,native_name:`Tuvalu`},{iso_3166_1:`TW`,english_name:`Taiwan`,native_name:`Taiwan`},{iso_3166_1:`TZ`,english_name:`Tanzania`,native_name:`Tanzania`},{iso_3166_1:`UA`,english_name:`Ukraine`,native_name:`Ukraine`},{iso_3166_1:`UG`,english_name:`Uganda`,native_name:`Uganda`},{iso_3166_1:`UM`,english_name:`United States Minor Outlying Islands`,native_name:`U.S. Outlying Islands`},{iso_3166_1:`US`,english_name:`United States of America`,native_name:`United States`},{iso_3166_1:`UY`,english_name:`Uruguay`,native_name:`Uruguay`},{iso_3166_1:`UZ`,english_name:`Uzbekistan`,native_name:`Uzbekistan`},{iso_3166_1:`VA`,english_name:`Holy See`,native_name:`Vatican City`},{iso_3166_1:`VC`,english_name:`St. Vincent and the Grenadines`,native_name:`St. Vincent & Grenadines`},{iso_3166_1:`VE`,english_name:`Venezuela`,native_name:`Venezuela`},{iso_3166_1:`VG`,english_name:`British Virgin Islands`,native_name:`British Virgin Islands`},{iso_3166_1:`VI`,english_name:`US Virgin Islands`,native_name:`U.S. Virgin Islands`},{iso_3166_1:`VN`,english_name:`Vietnam`,native_name:`Vietnam`},{iso_3166_1:`VU`,english_name:`Vanuatu`,native_name:`Vanuatu`},{iso_3166_1:`WF`,english_name:`Wallis and Futuna Islands`,native_name:`Wallis & Futuna`},{iso_3166_1:`WS`,english_name:`Samoa`,native_name:`Samoa`},{iso_3166_1:`XC`,english_name:`Czechoslovakia`,native_name:`Czechoslovakia`},{iso_3166_1:`XG`,english_name:`East Germany`,native_name:`East Germany`},{iso_3166_1:`XI`,english_name:`Northern Ireland`,native_name:`Northern Ireland`},{iso_3166_1:`XK`,english_name:`Kosovo`,native_name:`Kosovo`},{iso_3166_1:`YE`,english_name:`Yemen`,native_name:`Yemen`},{iso_3166_1:`YT`,english_name:`Mayotte`,native_name:`Mayotte`},{iso_3166_1:`YU`,english_name:`Yugoslavia`,native_name:`Yugoslavia`},{iso_3166_1:`ZA`,english_name:`South Africa`,native_name:`South Africa`},{iso_3166_1:`ZM`,english_name:`Zambia`,native_name:`Zambia`},{iso_3166_1:`ZR`,english_name:`Zaire`,native_name:`Zaire`},{iso_3166_1:`ZW`,english_name:`Zimbabwe`,native_name:`Zimbabwe`}];function ke(e){return e.media_type===`movie`}function Ae(e){return e.media_type===`tv`}export{X as AccountAPI,Z as AuthenticationAPI,r as BACKDROP_SIZES,E as CertificationsAPI,D as ChangesAPI,A as CollectionsAPI,O as CompaniesAPI,j as ConfigurationAPI,k as CreditsAPI,M as DiscoverAPI,Se as DiscoverTVStatus,Ce as DiscoverTVStatusLabel,we as DiscoverTVType,Te as DiscoverTVTypeLabel,N as FindAPI,P as GenresAPI,Q as GuestSessionsAPI,t as IMAGE_BASE_URL,n as IMAGE_SECURE_BASE_URL,x as ImageAPI,F as KeywordsAPI,i as LOGO_SIZES,he as ListsAPI,I as MovieListsAPI,be as MovieReleaseType,xe as MovieReleaseTypeLabel,L as MoviesAPI,H as NetworksAPI,a as POSTER_SIZES,o as PROFILE_SIZES,Y as PeopleAPI,J as PeopleListsAPI,q as ReviewsAPI,s as STILL_SIZES,R as SearchAPI,ye as TMDB,Oe as TMDBCountries,e as TMDBError,c as TMDBLogger,$ as TMDBv4,Ee as TVEpisodeGroupType,De as TVEpisodeGroupTypeLabel,W as TVEpisodeGroupsAPI,U as TVEpisodesAPI,G as TVSeasonsAPI,z as TVSeriesAPI,B as TVSeriesListsAPI,K as TrendingAPI,_e as V4AccountAPI,ge as V4AuthAPI,ve as V4ListsAPI,V as WatchProvidersAPI,ae as fetchAllPages,ce as getPageInfo,ee as hasBackdropPath,re as hasLogoPath,oe as hasNextPage,_ as hasPosterPath,se as hasPreviousPage,te as hasProfilePath,ne as hasStillPath,m as isJwt,ke as isKnownForMovie,Ae as isKnownForTV,g as isPlainObject,h as isRecord,ie as paginate};
1
+ import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./images.mjs";var h=class extends Error{tmdb_status_code;message;http_status_code;constructor(e,t,n){super(e),this.name=`TMDBError`,this.tmdb_status_code=n||-1,this.message=e,this.http_status_code=t}},g=class e{logger;constructor(e){this.logger=e}static from(t){if(t)return t===!0?new e(e.defaultLogger):new e(t)}log(e){if(this.logger)try{this.logger(e)}catch(e){console.warn(`TMDB logger error: ${String(e)}`)}}static defaultLogger=e=>{let t=`🎬 [tmdb]`,n=new Date().toISOString();if(e.type===`request`){console.log(`${t} ${n} 🛰️ REQUEST ${e.method} ${e.endpoint} \n`);return}if(e.type===`response`){console.log(`${t} ${n} ✅ RESPONSE ${e.method} ${e.status} ${e.statusText} ${e.endpoint} (${e.durationMs}ms)\n`);return}let r=e.status==null?`NETWORK ERROR`:`${e.status} ${e.statusText}`,i=e.tmdbStatusCode==null?``:` (tmdb: ${e.tmdbStatusCode})`;console.log(`${t} ${n} ❌ ${e.method} ${r} ${e.endpoint} - ${e.errorMessage}${i}\n`)}};function _(e){return/^[A-Za-z0-9\-_]+$/.test(e)}function v(e){try{let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=t.padEnd(t.length+(4-t.length%4)%4,`=`);return atob(n)}catch{return null}}function y(e){return typeof e==`object`&&!!e}function ee(e){return y(e)?typeof e.alg==`string`:!1}function te(e){return!(!y(e)||`exp`in e&&typeof e.exp!=`number`||`nbf`in e&&typeof e.nbf!=`number`||`iat`in e&&typeof e.iat!=`number`)}function b(e){if(typeof e!=`string`)return!1;let t=e.split(`.`);if(t.length!==3)return!1;let[n,r,i]=t;if(!_(n)||!_(r)||!_(i))return!1;let a=v(n),o=v(r);if(!a||!o)return!1;let s,c;try{s=JSON.parse(a),c=JSON.parse(o)}catch{return!1}return!(!ee(s)||!te(c))}const x={NO_ACCESS_TOKEN:`TMDB requires a valid access token, please provide one.`,INVALID_CLIENT:`TMDB received an invalid ApiClient instance. Pass a valid ApiClient or an access token string.`,V4_REQUIRES_JWT:`TMDB v4 requires a Bearer (JWT) access token. API key strings are not supported for v4 endpoints.`,INVALID_START_PAGE:`Invalid page: Pages start at 1 and max at 500. They are expected to be an integer.`};async function*ne(e,t=1){if(!Number.isInteger(t)||t<1||t>500)throw RangeError(x.INVALID_START_PAGE);let n=t;for(;;){let t=await e(n);if(yield t,t.page>=t.total_pages)break;n++}}async function re(e,t={}){let{maxPages:n=500,deduplicateBy:r}=t,i=[],a=1;for(;;){let t=await e(a);if(i.push(...t.results),t.page>=t.total_pages||a>=n)break;a++}if(r){let e=new Map;for(let t of i){let n=r(t);e.has(n)&&e.delete(n),e.set(n,t)}return[...e.values()]}return i}function ie(e){return e.page<e.total_pages}function ae(e){return e.page>1}function oe(e){return{current:e.page,total:e.total_pages,totalResults:e.total_results,isFirst:e.page===1,isLast:e.page>=e.total_pages}}var se=class{ttl;maxSize;excludedEndpoints;store=new Map;constructor(e={}){let t=e.ttl??3e5;if(!Number.isFinite(t)||!Number.isInteger(t)||t<1)throw RangeError(`cache.ttl must be a finite integer >= 1 (got ${t})`);if(e.max_size!==void 0&&(!Number.isFinite(e.max_size)||!Number.isInteger(e.max_size)||e.max_size<1))throw RangeError(`cache.max_size must be a finite integer >= 1 (got ${e.max_size})`);this.ttl=t,this.maxSize=e.max_size,this.excludedEndpoints=(e.excluded_endpoints??[]).map(e=>typeof e!=`string`&&/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e)}shouldCache(e){return!this.excludedEndpoints.some(t=>typeof t==`string`?e.startsWith(t):t.test(e))}get(e){let t=this.store.get(e);if(t){if(Date.now()>t.expiresAt){this.store.delete(e);return}return t.value}}has(e){let t=this.store.get(e);return t?Date.now()>t.expiresAt?(this.store.delete(e),!1):!0:!1}set(e,t){this.maxSize!==void 0&&!this.store.has(e)&&this.store.size>=this.maxSize&&this.store.delete(this.store.keys().next().value),this.store.set(e,{value:t,expiresAt:Date.now()+this.ttl})}delete(e){return this.store.delete(e)}clear(){this.store.clear()}get size(){return this.store.size}},ce=class{maxRequests;windowMs;timestamps=[];queue=[];processing=!1;constructor(e={}){let t=e.max_requests??40,n=e.per_ms??1e3;if(!Number.isFinite(t)||!Number.isInteger(t)||t<1)throw RangeError(`rate_limit.max_requests must be a finite integer >= 1 (got ${t})`);if(!Number.isFinite(n)||!Number.isInteger(n)||n<1)throw RangeError(`rate_limit.per_ms must be a finite integer >= 1 (got ${n})`);this.maxRequests=t,this.windowMs=n}acquire(){return new Promise(e=>{this.queue.push(e),this.processing||this.process()})}async process(){for(this.processing=!0;this.queue.length>0;){let e=Date.now();if(this.timestamps=this.timestamps.filter(t=>e-t<this.windowMs),this.timestamps.length<this.maxRequests)this.timestamps.push(Date.now()),this.queue.shift()();else{let e=this.timestamps[0],t=this.windowMs-(Date.now()-e)+1;await new Promise(e=>setTimeout(e,t))}}this.processing=!1}};function le(e){if(e instanceof h)return e.http_status_code>=500;if(e instanceof Error)switch(e.name){case`FetchError`:case`AbortError`:return!0;case`SyntaxError`:return!1;case`TypeError`:return!0;default:return!1}return!0}var ue=class{maxRetries;baseDelayMs;maxDelayMs;shouldRetry;constructor(e={}){let t=e.max_retries??3,n=e.base_delay_ms??500,r=e.max_delay_ms??3e4;if(!Number.isFinite(t)||!Number.isInteger(t)||t<0)throw RangeError(`retry.max_retries must be a finite integer >= 0 (got ${t})`);if(!Number.isFinite(n)||!Number.isInteger(n)||n<1)throw RangeError(`retry.base_delay_ms must be a finite integer >= 1 (got ${n})`);if(!Number.isFinite(r)||!Number.isInteger(r)||r<1)throw RangeError(`retry.max_delay_ms must be a finite integer >= 1 (got ${r})`);this.maxRetries=t,this.baseDelayMs=n,this.maxDelayMs=r,this.shouldRetry=e.shouldRetry??le}delayFor(e){let t=Math.min(this.baseDelayMs*2**(e-1),this.maxDelayMs);return Math.floor(Math.random()*t)}async execute(e,t=de){let n;for(let r=0;r<=this.maxRetries;r++)try{return await e()}catch(e){if(n=e,r>=this.maxRetries||!await this.shouldRetry(e,r+1))break;let i=this.delayFor(r+1);i>0&&await t(i)}throw n}};function de(e){return new Promise(t=>setTimeout(t,e))}var S=class{accessToken;baseUrl;logger;inflightRequests=new Map;deduplication;rateLimiter;retryManager;requestInterceptors;onSuccessInterceptor;onErrorInterceptor;imageApi;imageOptions;responseCache;constructor(e,t={}){this.accessToken=e,this.baseUrl=`https://api.themoviedb.org/${t.version??3}`,this.logger=g.from(t.logger),this.deduplication=t.deduplication!==!1,t.rate_limit&&(this.rateLimiter=new ce(t.rate_limit===!0?{}:t.rate_limit)),t.retry&&(this.retryManager=new ue(t.retry===!0?{}:t.retry)),t.cache&&(this.responseCache=new se(t.cache===!0?{}:t.cache));let n=t.interceptors?.request;this.requestInterceptors=n==null?[]:Array.isArray(n)?n:[n],this.onSuccessInterceptor=t.interceptors?.response?.onSuccess,this.onErrorInterceptor=t.interceptors?.response?.onError,this.imageApi=t.images?.autocomplete_paths||t.images?.fallback_url!=null?new p(t.images):void 0,this.imageOptions=t.images}buildRequestKey(e,t){let n=this.serializeParams(t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}=${t}`);return n.length>0?`${e}?${n.join(`&`)}`:e}serializeParams(e){return Object.entries(e).flatMap(([e,t])=>t===void 0?[]:[[e,String(t)]])}async request(e,t={}){let n=await this.runRequestInterceptors({endpoint:e,params:t,method:`GET`}),r=n.endpoint,i=n.params,a=this.buildRequestKey(r,i),o=!!this.responseCache?.shouldCache(a);if(o&&this.responseCache.has(a))return this.responseCache.get(a);if(!this.deduplication){let e=await this.execute(`GET`,r,i,void 0,!0);return o&&this.responseCache.set(a,e),e}let s=this.inflightRequests.get(a);if(s)return s;let c=o?this.responseCache:void 0,l=this.execute(`GET`,r,i,void 0,!0).then(e=>(c?.set(a,e),e)).finally(()=>{this.inflightRequests.delete(a)});return this.inflightRequests.set(a,l),l}invalidateCache(e,t={}){return this.responseCache?this.responseCache.delete(this.buildRequestKey(e,t)):!1}clearCache(){this.responseCache?.clear()}get cacheSize(){return this.responseCache?.size??0}async runRequestInterceptors(e){let t=e;for(let e of this.requestInterceptors){let n=await e(t);n!=null&&(t=n)}return t}sanitizeNulls(e){if(e===null)return;if(typeof e!=`object`)return e;if(Array.isArray(e))return e.map(e=>this.sanitizeNulls(e));let t={};for(let[n,r]of Object.entries(e))t[n]=this.sanitizeNulls(r);return t}async normalizeError(e,t,n){let r=e.statusText,i=-1;try{let t=await e.json();if(t&&typeof t==`object`){let e=t;r=e.status_message||r,i=e.status_code||-1}}catch(e){console.error(`Unknown error: ${String(e)}`)}return this.logger?.log({type:`error`,method:n,endpoint:t,status:e.status,statusText:e.statusText,tmdbStatusCode:i,errorMessage:r}),new h(r,e.status,i)}async notifyErrorInterceptor(e){this.onErrorInterceptor&&await this.onErrorInterceptor(e)}async mutate(e,t,n,r={}){return this.execute(e,t,r,n)}async execute(e,t,n,r,i=!1){let a=r===void 0?void 0:JSON.stringify(r),o,s;if(i)o=t,s=n;else{let r=await this.runRequestInterceptors({endpoint:t,params:n,method:e});o=r.endpoint,s=r.params}let c=new URL(`${this.baseUrl}${o}`),l=b(this.accessToken);for(let[e,t]of this.serializeParams(s))c.searchParams.append(e,t);l||c.searchParams.append(`api_key`,this.accessToken);let u=Date.now();this.logger?.log({type:`request`,method:e,endpoint:o});let d=async()=>{this.rateLimiter&&await this.rateLimiter.acquire();let t;try{t=await fetch(c.toString(),{method:e,headers:l?{Authorization:`Bearer ${this.accessToken}`,"Content-Type":`application/json;charset=utf-8`}:{"Content-Type":`application/json;charset=utf-8`},...a===void 0?{}:{body:a}})}catch(t){throw this.logger?.log({type:`error`,method:e,endpoint:o,errorMessage:t instanceof Error?t.message:String(t),durationMs:Date.now()-u}),t}if(!t.ok)throw await this.normalizeError(t,o,e);return t},f;try{f=this.retryManager?await this.retryManager.execute(d):await d()}catch(e){throw e instanceof h&&await this.notifyErrorInterceptor(e),e}this.logger?.log({type:`response`,method:e,endpoint:o,status:f.status,statusText:f.statusText,durationMs:Date.now()-u});let p=await f.json(),m=this.sanitizeNulls(p),g=this.imageApi?this.imageOptions?.autocomplete_paths?this.imageApi.autocompleteImagePaths(m):this.imageApi.applyFallbacksOnly(m):m;if(this.onSuccessInterceptor){let e=await this.onSuccessInterceptor(g);return e===void 0?g:e}return g}};const C={AUTHENTICATION:{VALIDATE:`/authentication`,GUEST_SESSION:`/authentication/guest_session/new`,REQUEST_TOKEN:`/authentication/token/new`,CREATE_SESSION:`/authentication/session/new`,CREATE_SESSION_WITH_LOGIN:`/authentication/token/validate_with_login`,DELETE_SESSION:`/authentication/session`},ACCOUNT:{DETAILS:`/account`,ADD_FAVORITE:`/favorite`,ADD_TO_WATCHLIST:`/watchlist`,FAVORITE_MOVIES:`/favorite/movies`,FAVORITE_TV:`/favorite/tv`,WATCHLIST_MOVIES:`/watchlist/movies`,WATCHLIST_TV:`/watchlist/tv`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`,RATED_TV_EPISODES:`/rated/tv/episodes`,LISTS:`/lists`},CONFIGURATION:{DETAILS:`/configuration`,COUNTRIES:`/configuration/countries`,JOBS:`/configuration/jobs`,LANGUAGES:`/configuration/languages`,TIMEZONES:`/configuration/timezones`,PRIMARY_TRANSLATIONS:`/configuration/primary_translations`},CERTIFICATIONS:{MOVIE_CERTIFICATIONS:`/certification/movie/list`,TV_CERTIFICATIONS:`/certification/tv/list`},CHANGES:{MOVIE_LIST:`/movie/changes`,PEOPLE_LIST:`/person/changes`,TV_LIST:`/tv/changes`},DISCOVER:{MOVIE:`/discover/movie`,TV:`/discover/tv`},FIND:`/find`,CREDITS:{DETAILS:`/credit`},COMPANIES:{DETAILS:`/company`,ALTERNATIVE_NAMES:`/alternative_names`,IMAGES:`/images`},COLLECTIONS:{DETAILS:`/collection`,IMAGES:`/images`,TRANSLATIONS:`/translations`},GENRES:{MOVIE_LIST:`/genre/movie/list`,TV_LIST:`/genre/tv/list`},KEYWORDS:{DETAILS:`/keyword`,MOVIES:`/movies`},MOVIES:{DETAILS:`/movie`,ALTERNATIVE_TITLES:`/alternative_titles`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,KEYWORDS:`/keywords`,CHANGES:`/changes`,IMAGES:`/images`,LATEST:`/latest`,NOW_PLAYING:`/now_playing`,POPULAR:`/popular`,RECOMMENDATIONS:`/recommendations`,RELEASE_DATES:`/release_dates`,REVIEWS:`/reviews`,SIMILAR:`/similar`,TOP_RATED:`/top_rated`,TRANSLATIONS:`/translations`,UPCOMING:`/upcoming`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},NETWORKS:{DETAILS:`/network`,ALTERNATIVE_NAMES:`/alternative_names`,IMAGES:`/images`},PEOPLE:{DETAILS:`/person`,CHANGES:`/changes`,COMBINED_CREDITS:`/combined_credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,LATEST:`/latest`,MOVIE_CREDITS:`/movie_credits`,TAGGED_IMAGES:`/tagged_images`,TRANSLATIONS:`/translations`,TV_CREDITS:`/tv_credits`},SEARCH:{MOVIE:`/search/movie`,COLLECTION:`/search/collection`,COMPANY:`/search/company`,KEYWORD:`/search/keyword`,MULTI:`/search/multi`,PERSON:`/search/person`,TV:`/search/tv`},TV_SERIES:{DETAILS:`/tv`,AGGREGATE_CREDITS:`/aggregate_credits`,AIRING_TODAY:`/airing_today`,ALTERNATIVE_TITLES:`/alternative_titles`,CHANGES:`/changes`,CONTENT_RATINGS:`/content_ratings`,CREDITS:`/credits`,EPISODE_GROUPS:`/episode_groups`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,KEYWORDS:`/keywords`,LATEST:`/latest`,LISTS:`/lists`,ON_THE_AIR:`/on_the_air`,POPULAR:`/popular`,RECOMMENDATIONS:`/recommendations`,REVIEWS:`/reviews`,SCREENED_THEATRICALLY:`/screened_theatrically`,SIMILAR:`/similar`,TOP_RATED:`/top_rated`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},TV_SEASONS:{DETAILS:`/season`,AGGREGATE_CREDITS:`/aggregate_credits`,CHANGES:`/changes`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`,WATCH_PROVIDERS:`/watch/providers`},TV_EPISODES:{DETAILS:`/episode`,CHANGES:`/changes`,CREDITS:`/credits`,EXTERNAL_IDS:`/external_ids`,IMAGES:`/images`,TRANSLATIONS:`/translations`,VIDEOS:`/videos`},TV_EPISODE_GROUPS:{DETAILS:`/tv/episode_group`},WATCH_PROVIDERS:{MOVIE:`/watch/providers/movie`,TV:`/watch/providers/tv`,REGIONS:`/watch/providers/regions`},TRENDING:{ALL:`/trending/all`,MOVIE:`/trending/movie`,TV:`/trending/tv`,PERSON:`/trending/person`},REVIEWS:{DETAILS:`/review`},PEOPLE_LISTS:{POPULAR:`/person/popular`},LISTS:{DETAILS:`/list`,ADD_ITEM:`/add_item`,ITEM_STATUS:`/item_status`,CLEAR:`/clear`,REMOVE_ITEM:`/remove_item`},GUEST_SESSIONS:{DETAILS:`/guest_session`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`,RATED_TV_EPISODES:`/rated/tv/episodes`}},w={AUTH:{REQUEST_TOKEN:`/auth/request_token`,ACCESS_TOKEN:`/auth/access_token`},ACCOUNT:{DETAILS:`/account`,LISTS:`/lists`,FAVORITE_MOVIES:`/favorite/movies`,FAVORITE_TV:`/favorite/tv`,WATCHLIST_MOVIES:`/watchlist/movies`,WATCHLIST_TV:`/watchlist/tv`,RATED_MOVIES:`/rated/movies`,RATED_TV:`/rated/tv`},LISTS:{DETAILS:`/list`,ITEMS:`/items`,ITEM_STATUS:`/item_status`,CLEAR:`/clear`}};var T=class{client;defaultOptions;constructor(e,t={}){if(typeof e==`string`){if(!e)throw Error(x.NO_ACCESS_TOKEN);this.client=new S(e,{logger:t.logger,deduplication:t.deduplication,rate_limit:t.rate_limit,interceptors:t.interceptors})}else if(e instanceof S)this.client=e;else throw Error(e==null?x.NO_ACCESS_TOKEN:x.INVALID_CLIENT);this.defaultOptions=t}applyDefaults(e){let{language:t,region:n}=this.defaultOptions;return{...t!==void 0&&{language:t},...n!==void 0&&{region:n},...e}}withLanguage(e){let t=this.defaultOptions?.language;return e?e.language!==void 0||t===void 0?e:{...e,language:t}:t===void 0?void 0:{language:t}}injectImageLanguage(e){if(!this.defaultOptions.images?.auto_include_image_language||e.include_image_language!==void 0)return e;let t=this.defaultOptions.images?.image_language_priority;if(!t)return e;let n=[...new Set(Object.values(t).flat().filter(e=>e!==`*`))];return n.length?{...e,include_image_language:n}:e}},E=class extends T{async movie_certifications(){return this.client.request(C.CERTIFICATIONS.MOVIE_CERTIFICATIONS)}async tv_certifications(){return this.client.request(C.CERTIFICATIONS.TV_CERTIFICATIONS)}},D=class extends T{async movie_list(e){return this.client.request(C.CHANGES.MOVIE_LIST,e)}async people_list(e){return this.client.request(C.CHANGES.PEOPLE_LIST,e)}async tv_list(e){return this.client.request(C.CHANGES.TV_LIST,e)}},O=class extends T{companyPath(e){return`${C.COMPANIES.DETAILS}/${e}`}async details(e){let t=this.companyPath(e.company_id);return this.client.request(t)}async alternative_names(e){let t=`${this.companyPath(e.company_id)}${C.COMPANIES.ALTERNATIVE_NAMES}`;return this.client.request(t)}async images(e){let{company_id:t,...n}=e,r=`${this.companyPath(t)}${C.COMPANIES.IMAGES}`;return this.client.request(r,this.injectImageLanguage(this.withLanguage(n)??n))}},k=class extends T{creditPath(e){return`${C.CREDITS.DETAILS}/${e}`}async details(e){let{credit_id:t,...n}=e,r=this.creditPath(t);return this.client.request(r,this.withLanguage(n))}},A=class extends T{collectionPath(e){return`${C.COLLECTIONS.DETAILS}/${e}`}async details(e){let{language:t=this.defaultOptions.language,collection_id:n}=e,r=this.collectionPath(n);return this.client.request(r,{language:t})}async images(e){let{collection_id:t,...n}=e,r=`${this.collectionPath(t)}${C.COLLECTIONS.IMAGES}`;return this.client.request(r,this.injectImageLanguage(this.withLanguage(n)??n))}async translations(e){let t=`${this.collectionPath(e.collection_id)}${C.COLLECTIONS.TRANSLATIONS}`;return this.client.request(t)}},j=class extends T{async details(){return this.client.request(C.CONFIGURATION.DETAILS)}async countries(e){return this.client.request(C.CONFIGURATION.COUNTRIES,this.withLanguage(e))}async jobs(){return this.client.request(C.CONFIGURATION.JOBS)}async languages(){return this.client.request(C.CONFIGURATION.LANGUAGES)}async primary_translations(){return this.client.request(C.CONFIGURATION.PRIMARY_TRANSLATIONS)}async timezones(){return this.client.request(C.CONFIGURATION.TIMEZONES)}},M=class extends T{withMovieDefaults(e){if(!e&&!this.defaultOptions.language&&!this.defaultOptions.region)return;let t=e?.language??this.defaultOptions.language,n=e?.region??this.defaultOptions.region;return{...e,language:t,region:n}}withTVDefaults(e){if(!e&&!this.defaultOptions.language&&!this.defaultOptions.timezone)return;let t=e?.language??this.defaultOptions.language,n=e?.timezone??this.defaultOptions.timezone;return{...e,language:t,timezone:n}}async movie(e={}){return this.client.request(C.DISCOVER.MOVIE,this.withMovieDefaults(e))}async tv(e={}){return this.client.request(C.DISCOVER.TV,this.withTVDefaults(e))}},N=class extends T{async by_id(e){let{external_id:t,...n}=e,r=`${C.FIND}/${encodeURIComponent(t)}`,i=this.withLanguage(n);return this.client.request(r,i)}},P=class extends T{async movie_list(e){return this.client.request(C.GENRES.MOVIE_LIST,this.withLanguage(e))}async tv_list(e){return this.client.request(C.GENRES.TV_LIST,this.withLanguage(e))}},F=class extends T{keywordPath(e){return`${C.KEYWORDS.DETAILS}/${e}`}async details(e){let t=this.keywordPath(e.keyword_id);return this.client.request(t)}async movies(e){let{keyword_id:t,...n}=e,r=`${this.keywordPath(t)}${C.KEYWORDS.MOVIES}`,i=this.withLanguage(n);return this.client.request(r,i)}},I=class extends T{withDefaults(e){let{language:t=this.defaultOptions.language,region:n=this.defaultOptions.region,...r}=e;return{language:t,region:n,...r}}fetch_movie_list(e,t={}){return this.client.request(C.MOVIES.DETAILS+e,this.withDefaults(t))}async now_playing(e={}){return this.client.request(C.MOVIES.DETAILS+C.MOVIES.NOW_PLAYING,this.withDefaults(e))}async popular(e={}){return this.fetch_movie_list(C.MOVIES.POPULAR,e)}async top_rated(e={}){return this.fetch_movie_list(C.MOVIES.TOP_RATED,e)}async upcoming(e={}){return this.client.request(C.MOVIES.DETAILS+C.MOVIES.UPCOMING,this.withDefaults(e))}},L=class extends T{moviePath(e){return`${C.MOVIES.DETAILS}/${e}`}movieSubPath(e,t){return`${this.moviePath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,movie_id:n,append_to_response:r}=e,i=this.moviePath(n);return this.client.request(i,{language:t,append_to_response:r})}async alternative_titles(e){let{movie_id:t,...n}=e,r=this.movieSubPath(t,C.MOVIES.ALTERNATIVE_TITLES);return this.client.request(r,n)}async credits(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.CREDITS);return this.client.request(i,{language:n,...r})}async external_ids(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.EXTERNAL_IDS);return this.client.request(t)}async keywords(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.KEYWORDS);return this.client.request(t)}async changes(e){let{movie_id:t,...n}=e,r=this.movieSubPath(t,C.MOVIES.CHANGES);return this.client.request(r,n)}async images(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:n,...r}))}async latest(){let e=`${C.MOVIES.DETAILS}${C.MOVIES.LATEST}`;return this.client.request(e)}async recommendations(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.RECOMMENDATIONS);return this.client.request(i,{language:n,...r})}async release_dates(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.RELEASE_DATES);return this.client.request(t)}async reviews(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.REVIEWS);return this.client.request(i,{language:n,...r})}async similar(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.SIMILAR);return this.client.request(i,{language:n,...r})}async translations(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.TRANSLATIONS);return this.client.request(t)}async videos(e){let{movie_id:t,language:n=this.defaultOptions.language,...r}=e,i=this.movieSubPath(t,C.MOVIES.VIDEOS);return this.client.request(i,{language:n,...r})}async watch_providers(e){let t=this.movieSubPath(e.movie_id,C.MOVIES.WATCH_PROVIDERS);return this.client.request(t)}},R=class extends T{async collections(e){return this.client.request(C.SEARCH.COLLECTION,this.applyDefaults(e))}async movies(e){return this.client.request(C.SEARCH.MOVIE,this.applyDefaults(e))}async company(e){return this.client.request(C.SEARCH.COMPANY,this.applyDefaults(e))}async keyword(e){return this.client.request(C.SEARCH.KEYWORD,this.applyDefaults(e))}async person(e){return this.client.request(C.SEARCH.PERSON,this.applyDefaults(e))}async tv_series(e){return this.client.request(C.SEARCH.TV,this.applyDefaults(e))}async multi(e){return this.client.request(C.SEARCH.MULTI,this.applyDefaults(e))}},z=class extends T{seriesPath(e){return`${C.TV_SERIES.DETAILS}/${e}`}seriesSubPath(e,t){return`${this.seriesPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesPath(n);return this.client.request(i,{language:t,...r})}async aggregate_credits(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.AGGREGATE_CREDITS);return this.client.request(i,{language:t,...r})}async alternative_titles(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.ALTERNATIVE_TITLES);return this.client.request(t)}async changes(e){let{series_id:t,...n}=e,r=this.seriesSubPath(t,C.TV_SERIES.CHANGES);return this.client.request(r,{...n})}async content_ratings(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.CONTENT_RATINGS);return this.client.request(t)}async credits(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.CREDITS);return this.client.request(i,{language:t,...r})}async episode_groups(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.EPISODE_GROUPS);return this.client.request(t)}async external_ids(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,...r}))}async keywords(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.KEYWORDS);return this.client.request(t)}async latest(){let e=`${C.TV_SERIES.DETAILS}${C.TV_SERIES.LATEST}`;return this.client.request(e)}async lists(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.LISTS);return this.client.request(i,{language:t,...r})}async recommendations(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.RECOMMENDATIONS);return this.client.request(i,{language:t,...r})}async reviews(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.REVIEWS);return this.client.request(i,{language:t,...r})}async screened_theatrically(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.SCREENED_THEATRICALLY);return this.client.request(t)}async similar(e){let{language:t=this.defaultOptions.language,series_id:n,...r}=e,i=this.seriesSubPath(n,C.TV_SERIES.SIMILAR);return this.client.request(i,{language:t,...r})}async translations(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.TRANSLATIONS);return this.client.request(t)}async videos(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.VIDEOS);return this.client.request(t)}async watch_providers(e){let t=this.seriesSubPath(e.series_id,C.TV_SERIES.WATCH_PROVIDERS);return this.client.request(t)}},fe=class extends T{withDefaults(e){let{language:t=this.defaultOptions.language,timezone:n=this.defaultOptions.timezone,...r}=e;return{language:t,timezone:n,...r}}fetch_tv_series_list(e,t={}){return this.client.request(C.TV_SERIES.DETAILS+e,this.withDefaults(t))}async airing_today(e={}){return this.fetch_tv_series_list(C.TV_SERIES.AIRING_TODAY,e)}async on_the_air(e={}){return this.fetch_tv_series_list(C.TV_SERIES.ON_THE_AIR,e)}async popular(e={}){return this.fetch_tv_series_list(C.TV_SERIES.POPULAR,e)}async top_rated(e={}){return this.fetch_tv_series_list(C.TV_SERIES.TOP_RATED,e)}},B=class extends T{async movie_providers(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.MOVIE,n)}async tv_providers(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.TV,n)}async available_regions(e){let t=e?.language??this.defaultOptions.language,n=t===void 0?e:{...e,language:t};return this.client.request(C.WATCH_PROVIDERS.REGIONS,n)}},V=class extends T{networkPath(e){return`${C.NETWORKS.DETAILS}/${e}`}async details(e){let t=this.networkPath(e.network_id);return this.client.request(t)}async alternative_names(e){let t=`${this.networkPath(e.network_id)}${C.NETWORKS.ALTERNATIVE_NAMES}`;return this.client.request(t)}async images(e){let t=`${this.networkPath(e.network_id)}${C.NETWORKS.IMAGES}`;return this.client.request(t)}},H=class extends T{episodePath(e){return`${C.TV_SERIES.DETAILS}/${e.series_id}${C.TV_SEASONS.DETAILS}/${e.season_number}${C.TV_EPISODES.DETAILS}/${e.episode_number}`}episodeSubPath(e,t){return`${this.episodePath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,append_to_response:n,...r}=e,i=this.episodePath(r);return this.client.request(i,{language:t,append_to_response:n})}async changes(e){let{episode_id:t,...n}=e,r=`${C.TV_SERIES.DETAILS}${C.TV_EPISODES.DETAILS}/${t}${C.TV_EPISODES.CHANGES}`;return this.client.request(r,{...n})}async credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.episodeSubPath(n,C.TV_EPISODES.CREDITS);return this.client.request(r,{language:t})}async external_ids(e){let t=this.episodeSubPath(e,C.TV_EPISODES.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,include_image_language:n,...r}=e,i=this.episodeSubPath(r,C.TV_EPISODES.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,include_image_language:n}))}async translations(e){let t=this.episodeSubPath(e,C.TV_EPISODES.TRANSLATIONS);return this.client.request(t)}async videos(e){let t=this.episodeSubPath(e,C.TV_EPISODES.VIDEOS);return this.client.request(t)}},U=class extends T{async details(e){let t=`${C.TV_EPISODE_GROUPS.DETAILS}/${e.episode_group_id}`;return this.client.request(t)}},W=class extends T{seasonPath(e){return`${C.TV_SERIES.DETAILS}/${e.series_id}${C.TV_SEASONS.DETAILS}/${e.season_number}`}seasonSubPath(e,t){return`${this.seasonPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,append_to_response:n,...r}=e,i=this.seasonPath(r);return this.client.request(i,{language:t,append_to_response:n})}async aggregate_credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.AGGREGATE_CREDITS);return this.client.request(r,{language:t})}async changes(e){let{season_id:t,...n}=e,r=`${C.TV_SERIES.DETAILS}${C.TV_SEASONS.DETAILS}/${t}${C.TV_SEASONS.CHANGES}`;return this.client.request(r,{...n})}async credits(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.CREDITS);return this.client.request(r,{language:t})}async external_ids(e){let t=this.seasonSubPath(e,C.TV_SEASONS.EXTERNAL_IDS);return this.client.request(t)}async images(e){let{language:t=this.defaultOptions.language,include_image_language:n,...r}=e,i=this.seasonSubPath(r,C.TV_SEASONS.IMAGES);return this.client.request(i,this.injectImageLanguage({language:t,include_image_language:n}))}async translations(e){let t=this.seasonSubPath(e,C.TV_SEASONS.TRANSLATIONS);return this.client.request(t)}async videos(e){let{language:t=this.defaultOptions.language,include_video_language:n,...r}=e,i=this.seasonSubPath(r,C.TV_SEASONS.VIDEOS);return this.client.request(i,{language:t,include_video_language:n})}async watch_providers(e){let{language:t=this.defaultOptions.language,...n}=e,r=this.seasonSubPath(n,C.TV_SEASONS.WATCH_PROVIDERS);return this.client.request(r,{language:t})}},G=class extends T{async all(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.ALL}/${t}`,{language:n,...r})}async movies(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.MOVIE}/${t}`,{language:n,...r})}async tv(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.TV}/${t}`,{language:n,...r})}async people(e){let{time_window:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(`${C.TRENDING.PERSON}/${t}`,{language:n,...r})}},K=class extends T{async details(e){return this.client.request(`${C.REVIEWS.DETAILS}/${e.review_id}`)}},q=class extends T{async popular(e={}){return this.client.request(C.PEOPLE_LISTS.POPULAR,this.withLanguage(e))}},J=class extends T{personPath(e){return`${C.PEOPLE.DETAILS}/${e}`}personSubPath(e,t){return`${this.personPath(e)}${t}`}async details(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personPath(n),{language:t,...r})}async changes(e){let{person_id:t,...n}=e;return this.client.request(this.personSubPath(t,C.PEOPLE.CHANGES),n)}async combined_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.COMBINED_CREDITS),{language:t,...r})}async external_ids(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.EXTERNAL_IDS))}async images(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.IMAGES))}async latest(){return this.client.request(`${C.PEOPLE.DETAILS}${C.PEOPLE.LATEST}`)}async movie_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.MOVIE_CREDITS),{language:t,...r})}async tagged_images(e){let{person_id:t,...n}=e;return this.client.request(this.personSubPath(t,C.PEOPLE.TAGGED_IMAGES),n)}async translations(e){return this.client.request(this.personSubPath(e.person_id,C.PEOPLE.TRANSLATIONS))}async tv_credits(e){let{language:t=this.defaultOptions.language,person_id:n,...r}=e;return this.client.request(this.personSubPath(n,C.PEOPLE.TV_CREDITS),{language:t,...r})}},Y=class extends T{accountPath(e){return`${C.ACCOUNT.DETAILS}/${e}`}accountSubPath(e,t){return`${this.accountPath(e)}${t}`}async details(e){let{account_id:t,...n}=e;return this.client.request(this.accountPath(t),n)}async add_favorite(e,t){let{account_id:n,...r}=e;return this.client.mutate(`POST`,this.accountSubPath(n,C.ACCOUNT.ADD_FAVORITE),t,r)}async add_to_watchlist(e,t){let{account_id:n,...r}=e;return this.client.mutate(`POST`,this.accountSubPath(n,C.ACCOUNT.ADD_TO_WATCHLIST),t,r)}async favorite_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.FAVORITE_MOVIES),{language:n,...r})}async favorite_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.FAVORITE_TV),{language:n,...r})}async watchlist_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.WATCHLIST_MOVIES),{language:n,...r})}async watchlist_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.WATCHLIST_TV),{language:n,...r})}async rated_movies(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_MOVIES),{language:n,...r})}async rated_tv(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_TV),{language:n,...r})}async rated_tv_episodes(e){let{account_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.RATED_TV_EPISODES),{language:n,...r})}async lists(e){let{account_id:t,...n}=e;return this.client.request(this.accountSubPath(t,C.ACCOUNT.LISTS),n)}},X=class extends T{async validate_key(){return this.client.request(C.AUTHENTICATION.VALIDATE)}async create_guest_session(){return this.client.request(C.AUTHENTICATION.GUEST_SESSION)}async create_request_token(){return this.client.request(C.AUTHENTICATION.REQUEST_TOKEN)}async create_session(e){return this.client.mutate(`POST`,C.AUTHENTICATION.CREATE_SESSION,e)}async create_session_with_login(e){return this.client.mutate(`POST`,C.AUTHENTICATION.CREATE_SESSION_WITH_LOGIN,e)}async delete_session(e){return this.client.mutate(`DELETE`,C.AUTHENTICATION.DELETE_SESSION,e)}},Z=class extends T{guestSessionPath(e){return`${C.GUEST_SESSIONS.DETAILS}/${e}`}guestSessionSubPath(e,t){return`${this.guestSessionPath(e)}${t}`}async rated_movies(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_MOVIES),{language:n,...r})}async rated_tv(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_TV),{language:n,...r})}async rated_tv_episodes(e){let{guest_session_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.guestSessionSubPath(t,C.GUEST_SESSIONS.RATED_TV_EPISODES),{language:n,...r})}},Q=class extends T{listPath(e){return`${C.LISTS.DETAILS}/${e}`}listSubPath(e,t){return`${this.listPath(e)}${t}`}async details(e){let{list_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.listPath(t),{language:n,...r})}async create(e,t){return this.client.mutate(`POST`,C.LISTS.DETAILS,t,e)}async delete(e){let{list_id:t,...n}=e;return this.client.mutate(`DELETE`,this.listPath(t),void 0,n)}async add_movie(e,t){let{list_id:n,...r}=e;return this.client.mutate(`POST`,this.listSubPath(n,C.LISTS.ADD_ITEM),t,r)}async remove_movie(e,t){let{list_id:n,...r}=e;return this.client.mutate(`POST`,this.listSubPath(n,C.LISTS.REMOVE_ITEM),t,r)}async check_item_status(e){let{list_id:t,language:n=this.defaultOptions.language,...r}=e;return this.client.request(this.listSubPath(t,C.LISTS.ITEM_STATUS),{language:n,...r})}async clear(e){let{list_id:t,...n}=e;return this.client.mutate(`POST`,this.listSubPath(t,C.LISTS.CLEAR),void 0,n)}},pe=class extends T{async create_request_token(e){return this.client.mutate(`POST`,w.AUTH.REQUEST_TOKEN,e??{})}async create_access_token(e){return this.client.mutate(`POST`,w.AUTH.ACCESS_TOKEN,e)}async delete_access_token(e){return this.client.mutate(`DELETE`,w.AUTH.ACCESS_TOKEN,e)}},me=class extends T{},he=class extends T{listPath(e){return`${w.LISTS.DETAILS}/${e}`}async create(e){return this.client.mutate(`POST`,w.LISTS.DETAILS,e)}async details({list_id:e,...t}){return this.client.request(this.listPath(e),this.withLanguage(t))}async update({list_id:e,...t}){return this.client.mutate(`PUT`,this.listPath(e),t)}async delete({list_id:e}){return this.client.mutate(`DELETE`,this.listPath(e),{})}async add_items(e,t){return this.client.mutate(`POST`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async update_items(e,t){return this.client.mutate(`PUT`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async remove_items(e,t){return this.client.mutate(`DELETE`,`${this.listPath(e)}${w.LISTS.ITEMS}`,t)}async item_status({list_id:e,...t}){return this.client.request(`${this.listPath(e)}${w.LISTS.ITEM_STATUS}`,t)}async clear(e){return this.client.mutate(`GET`,`${this.listPath(e)}${w.LISTS.CLEAR}`)}},$=class{client;auth;account;lists;constructor(e,t={}){if(!e)throw Error(x.NO_ACCESS_TOKEN);this.client=new S(e,{...t,version:4}),this.auth=new pe(this.client,t),this.account=new me(this.client,t),this.lists=new he(this.client,t)}},ge=class{client;accessToken;options;movies;movie_lists;search;images;configuration;genres;keywords;tv_lists;tv_series;watch_providers;certifications;changes;companies;credits;collections;discover;find;networks;tv_episodes;tv_episode_groups;tv_seasons;trending;reviews;people_lists;people;account;authentication;guest_sessions;lists;get v4(){if(!b(this.accessToken))throw Error(x.V4_REQUIRES_JWT);return this._v4||=new $(this.accessToken,this.options),this._v4}_v4;get cache(){if(!this.options.cache)return;let e=this.client;return{clear(){e.clearCache()},invalidate(t,n){return e.invalidateCache(t,n)},get size(){return e.cacheSize}}}constructor(e,t={}){if(!e)throw Error(x.NO_ACCESS_TOKEN);this.accessToken=e,this.options=t,this.client=new S(e,{logger:t.logger,deduplication:t.deduplication,images:t.images,rate_limit:t.rate_limit,retry:t.retry,cache:t.cache,interceptors:t.interceptors}),this.movies=new L(this.client,this.options),this.movie_lists=new I(this.client,this.options),this.search=new R(this.client,this.options),this.images=new p(this.options.images),this.configuration=new j(this.client,this.options),this.genres=new P(this.client,this.options),this.keywords=new F(this.client,this.options),this.tv_lists=new fe(this.client,this.options),this.tv_series=new z(this.client,this.options),this.watch_providers=new B(this.client,this.options),this.certifications=new E(this.client,this.options),this.changes=new D(this.client,this.options),this.companies=new O(this.client,this.options),this.credits=new k(this.client,this.options),this.collections=new A(this.client,this.options),this.discover=new M(this.client,this.options),this.find=new N(this.client,this.options),this.networks=new V(this.client,this.options),this.tv_episodes=new H(this.client,this.options),this.tv_episode_groups=new U(this.client,this.options),this.tv_seasons=new W(this.client,this.options),this.trending=new G(this.client,this.options),this.reviews=new K(this.client,this.options),this.people_lists=new q(this.client,this.options),this.people=new J(this.client,this.options),this.account=new Y(this.client,this.options),this.authentication=new X(this.client,this.options),this.guest_sessions=new Z(this.client,this.options),this.lists=new Q(this.client,this.options)}};const _e={Premiere:1,TheatricalLimited:2,Theatrical:3,Digital:4,Physical:5,TV:6},ve={1:`Premiere`,2:`Theatrical (Limited)`,3:`Theatrical`,4:`Digital`,5:`Physical`,6:`TV`},ye={ReturningSeries:0,Planned:1,InProduction:2,Ended:3,Canceled:4,Pilot:5},be={0:`Returning Series`,1:`Planned`,2:`In Production`,3:`Ended`,4:`Canceled`,5:`Pilot`},xe={Documentary:0,News:1,Miniseries:2,Reality:3,Scripted:4,TalkShow:5,Video:6},Se={0:`Documentary`,1:`News`,2:`Miniseries`,3:`Reality`,4:`Scripted`,5:`Talk Show`,6:`Video`},Ce={OriginalAirDate:1,Absolute:2,Dvd:3,Digital:4,StoryArc:5,Production:6,TV:7},we={1:`Original Air Date`,2:`Absolute`,3:`DVD`,4:`Digital`,5:`Story Arc`,6:`Production`,7:`TV`},Te=[{iso_3166_1:`AD`,english_name:`Andorra`,native_name:`Andorra`},{iso_3166_1:`AE`,english_name:`United Arab Emirates`,native_name:`United Arab Emirates`},{iso_3166_1:`AF`,english_name:`Afghanistan`,native_name:`Afghanistan`},{iso_3166_1:`AG`,english_name:`Antigua and Barbuda`,native_name:`Antigua & Barbuda`},{iso_3166_1:`AI`,english_name:`Anguilla`,native_name:`Anguilla`},{iso_3166_1:`AL`,english_name:`Albania`,native_name:`Albania`},{iso_3166_1:`AM`,english_name:`Armenia`,native_name:`Armenia`},{iso_3166_1:`AN`,english_name:`Netherlands Antilles`,native_name:`Netherlands Antilles`},{iso_3166_1:`AO`,english_name:`Angola`,native_name:`Angola`},{iso_3166_1:`AQ`,english_name:`Antarctica`,native_name:`Antarctica`},{iso_3166_1:`AR`,english_name:`Argentina`,native_name:`Argentina`},{iso_3166_1:`AS`,english_name:`American Samoa`,native_name:`American Samoa`},{iso_3166_1:`AT`,english_name:`Austria`,native_name:`Austria`},{iso_3166_1:`AU`,english_name:`Australia`,native_name:`Australia`},{iso_3166_1:`AW`,english_name:`Aruba`,native_name:`Aruba`},{iso_3166_1:`AZ`,english_name:`Azerbaijan`,native_name:`Azerbaijan`},{iso_3166_1:`BA`,english_name:`Bosnia and Herzegovina`,native_name:`Bosnia & Herzegovina`},{iso_3166_1:`BB`,english_name:`Barbados`,native_name:`Barbados`},{iso_3166_1:`BD`,english_name:`Bangladesh`,native_name:`Bangladesh`},{iso_3166_1:`BE`,english_name:`Belgium`,native_name:`Belgium`},{iso_3166_1:`BF`,english_name:`Burkina Faso`,native_name:`Burkina Faso`},{iso_3166_1:`BG`,english_name:`Bulgaria`,native_name:`Bulgaria`},{iso_3166_1:`BH`,english_name:`Bahrain`,native_name:`Bahrain`},{iso_3166_1:`BI`,english_name:`Burundi`,native_name:`Burundi`},{iso_3166_1:`BJ`,english_name:`Benin`,native_name:`Benin`},{iso_3166_1:`BM`,english_name:`Bermuda`,native_name:`Bermuda`},{iso_3166_1:`BN`,english_name:`Brunei Darussalam`,native_name:`Brunei`},{iso_3166_1:`BO`,english_name:`Bolivia`,native_name:`Bolivia`},{iso_3166_1:`BR`,english_name:`Brazil`,native_name:`Brazil`},{iso_3166_1:`BS`,english_name:`Bahamas`,native_name:`Bahamas`},{iso_3166_1:`BT`,english_name:`Bhutan`,native_name:`Bhutan`},{iso_3166_1:`BU`,english_name:`Burma`,native_name:`Burma`},{iso_3166_1:`BV`,english_name:`Bouvet Island`,native_name:`Bouvet Island`},{iso_3166_1:`BW`,english_name:`Botswana`,native_name:`Botswana`},{iso_3166_1:`BY`,english_name:`Belarus`,native_name:`Belarus`},{iso_3166_1:`BZ`,english_name:`Belize`,native_name:`Belize`},{iso_3166_1:`CA`,english_name:`Canada`,native_name:`Canada`},{iso_3166_1:`CC`,english_name:`Cocos Islands`,native_name:`Cocos (Keeling) Islands`},{iso_3166_1:`CD`,english_name:`Congo`,native_name:`Democratic Republic of the Congo (Kinshasa)`},{iso_3166_1:`CF`,english_name:`Central African Republic`,native_name:`Central African Republic`},{iso_3166_1:`CG`,english_name:`Congo`,native_name:`Republic of the Congo (Brazzaville)`},{iso_3166_1:`CH`,english_name:`Switzerland`,native_name:`Switzerland`},{iso_3166_1:`CI`,english_name:`Cote D'Ivoire`,native_name:`Côte d’Ivoire`},{iso_3166_1:`CK`,english_name:`Cook Islands`,native_name:`Cook Islands`},{iso_3166_1:`CL`,english_name:`Chile`,native_name:`Chile`},{iso_3166_1:`CM`,english_name:`Cameroon`,native_name:`Cameroon`},{iso_3166_1:`CN`,english_name:`China`,native_name:`China`},{iso_3166_1:`CO`,english_name:`Colombia`,native_name:`Colombia`},{iso_3166_1:`CR`,english_name:`Costa Rica`,native_name:`Costa Rica`},{iso_3166_1:`CS`,english_name:`Serbia and Montenegro`,native_name:`Serbia and Montenegro`},{iso_3166_1:`CU`,english_name:`Cuba`,native_name:`Cuba`},{iso_3166_1:`CV`,english_name:`Cape Verde`,native_name:`Cape Verde`},{iso_3166_1:`CX`,english_name:`Christmas Island`,native_name:`Christmas Island`},{iso_3166_1:`CY`,english_name:`Cyprus`,native_name:`Cyprus`},{iso_3166_1:`CZ`,english_name:`Czech Republic`,native_name:`Czech Republic`},{iso_3166_1:`DE`,english_name:`Germany`,native_name:`Germany`},{iso_3166_1:`DJ`,english_name:`Djibouti`,native_name:`Djibouti`},{iso_3166_1:`DK`,english_name:`Denmark`,native_name:`Denmark`},{iso_3166_1:`DM`,english_name:`Dominica`,native_name:`Dominica`},{iso_3166_1:`DO`,english_name:`Dominican Republic`,native_name:`Dominican Republic`},{iso_3166_1:`DZ`,english_name:`Algeria`,native_name:`Algeria`},{iso_3166_1:`EC`,english_name:`Ecuador`,native_name:`Ecuador`},{iso_3166_1:`EE`,english_name:`Estonia`,native_name:`Estonia`},{iso_3166_1:`EG`,english_name:`Egypt`,native_name:`Egypt`},{iso_3166_1:`EH`,english_name:`Western Sahara`,native_name:`Western Sahara`},{iso_3166_1:`ER`,english_name:`Eritrea`,native_name:`Eritrea`},{iso_3166_1:`ES`,english_name:`Spain`,native_name:`Spain`},{iso_3166_1:`ET`,english_name:`Ethiopia`,native_name:`Ethiopia`},{iso_3166_1:`FI`,english_name:`Finland`,native_name:`Finland`},{iso_3166_1:`FJ`,english_name:`Fiji`,native_name:`Fiji`},{iso_3166_1:`FK`,english_name:`Falkland Islands`,native_name:`Falkland Islands`},{iso_3166_1:`FM`,english_name:`Micronesia`,native_name:`Micronesia`},{iso_3166_1:`FO`,english_name:`Faeroe Islands`,native_name:`Faroe Islands`},{iso_3166_1:`FR`,english_name:`France`,native_name:`France`},{iso_3166_1:`GA`,english_name:`Gabon`,native_name:`Gabon`},{iso_3166_1:`GB`,english_name:`United Kingdom`,native_name:`United Kingdom`},{iso_3166_1:`GD`,english_name:`Grenada`,native_name:`Grenada`},{iso_3166_1:`GE`,english_name:`Georgia`,native_name:`Georgia`},{iso_3166_1:`GF`,english_name:`French Guiana`,native_name:`French Guiana`},{iso_3166_1:`GH`,english_name:`Ghana`,native_name:`Ghana`},{iso_3166_1:`GI`,english_name:`Gibraltar`,native_name:`Gibraltar`},{iso_3166_1:`GL`,english_name:`Greenland`,native_name:`Greenland`},{iso_3166_1:`GM`,english_name:`Gambia`,native_name:`Gambia`},{iso_3166_1:`GN`,english_name:`Guinea`,native_name:`Guinea`},{iso_3166_1:`GP`,english_name:`Guadaloupe`,native_name:`Guadeloupe`},{iso_3166_1:`GQ`,english_name:`Equatorial Guinea`,native_name:`Equatorial Guinea`},{iso_3166_1:`GR`,english_name:`Greece`,native_name:`Greece`},{iso_3166_1:`GS`,english_name:`South Georgia and the South Sandwich Islands`,native_name:`South Georgia & South Sandwich Islands`},{iso_3166_1:`GT`,english_name:`Guatemala`,native_name:`Guatemala`},{iso_3166_1:`GU`,english_name:`Guam`,native_name:`Guam`},{iso_3166_1:`GW`,english_name:`Guinea-Bissau`,native_name:`Guinea-Bissau`},{iso_3166_1:`GY`,english_name:`Guyana`,native_name:`Guyana`},{iso_3166_1:`HK`,english_name:`Hong Kong`,native_name:`Hong Kong SAR China`},{iso_3166_1:`HM`,english_name:`Heard and McDonald Islands`,native_name:`Heard & McDonald Islands`},{iso_3166_1:`HN`,english_name:`Honduras`,native_name:`Honduras`},{iso_3166_1:`HR`,english_name:`Croatia`,native_name:`Croatia`},{iso_3166_1:`HT`,english_name:`Haiti`,native_name:`Haiti`},{iso_3166_1:`HU`,english_name:`Hungary`,native_name:`Hungary`},{iso_3166_1:`ID`,english_name:`Indonesia`,native_name:`Indonesia`},{iso_3166_1:`IE`,english_name:`Ireland`,native_name:`Ireland`},{iso_3166_1:`IL`,english_name:`Israel`,native_name:`Israel`},{iso_3166_1:`IN`,english_name:`India`,native_name:`India`},{iso_3166_1:`IO`,english_name:`British Indian Ocean Territory`,native_name:`British Indian Ocean Territory`},{iso_3166_1:`IQ`,english_name:`Iraq`,native_name:`Iraq`},{iso_3166_1:`IR`,english_name:`Iran`,native_name:`Iran`},{iso_3166_1:`IS`,english_name:`Iceland`,native_name:`Iceland`},{iso_3166_1:`IT`,english_name:`Italy`,native_name:`Italy`},{iso_3166_1:`JM`,english_name:`Jamaica`,native_name:`Jamaica`},{iso_3166_1:`JO`,english_name:`Jordan`,native_name:`Jordan`},{iso_3166_1:`JP`,english_name:`Japan`,native_name:`Japan`},{iso_3166_1:`KE`,english_name:`Kenya`,native_name:`Kenya`},{iso_3166_1:`KG`,english_name:`Kyrgyz Republic`,native_name:`Kyrgyzstan`},{iso_3166_1:`KH`,english_name:`Cambodia`,native_name:`Cambodia`},{iso_3166_1:`KI`,english_name:`Kiribati`,native_name:`Kiribati`},{iso_3166_1:`KM`,english_name:`Comoros`,native_name:`Comoros`},{iso_3166_1:`KN`,english_name:`St. Kitts and Nevis`,native_name:`St. Kitts & Nevis`},{iso_3166_1:`KP`,english_name:`North Korea`,native_name:`North Korea`},{iso_3166_1:`KR`,english_name:`South Korea`,native_name:`South Korea`},{iso_3166_1:`KW`,english_name:`Kuwait`,native_name:`Kuwait`},{iso_3166_1:`KY`,english_name:`Cayman Islands`,native_name:`Cayman Islands`},{iso_3166_1:`KZ`,english_name:`Kazakhstan`,native_name:`Kazakhstan`},{iso_3166_1:`LA`,english_name:`Lao People's Democratic Republic`,native_name:`Laos`},{iso_3166_1:`LB`,english_name:`Lebanon`,native_name:`Lebanon`},{iso_3166_1:`LC`,english_name:`St. Lucia`,native_name:`St. Lucia`},{iso_3166_1:`LI`,english_name:`Liechtenstein`,native_name:`Liechtenstein`},{iso_3166_1:`LK`,english_name:`Sri Lanka`,native_name:`Sri Lanka`},{iso_3166_1:`LR`,english_name:`Liberia`,native_name:`Liberia`},{iso_3166_1:`LS`,english_name:`Lesotho`,native_name:`Lesotho`},{iso_3166_1:`LT`,english_name:`Lithuania`,native_name:`Lithuania`},{iso_3166_1:`LU`,english_name:`Luxembourg`,native_name:`Luxembourg`},{iso_3166_1:`LV`,english_name:`Latvia`,native_name:`Latvia`},{iso_3166_1:`LY`,english_name:`Libyan Arab Jamahiriya`,native_name:`Libya`},{iso_3166_1:`MA`,english_name:`Morocco`,native_name:`Morocco`},{iso_3166_1:`MC`,english_name:`Monaco`,native_name:`Monaco`},{iso_3166_1:`MD`,english_name:`Moldova`,native_name:`Moldova`},{iso_3166_1:`ME`,english_name:`Montenegro`,native_name:`Montenegro`},{iso_3166_1:`MG`,english_name:`Madagascar`,native_name:`Madagascar`},{iso_3166_1:`MH`,english_name:`Marshall Islands`,native_name:`Marshall Islands`},{iso_3166_1:`MK`,english_name:`Macedonia`,native_name:`Macedonia`},{iso_3166_1:`ML`,english_name:`Mali`,native_name:`Mali`},{iso_3166_1:`MM`,english_name:`Myanmar`,native_name:`Myanmar (Burma)`},{iso_3166_1:`MN`,english_name:`Mongolia`,native_name:`Mongolia`},{iso_3166_1:`MO`,english_name:`Macao`,native_name:`Macau SAR China`},{iso_3166_1:`MP`,english_name:`Northern Mariana Islands`,native_name:`Northern Mariana Islands`},{iso_3166_1:`MQ`,english_name:`Martinique`,native_name:`Martinique`},{iso_3166_1:`MR`,english_name:`Mauritania`,native_name:`Mauritania`},{iso_3166_1:`MS`,english_name:`Montserrat`,native_name:`Montserrat`},{iso_3166_1:`MT`,english_name:`Malta`,native_name:`Malta`},{iso_3166_1:`MU`,english_name:`Mauritius`,native_name:`Mauritius`},{iso_3166_1:`MV`,english_name:`Maldives`,native_name:`Maldives`},{iso_3166_1:`MW`,english_name:`Malawi`,native_name:`Malawi`},{iso_3166_1:`MX`,english_name:`Mexico`,native_name:`Mexico`},{iso_3166_1:`MY`,english_name:`Malaysia`,native_name:`Malaysia`},{iso_3166_1:`MZ`,english_name:`Mozambique`,native_name:`Mozambique`},{iso_3166_1:`NA`,english_name:`Namibia`,native_name:`Namibia`},{iso_3166_1:`NC`,english_name:`New Caledonia`,native_name:`New Caledonia`},{iso_3166_1:`NE`,english_name:`Niger`,native_name:`Niger`},{iso_3166_1:`NF`,english_name:`Norfolk Island`,native_name:`Norfolk Island`},{iso_3166_1:`NG`,english_name:`Nigeria`,native_name:`Nigeria`},{iso_3166_1:`NI`,english_name:`Nicaragua`,native_name:`Nicaragua`},{iso_3166_1:`NL`,english_name:`Netherlands`,native_name:`Netherlands`},{iso_3166_1:`NO`,english_name:`Norway`,native_name:`Norway`},{iso_3166_1:`NP`,english_name:`Nepal`,native_name:`Nepal`},{iso_3166_1:`NR`,english_name:`Nauru`,native_name:`Nauru`},{iso_3166_1:`NU`,english_name:`Niue`,native_name:`Niue`},{iso_3166_1:`NZ`,english_name:`New Zealand`,native_name:`New Zealand`},{iso_3166_1:`OM`,english_name:`Oman`,native_name:`Oman`},{iso_3166_1:`PA`,english_name:`Panama`,native_name:`Panama`},{iso_3166_1:`PE`,english_name:`Peru`,native_name:`Peru`},{iso_3166_1:`PF`,english_name:`French Polynesia`,native_name:`French Polynesia`},{iso_3166_1:`PG`,english_name:`Papua New Guinea`,native_name:`Papua New Guinea`},{iso_3166_1:`PH`,english_name:`Philippines`,native_name:`Philippines`},{iso_3166_1:`PK`,english_name:`Pakistan`,native_name:`Pakistan`},{iso_3166_1:`PL`,english_name:`Poland`,native_name:`Poland`},{iso_3166_1:`PM`,english_name:`St. Pierre and Miquelon`,native_name:`St. Pierre & Miquelon`},{iso_3166_1:`PN`,english_name:`Pitcairn Island`,native_name:`Pitcairn Islands`},{iso_3166_1:`PR`,english_name:`Puerto Rico`,native_name:`Puerto Rico`},{iso_3166_1:`PS`,english_name:`Palestinian Territory`,native_name:`Palestinian Territories`},{iso_3166_1:`PT`,english_name:`Portugal`,native_name:`Portugal`},{iso_3166_1:`PW`,english_name:`Palau`,native_name:`Palau`},{iso_3166_1:`PY`,english_name:`Paraguay`,native_name:`Paraguay`},{iso_3166_1:`QA`,english_name:`Qatar`,native_name:`Qatar`},{iso_3166_1:`RE`,english_name:`Reunion`,native_name:`Réunion`},{iso_3166_1:`RO`,english_name:`Romania`,native_name:`Romania`},{iso_3166_1:`RS`,english_name:`Serbia`,native_name:`Serbia`},{iso_3166_1:`RU`,english_name:`Russia`,native_name:`Russia`},{iso_3166_1:`RW`,english_name:`Rwanda`,native_name:`Rwanda`},{iso_3166_1:`SA`,english_name:`Saudi Arabia`,native_name:`Saudi Arabia`},{iso_3166_1:`SB`,english_name:`Solomon Islands`,native_name:`Solomon Islands`},{iso_3166_1:`SC`,english_name:`Seychelles`,native_name:`Seychelles`},{iso_3166_1:`SD`,english_name:`Sudan`,native_name:`Sudan`},{iso_3166_1:`SE`,english_name:`Sweden`,native_name:`Sweden`},{iso_3166_1:`SG`,english_name:`Singapore`,native_name:`Singapore`},{iso_3166_1:`SH`,english_name:`St. Helena`,native_name:`St. Helena`},{iso_3166_1:`SI`,english_name:`Slovenia`,native_name:`Slovenia`},{iso_3166_1:`SJ`,english_name:`Svalbard & Jan Mayen Islands`,native_name:`Svalbard & Jan Mayen`},{iso_3166_1:`SK`,english_name:`Slovakia`,native_name:`Slovakia`},{iso_3166_1:`SL`,english_name:`Sierra Leone`,native_name:`Sierra Leone`},{iso_3166_1:`SM`,english_name:`San Marino`,native_name:`San Marino`},{iso_3166_1:`SN`,english_name:`Senegal`,native_name:`Senegal`},{iso_3166_1:`SO`,english_name:`Somalia`,native_name:`Somalia`},{iso_3166_1:`SR`,english_name:`Suriname`,native_name:`Suriname`},{iso_3166_1:`SS`,english_name:`South Sudan`,native_name:`South Sudan`},{iso_3166_1:`ST`,english_name:`Sao Tome and Principe`,native_name:`São Tomé & Príncipe`},{iso_3166_1:`SU`,english_name:`Soviet Union`,native_name:`Soviet Union`},{iso_3166_1:`SV`,english_name:`El Salvador`,native_name:`El Salvador`},{iso_3166_1:`SY`,english_name:`Syrian Arab Republic`,native_name:`Syria`},{iso_3166_1:`SZ`,english_name:`Swaziland`,native_name:`Eswatini (Swaziland)`},{iso_3166_1:`TC`,english_name:`Turks and Caicos Islands`,native_name:`Turks & Caicos Islands`},{iso_3166_1:`TD`,english_name:`Chad`,native_name:`Chad`},{iso_3166_1:`TF`,english_name:`French Southern Territories`,native_name:`French Southern Territories`},{iso_3166_1:`TG`,english_name:`Togo`,native_name:`Togo`},{iso_3166_1:`TH`,english_name:`Thailand`,native_name:`Thailand`},{iso_3166_1:`TJ`,english_name:`Tajikistan`,native_name:`Tajikistan`},{iso_3166_1:`TK`,english_name:`Tokelau`,native_name:`Tokelau`},{iso_3166_1:`TL`,english_name:`Timor-Leste`,native_name:`Timor-Leste`},{iso_3166_1:`TM`,english_name:`Turkmenistan`,native_name:`Turkmenistan`},{iso_3166_1:`TN`,english_name:`Tunisia`,native_name:`Tunisia`},{iso_3166_1:`TO`,english_name:`Tonga`,native_name:`Tonga`},{iso_3166_1:`TP`,english_name:`East Timor`,native_name:`East Timor`},{iso_3166_1:`TR`,english_name:`Turkey`,native_name:`Turkey`},{iso_3166_1:`TT`,english_name:`Trinidad and Tobago`,native_name:`Trinidad & Tobago`},{iso_3166_1:`TV`,english_name:`Tuvalu`,native_name:`Tuvalu`},{iso_3166_1:`TW`,english_name:`Taiwan`,native_name:`Taiwan`},{iso_3166_1:`TZ`,english_name:`Tanzania`,native_name:`Tanzania`},{iso_3166_1:`UA`,english_name:`Ukraine`,native_name:`Ukraine`},{iso_3166_1:`UG`,english_name:`Uganda`,native_name:`Uganda`},{iso_3166_1:`UM`,english_name:`United States Minor Outlying Islands`,native_name:`U.S. Outlying Islands`},{iso_3166_1:`US`,english_name:`United States of America`,native_name:`United States`},{iso_3166_1:`UY`,english_name:`Uruguay`,native_name:`Uruguay`},{iso_3166_1:`UZ`,english_name:`Uzbekistan`,native_name:`Uzbekistan`},{iso_3166_1:`VA`,english_name:`Holy See`,native_name:`Vatican City`},{iso_3166_1:`VC`,english_name:`St. Vincent and the Grenadines`,native_name:`St. Vincent & Grenadines`},{iso_3166_1:`VE`,english_name:`Venezuela`,native_name:`Venezuela`},{iso_3166_1:`VG`,english_name:`British Virgin Islands`,native_name:`British Virgin Islands`},{iso_3166_1:`VI`,english_name:`US Virgin Islands`,native_name:`U.S. Virgin Islands`},{iso_3166_1:`VN`,english_name:`Vietnam`,native_name:`Vietnam`},{iso_3166_1:`VU`,english_name:`Vanuatu`,native_name:`Vanuatu`},{iso_3166_1:`WF`,english_name:`Wallis and Futuna Islands`,native_name:`Wallis & Futuna`},{iso_3166_1:`WS`,english_name:`Samoa`,native_name:`Samoa`},{iso_3166_1:`XC`,english_name:`Czechoslovakia`,native_name:`Czechoslovakia`},{iso_3166_1:`XG`,english_name:`East Germany`,native_name:`East Germany`},{iso_3166_1:`XI`,english_name:`Northern Ireland`,native_name:`Northern Ireland`},{iso_3166_1:`XK`,english_name:`Kosovo`,native_name:`Kosovo`},{iso_3166_1:`YE`,english_name:`Yemen`,native_name:`Yemen`},{iso_3166_1:`YT`,english_name:`Mayotte`,native_name:`Mayotte`},{iso_3166_1:`YU`,english_name:`Yugoslavia`,native_name:`Yugoslavia`},{iso_3166_1:`ZA`,english_name:`South Africa`,native_name:`South Africa`},{iso_3166_1:`ZM`,english_name:`Zambia`,native_name:`Zambia`},{iso_3166_1:`ZR`,english_name:`Zaire`,native_name:`Zaire`},{iso_3166_1:`ZW`,english_name:`Zimbabwe`,native_name:`Zimbabwe`}];function Ee(e){return e.media_type===`movie`}function De(e){return e.media_type===`tv`}export{Y as AccountAPI,X as AuthenticationAPI,o as BACKDROP_SIZES,E as CertificationsAPI,D as ChangesAPI,A as CollectionsAPI,O as CompaniesAPI,j as ConfigurationAPI,k as CreditsAPI,M as DiscoverAPI,ye as DiscoverTVStatus,be as DiscoverTVStatusLabel,xe as DiscoverTVType,Se as DiscoverTVTypeLabel,N as FindAPI,P as GenresAPI,Z as GuestSessionsAPI,m as IMAGE_BASE_URL,n as IMAGE_SECURE_BASE_URL,p as ImageAPI,F as KeywordsAPI,r as LOGO_SIZES,Q as ListsAPI,I as MovieListsAPI,_e as MovieReleaseType,ve as MovieReleaseTypeLabel,L as MoviesAPI,V as NetworksAPI,u as POSTER_SIZES,s as PROFILE_SIZES,J as PeopleAPI,q as PeopleListsAPI,K as ReviewsAPI,i as STILL_SIZES,R as SearchAPI,ge as TMDB,Te as TMDBCountries,h as TMDBError,g as TMDBLogger,$ as TMDBv4,Ce as TVEpisodeGroupType,we as TVEpisodeGroupTypeLabel,U as TVEpisodeGroupsAPI,H as TVEpisodesAPI,W as TVSeasonsAPI,z as TVSeriesAPI,fe as TVSeriesListsAPI,G as TrendingAPI,me as V4AccountAPI,pe as V4AuthAPI,he as V4ListsAPI,B as WatchProvidersAPI,re as fetchAllPages,oe as getPageInfo,c as hasBackdropPath,d as hasLogoPath,ie as hasNextPage,a as hasPosterPath,ae as hasPreviousPage,e as hasProfilePath,l as hasStillPath,b as isJwt,Ee as isKnownForMovie,De as isKnownForTV,f as isPlainObject,t as isRecord,ne as paginate};
package/llms-full.txt CHANGED
@@ -169,6 +169,19 @@ const tmdb = new TMDB(token, {
169
169
  });
170
170
  ```
171
171
 
172
+ ### Standalone image URL builder (no SDK client)
173
+
174
+ Import `ImageAPI` from the `@lorenzopant/tmdb/image` subpath when you only need to build image URLs
175
+ and don't want to pull in the TMDB client or endpoint code. It ships as its own ~3.4 kB bundle and
176
+ requires no API token.
177
+
178
+ ```ts
179
+ import { ImageAPI } from "@lorenzopant/tmdb/image";
180
+
181
+ const images = new ImageAPI({ secure_images_url: true });
182
+ const posterUrl = images.poster("/abc123.jpg", "w500");
183
+ ```
184
+
172
185
  ### Paginate through any paginated endpoint
173
186
 
174
187
  ```ts
package/llms.txt CHANGED
@@ -33,6 +33,7 @@ Main exports:
33
33
  - Standalone endpoint classes like `MoviesAPI`, `SearchAPI`, `PeopleAPI`, `ListsAPI`, and `V4ListsAPI`
34
34
  - Utility exports including pagination helpers and `RetryOptions`
35
35
  - All public request/response types via `@lorenzopant/tmdb` and `@lorenzopant/tmdb/types`
36
+ - `ImageAPI` standalone via `@lorenzopant/tmdb/image` — image URL builder as its own ~3.4 kB bundle, no TMDB client or endpoint code (use when you need only image URL building)
36
37
 
37
38
  Core namespaces on `TMDB`:
38
39
  - `movies`, `movie_lists`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lorenzopant/tmdb",
3
- "version": "1.24.0",
3
+ "version": "1.25.0",
4
4
  "description": "A completely type-safe The Movie Database (TMDB) API wrapper for typescript applications.",
5
5
  "keywords": [
6
6
  "api",
@@ -25,6 +25,7 @@
25
25
  "llms-full.txt"
26
26
  ],
27
27
  "type": "module",
28
+ "sideEffects": false,
28
29
  "main": "dist/index.mjs",
29
30
  "types": "dist/index.d.mts",
30
31
  "exports": {
@@ -32,6 +33,10 @@
32
33
  "import": "./dist/index.mjs",
33
34
  "types": "./dist/index.d.mts"
34
35
  },
36
+ "./image": {
37
+ "import": "./dist/image.mjs",
38
+ "types": "./dist/image.d.mts"
39
+ },
35
40
  "./types": {
36
41
  "import": "./dist/index.mjs",
37
42
  "types": "./dist/index.d.mts"