tmdb-kit 1.1.0 → 1.2.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/README.md +243 -79
- package/dist/cli.js +1068 -377
- package/dist/client.d.cts +13 -5
- package/dist/client.d.ts +13 -5
- package/dist/errors.d.cts +13 -1
- package/dist/errors.d.ts +13 -1
- package/dist/helpers/cache.d.cts +28 -0
- package/dist/helpers/cache.d.ts +28 -0
- package/dist/helpers/pagination.d.cts +35 -0
- package/dist/helpers/pagination.d.ts +35 -0
- package/dist/helpers/retry.d.cts +47 -0
- package/dist/helpers/retry.d.ts +47 -0
- package/dist/helpers/timeout.d.cts +20 -0
- package/dist/helpers/timeout.d.ts +20 -0
- package/dist/index.cjs +422 -54
- package/dist/index.cjs.map +18 -14
- package/dist/index.d.cts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +422 -54
- package/dist/index.js.map +18 -14
- package/dist/query.d.cts +14 -0
- package/dist/query.d.ts +14 -0
- package/dist/resources/configuration.d.cts +7 -7
- package/dist/resources/configuration.d.ts +7 -7
- package/dist/resources/movies.d.cts +3 -3
- package/dist/resources/movies.d.ts +3 -3
- package/dist/resources/tv.d.cts +9 -1
- package/dist/resources/tv.d.ts +9 -1
- package/dist/types.d.cts +100 -2
- package/dist/types.d.ts +100 -2
- package/package.json +1 -1
package/dist/resources/tv.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TMDBTransport } from '../http.cjs';
|
|
2
|
-
import type { CreditsResponse, ImageQueryOptions, ImagesResponse, LanguageOptions, ListOptions, PagedResponse, TMDBObject, TVDetails, TVDetailsOptions, TVSeasonDetails, TVSeasonDetailsOptions, TVSummary, VideosResponse } from '../types.cjs';
|
|
2
|
+
import type { AggregateCreditsResponse, CreditsResponse, EpisodeDetails, EpisodeDetailsOptions, EpisodeGroupDetails, EpisodeGroupsResponse, ImageQueryOptions, ImagesResponse, LanguageOptions, ListOptions, PagedResponse, SeasonImagesResponse, TMDBObject, TVDetails, TVDetailsOptions, TVSeasonDetails, TVSeasonDetailsOptions, TVSummary, VideosResponse } from '../types.cjs';
|
|
3
3
|
/**
|
|
4
4
|
* Access TMDB TV show endpoints (popular, top-rated, details, seasons, etc.).
|
|
5
5
|
*
|
|
@@ -19,4 +19,12 @@ export declare class TVResource {
|
|
|
19
19
|
similar(seriesId: number, options?: Omit<ListOptions, 'region'>): Promise<PagedResponse<TVSummary>>;
|
|
20
20
|
videos(seriesId: number, options?: LanguageOptions): Promise<VideosResponse>;
|
|
21
21
|
seasonDetails<TAppend extends TMDBObject = TMDBObject>(seriesId: number, seasonNumber: number, options?: TVSeasonDetailsOptions): Promise<TVSeasonDetails & TAppend>;
|
|
22
|
+
seasonCredits(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<CreditsResponse>;
|
|
23
|
+
seasonAggregateCredits(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<AggregateCreditsResponse>;
|
|
24
|
+
seasonImages(seriesId: number, seasonNumber: number, options?: ImageQueryOptions): Promise<SeasonImagesResponse>;
|
|
25
|
+
seasonVideos(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<VideosResponse>;
|
|
26
|
+
episodeDetails<TAppend extends TMDBObject = TMDBObject>(seriesId: number, seasonNumber: number, episodeNumber: number, options?: EpisodeDetailsOptions): Promise<EpisodeDetails & TAppend>;
|
|
27
|
+
aggregateCredits(seriesId: number, options?: LanguageOptions): Promise<AggregateCreditsResponse>;
|
|
28
|
+
episodeGroups(seriesId: number, options?: LanguageOptions): Promise<EpisodeGroupsResponse>;
|
|
29
|
+
episodeGroup(groupId: string, options?: LanguageOptions): Promise<EpisodeGroupDetails>;
|
|
22
30
|
}
|
package/dist/resources/tv.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TMDBTransport } from '../http.js';
|
|
2
|
-
import type { CreditsResponse, ImageQueryOptions, ImagesResponse, LanguageOptions, ListOptions, PagedResponse, TMDBObject, TVDetails, TVDetailsOptions, TVSeasonDetails, TVSeasonDetailsOptions, TVSummary, VideosResponse } from '../types.js';
|
|
2
|
+
import type { AggregateCreditsResponse, CreditsResponse, EpisodeDetails, EpisodeDetailsOptions, EpisodeGroupDetails, EpisodeGroupsResponse, ImageQueryOptions, ImagesResponse, LanguageOptions, ListOptions, PagedResponse, SeasonImagesResponse, TMDBObject, TVDetails, TVDetailsOptions, TVSeasonDetails, TVSeasonDetailsOptions, TVSummary, VideosResponse } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Access TMDB TV show endpoints (popular, top-rated, details, seasons, etc.).
|
|
5
5
|
*
|
|
@@ -19,4 +19,12 @@ export declare class TVResource {
|
|
|
19
19
|
similar(seriesId: number, options?: Omit<ListOptions, 'region'>): Promise<PagedResponse<TVSummary>>;
|
|
20
20
|
videos(seriesId: number, options?: LanguageOptions): Promise<VideosResponse>;
|
|
21
21
|
seasonDetails<TAppend extends TMDBObject = TMDBObject>(seriesId: number, seasonNumber: number, options?: TVSeasonDetailsOptions): Promise<TVSeasonDetails & TAppend>;
|
|
22
|
+
seasonCredits(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<CreditsResponse>;
|
|
23
|
+
seasonAggregateCredits(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<AggregateCreditsResponse>;
|
|
24
|
+
seasonImages(seriesId: number, seasonNumber: number, options?: ImageQueryOptions): Promise<SeasonImagesResponse>;
|
|
25
|
+
seasonVideos(seriesId: number, seasonNumber: number, options?: LanguageOptions): Promise<VideosResponse>;
|
|
26
|
+
episodeDetails<TAppend extends TMDBObject = TMDBObject>(seriesId: number, seasonNumber: number, episodeNumber: number, options?: EpisodeDetailsOptions): Promise<EpisodeDetails & TAppend>;
|
|
27
|
+
aggregateCredits(seriesId: number, options?: LanguageOptions): Promise<AggregateCreditsResponse>;
|
|
28
|
+
episodeGroups(seriesId: number, options?: LanguageOptions): Promise<EpisodeGroupsResponse>;
|
|
29
|
+
episodeGroup(groupId: string, options?: LanguageOptions): Promise<EpisodeGroupDetails>;
|
|
22
30
|
}
|
package/dist/types.d.cts
CHANGED
|
@@ -162,6 +162,95 @@ export type TVSeasonAppendToResponse = 'account_states' | 'aggregate_credits' |
|
|
|
162
162
|
export interface TVSeasonDetailsOptions extends LanguageOptions {
|
|
163
163
|
appendToResponse?: TVSeasonAppendToResponse | readonly TVSeasonAppendToResponse[];
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Episode details endpoint payload. Unlike {@link EpisodeSummary}, the
|
|
167
|
+
* single-episode endpoint does not return `show_id`.
|
|
168
|
+
*/
|
|
169
|
+
export type EpisodeDetails = Omit<EpisodeSummary, 'show_id'>;
|
|
170
|
+
export type EpisodeAppendToResponse = 'account_states' | 'credits' | 'external_ids' | 'images' | 'translations' | 'videos' | (string & {});
|
|
171
|
+
export interface EpisodeDetailsOptions extends LanguageOptions {
|
|
172
|
+
appendToResponse?: EpisodeAppendToResponse | readonly EpisodeAppendToResponse[];
|
|
173
|
+
}
|
|
174
|
+
export interface AggregateRole {
|
|
175
|
+
credit_id: string;
|
|
176
|
+
character: string;
|
|
177
|
+
episode_count: number;
|
|
178
|
+
}
|
|
179
|
+
export interface AggregateJob {
|
|
180
|
+
credit_id: string;
|
|
181
|
+
job: string;
|
|
182
|
+
episode_count: number;
|
|
183
|
+
}
|
|
184
|
+
export interface AggregateCastMember {
|
|
185
|
+
adult?: boolean;
|
|
186
|
+
gender: number | null;
|
|
187
|
+
id: number;
|
|
188
|
+
known_for_department: string;
|
|
189
|
+
name: string;
|
|
190
|
+
order: number;
|
|
191
|
+
original_name: string;
|
|
192
|
+
popularity: number;
|
|
193
|
+
profile_path: string | null;
|
|
194
|
+
roles: AggregateRole[];
|
|
195
|
+
total_episode_count: number;
|
|
196
|
+
}
|
|
197
|
+
export interface AggregateCrewMember {
|
|
198
|
+
adult?: boolean;
|
|
199
|
+
department: string;
|
|
200
|
+
gender: number | null;
|
|
201
|
+
id: number;
|
|
202
|
+
jobs: AggregateJob[];
|
|
203
|
+
known_for_department: string;
|
|
204
|
+
name: string;
|
|
205
|
+
original_name: string;
|
|
206
|
+
popularity: number;
|
|
207
|
+
profile_path: string | null;
|
|
208
|
+
total_episode_count: number;
|
|
209
|
+
}
|
|
210
|
+
export interface AggregateCreditsResponse {
|
|
211
|
+
id: number;
|
|
212
|
+
cast: AggregateCastMember[];
|
|
213
|
+
crew: AggregateCrewMember[];
|
|
214
|
+
}
|
|
215
|
+
export interface EpisodeGroupSummary {
|
|
216
|
+
description: string;
|
|
217
|
+
episode_count: number;
|
|
218
|
+
group_count: number;
|
|
219
|
+
id: string;
|
|
220
|
+
name: string;
|
|
221
|
+
network: Network | null;
|
|
222
|
+
type: number;
|
|
223
|
+
}
|
|
224
|
+
export interface EpisodeGroupsResponse {
|
|
225
|
+
id: number;
|
|
226
|
+
results: EpisodeGroupSummary[];
|
|
227
|
+
}
|
|
228
|
+
export interface EpisodeGroupEpisode {
|
|
229
|
+
air_date: TMDBDateString | null;
|
|
230
|
+
episode_number: number;
|
|
231
|
+
episode_type: string;
|
|
232
|
+
id: number;
|
|
233
|
+
name: string;
|
|
234
|
+
order: number;
|
|
235
|
+
overview: string;
|
|
236
|
+
production_code: string | null;
|
|
237
|
+
runtime: number | null;
|
|
238
|
+
season_number: number;
|
|
239
|
+
show_id: number;
|
|
240
|
+
still_path: string | null;
|
|
241
|
+
vote_average: number;
|
|
242
|
+
vote_count: number;
|
|
243
|
+
}
|
|
244
|
+
export interface EpisodeGroup {
|
|
245
|
+
id: string;
|
|
246
|
+
name: string;
|
|
247
|
+
order: number;
|
|
248
|
+
locked: boolean;
|
|
249
|
+
episodes: EpisodeGroupEpisode[];
|
|
250
|
+
}
|
|
251
|
+
export interface EpisodeGroupDetails extends EpisodeGroupSummary {
|
|
252
|
+
groups: EpisodeGroup[];
|
|
253
|
+
}
|
|
165
254
|
export interface TVDetails extends Omit<TVSummary, 'genre_ids'> {
|
|
166
255
|
created_by: CreatedBy[];
|
|
167
256
|
episode_run_time: number[];
|
|
@@ -329,6 +418,10 @@ export interface ImagesResponse {
|
|
|
329
418
|
logos?: ImageItem[];
|
|
330
419
|
posters: ImageItem[];
|
|
331
420
|
}
|
|
421
|
+
export interface SeasonImagesResponse {
|
|
422
|
+
id: number;
|
|
423
|
+
posters: ImageItem[];
|
|
424
|
+
}
|
|
332
425
|
export interface ConfigurationImages {
|
|
333
426
|
base_url: string;
|
|
334
427
|
secure_base_url: string;
|
|
@@ -414,12 +507,17 @@ export declare function isKnownStillSize(value: string): value is KnownStillSize
|
|
|
414
507
|
export declare function isKnownImageSize(value: string): value is KnownImageSize;
|
|
415
508
|
export type MovieAppendToResponse = 'account_states' | 'alternative_titles' | 'changes' | 'credits' | 'external_ids' | 'images' | 'keywords' | 'lists' | 'recommendations' | 'release_dates' | 'reviews' | 'similar' | 'translations' | 'videos' | 'watch/providers' | (string & {});
|
|
416
509
|
export type TVAppendToResponse = 'account_states' | 'aggregate_credits' | 'alternative_titles' | 'changes' | 'content_ratings' | 'credits' | 'episode_groups' | 'external_ids' | 'images' | 'keywords' | 'recommendations' | 'reviews' | 'screened_theatrically' | 'similar' | 'translations' | 'videos' | 'watch/providers' | (string & {});
|
|
417
|
-
|
|
510
|
+
/** Per-request options shared by every resource method. */
|
|
511
|
+
export interface RequestOptions {
|
|
512
|
+
/** AbortSignal used to cancel the underlying request. */
|
|
513
|
+
signal?: AbortSignal;
|
|
514
|
+
}
|
|
515
|
+
export interface ListOptions extends RequestOptions {
|
|
418
516
|
language?: LanguageCode;
|
|
419
517
|
page?: number;
|
|
420
518
|
region?: RegionCode;
|
|
421
519
|
}
|
|
422
|
-
export interface LanguageOptions {
|
|
520
|
+
export interface LanguageOptions extends RequestOptions {
|
|
423
521
|
language?: LanguageCode;
|
|
424
522
|
}
|
|
425
523
|
export interface MovieDetailsOptions extends LanguageOptions {
|
package/dist/types.d.ts
CHANGED
|
@@ -162,6 +162,95 @@ export type TVSeasonAppendToResponse = 'account_states' | 'aggregate_credits' |
|
|
|
162
162
|
export interface TVSeasonDetailsOptions extends LanguageOptions {
|
|
163
163
|
appendToResponse?: TVSeasonAppendToResponse | readonly TVSeasonAppendToResponse[];
|
|
164
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Episode details endpoint payload. Unlike {@link EpisodeSummary}, the
|
|
167
|
+
* single-episode endpoint does not return `show_id`.
|
|
168
|
+
*/
|
|
169
|
+
export type EpisodeDetails = Omit<EpisodeSummary, 'show_id'>;
|
|
170
|
+
export type EpisodeAppendToResponse = 'account_states' | 'credits' | 'external_ids' | 'images' | 'translations' | 'videos' | (string & {});
|
|
171
|
+
export interface EpisodeDetailsOptions extends LanguageOptions {
|
|
172
|
+
appendToResponse?: EpisodeAppendToResponse | readonly EpisodeAppendToResponse[];
|
|
173
|
+
}
|
|
174
|
+
export interface AggregateRole {
|
|
175
|
+
credit_id: string;
|
|
176
|
+
character: string;
|
|
177
|
+
episode_count: number;
|
|
178
|
+
}
|
|
179
|
+
export interface AggregateJob {
|
|
180
|
+
credit_id: string;
|
|
181
|
+
job: string;
|
|
182
|
+
episode_count: number;
|
|
183
|
+
}
|
|
184
|
+
export interface AggregateCastMember {
|
|
185
|
+
adult?: boolean;
|
|
186
|
+
gender: number | null;
|
|
187
|
+
id: number;
|
|
188
|
+
known_for_department: string;
|
|
189
|
+
name: string;
|
|
190
|
+
order: number;
|
|
191
|
+
original_name: string;
|
|
192
|
+
popularity: number;
|
|
193
|
+
profile_path: string | null;
|
|
194
|
+
roles: AggregateRole[];
|
|
195
|
+
total_episode_count: number;
|
|
196
|
+
}
|
|
197
|
+
export interface AggregateCrewMember {
|
|
198
|
+
adult?: boolean;
|
|
199
|
+
department: string;
|
|
200
|
+
gender: number | null;
|
|
201
|
+
id: number;
|
|
202
|
+
jobs: AggregateJob[];
|
|
203
|
+
known_for_department: string;
|
|
204
|
+
name: string;
|
|
205
|
+
original_name: string;
|
|
206
|
+
popularity: number;
|
|
207
|
+
profile_path: string | null;
|
|
208
|
+
total_episode_count: number;
|
|
209
|
+
}
|
|
210
|
+
export interface AggregateCreditsResponse {
|
|
211
|
+
id: number;
|
|
212
|
+
cast: AggregateCastMember[];
|
|
213
|
+
crew: AggregateCrewMember[];
|
|
214
|
+
}
|
|
215
|
+
export interface EpisodeGroupSummary {
|
|
216
|
+
description: string;
|
|
217
|
+
episode_count: number;
|
|
218
|
+
group_count: number;
|
|
219
|
+
id: string;
|
|
220
|
+
name: string;
|
|
221
|
+
network: Network | null;
|
|
222
|
+
type: number;
|
|
223
|
+
}
|
|
224
|
+
export interface EpisodeGroupsResponse {
|
|
225
|
+
id: number;
|
|
226
|
+
results: EpisodeGroupSummary[];
|
|
227
|
+
}
|
|
228
|
+
export interface EpisodeGroupEpisode {
|
|
229
|
+
air_date: TMDBDateString | null;
|
|
230
|
+
episode_number: number;
|
|
231
|
+
episode_type: string;
|
|
232
|
+
id: number;
|
|
233
|
+
name: string;
|
|
234
|
+
order: number;
|
|
235
|
+
overview: string;
|
|
236
|
+
production_code: string | null;
|
|
237
|
+
runtime: number | null;
|
|
238
|
+
season_number: number;
|
|
239
|
+
show_id: number;
|
|
240
|
+
still_path: string | null;
|
|
241
|
+
vote_average: number;
|
|
242
|
+
vote_count: number;
|
|
243
|
+
}
|
|
244
|
+
export interface EpisodeGroup {
|
|
245
|
+
id: string;
|
|
246
|
+
name: string;
|
|
247
|
+
order: number;
|
|
248
|
+
locked: boolean;
|
|
249
|
+
episodes: EpisodeGroupEpisode[];
|
|
250
|
+
}
|
|
251
|
+
export interface EpisodeGroupDetails extends EpisodeGroupSummary {
|
|
252
|
+
groups: EpisodeGroup[];
|
|
253
|
+
}
|
|
165
254
|
export interface TVDetails extends Omit<TVSummary, 'genre_ids'> {
|
|
166
255
|
created_by: CreatedBy[];
|
|
167
256
|
episode_run_time: number[];
|
|
@@ -329,6 +418,10 @@ export interface ImagesResponse {
|
|
|
329
418
|
logos?: ImageItem[];
|
|
330
419
|
posters: ImageItem[];
|
|
331
420
|
}
|
|
421
|
+
export interface SeasonImagesResponse {
|
|
422
|
+
id: number;
|
|
423
|
+
posters: ImageItem[];
|
|
424
|
+
}
|
|
332
425
|
export interface ConfigurationImages {
|
|
333
426
|
base_url: string;
|
|
334
427
|
secure_base_url: string;
|
|
@@ -414,12 +507,17 @@ export declare function isKnownStillSize(value: string): value is KnownStillSize
|
|
|
414
507
|
export declare function isKnownImageSize(value: string): value is KnownImageSize;
|
|
415
508
|
export type MovieAppendToResponse = 'account_states' | 'alternative_titles' | 'changes' | 'credits' | 'external_ids' | 'images' | 'keywords' | 'lists' | 'recommendations' | 'release_dates' | 'reviews' | 'similar' | 'translations' | 'videos' | 'watch/providers' | (string & {});
|
|
416
509
|
export type TVAppendToResponse = 'account_states' | 'aggregate_credits' | 'alternative_titles' | 'changes' | 'content_ratings' | 'credits' | 'episode_groups' | 'external_ids' | 'images' | 'keywords' | 'recommendations' | 'reviews' | 'screened_theatrically' | 'similar' | 'translations' | 'videos' | 'watch/providers' | (string & {});
|
|
417
|
-
|
|
510
|
+
/** Per-request options shared by every resource method. */
|
|
511
|
+
export interface RequestOptions {
|
|
512
|
+
/** AbortSignal used to cancel the underlying request. */
|
|
513
|
+
signal?: AbortSignal;
|
|
514
|
+
}
|
|
515
|
+
export interface ListOptions extends RequestOptions {
|
|
418
516
|
language?: LanguageCode;
|
|
419
517
|
page?: number;
|
|
420
518
|
region?: RegionCode;
|
|
421
519
|
}
|
|
422
|
-
export interface LanguageOptions {
|
|
520
|
+
export interface LanguageOptions extends RequestOptions {
|
|
423
521
|
language?: LanguageCode;
|
|
424
522
|
}
|
|
425
523
|
export interface MovieDetailsOptions extends LanguageOptions {
|
package/package.json
CHANGED