@tdanks2000/tmdb-wrapper 1.1.0 → 1.1.2
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/LICENSE +21 -0
- package/dist/@types/endpoints/configuration.js +99 -0
- package/dist/@types/models/baseEndpoint.js +3 -3
- package/dist/endpoints/account.js +3 -13
- package/dist/endpoints/certification.js +4 -17
- package/dist/endpoints/changes.js +6 -21
- package/dist/endpoints/collections.js +11 -27
- package/dist/endpoints/companies.js +6 -21
- package/dist/endpoints/configuration.js +2 -13
- package/dist/endpoints/credits.js +2 -13
- package/dist/endpoints/discover.js +6 -18
- package/dist/endpoints/find.js +3 -13
- package/dist/endpoints/genre.js +4 -17
- package/dist/endpoints/keywords.js +6 -18
- package/dist/endpoints/movies.js +51 -99
- package/dist/endpoints/networks.js +6 -21
- package/dist/endpoints/people.js +30 -58
- package/dist/endpoints/review.js +3 -13
- package/dist/endpoints/search.js +15 -38
- package/dist/endpoints/trending.js +3 -13
- package/dist/endpoints/tvEpisodes.js +29 -48
- package/dist/endpoints/tvSeasons.js +31 -52
- package/dist/endpoints/tvShows.js +61 -116
- package/dist/endpoints/watchProviders.js +9 -26
- package/dist/index.js +22 -22
- package/dist/utils/api.js +49 -27
- package/dist/utils/getimagePath.js +13 -13
- package/package.json +61 -57
- package/dist/@types/endpoints/account.d.ts +0 -16
- package/dist/@types/endpoints/account.d.ts.map +0 -1
- package/dist/@types/endpoints/certification.d.ts +0 -19
- package/dist/@types/endpoints/certification.d.ts.map +0 -1
- package/dist/@types/endpoints/changes.d.ts +0 -26
- package/dist/@types/endpoints/changes.d.ts.map +0 -1
- package/dist/@types/endpoints/collection.d.ts +0 -21
- package/dist/@types/endpoints/collection.d.ts.map +0 -1
- package/dist/@types/endpoints/companies.d.ts +0 -29
- package/dist/@types/endpoints/companies.d.ts.map +0 -1
- package/dist/@types/endpoints/configuration.d.ts +0 -106
- package/dist/@types/endpoints/configuration.d.ts.map +0 -1
- package/dist/@types/endpoints/credits.d.ts +0 -135
- package/dist/@types/endpoints/credits.d.ts.map +0 -1
- package/dist/@types/endpoints/discover.d.ts +0 -68
- package/dist/@types/endpoints/discover.d.ts.map +0 -1
- package/dist/@types/endpoints/find.d.ts +0 -20
- package/dist/@types/endpoints/find.d.ts.map +0 -1
- package/dist/@types/endpoints/genre.d.ts +0 -7
- package/dist/@types/endpoints/genre.d.ts.map +0 -1
- package/dist/@types/endpoints/index.d.ts +0 -23
- package/dist/@types/endpoints/index.d.ts.map +0 -1
- package/dist/@types/endpoints/keywords.d.ts +0 -21
- package/dist/@types/endpoints/keywords.d.ts.map +0 -1
- package/dist/@types/endpoints/movies.d.ts +0 -150
- package/dist/@types/endpoints/movies.d.ts.map +0 -1
- package/dist/@types/endpoints/networks.d.ts +0 -14
- package/dist/@types/endpoints/networks.d.ts.map +0 -1
- package/dist/@types/endpoints/options.d.ts +0 -73
- package/dist/@types/endpoints/options.d.ts.map +0 -1
- package/dist/@types/endpoints/people.d.ts +0 -135
- package/dist/@types/endpoints/people.d.ts.map +0 -1
- package/dist/@types/endpoints/review.d.ts +0 -8
- package/dist/@types/endpoints/review.d.ts.map +0 -1
- package/dist/@types/endpoints/search.d.ts +0 -32
- package/dist/@types/endpoints/search.d.ts.map +0 -1
- package/dist/@types/endpoints/trending.d.ts +0 -12
- package/dist/@types/endpoints/trending.d.ts.map +0 -1
- package/dist/@types/endpoints/tvEpisode.d.ts +0 -65
- package/dist/@types/endpoints/tvEpisode.d.ts.map +0 -1
- package/dist/@types/endpoints/tvSeasons.d.ts +0 -31
- package/dist/@types/endpoints/tvSeasons.d.ts.map +0 -1
- package/dist/@types/endpoints/tvShows.d.ts +0 -260
- package/dist/@types/endpoints/tvShows.d.ts.map +0 -1
- package/dist/@types/endpoints/watchProviders.d.ts +0 -295
- package/dist/@types/endpoints/watchProviders.d.ts.map +0 -1
- package/dist/@types/index.d.ts +0 -4
- package/dist/@types/index.d.ts.map +0 -1
- package/dist/@types/models/baseEndpoint.d.ts +0 -7
- package/dist/@types/models/baseEndpoint.d.ts.map +0 -1
- package/dist/@types/models/index.d.ts +0 -2
- package/dist/@types/models/index.d.ts.map +0 -1
- package/dist/@types/types.d.ts +0 -174
- package/dist/@types/types.d.ts.map +0 -1
- package/dist/endpoints/account.d.ts +0 -17
- package/dist/endpoints/account.d.ts.map +0 -1
- package/dist/endpoints/certification.d.ts +0 -23
- package/dist/endpoints/certification.d.ts.map +0 -1
- package/dist/endpoints/changes.d.ts +0 -31
- package/dist/endpoints/changes.d.ts.map +0 -1
- package/dist/endpoints/collections.d.ts +0 -34
- package/dist/endpoints/collections.d.ts.map +0 -1
- package/dist/endpoints/companies.d.ts +0 -31
- package/dist/endpoints/companies.d.ts.map +0 -1
- package/dist/endpoints/configuration.d.ts +0 -18
- package/dist/endpoints/configuration.d.ts.map +0 -1
- package/dist/endpoints/credits.d.ts +0 -19
- package/dist/endpoints/credits.d.ts.map +0 -1
- package/dist/endpoints/discover.d.ts +0 -24
- package/dist/endpoints/discover.d.ts.map +0 -1
- package/dist/endpoints/find.d.ts +0 -19
- package/dist/endpoints/find.d.ts.map +0 -1
- package/dist/endpoints/genre.d.ts +0 -25
- package/dist/endpoints/genre.d.ts.map +0 -1
- package/dist/endpoints/index.d.ts +0 -22
- package/dist/endpoints/index.d.ts.map +0 -1
- package/dist/endpoints/keywords.d.ts +0 -25
- package/dist/endpoints/keywords.d.ts.map +0 -1
- package/dist/endpoints/movies.d.ts +0 -142
- package/dist/endpoints/movies.d.ts.map +0 -1
- package/dist/endpoints/networks.d.ts +0 -31
- package/dist/endpoints/networks.d.ts.map +0 -1
- package/dist/endpoints/people.d.ts +0 -84
- package/dist/endpoints/people.d.ts.map +0 -1
- package/dist/endpoints/review.d.ts +0 -18
- package/dist/endpoints/review.d.ts.map +0 -1
- package/dist/endpoints/search.d.ts +0 -58
- package/dist/endpoints/search.d.ts.map +0 -1
- package/dist/endpoints/trending.d.ts +0 -21
- package/dist/endpoints/trending.d.ts.map +0 -1
- package/dist/endpoints/tvEpisodes.d.ts +0 -61
- package/dist/endpoints/tvEpisodes.d.ts.map +0 -1
- package/dist/endpoints/tvSeasons.d.ts +0 -70
- package/dist/endpoints/tvSeasons.d.ts.map +0 -1
- package/dist/endpoints/tvShows.d.ts +0 -164
- package/dist/endpoints/tvShows.d.ts.map +0 -1
- package/dist/endpoints/watchProviders.d.ts +0 -33
- package/dist/endpoints/watchProviders.d.ts.map +0 -1
- package/dist/index.d.ts +0 -29
- package/dist/index.d.ts.map +0 -1
- package/dist/utils/api.d.ts +0 -7
- package/dist/utils/api.d.ts.map +0 -1
- package/dist/utils/getimagePath.d.ts +0 -32
- package/dist/utils/getimagePath.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.WatchProvidersEndpoint = void 0;
|
|
13
4
|
const _types_1 = require("../@types");
|
|
@@ -27,37 +18,29 @@ class WatchProvidersEndpoint extends _types_1.BaseEndpoint {
|
|
|
27
18
|
* Retrieves a list of all available watch providers (streaming services).
|
|
28
19
|
* @returns {Promise<WatchProviders>} A Promise that resolves with the list of watch providers.
|
|
29
20
|
*/
|
|
30
|
-
available() {
|
|
31
|
-
return
|
|
32
|
-
return yield this.api.get('/watch/providers/movie');
|
|
33
|
-
});
|
|
21
|
+
async available() {
|
|
22
|
+
return await this.api.get("/watch/providers/movie");
|
|
34
23
|
}
|
|
35
24
|
/**
|
|
36
25
|
* Retrieves a list of available regions for watch providers.
|
|
37
|
-
* @returns {Promise<
|
|
26
|
+
* @returns {Promise<WatchRegionsResponse>} A Promise that resolves with the list of available regions.
|
|
38
27
|
*/
|
|
39
|
-
regions() {
|
|
40
|
-
return
|
|
41
|
-
return yield this.api.get('/watch/providers/regions');
|
|
42
|
-
});
|
|
28
|
+
async regions() {
|
|
29
|
+
return await this.api.get("/watch/providers/regions");
|
|
43
30
|
}
|
|
44
31
|
/**
|
|
45
32
|
* Retrieves a list of watch providers for movies.
|
|
46
33
|
* @returns {Promise<WatchProviders>} A Promise that resolves with the list of movie watch providers.
|
|
47
34
|
*/
|
|
48
|
-
movie() {
|
|
49
|
-
return
|
|
50
|
-
return yield this.api.get('/watch/providers/movie');
|
|
51
|
-
});
|
|
35
|
+
async movie() {
|
|
36
|
+
return await this.api.get("/watch/providers/movie");
|
|
52
37
|
}
|
|
53
38
|
/**
|
|
54
39
|
* Retrieves a list of watch providers for TV shows.
|
|
55
40
|
* @returns {Promise<WatchProviders>} A Promise that resolves with the list of TV watch providers.
|
|
56
41
|
*/
|
|
57
|
-
tv() {
|
|
58
|
-
return
|
|
59
|
-
return yield this.api.get('/watch/providers/tv');
|
|
60
|
-
});
|
|
42
|
+
async tv() {
|
|
43
|
+
return await this.api.get("/watch/providers/tv");
|
|
61
44
|
}
|
|
62
45
|
}
|
|
63
46
|
exports.WatchProvidersEndpoint = WatchProvidersEndpoint;
|
package/dist/index.js
CHANGED
|
@@ -17,28 +17,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.TMDB = void 0;
|
|
18
18
|
const endpoints_1 = require("./endpoints");
|
|
19
19
|
class TMDB {
|
|
20
|
-
constructor(
|
|
21
|
-
this.account = new endpoints_1.AccountEndpoint(
|
|
22
|
-
this.certification = new endpoints_1.CertificationEndpoint(
|
|
23
|
-
this.changes = new endpoints_1.ChangeEndpoint(
|
|
24
|
-
this.collections = new endpoints_1.CollectionsEndpoint(
|
|
25
|
-
this.companies = new endpoints_1.CompaniesEndpoint(
|
|
26
|
-
this.configuration = new endpoints_1.ConfigurationEndpoint(
|
|
27
|
-
this.credits = new endpoints_1.CreditsEndpoint(
|
|
28
|
-
this.discover = new endpoints_1.DiscoverEndpoint(
|
|
29
|
-
this.find = new endpoints_1.FindEndpoint(
|
|
30
|
-
this.genre = new endpoints_1.GenreEndpoint(
|
|
31
|
-
this.keywords = new endpoints_1.KeywordsEndpoint(
|
|
32
|
-
this.movies = new endpoints_1.MoviesEndpoint(
|
|
33
|
-
this.networks = new endpoints_1.NetworksEndpoint(
|
|
34
|
-
this.people = new endpoints_1.PeopleEndpoint(
|
|
35
|
-
this.review = new endpoints_1.ReviewEndpoint(
|
|
36
|
-
this.search = new endpoints_1.SearchEndpoint(
|
|
37
|
-
this.trending = new endpoints_1.TrendingEndpoint(
|
|
38
|
-
this.tvEpisodes = new endpoints_1.TvEpisodesEndpoint(
|
|
39
|
-
this.tvSeasons = new endpoints_1.TvSeasonsEndpoint(
|
|
40
|
-
this.tvShows = new endpoints_1.TvShowsEndpoint(
|
|
41
|
-
this.watchProviders = new endpoints_1.WatchProvidersEndpoint(
|
|
20
|
+
constructor(auth) {
|
|
21
|
+
this.account = new endpoints_1.AccountEndpoint(auth);
|
|
22
|
+
this.certification = new endpoints_1.CertificationEndpoint(auth);
|
|
23
|
+
this.changes = new endpoints_1.ChangeEndpoint(auth);
|
|
24
|
+
this.collections = new endpoints_1.CollectionsEndpoint(auth);
|
|
25
|
+
this.companies = new endpoints_1.CompaniesEndpoint(auth);
|
|
26
|
+
this.configuration = new endpoints_1.ConfigurationEndpoint(auth);
|
|
27
|
+
this.credits = new endpoints_1.CreditsEndpoint(auth);
|
|
28
|
+
this.discover = new endpoints_1.DiscoverEndpoint(auth);
|
|
29
|
+
this.find = new endpoints_1.FindEndpoint(auth);
|
|
30
|
+
this.genre = new endpoints_1.GenreEndpoint(auth);
|
|
31
|
+
this.keywords = new endpoints_1.KeywordsEndpoint(auth);
|
|
32
|
+
this.movies = new endpoints_1.MoviesEndpoint(auth);
|
|
33
|
+
this.networks = new endpoints_1.NetworksEndpoint(auth);
|
|
34
|
+
this.people = new endpoints_1.PeopleEndpoint(auth);
|
|
35
|
+
this.review = new endpoints_1.ReviewEndpoint(auth);
|
|
36
|
+
this.search = new endpoints_1.SearchEndpoint(auth);
|
|
37
|
+
this.trending = new endpoints_1.TrendingEndpoint(auth);
|
|
38
|
+
this.tvEpisodes = new endpoints_1.TvEpisodesEndpoint(auth);
|
|
39
|
+
this.tvSeasons = new endpoints_1.TvSeasonsEndpoint(auth);
|
|
40
|
+
this.tvShows = new endpoints_1.TvShowsEndpoint(auth);
|
|
41
|
+
this.watchProviders = new endpoints_1.WatchProvidersEndpoint(auth);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
exports.TMDB = TMDB;
|
package/dist/utils/api.js
CHANGED
|
@@ -1,39 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.parseOptions = exports.API = void 0;
|
|
13
|
-
const BASE_URL_V3 =
|
|
4
|
+
const BASE_URL_V3 = "https://api.themoviedb.org/3";
|
|
14
5
|
class API {
|
|
15
|
-
constructor(
|
|
16
|
-
|
|
6
|
+
constructor(auth) {
|
|
7
|
+
if (typeof auth === "string") {
|
|
8
|
+
this.accessToken = auth;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
this.apiKey = auth.apiKey;
|
|
12
|
+
this.accessToken = auth.accessToken;
|
|
13
|
+
}
|
|
17
14
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Generic GET:
|
|
17
|
+
* @template T — response type
|
|
18
|
+
* @template O — options (query params) type
|
|
19
|
+
*/
|
|
20
|
+
async get(path, options) {
|
|
21
|
+
const rawOptions = {
|
|
22
|
+
...(options ?? {}),
|
|
23
|
+
...(this.apiKey ? { api_key: this.apiKey } : {}),
|
|
24
|
+
};
|
|
25
|
+
const params = (0, exports.parseOptions)(rawOptions);
|
|
26
|
+
const response = await fetch(`${BASE_URL_V3}${path}?${params}`, {
|
|
27
|
+
method: "GET",
|
|
28
|
+
headers: {
|
|
29
|
+
...(this.accessToken
|
|
30
|
+
? { Authorization: `Bearer ${this.accessToken}` }
|
|
31
|
+
: {}),
|
|
32
|
+
"Content-Type": "application/json;charset=utf-8",
|
|
33
|
+
},
|
|
32
34
|
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
const error = (await response.json());
|
|
37
|
+
return Promise.reject(error);
|
|
38
|
+
}
|
|
39
|
+
return (await response.json());
|
|
33
40
|
}
|
|
34
41
|
}
|
|
35
42
|
exports.API = API;
|
|
36
43
|
const parseOptions = (options) => {
|
|
37
|
-
|
|
44
|
+
if (!options)
|
|
45
|
+
return "";
|
|
46
|
+
const entries = [];
|
|
47
|
+
for (const [key, value] of Object.entries(options)) {
|
|
48
|
+
if (value === undefined || value === null)
|
|
49
|
+
continue;
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
for (const item of value) {
|
|
52
|
+
entries.push([key, String(item)]);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
entries.push([key, String(value)]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return new URLSearchParams(entries).toString();
|
|
38
60
|
};
|
|
39
61
|
exports.parseOptions = parseOptions;
|
|
@@ -14,17 +14,17 @@ exports.ImageFormats = exports.ImageSizes = exports.getFullImagePath = void 0;
|
|
|
14
14
|
*/
|
|
15
15
|
const getFullImagePath = (baseUrl, fileSize, imagePath, format) => {
|
|
16
16
|
if (!imagePath)
|
|
17
|
-
return
|
|
17
|
+
return "";
|
|
18
18
|
// Handle case where imagePath doesn't have an extension
|
|
19
|
-
const hasExtension = imagePath.includes(
|
|
19
|
+
const hasExtension = imagePath.includes(".");
|
|
20
20
|
if (hasExtension) {
|
|
21
|
-
const imagePathArr = imagePath.split(
|
|
21
|
+
const imagePathArr = imagePath.split(".");
|
|
22
22
|
const imageFormat = format || imagePathArr[1];
|
|
23
23
|
return `${baseUrl}${fileSize}${imagePathArr[0]}.${imageFormat}`;
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
26
26
|
// If no extension in path, use provided format or default to jpg
|
|
27
|
-
const imageFormat = format ||
|
|
27
|
+
const imageFormat = format || "jpg";
|
|
28
28
|
return `${baseUrl}${fileSize}${imagePath}.${imageFormat}`;
|
|
29
29
|
}
|
|
30
30
|
};
|
|
@@ -33,18 +33,18 @@ exports.getFullImagePath = getFullImagePath;
|
|
|
33
33
|
* Common image sizes available in TMDB
|
|
34
34
|
*/
|
|
35
35
|
exports.ImageSizes = {
|
|
36
|
-
ORIGINAL:
|
|
37
|
-
W500:
|
|
38
|
-
W300:
|
|
39
|
-
W185:
|
|
40
|
-
W92:
|
|
41
|
-
H632:
|
|
36
|
+
ORIGINAL: "original",
|
|
37
|
+
W500: "w500",
|
|
38
|
+
W300: "w300",
|
|
39
|
+
W185: "w185",
|
|
40
|
+
W92: "w92",
|
|
41
|
+
H632: "h632",
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Image formats supported by TMDB
|
|
45
45
|
*/
|
|
46
46
|
exports.ImageFormats = {
|
|
47
|
-
JPG:
|
|
48
|
-
PNG:
|
|
49
|
-
SVG:
|
|
47
|
+
JPG: "jpg",
|
|
48
|
+
PNG: "png",
|
|
49
|
+
SVG: "svg",
|
|
50
50
|
};
|
package/package.json
CHANGED
|
@@ -1,59 +1,63 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
2
|
+
"name": "@tdanks2000/tmdb-wrapper",
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "A powerful and easy-to-use TypeScript wrapper for The Movie Database (TMDb) API",
|
|
5
|
+
"module": "./src/index.ts",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/tdanks2000/tmdb-wrapper.git"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/tdanks2000/tmdb-wrapper#readme",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/tdanks2000/tmdb-wrapper/issues"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/**/*",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"tmdb",
|
|
26
|
+
"tmdbWrapper",
|
|
27
|
+
"tmdb wrapper",
|
|
28
|
+
"tmdb-wrapper",
|
|
29
|
+
"api wrapper",
|
|
30
|
+
"node",
|
|
31
|
+
"typescript",
|
|
32
|
+
"movies",
|
|
33
|
+
"tv shows",
|
|
34
|
+
"movie database",
|
|
35
|
+
"themoviedb",
|
|
36
|
+
"tmdb api",
|
|
37
|
+
"entertainment",
|
|
38
|
+
"media"
|
|
39
|
+
],
|
|
40
|
+
"engines": {
|
|
41
|
+
"node": ">=16"
|
|
42
|
+
},
|
|
43
|
+
"author": "TDanks2000",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"private": false,
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsc",
|
|
48
|
+
"release": "npm run build && npm version patch && npm publish",
|
|
49
|
+
"release:minor": "npm run build && npm version minor && npm publish",
|
|
50
|
+
"release:major": "npm run build && npm version major && npm publish",
|
|
51
|
+
"preversion": "npm run build",
|
|
52
|
+
"check": "biome check .",
|
|
53
|
+
"check:unsafe": "biome check --write --unsafe .",
|
|
54
|
+
"check:write": "biome check --write ."
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@biomejs/biome": "^2.0.0-beta.2",
|
|
58
|
+
"@types/node": "^22.15.3",
|
|
59
|
+
"ts-node": "^10.9.2",
|
|
60
|
+
"tsc-alias": "^1.8.15",
|
|
61
|
+
"typescript": "^5.8.3"
|
|
62
|
+
}
|
|
59
63
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface Gravatar {
|
|
2
|
-
hash: string;
|
|
3
|
-
}
|
|
4
|
-
export interface Avatar {
|
|
5
|
-
gravatar: Gravatar;
|
|
6
|
-
}
|
|
7
|
-
export interface AccountDetails {
|
|
8
|
-
avatar: Avatar;
|
|
9
|
-
id: number;
|
|
10
|
-
include_adult: boolean;
|
|
11
|
-
iso_3166_1: string;
|
|
12
|
-
iso_639_1: string;
|
|
13
|
-
name: string;
|
|
14
|
-
username: string;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=account.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/account.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface Certification {
|
|
2
|
-
certification: string;
|
|
3
|
-
meaning: string;
|
|
4
|
-
order: number;
|
|
5
|
-
}
|
|
6
|
-
export interface Certifications {
|
|
7
|
-
certifications: {
|
|
8
|
-
US: Certification[];
|
|
9
|
-
CA: Certification[];
|
|
10
|
-
DE: Certification[];
|
|
11
|
-
GB: Certification[];
|
|
12
|
-
AU: Certification[];
|
|
13
|
-
BR: Certification[];
|
|
14
|
-
FR: Certification[];
|
|
15
|
-
NZ: Certification[];
|
|
16
|
-
IN: Certification[];
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=certification.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"certification.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/certification.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE;QACd,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;QACpB,EAAE,EAAE,aAAa,EAAE,CAAC;KACrB,CAAC;CACH"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export interface MediaChange {
|
|
2
|
-
id: number;
|
|
3
|
-
adult: boolean | undefined;
|
|
4
|
-
}
|
|
5
|
-
export interface MediaChanges {
|
|
6
|
-
results: MediaChange[];
|
|
7
|
-
page: number;
|
|
8
|
-
total_pages: number;
|
|
9
|
-
total_results: number;
|
|
10
|
-
}
|
|
11
|
-
export interface Changes<T> {
|
|
12
|
-
changes: Change<T>[];
|
|
13
|
-
}
|
|
14
|
-
export interface Change<T> {
|
|
15
|
-
key: string;
|
|
16
|
-
items: ChangeItem<T>[];
|
|
17
|
-
}
|
|
18
|
-
export interface ChangeItem<T> {
|
|
19
|
-
id: string;
|
|
20
|
-
action: string;
|
|
21
|
-
time: string;
|
|
22
|
-
value: T;
|
|
23
|
-
iso_639_1: string;
|
|
24
|
-
original_value: T;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=changes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/changes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,CAAC,CAAC;CACnB"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { LanguageOption, Movie } from '..';
|
|
2
|
-
export interface Collection {
|
|
3
|
-
id: number;
|
|
4
|
-
backdrop_path: string;
|
|
5
|
-
name: string;
|
|
6
|
-
poster_path: string;
|
|
7
|
-
adult: boolean;
|
|
8
|
-
original_language: string;
|
|
9
|
-
original_name: string;
|
|
10
|
-
overview: string;
|
|
11
|
-
}
|
|
12
|
-
export interface DetailedCollection extends Collection {
|
|
13
|
-
parts: Movie[];
|
|
14
|
-
}
|
|
15
|
-
export interface CollectionImageOptions extends LanguageOption {
|
|
16
|
-
/**
|
|
17
|
-
* a list of ISO-639-1 values to query
|
|
18
|
-
*/
|
|
19
|
-
include_image_language?: string[];
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Image } from '..';
|
|
2
|
-
export interface CompanyDetails {
|
|
3
|
-
description: string;
|
|
4
|
-
headquarters: string;
|
|
5
|
-
homepage: string;
|
|
6
|
-
id: number;
|
|
7
|
-
logo_path: string;
|
|
8
|
-
name: string;
|
|
9
|
-
origin_country: string;
|
|
10
|
-
parent_company: ParentCompany;
|
|
11
|
-
}
|
|
12
|
-
export interface ParentCompany {
|
|
13
|
-
name: string;
|
|
14
|
-
id: number;
|
|
15
|
-
logo_path: string;
|
|
16
|
-
}
|
|
17
|
-
export interface AlternativeNames {
|
|
18
|
-
id: number;
|
|
19
|
-
results: Name[];
|
|
20
|
-
}
|
|
21
|
-
export interface Name {
|
|
22
|
-
name: string;
|
|
23
|
-
type: string;
|
|
24
|
-
}
|
|
25
|
-
export interface CompanyImages {
|
|
26
|
-
id: number;
|
|
27
|
-
logos: Image[];
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=companies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"companies.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/companies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
export interface ImageConfiguration {
|
|
2
|
-
base_url: string;
|
|
3
|
-
secure_base_url: string;
|
|
4
|
-
backdrop_sizes: BackdropSizes[];
|
|
5
|
-
logo_sizes: LogoSizes[];
|
|
6
|
-
poster_sizes: PosterSizes[];
|
|
7
|
-
profile_sizes: ProfileSizes[];
|
|
8
|
-
still_sizes: StillSizes[];
|
|
9
|
-
}
|
|
10
|
-
export interface Configuration {
|
|
11
|
-
images: ImageConfiguration;
|
|
12
|
-
change_keys: ChangeKeys[];
|
|
13
|
-
}
|
|
14
|
-
export declare const enum BackdropSizes {
|
|
15
|
-
W300 = "w300",
|
|
16
|
-
W500 = "w500",
|
|
17
|
-
W780 = "w780",
|
|
18
|
-
W1280 = "w1280",
|
|
19
|
-
ORIGINAL = "original"
|
|
20
|
-
}
|
|
21
|
-
export declare const enum LogoSizes {
|
|
22
|
-
W45 = "w45",
|
|
23
|
-
W92 = "w92",
|
|
24
|
-
W154 = "w154",
|
|
25
|
-
W185 = "w185",
|
|
26
|
-
W300 = "w300",
|
|
27
|
-
W500 = "w500",
|
|
28
|
-
ORIGINAL = "original"
|
|
29
|
-
}
|
|
30
|
-
export declare const enum PosterSizes {
|
|
31
|
-
W92 = "w92",
|
|
32
|
-
W154 = "w154",
|
|
33
|
-
W185 = "w185",
|
|
34
|
-
W300 = "w300",
|
|
35
|
-
W500 = "w500",
|
|
36
|
-
W780 = "w780",
|
|
37
|
-
ORIGINAL = "original"
|
|
38
|
-
}
|
|
39
|
-
export declare const enum ProfileSizes {
|
|
40
|
-
W45 = "w45",
|
|
41
|
-
W185 = "w185",
|
|
42
|
-
W632 = "w632",
|
|
43
|
-
ORIGINAL = "original"
|
|
44
|
-
}
|
|
45
|
-
export declare const enum StillSizes {
|
|
46
|
-
W92 = "w92",
|
|
47
|
-
W185 = "w185",
|
|
48
|
-
W300 = "w300",
|
|
49
|
-
ORIGINAL = "original"
|
|
50
|
-
}
|
|
51
|
-
export declare const enum ChangeKeys {
|
|
52
|
-
ADULT = "adult",
|
|
53
|
-
AIR_DATE = "air_date",
|
|
54
|
-
ALSO_KNOWN_AS = "also_known_as",
|
|
55
|
-
ALTERNATIVE_TITLES = "alternative_titles",
|
|
56
|
-
BIOGRAPHY = "biography",
|
|
57
|
-
BIRTHDAY = "birthday",
|
|
58
|
-
BUDGET = "budget",
|
|
59
|
-
CAST = "cast",
|
|
60
|
-
CERTIFICATIONS = "certifications",
|
|
61
|
-
CHARACTER_NAMES = "character_names",
|
|
62
|
-
CREATED_BY = "created_by",
|
|
63
|
-
CREW = "crew",
|
|
64
|
-
DEATHDAY = "deathday",
|
|
65
|
-
EPISODE = "episode",
|
|
66
|
-
EPISODE_NUMBER = "episode_number",
|
|
67
|
-
EPISODE_RUN_TIME = "episode_run_time",
|
|
68
|
-
FREEBASE_ID = "freebase_id",
|
|
69
|
-
FREEBASE_MID = "freebase_mid",
|
|
70
|
-
GENERAL = "general",
|
|
71
|
-
GENRES = "genres",
|
|
72
|
-
GUEST_STARS = "guest_stars",
|
|
73
|
-
HOMEPAGE = "homepage",
|
|
74
|
-
IMAGES = "images",
|
|
75
|
-
IMDB_ID = "imdb_id",
|
|
76
|
-
LANGUAGES = "languages",
|
|
77
|
-
NAME = "name",
|
|
78
|
-
NETWORK = "network",
|
|
79
|
-
ORIGIN_COUNTRY = "origin_country",
|
|
80
|
-
ORIGINAL_NAME = "original_name",
|
|
81
|
-
ORIGINAL_TITLE = "original_title",
|
|
82
|
-
OVERVIEW = "overview",
|
|
83
|
-
PARTS = "parts",
|
|
84
|
-
PLACE_OF_BIRTH = "place_of_birth",
|
|
85
|
-
PLOT_KEYWORDS = "plot_keywords",
|
|
86
|
-
PRODUCTION_CODE = "production_code",
|
|
87
|
-
PRODUCTION_COMPANIES = "production_companies",
|
|
88
|
-
PRODUCTION_COUNTRIES = "production_countries",
|
|
89
|
-
RELEASES = "releases",
|
|
90
|
-
REVENUE = "revenue",
|
|
91
|
-
RUNTIME = "runtime",
|
|
92
|
-
SEASON = "season",
|
|
93
|
-
SEASON_NUMBER = "season_number",
|
|
94
|
-
SEASON_REGULAR = "season_regular",
|
|
95
|
-
SPOKEN_LANGUAGES = "spoken_languages",
|
|
96
|
-
STATUS = "status",
|
|
97
|
-
TAGLINE = "tagline",
|
|
98
|
-
TITLE = "title",
|
|
99
|
-
TRANSLATIONS = "translations",
|
|
100
|
-
TVDB_ID = "tvdb_id",
|
|
101
|
-
TVRAGE_ID = "tvrage_id",
|
|
102
|
-
TYPE = "type",
|
|
103
|
-
VIDEO = "video",
|
|
104
|
-
VIDEOS = "videos"
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/@types/endpoints/configuration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,0BAAkB,aAAa;IAC7B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED,0BAAkB,SAAS;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,0BAAkB,WAAW;IAC3B,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,0BAAkB,YAAY;IAC5B,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,0BAAkB,UAAU;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,0BAAkB,UAAU;IAC1B,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IACzC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;CAClB"}
|