@lorenzopant/tmdb 1.13.1 → 1.14.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 +20 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +47 -8
- package/dist/endpoints/base.d.ts +1 -0
- package/dist/endpoints/base.d.ts.map +1 -1
- package/dist/endpoints/base.js +3 -1
- package/dist/endpoints/movies.d.ts +4 -9
- package/dist/endpoints/movies.d.ts.map +1 -1
- package/dist/endpoints/movies.js +2 -7
- package/dist/endpoints/tv_seasons.d.ts +129 -0
- package/dist/endpoints/tv_seasons.d.ts.map +1 -0
- package/dist/endpoints/tv_seasons.js +164 -0
- package/dist/endpoints/tv_series_lists.d.ts +2 -6
- package/dist/endpoints/tv_series_lists.d.ts.map +1 -1
- package/dist/endpoints/tv_series_lists.js +2 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/routes.d.ts +8 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +8 -0
- package/dist/tmdb.d.ts +2 -0
- package/dist/tmdb.d.ts.map +1 -1
- package/dist/tmdb.js +4 -1
- package/dist/types/config/options.d.ts +7 -0
- package/dist/types/config/options.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/tv-seasons.d.ts +119 -2
- package/dist/types/tv-seasons.d.ts.map +1 -1
- package/dist/types/tv-series.d.ts +4 -4
- package/dist/types/tv-series.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/logger.d.ts +19 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +41 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,10 +61,29 @@ The main client class. **Each API method supports all the parameters supported b
|
|
|
61
61
|
#### Constructor
|
|
62
62
|
|
|
63
63
|
```typescript
|
|
64
|
-
const tmdb = new TMDB(accessToken: string);
|
|
64
|
+
const tmdb = new TMDB(accessToken: string, options?: TMDBOptions);
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
- `accessToken`: **required**. Your TMDB API v4 access token.
|
|
68
|
+
- `options.logger`: Enable debug logging for all network requests.
|
|
69
|
+
|
|
70
|
+
Example:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
const tmdb = new TMDB("your_access_token", { logger: true });
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Custom logger:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
const tmdb = new TMDB("your_access_token", {
|
|
80
|
+
logger: (entry) => {
|
|
81
|
+
if (entry.type === "response") {
|
|
82
|
+
console.log("TMDB:", entry.endpoint, entry.status, entry.durationMs);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
```
|
|
68
87
|
|
|
69
88
|
---
|
|
70
89
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { TMDBLoggerFn } from "./utils/logger";
|
|
1
2
|
export declare class ApiClient {
|
|
2
3
|
private accessToken;
|
|
3
4
|
private baseUrl;
|
|
4
|
-
|
|
5
|
+
private logger?;
|
|
6
|
+
constructor(accessToken: string, options?: {
|
|
7
|
+
logger?: boolean | TMDBLoggerFn;
|
|
8
|
+
});
|
|
5
9
|
request<T>(endpoint: string, params?: Record<string, unknown | undefined>): Promise<T>;
|
|
6
10
|
/**
|
|
7
11
|
* Recursively converts null values to undefined in API responses.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,SAAS;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAO;IAK5E,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAgDhG;;;;OAIG;IACH,OAAO,CAAC,aAAa;YA2BP,WAAW;CA6BzB"}
|
package/dist/client.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { TMDBError } from "./errors/tmdb";
|
|
2
|
+
import { TMDBLogger } from "./utils/logger";
|
|
2
3
|
export class ApiClient {
|
|
3
4
|
accessToken;
|
|
4
5
|
baseUrl = "https://api.themoviedb.org/3";
|
|
5
|
-
|
|
6
|
+
logger;
|
|
7
|
+
constructor(accessToken, options = {}) {
|
|
6
8
|
this.accessToken = accessToken;
|
|
9
|
+
this.logger = TMDBLogger.from(options.logger);
|
|
7
10
|
}
|
|
8
11
|
async request(endpoint, params = {}) {
|
|
9
12
|
const url = new URL(`${this.baseUrl}${endpoint}`);
|
|
@@ -12,14 +15,41 @@ export class ApiClient {
|
|
|
12
15
|
continue;
|
|
13
16
|
url.searchParams.append(key, String(value));
|
|
14
17
|
}
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const startedAt = Date.now();
|
|
19
|
+
this.logger?.log({
|
|
20
|
+
type: "request",
|
|
21
|
+
method: "GET",
|
|
22
|
+
endpoint,
|
|
20
23
|
});
|
|
24
|
+
let res;
|
|
25
|
+
try {
|
|
26
|
+
res = await fetch(url.toString(), {
|
|
27
|
+
headers: {
|
|
28
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
29
|
+
"Content-Type": "application/json;charset=utf-8",
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
this.logger?.log({
|
|
35
|
+
type: "error",
|
|
36
|
+
method: "GET",
|
|
37
|
+
endpoint,
|
|
38
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
39
|
+
durationMs: Date.now() - startedAt,
|
|
40
|
+
});
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
21
43
|
if (!res.ok)
|
|
22
|
-
await this.handleError(res);
|
|
44
|
+
await this.handleError(res, endpoint);
|
|
45
|
+
this.logger?.log({
|
|
46
|
+
type: "response",
|
|
47
|
+
method: "GET",
|
|
48
|
+
endpoint,
|
|
49
|
+
status: res.status,
|
|
50
|
+
statusText: res.statusText,
|
|
51
|
+
durationMs: Date.now() - startedAt,
|
|
52
|
+
});
|
|
23
53
|
const data = await res.json();
|
|
24
54
|
return this.sanitizeNulls(data);
|
|
25
55
|
}
|
|
@@ -50,7 +80,7 @@ export class ApiClient {
|
|
|
50
80
|
}
|
|
51
81
|
return sanitized;
|
|
52
82
|
}
|
|
53
|
-
async handleError(res) {
|
|
83
|
+
async handleError(res, endpoint) {
|
|
54
84
|
let errorMessage = res.statusText;
|
|
55
85
|
let tmdbStatusCode = -1;
|
|
56
86
|
try {
|
|
@@ -65,6 +95,15 @@ export class ApiClient {
|
|
|
65
95
|
console.error(`Unknown error: ${error}`);
|
|
66
96
|
// If response is not JSON, fallback to HTTP status text
|
|
67
97
|
}
|
|
98
|
+
this.logger?.log({
|
|
99
|
+
type: "error",
|
|
100
|
+
method: "GET",
|
|
101
|
+
endpoint,
|
|
102
|
+
status: res.status,
|
|
103
|
+
statusText: res.statusText,
|
|
104
|
+
tmdbStatusCode,
|
|
105
|
+
errorMessage,
|
|
106
|
+
});
|
|
68
107
|
const error = new TMDBError(errorMessage, res.status, tmdbStatusCode);
|
|
69
108
|
throw error;
|
|
70
109
|
}
|
package/dist/endpoints/base.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare abstract class TMDBAPIBase {
|
|
|
8
8
|
/**
|
|
9
9
|
* Merges the endpoint's params with TMDB-wide defaults (language, region).
|
|
10
10
|
* Works only for param types that include optional `language` and `region` fields.
|
|
11
|
+
* Only request-safe defaults are merged — config-only options (logger, images, etc.) are excluded.
|
|
11
12
|
*/
|
|
12
13
|
protected applyDefaults<T extends object>(params?: T): T | undefined;
|
|
13
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/endpoints/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,8BAAsB,WAAW;IAChC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC;gBAE1B,MAAM,EAAE,SAAS,EAAE,cAAc,GAAE,WAAgB;IAK/D
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/endpoints/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,8BAAsB,WAAW;IAChC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC;gBAE1B,MAAM,EAAE,SAAS,EAAE,cAAc,GAAE,WAAgB;IAK/D;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAKpE;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;CAOpF"}
|
package/dist/endpoints/base.js
CHANGED
|
@@ -8,9 +8,11 @@ export class TMDBAPIBase {
|
|
|
8
8
|
/**
|
|
9
9
|
* Merges the endpoint's params with TMDB-wide defaults (language, region).
|
|
10
10
|
* Works only for param types that include optional `language` and `region` fields.
|
|
11
|
+
* Only request-safe defaults are merged — config-only options (logger, images, etc.) are excluded.
|
|
11
12
|
*/
|
|
12
13
|
applyDefaults(params) {
|
|
13
|
-
|
|
14
|
+
const { language, region } = this.defaultOptions;
|
|
15
|
+
return { ...(language !== undefined && { language }), ...(region !== undefined && { region }), ...params };
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Ensures params contains a language: prefer explicit param, fallback to defaultOptions.language.
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { MovieAlternativeTitlesParams, MovieChangesParams, MovieCreditsParams, MovieDetailsParams, MovieExternalIDsParams, MovieImagesParams, MovieKeywordsParams, MovieRecommendationsParams, MovieReleaseDatesParams, MovieReviewsParams, MovieSimilarParams, MovieTranslationsParams, MovieVideosParams, MovieWatchProvidersParams } from "../types";
|
|
6
|
-
export declare class MoviesAPI {
|
|
7
|
-
private client;
|
|
8
|
-
private defaultOptions;
|
|
9
|
-
constructor(client: ApiClient, options?: TMDBOptions);
|
|
1
|
+
import { MediaWatchProviders, MovieAlternativeTitlesParams, MovieChangesParams, MovieCreditsParams, MovieDetailsParams, MovieExternalIDsParams, MovieImagesParams, MovieKeywordsParams, MovieRecommendationsParams, MovieReleaseDatesParams, MovieReviewsParams, MovieSimilarParams, MovieTranslationsParams, MovieVideosParams, MovieWatchProvidersParams } from "../types";
|
|
2
|
+
import { MovieAlternativeTitles, MovieAppendToResponseNamespace, MovieChanges, MovieCredits, MovieDetails, MovieDetailsWithAppends, MovieExternalIDs, MovieImages, MovieKeywords, MovieRecommendations, MovieReleaseDates, MovieReviews, MovieSimilar, MovieTranslations, MovieVideos } from "../types/movies";
|
|
3
|
+
import { TMDBAPIBase } from "./base";
|
|
4
|
+
export declare class MoviesAPI extends TMDBAPIBase {
|
|
10
5
|
private moviePath;
|
|
11
6
|
private movieSubPath;
|
|
12
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"movies.d.ts","sourceRoot":"","sources":["../../src/endpoints/movies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"movies.d.ts","sourceRoot":"","sources":["../../src/endpoints/movies.ts"],"names":[],"mappings":"AACA,OAAO,EACN,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,qBAAa,SAAU,SAAQ,WAAW;IACzC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;OAUG;IACG,OAAO,CAAC,CAAC,SAAS,SAAS,8BAA8B,EAAE,GAAG,EAAE,EACrE,MAAM,EAAE,kBAAkB,GAAG;QAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KAAE,GACjE,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,YAAY,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAMpE;;;;;;;;;OASG;IACG,kBAAkB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK/F;;;;;;;;;OASG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMhE;;;;;;;;;;OAUG;IACG,YAAY,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK7E;;;;;;;;;OASG;IACG,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAKnE;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhE;;;;;;;;;;;;;;OAcG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAM7D;;;;;;;;OAQG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAKrC;;;;;;;;;;;OAWG;IACG,eAAe,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMxF;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKhF;;;;;;;;;;OAUG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMhE;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAMhE;;;;;;;;;;OAUG;IACG,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAK/E;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAM7D;;;;;;;;;;;;;;;OAeG;IACG,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAItF"}
|
package/dist/endpoints/movies.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { ENDPOINTS } from "../routes";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
defaultOptions;
|
|
5
|
-
constructor(client, options = {}) {
|
|
6
|
-
this.client = client;
|
|
7
|
-
this.defaultOptions = options;
|
|
8
|
-
}
|
|
2
|
+
import { TMDBAPIBase } from "./base";
|
|
3
|
+
export class MoviesAPI extends TMDBAPIBase {
|
|
9
4
|
moviePath(movie_id) {
|
|
10
5
|
return `${ENDPOINTS.MOVIES.DETAILS}/${movie_id}`;
|
|
11
6
|
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Changes, MediaWatchProviders, TVSeasonAggregateCredits, TVSeasonAggregateCreditsParams, TVSeasonAppendToResponseNamespace, TVSeasonBaseParams, TVSeasonChangesParams, TVSeasonCredits, TVSeasonCreditsParams, TVSeasonDetailsParams, TVSeasonDetailsWithAppends, TVSeasonExternalIDs, TVSeasonImages, TVSeasonImagesParams, TVSeasonTranslations, TVSeasonVideos, TVSeasonVideosParams, TVSeasonWatchProvidersParams, TVSeason } from "../types";
|
|
2
|
+
import { TMDBAPIBase } from "./base";
|
|
3
|
+
export declare class TVSeasonsAPI extends TMDBAPIBase {
|
|
4
|
+
private seasonPath;
|
|
5
|
+
private seasonSubPath;
|
|
6
|
+
/**
|
|
7
|
+
* Details
|
|
8
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}
|
|
9
|
+
*
|
|
10
|
+
* Query the details of a TV season.
|
|
11
|
+
* @param series_id The ID of the TV series.
|
|
12
|
+
* @param season_number The season number within the TV show.
|
|
13
|
+
* @param append_to_response A comma-separated list of the fields to include in the response.
|
|
14
|
+
* @param language The language to use for the response.
|
|
15
|
+
* @returns A promise that resolves to the TV season details.
|
|
16
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-details
|
|
17
|
+
*/
|
|
18
|
+
details<T extends readonly TVSeasonAppendToResponseNamespace[] = []>(params: Omit<TVSeasonDetailsParams, "append_to_response"> & {
|
|
19
|
+
append_to_response?: T;
|
|
20
|
+
}): Promise<T extends [] ? TVSeason : TVSeasonDetailsWithAppends<T>>;
|
|
21
|
+
/**
|
|
22
|
+
* Aggregate Credits
|
|
23
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/aggregate_credits
|
|
24
|
+
*
|
|
25
|
+
* Get the aggregate credits for a TV season.
|
|
26
|
+
* This returns the full cast and crew across all episodes of the season.
|
|
27
|
+
* @param series_id The ID of the TV series.
|
|
28
|
+
* @param season_number The season number within the TV show.
|
|
29
|
+
* @param language The language to use for the response.
|
|
30
|
+
* @returns A promise that resolves to the TV season aggregate credits.
|
|
31
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-aggregate-credits
|
|
32
|
+
*/
|
|
33
|
+
aggregate_credits(params: TVSeasonAggregateCreditsParams): Promise<TVSeasonAggregateCredits>;
|
|
34
|
+
/**
|
|
35
|
+
* Changes
|
|
36
|
+
* GET - https://api.themoviedb.org/3/tv/season/{season_id}/changes
|
|
37
|
+
*
|
|
38
|
+
* Get the changes for a TV season by season ID. By default only the last 24 hours are returned.
|
|
39
|
+
* You can query up to 14 days in a single query by using the start_date and end_date query parameters.
|
|
40
|
+
* @param season_id The ID of the TV season.
|
|
41
|
+
* @param start_date Filter changes by start date (ISO 8601 format, e.g. "2024-01-01").
|
|
42
|
+
* @param end_date Filter changes by end date (ISO 8601 format, e.g. "2024-01-14").
|
|
43
|
+
* @param page The page of results to return.
|
|
44
|
+
* @returns A promise that resolves to the TV season changes history.
|
|
45
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-changes-by-id
|
|
46
|
+
*/
|
|
47
|
+
changes(params: TVSeasonChangesParams): Promise<Changes>;
|
|
48
|
+
/**
|
|
49
|
+
* Credits
|
|
50
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/credits
|
|
51
|
+
*
|
|
52
|
+
* Get the credits for a TV season.
|
|
53
|
+
* @param series_id The ID of the TV series.
|
|
54
|
+
* @param season_number The season number within the TV show.
|
|
55
|
+
* @param language The language to use for the response.
|
|
56
|
+
* @returns A promise that resolves to the TV season credits.
|
|
57
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-credits
|
|
58
|
+
*/
|
|
59
|
+
credits(params: TVSeasonCreditsParams): Promise<TVSeasonCredits>;
|
|
60
|
+
/**
|
|
61
|
+
* External IDs
|
|
62
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/external_ids
|
|
63
|
+
*
|
|
64
|
+
* Get a list of external IDs that have been added to a TV season.
|
|
65
|
+
* @param series_id The ID of the TV series.
|
|
66
|
+
* @param season_number The season number within the TV show.
|
|
67
|
+
* @returns A promise that resolves to the TV season external IDs.
|
|
68
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-external-ids
|
|
69
|
+
*/
|
|
70
|
+
external_ids(params: TVSeasonBaseParams): Promise<TVSeasonExternalIDs>;
|
|
71
|
+
/**
|
|
72
|
+
* Images
|
|
73
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/images
|
|
74
|
+
*
|
|
75
|
+
* Get the images that belong to a TV season. Returns season posters.
|
|
76
|
+
*
|
|
77
|
+
* NOTE: If you have a language specified, it will act as a filter on the returned items.
|
|
78
|
+
* You can use the include_image_language param to query additional languages.
|
|
79
|
+
*
|
|
80
|
+
* @param series_id The ID of the TV series.
|
|
81
|
+
* @param season_number The season number within the TV show.
|
|
82
|
+
* @param language The language code to filter images by language.
|
|
83
|
+
* @param include_image_language A comma-separated list of language codes to include images for.
|
|
84
|
+
* @returns A promise that resolves to the TV season images.
|
|
85
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-images
|
|
86
|
+
*/
|
|
87
|
+
images(params: TVSeasonImagesParams): Promise<TVSeasonImages>;
|
|
88
|
+
/**
|
|
89
|
+
* Translations
|
|
90
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/translations
|
|
91
|
+
*
|
|
92
|
+
* Get the translations that have been added to a TV season.
|
|
93
|
+
* Take a read through our language documentation for more information about languages on TMDB.
|
|
94
|
+
* https://developer.themoviedb.org/docs/languages
|
|
95
|
+
* @param series_id The ID of the TV series.
|
|
96
|
+
* @param season_number The season number within the TV show.
|
|
97
|
+
* @returns A promise that resolves to the TV season translations.
|
|
98
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-translations
|
|
99
|
+
*/
|
|
100
|
+
translations(params: TVSeasonBaseParams): Promise<TVSeasonTranslations>;
|
|
101
|
+
/**
|
|
102
|
+
* Videos
|
|
103
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/videos
|
|
104
|
+
*
|
|
105
|
+
* Get the videos that belong to a TV season.
|
|
106
|
+
* @param series_id The ID of the TV series.
|
|
107
|
+
* @param season_number The season number within the TV show.
|
|
108
|
+
* @param language The language to use for the response.
|
|
109
|
+
* @param include_video_language A comma-separated list of language codes to include videos for.
|
|
110
|
+
* @returns A promise that resolves to the TV season videos.
|
|
111
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-videos
|
|
112
|
+
*/
|
|
113
|
+
videos(params: TVSeasonVideosParams): Promise<TVSeasonVideos>;
|
|
114
|
+
/**
|
|
115
|
+
* Watch Providers
|
|
116
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/watch/providers
|
|
117
|
+
*
|
|
118
|
+
* Get the watch providers for a specific TV season.
|
|
119
|
+
* Powered by our partnership with JustWatch, you can query which streaming services
|
|
120
|
+
* have the season available.
|
|
121
|
+
* @param series_id The ID of the TV series.
|
|
122
|
+
* @param season_number The season number within the TV show.
|
|
123
|
+
* @param language The language to use for the response.
|
|
124
|
+
* @returns A promise that resolves to the TV season watch providers.
|
|
125
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-watch-providers
|
|
126
|
+
*/
|
|
127
|
+
watch_providers(params: TVSeasonWatchProvidersParams): Promise<MediaWatchProviders>;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=tv_seasons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tv_seasons.d.ts","sourceRoot":"","sources":["../../src/endpoints/tv_seasons.ts"],"names":[],"mappings":"AACA,OAAO,EACN,OAAO,EACP,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,iCAAiC,EACjC,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,QAAQ,EACR,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,qBAAa,YAAa,SAAQ,WAAW;IAC5C,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,aAAa;IAIrB;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,CAAC,SAAS,SAAS,iCAAiC,EAAE,GAAG,EAAE,EACxE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,GAAG;QAAE,kBAAkB,CAAC,EAAE,CAAC,CAAA;KAAE,GACpF,OAAO,CAAC,CAAC,SAAS,EAAE,GAAG,QAAQ,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAMnE;;;;;;;;;;;OAWG;IACG,iBAAiB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAMlG;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAM9D;;;;;;;;;;OAUG;IACG,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAMtE;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAK5E;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK7E;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE;;;;;;;;;;;;OAYG;IACG,eAAe,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAKzF"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ENDPOINTS } from "../routes";
|
|
2
|
+
import { TMDBAPIBase } from "./base";
|
|
3
|
+
export class TVSeasonsAPI extends TMDBAPIBase {
|
|
4
|
+
seasonPath(params) {
|
|
5
|
+
return `${ENDPOINTS.TV_SERIES.DETAILS}/${params.series_id}${ENDPOINTS.TV_SEASONS.DETAILS}/${params.season_number}`;
|
|
6
|
+
}
|
|
7
|
+
seasonSubPath(params, route) {
|
|
8
|
+
return `${this.seasonPath(params)}${route}`;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Details
|
|
12
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}
|
|
13
|
+
*
|
|
14
|
+
* Query the details of a TV season.
|
|
15
|
+
* @param series_id The ID of the TV series.
|
|
16
|
+
* @param season_number The season number within the TV show.
|
|
17
|
+
* @param append_to_response A comma-separated list of the fields to include in the response.
|
|
18
|
+
* @param language The language to use for the response.
|
|
19
|
+
* @returns A promise that resolves to the TV season details.
|
|
20
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-details
|
|
21
|
+
*/
|
|
22
|
+
async details(params) {
|
|
23
|
+
const { language = this.defaultOptions.language, append_to_response, ...rest } = params;
|
|
24
|
+
const endpoint = this.seasonPath(rest);
|
|
25
|
+
return this.client.request(endpoint, { language, append_to_response });
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Aggregate Credits
|
|
29
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/aggregate_credits
|
|
30
|
+
*
|
|
31
|
+
* Get the aggregate credits for a TV season.
|
|
32
|
+
* This returns the full cast and crew across all episodes of the season.
|
|
33
|
+
* @param series_id The ID of the TV series.
|
|
34
|
+
* @param season_number The season number within the TV show.
|
|
35
|
+
* @param language The language to use for the response.
|
|
36
|
+
* @returns A promise that resolves to the TV season aggregate credits.
|
|
37
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-aggregate-credits
|
|
38
|
+
*/
|
|
39
|
+
async aggregate_credits(params) {
|
|
40
|
+
const { language = this.defaultOptions.language, ...rest } = params;
|
|
41
|
+
const endpoint = this.seasonSubPath(rest, ENDPOINTS.TV_SEASONS.AGGREGATE_CREDITS);
|
|
42
|
+
return this.client.request(endpoint, { language });
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Changes
|
|
46
|
+
* GET - https://api.themoviedb.org/3/tv/season/{season_id}/changes
|
|
47
|
+
*
|
|
48
|
+
* Get the changes for a TV season by season ID. By default only the last 24 hours are returned.
|
|
49
|
+
* You can query up to 14 days in a single query by using the start_date and end_date query parameters.
|
|
50
|
+
* @param season_id The ID of the TV season.
|
|
51
|
+
* @param start_date Filter changes by start date (ISO 8601 format, e.g. "2024-01-01").
|
|
52
|
+
* @param end_date Filter changes by end date (ISO 8601 format, e.g. "2024-01-14").
|
|
53
|
+
* @param page The page of results to return.
|
|
54
|
+
* @returns A promise that resolves to the TV season changes history.
|
|
55
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-changes-by-id
|
|
56
|
+
*/
|
|
57
|
+
async changes(params) {
|
|
58
|
+
const { season_id, ...rest } = params;
|
|
59
|
+
const endpoint = `${ENDPOINTS.TV_SERIES.DETAILS}${ENDPOINTS.TV_SEASONS.DETAILS}/${season_id}${ENDPOINTS.TV_SEASONS.CHANGES}`;
|
|
60
|
+
return this.client.request(endpoint, { ...rest });
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Credits
|
|
64
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/credits
|
|
65
|
+
*
|
|
66
|
+
* Get the credits for a TV season.
|
|
67
|
+
* @param series_id The ID of the TV series.
|
|
68
|
+
* @param season_number The season number within the TV show.
|
|
69
|
+
* @param language The language to use for the response.
|
|
70
|
+
* @returns A promise that resolves to the TV season credits.
|
|
71
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-credits
|
|
72
|
+
*/
|
|
73
|
+
async credits(params) {
|
|
74
|
+
const { language = this.defaultOptions.language, ...rest } = params;
|
|
75
|
+
const endpoint = this.seasonSubPath(rest, ENDPOINTS.TV_SEASONS.CREDITS);
|
|
76
|
+
return this.client.request(endpoint, { language });
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* External IDs
|
|
80
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/external_ids
|
|
81
|
+
*
|
|
82
|
+
* Get a list of external IDs that have been added to a TV season.
|
|
83
|
+
* @param series_id The ID of the TV series.
|
|
84
|
+
* @param season_number The season number within the TV show.
|
|
85
|
+
* @returns A promise that resolves to the TV season external IDs.
|
|
86
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-external-ids
|
|
87
|
+
*/
|
|
88
|
+
async external_ids(params) {
|
|
89
|
+
const endpoint = this.seasonSubPath(params, ENDPOINTS.TV_SEASONS.EXTERNAL_IDS);
|
|
90
|
+
return this.client.request(endpoint);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Images
|
|
94
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/images
|
|
95
|
+
*
|
|
96
|
+
* Get the images that belong to a TV season. Returns season posters.
|
|
97
|
+
*
|
|
98
|
+
* NOTE: If you have a language specified, it will act as a filter on the returned items.
|
|
99
|
+
* You can use the include_image_language param to query additional languages.
|
|
100
|
+
*
|
|
101
|
+
* @param series_id The ID of the TV series.
|
|
102
|
+
* @param season_number The season number within the TV show.
|
|
103
|
+
* @param language The language code to filter images by language.
|
|
104
|
+
* @param include_image_language A comma-separated list of language codes to include images for.
|
|
105
|
+
* @returns A promise that resolves to the TV season images.
|
|
106
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-images
|
|
107
|
+
*/
|
|
108
|
+
async images(params) {
|
|
109
|
+
const { language = this.defaultOptions.language, include_image_language, ...rest } = params;
|
|
110
|
+
const endpoint = this.seasonSubPath(rest, ENDPOINTS.TV_SEASONS.IMAGES);
|
|
111
|
+
return this.client.request(endpoint, { language, include_image_language });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Translations
|
|
115
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/translations
|
|
116
|
+
*
|
|
117
|
+
* Get the translations that have been added to a TV season.
|
|
118
|
+
* Take a read through our language documentation for more information about languages on TMDB.
|
|
119
|
+
* https://developer.themoviedb.org/docs/languages
|
|
120
|
+
* @param series_id The ID of the TV series.
|
|
121
|
+
* @param season_number The season number within the TV show.
|
|
122
|
+
* @returns A promise that resolves to the TV season translations.
|
|
123
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-translations
|
|
124
|
+
*/
|
|
125
|
+
async translations(params) {
|
|
126
|
+
const endpoint = this.seasonSubPath(params, ENDPOINTS.TV_SEASONS.TRANSLATIONS);
|
|
127
|
+
return this.client.request(endpoint);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Videos
|
|
131
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/videos
|
|
132
|
+
*
|
|
133
|
+
* Get the videos that belong to a TV season.
|
|
134
|
+
* @param series_id The ID of the TV series.
|
|
135
|
+
* @param season_number The season number within the TV show.
|
|
136
|
+
* @param language The language to use for the response.
|
|
137
|
+
* @param include_video_language A comma-separated list of language codes to include videos for.
|
|
138
|
+
* @returns A promise that resolves to the TV season videos.
|
|
139
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-videos
|
|
140
|
+
*/
|
|
141
|
+
async videos(params) {
|
|
142
|
+
const { language = this.defaultOptions.language, include_video_language, ...rest } = params;
|
|
143
|
+
const endpoint = this.seasonSubPath(rest, ENDPOINTS.TV_SEASONS.VIDEOS);
|
|
144
|
+
return this.client.request(endpoint, { language, include_video_language });
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Watch Providers
|
|
148
|
+
* GET - https://api.themoviedb.org/3/tv/{series_id}/season/{season_number}/watch/providers
|
|
149
|
+
*
|
|
150
|
+
* Get the watch providers for a specific TV season.
|
|
151
|
+
* Powered by our partnership with JustWatch, you can query which streaming services
|
|
152
|
+
* have the season available.
|
|
153
|
+
* @param series_id The ID of the TV series.
|
|
154
|
+
* @param season_number The season number within the TV show.
|
|
155
|
+
* @param language The language to use for the response.
|
|
156
|
+
* @returns A promise that resolves to the TV season watch providers.
|
|
157
|
+
* @reference https://developer.themoviedb.org/reference/tv-season-watch-providers
|
|
158
|
+
*/
|
|
159
|
+
async watch_providers(params) {
|
|
160
|
+
const { language = this.defaultOptions.language, ...rest } = params;
|
|
161
|
+
const endpoint = this.seasonSubPath(rest, ENDPOINTS.TV_SEASONS.WATCH_PROVIDERS);
|
|
162
|
+
return this.client.request(endpoint, { language });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { ApiClient } from "../client";
|
|
2
1
|
import { PaginatedResponse, TVSeriesResultItem } from "../types";
|
|
3
|
-
import { TMDBOptions } from "../types/config";
|
|
4
2
|
import { TVSeriesListParams } from "../types/tv-series";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
private defaultOptions;
|
|
8
|
-
constructor(client: ApiClient, defaultOptions?: TMDBOptions);
|
|
3
|
+
import { TMDBAPIBase } from "./base";
|
|
4
|
+
export declare class TVSeriesListsAPI extends TMDBAPIBase {
|
|
9
5
|
private withDefaults;
|
|
10
6
|
/**
|
|
11
7
|
* Fetch TVSeries List Wrapper
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tv_series_lists.d.ts","sourceRoot":"","sources":["../../src/endpoints/tv_series_lists.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tv_series_lists.d.ts","sourceRoot":"","sources":["../../src/endpoints/tv_series_lists.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,qBAAa,gBAAiB,SAAQ,WAAW;IAChD,OAAO,CAAC,YAAY;IAKpB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;;;;OAQG;IACG,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAInG;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAIjG;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAI9F;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;CAGhG"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { ENDPOINTS } from "../routes";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
defaultOptions;
|
|
5
|
-
constructor(client, defaultOptions = {}) {
|
|
6
|
-
this.client = client;
|
|
7
|
-
this.defaultOptions = defaultOptions;
|
|
8
|
-
}
|
|
2
|
+
import { TMDBAPIBase } from "./base";
|
|
3
|
+
export class TVSeriesListsAPI extends TMDBAPIBase {
|
|
9
4
|
withDefaults(params) {
|
|
10
5
|
const { language = this.defaultOptions.language, timezone = this.defaultOptions.timezone, ...rest } = params;
|
|
11
6
|
return { language, timezone, ...rest };
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/routes.d.ts
CHANGED
|
@@ -104,6 +104,14 @@ export declare const ENDPOINTS: {
|
|
|
104
104
|
};
|
|
105
105
|
TV_SEASONS: {
|
|
106
106
|
DETAILS: string;
|
|
107
|
+
AGGREGATE_CREDITS: string;
|
|
108
|
+
CHANGES: string;
|
|
109
|
+
CREDITS: string;
|
|
110
|
+
EXTERNAL_IDS: string;
|
|
111
|
+
IMAGES: string;
|
|
112
|
+
TRANSLATIONS: string;
|
|
113
|
+
VIDEOS: string;
|
|
114
|
+
WATCH_PROVIDERS: string;
|
|
107
115
|
};
|
|
108
116
|
TV_EPISODES: {
|
|
109
117
|
DETAILS: string;
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIrB,CAAC"}
|
package/dist/routes.js
CHANGED
|
@@ -104,6 +104,14 @@ export const ENDPOINTS = {
|
|
|
104
104
|
},
|
|
105
105
|
TV_SEASONS: {
|
|
106
106
|
DETAILS: "/season",
|
|
107
|
+
AGGREGATE_CREDITS: "/aggregate_credits",
|
|
108
|
+
CHANGES: "/changes",
|
|
109
|
+
CREDITS: "/credits",
|
|
110
|
+
EXTERNAL_IDS: "/external_ids",
|
|
111
|
+
IMAGES: "/images",
|
|
112
|
+
TRANSLATIONS: "/translations",
|
|
113
|
+
VIDEOS: "/videos",
|
|
114
|
+
WATCH_PROVIDERS: "/watch/providers",
|
|
107
115
|
},
|
|
108
116
|
TV_EPISODES: {
|
|
109
117
|
DETAILS: "/episode",
|
package/dist/tmdb.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { TMDBOptions } from "./types/config";
|
|
|
19
19
|
import { NetworksAPI } from "./endpoints/networks";
|
|
20
20
|
import { TVEpisodesAPI } from "./endpoints/tv_episodes";
|
|
21
21
|
import { TVEpisodeGroupsAPI } from "./endpoints/tv_episode_groups";
|
|
22
|
+
import { TVSeasonsAPI } from "./endpoints/tv_seasons";
|
|
22
23
|
export declare class TMDB {
|
|
23
24
|
private client;
|
|
24
25
|
private options;
|
|
@@ -42,6 +43,7 @@ export declare class TMDB {
|
|
|
42
43
|
networks: NetworksAPI;
|
|
43
44
|
tv_episodes: TVEpisodesAPI;
|
|
44
45
|
tv_episode_groups: TVEpisodeGroupsAPI;
|
|
46
|
+
tv_seasons: TVSeasonsAPI;
|
|
45
47
|
/**
|
|
46
48
|
* Creates a new TMDB instance.
|
|
47
49
|
* @param accessToken The TMDB API access token.
|
package/dist/tmdb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmdb.d.ts","sourceRoot":"","sources":["../src/tmdb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"tmdb.d.ts","sourceRoot":"","sources":["../src/tmdb.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,qBAAa,IAAI;IAChB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAc;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,iBAAiB,CAAC;IACnC,cAAc,EAAE,iBAAiB,CAAC;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,UAAU,EAAE,YAAY,CAAC;IAGhC;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB;CA0B1D"}
|
package/dist/tmdb.js
CHANGED
|
@@ -21,6 +21,7 @@ import { ImageAPI } from "./images/images";
|
|
|
21
21
|
import { NetworksAPI } from "./endpoints/networks";
|
|
22
22
|
import { TVEpisodesAPI } from "./endpoints/tv_episodes";
|
|
23
23
|
import { TVEpisodeGroupsAPI } from "./endpoints/tv_episode_groups";
|
|
24
|
+
import { TVSeasonsAPI } from "./endpoints/tv_seasons";
|
|
24
25
|
export class TMDB {
|
|
25
26
|
client;
|
|
26
27
|
options; // ** Default options for all requests
|
|
@@ -44,6 +45,7 @@ export class TMDB {
|
|
|
44
45
|
networks;
|
|
45
46
|
tv_episodes;
|
|
46
47
|
tv_episode_groups;
|
|
48
|
+
tv_seasons;
|
|
47
49
|
// etc...
|
|
48
50
|
/**
|
|
49
51
|
* Creates a new TMDB instance.
|
|
@@ -54,7 +56,7 @@ export class TMDB {
|
|
|
54
56
|
if (!accessToken)
|
|
55
57
|
throw new Error(Errors.NO_ACCESS_TOKEN);
|
|
56
58
|
this.options = options;
|
|
57
|
-
this.client = new ApiClient(accessToken);
|
|
59
|
+
this.client = new ApiClient(accessToken, { logger: options.logger });
|
|
58
60
|
this.movies = new MoviesAPI(this.client, this.options);
|
|
59
61
|
this.movie_lists = new MovieListsAPI(this.client, this.options);
|
|
60
62
|
this.search = new SearchAPI(this.client, this.options);
|
|
@@ -75,5 +77,6 @@ export class TMDB {
|
|
|
75
77
|
this.networks = new NetworksAPI(this.client, this.options);
|
|
76
78
|
this.tv_episodes = new TVEpisodesAPI(this.client, this.options);
|
|
77
79
|
this.tv_episode_groups = new TVEpisodeGroupsAPI(this.client, this.options);
|
|
80
|
+
this.tv_seasons = new TVSeasonsAPI(this.client, this.options);
|
|
78
81
|
}
|
|
79
82
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TMDBLoggerFn } from "../../utils/logger";
|
|
1
2
|
import { CountryISO3166_1 } from "./countries";
|
|
2
3
|
import { ImagesConfig } from "./images";
|
|
3
4
|
import { Language } from "./languages";
|
|
@@ -26,5 +27,11 @@ export type TMDBOptions = {
|
|
|
26
27
|
* Read more: https://www.themoviedb.org/talk/54c554679251416eae010d6d
|
|
27
28
|
*/
|
|
28
29
|
timezone?: Timezone;
|
|
30
|
+
/**
|
|
31
|
+
* Enable request logging for debugging.
|
|
32
|
+
* - `true` uses a built-in console logger.
|
|
33
|
+
* - Pass a function to customize logging output.
|
|
34
|
+
*/
|
|
35
|
+
logger?: boolean | TMDBLoggerFn;
|
|
29
36
|
};
|
|
30
37
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/types/config/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/types/config/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;CAChC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cast, Crew, DateRange, ImageItem, ImagesResult, TranslationResults, VideoResults, WithLanguage, WithParams } from "./common";
|
|
2
|
+
import { TVAggregateCredits, TVBaseParam, TVEpisodeItem, TVExternalIDs } from "./tv-series";
|
|
3
|
+
import { MediaWatchProviders } from "./common/media";
|
|
4
|
+
import { NetworkItem } from "./networks";
|
|
5
|
+
import { LiteralUnion, Prettify } from "./utility";
|
|
2
6
|
/**
|
|
3
7
|
* Almost every query within the TV Series Seasons domain
|
|
4
8
|
* will take this required param to identify the
|
|
@@ -10,6 +14,119 @@ export type TVSeasonBaseParams = TVBaseParam & {
|
|
|
10
14
|
};
|
|
11
15
|
/** Uniquely identifies a season across different tv shows. */
|
|
12
16
|
export type TVSeasonId = {
|
|
13
|
-
season_id: string;
|
|
17
|
+
season_id: string | number;
|
|
14
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Represents a single episode within a TV season from the TMDB API.
|
|
21
|
+
* Extends {@link TVEpisodeItem} (rather than `TVEpisode`) with crew, guest stars, and episode type.
|
|
22
|
+
*
|
|
23
|
+
* NOTE: `TVEpisode` is intentionally not used here to avoid a circular dependency:
|
|
24
|
+
* `tv-episodes.ts` imports `TVSeasonBaseParams` from this file, so importing
|
|
25
|
+
* `TVEpisode` back would form a cycle. `TVEpisodeItem` carries the same scalar
|
|
26
|
+
* fields (including `show_id`) and produces an identical runtime shape.
|
|
27
|
+
*/
|
|
28
|
+
export type TVSeasonEpisode = TVEpisodeItem & {
|
|
29
|
+
/** Array of crew members for this episode */
|
|
30
|
+
crew: Crew[];
|
|
31
|
+
/** Episode type */
|
|
32
|
+
episode_type: LiteralUnion<"standard" | "finale">;
|
|
33
|
+
/** Array of guest stars in this episode */
|
|
34
|
+
guest_stars: Omit<Cast, "cast_id">[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Detailed information about a TV season returned by the TMDB API.
|
|
38
|
+
*/
|
|
39
|
+
export type TVSeason = {
|
|
40
|
+
/** ISO 8601 date when the season first aired */
|
|
41
|
+
air_date?: string | null;
|
|
42
|
+
/** Array of episodes in this season */
|
|
43
|
+
episodes: TVSeasonEpisode[];
|
|
44
|
+
/** Unique TMDB identifier for the season */
|
|
45
|
+
id: number;
|
|
46
|
+
/** Season name */
|
|
47
|
+
name: string;
|
|
48
|
+
/** Networks that broadcast this season */
|
|
49
|
+
networks: NetworkItem[];
|
|
50
|
+
/** Season overview/description */
|
|
51
|
+
overview: string;
|
|
52
|
+
/** Relative path to the season poster */
|
|
53
|
+
poster_path?: string | null;
|
|
54
|
+
/** Season number within the TV show */
|
|
55
|
+
season_number: number;
|
|
56
|
+
/** Average user rating (0–10) */
|
|
57
|
+
vote_average: number;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Available append-to-response options for TV season details.
|
|
61
|
+
* These allow fetching additional related data in a single API request.
|
|
62
|
+
*/
|
|
63
|
+
export type TVSeasonAppendToResponseNamespace = "aggregate_credits" | "credits" | "external_ids" | "images" | "translations" | "videos" | "watch_providers";
|
|
64
|
+
/**
|
|
65
|
+
* Maps append-to-response keys to their corresponding response types.
|
|
66
|
+
*/
|
|
67
|
+
export type TVSeasonAppendableMap = {
|
|
68
|
+
aggregate_credits: TVSeasonAggregateCredits;
|
|
69
|
+
credits: TVSeasonCredits;
|
|
70
|
+
external_ids: TVSeasonExternalIDs;
|
|
71
|
+
images: TVSeasonImages;
|
|
72
|
+
translations: TVSeasonTranslations;
|
|
73
|
+
videos: TVSeasonVideos;
|
|
74
|
+
watch_providers: MediaWatchProviders;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* TV season details with additional appended data based on the requested namespaces.
|
|
78
|
+
* @template T - Array of append-to-response namespace keys to include
|
|
79
|
+
*/
|
|
80
|
+
export type TVSeasonDetailsWithAppends<T extends readonly TVSeasonAppendToResponseNamespace[]> = TVSeason & {
|
|
81
|
+
[K in T[number]]: TVSeasonAppendableMap[K];
|
|
82
|
+
};
|
|
83
|
+
/** Aggregate cast and crew credits for a TV season across all its episodes. */
|
|
84
|
+
export type TVSeasonAggregateCredits = TVAggregateCredits;
|
|
85
|
+
/** Season change history, using the same structure as other TMDB change responses. */
|
|
86
|
+
export type TVSeasonChanges = import("./common").Changes;
|
|
87
|
+
/** Credits (cast & crew) for a TV season, mirroring the series-level credits shape. */
|
|
88
|
+
export type TVSeasonCredits = {
|
|
89
|
+
/** TMDB unique identifier */
|
|
90
|
+
id: number;
|
|
91
|
+
/** Cast members */
|
|
92
|
+
cast: Cast[];
|
|
93
|
+
/** Crew members */
|
|
94
|
+
crew: Crew[];
|
|
95
|
+
};
|
|
96
|
+
/** External platform identifiers for a TV season (subset of TV series external IDs). */
|
|
97
|
+
export type TVSeasonExternalIDs = Pick<TVExternalIDs, "id" | "freebase_mid" | "freebase_id" | "tvdb_id" | "tvrage_id" | "wikidata_id">;
|
|
98
|
+
/**
|
|
99
|
+
* Images associated with a TV season.
|
|
100
|
+
* Contains posters only.
|
|
101
|
+
*/
|
|
102
|
+
export type TVSeasonImages = ImagesResult<ImageItem, "posters">;
|
|
103
|
+
/** Translation data for a TV season. */
|
|
104
|
+
export type TVSeasonTranslationData = {
|
|
105
|
+
name?: string | null;
|
|
106
|
+
overview?: string | null;
|
|
107
|
+
};
|
|
108
|
+
/** Collection of all available translations for a TV season. */
|
|
109
|
+
export type TVSeasonTranslations = TranslationResults<TVSeasonTranslationData>;
|
|
110
|
+
/** Videos (trailers, teasers, clips) for a TV season. */
|
|
111
|
+
export type TVSeasonVideos = VideoResults;
|
|
112
|
+
/** Parameters for the season details endpoint. */
|
|
113
|
+
export type TVSeasonDetailsParams = Prettify<TVSeasonBaseParams & {
|
|
114
|
+
append_to_response?: TVSeasonAppendToResponseNamespace[];
|
|
115
|
+
} & WithParams<"language">>;
|
|
116
|
+
/** Parameters for the season aggregate credits endpoint. */
|
|
117
|
+
export type TVSeasonAggregateCreditsParams = TVSeasonBaseParams & WithLanguage;
|
|
118
|
+
/** Parameters for the season credits endpoint. */
|
|
119
|
+
export type TVSeasonCreditsParams = TVSeasonBaseParams & WithLanguage;
|
|
120
|
+
/** Parameters for the season images endpoint, with optional language filtering. */
|
|
121
|
+
export type TVSeasonImagesParams = TVSeasonBaseParams & WithLanguage & {
|
|
122
|
+
include_image_language?: string;
|
|
123
|
+
};
|
|
124
|
+
/** Parameters for the season videos endpoint, with optional language filtering. */
|
|
125
|
+
export type TVSeasonVideosParams = TVSeasonBaseParams & WithLanguage & {
|
|
126
|
+
include_video_language?: string;
|
|
127
|
+
};
|
|
128
|
+
/** Parameters for the season watch providers endpoint. */
|
|
129
|
+
export type TVSeasonWatchProvidersParams = TVSeasonBaseParams & WithLanguage;
|
|
130
|
+
/** Parameters for the season changes endpoint. */
|
|
131
|
+
export type TVSeasonChangesParams = TVSeasonId & Prettify<WithParams<"page"> & DateRange>;
|
|
15
132
|
//# sourceMappingURL=tv-seasons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tv-seasons.d.ts","sourceRoot":"","sources":["../../src/types/tv-seasons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tv-seasons.d.ts","sourceRoot":"","sources":["../../src/types/tv-seasons.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,19 +82,19 @@ export type TVEpisodeItem = {
|
|
|
82
82
|
/** The total number of votes received for the episode */
|
|
83
83
|
vote_count: number;
|
|
84
84
|
/** The date the episode first aired */
|
|
85
|
-
air_date
|
|
85
|
+
air_date?: string | null;
|
|
86
86
|
/** The episode number within its season */
|
|
87
87
|
episode_number: number;
|
|
88
88
|
/** The production code used internally during filming */
|
|
89
|
-
production_code
|
|
89
|
+
production_code?: string | null;
|
|
90
90
|
/** The runtime of the episode in minutes */
|
|
91
|
-
runtime
|
|
91
|
+
runtime?: number | null;
|
|
92
92
|
/** The season number this episode belongs to */
|
|
93
93
|
season_number: number;
|
|
94
94
|
/** The unique identifier of the TV show this episode belongs to */
|
|
95
95
|
show_id: number;
|
|
96
96
|
/** The path to the episode's still image (screenshot) */
|
|
97
|
-
still_path
|
|
97
|
+
still_path?: string | null;
|
|
98
98
|
};
|
|
99
99
|
export type TVSeasonItem = {
|
|
100
100
|
/** The date the season first aired, or null if not available */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tv-series.d.ts","sourceRoot":"","sources":["../../src/types/tv-series.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tv-series.d.ts","sourceRoot":"","sources":["../../src/types/tv-series.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./logger";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type TMDBLoggerEntry = {
|
|
2
|
+
type: "request" | "response" | "error";
|
|
3
|
+
method: "GET";
|
|
4
|
+
endpoint: string;
|
|
5
|
+
status?: number;
|
|
6
|
+
statusText?: string;
|
|
7
|
+
durationMs?: number;
|
|
8
|
+
tmdbStatusCode?: number;
|
|
9
|
+
errorMessage?: string;
|
|
10
|
+
};
|
|
11
|
+
export type TMDBLoggerFn = (entry: TMDBLoggerEntry) => void;
|
|
12
|
+
export declare class TMDBLogger {
|
|
13
|
+
private logger?;
|
|
14
|
+
constructor(logger?: TMDBLoggerFn);
|
|
15
|
+
static from(logger?: boolean | TMDBLoggerFn): TMDBLogger | undefined;
|
|
16
|
+
log(entry: TMDBLoggerEntry): void;
|
|
17
|
+
private static defaultLogger;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAE5D,qBAAa,UAAU;IACtB,OAAO,CAAC,MAAM,CAAC,CAAe;gBAElB,MAAM,CAAC,EAAE,YAAY;IAIjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS;IAOpE,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAUjC,OAAO,CAAC,MAAM,CAAC,aAAa;CAoB5B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class TMDBLogger {
|
|
2
|
+
logger;
|
|
3
|
+
constructor(logger) {
|
|
4
|
+
this.logger = logger;
|
|
5
|
+
}
|
|
6
|
+
static from(logger) {
|
|
7
|
+
if (!logger)
|
|
8
|
+
return undefined;
|
|
9
|
+
if (logger === true)
|
|
10
|
+
return new TMDBLogger(TMDBLogger.defaultLogger);
|
|
11
|
+
if (typeof logger === "function")
|
|
12
|
+
return new TMDBLogger(logger);
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
log(entry) {
|
|
16
|
+
if (!this.logger)
|
|
17
|
+
return;
|
|
18
|
+
try {
|
|
19
|
+
this.logger(entry);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
// Avoid breaking requests if the logger throws.
|
|
23
|
+
console.warn(`TMDB logger error: ${error}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static defaultLogger(entry) {
|
|
27
|
+
const prefix = "🎬 [tmdb]";
|
|
28
|
+
const timestamp = new Date().toISOString();
|
|
29
|
+
if (entry.type === "request") {
|
|
30
|
+
console.log(`${prefix} ${timestamp} 🛰️ REQUEST ${entry.method} ${entry.endpoint}\n`);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (entry.type === "response") {
|
|
34
|
+
console.log(`${prefix} ${timestamp} ✅ RESPONSE ${entry.method} ${entry.status} ${entry.statusText} ${entry.endpoint} (${entry.durationMs}ms)\n`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const statusPart = entry.status != null ? `${entry.status} ${entry.statusText}` : "NETWORK ERROR";
|
|
38
|
+
const tmdbPart = entry.tmdbStatusCode != null ? ` (tmdb: ${entry.tmdbStatusCode})` : "";
|
|
39
|
+
console.log(`${prefix} ${timestamp} ❌ ${entry.method} ${statusPart} ${entry.endpoint} - ${entry.errorMessage}${tmdbPart}\n`);
|
|
40
|
+
}
|
|
41
|
+
}
|
package/package.json
CHANGED