@media-engine/providers 1.11.3 → 1.13.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.
Files changed (55) hide show
  1. package/README.md +24 -5
  2. package/README.ru.md +14 -5
  3. package/dist/aniliberty-streaming/index.js +7 -5
  4. package/dist/aniliberty-streaming/index.js.map +1 -1
  5. package/dist/aniliberty-streaming/mapping.js +21 -8
  6. package/dist/aniliberty-streaming/mapping.js.map +1 -1
  7. package/dist/anilist/index.js +1 -0
  8. package/dist/anilist/index.js.map +1 -1
  9. package/dist/cinemeta/index.js +1 -0
  10. package/dist/cinemeta/index.js.map +1 -1
  11. package/dist/identity/anime.js +1 -1
  12. package/dist/identity/anime.js.map +1 -1
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.js +3 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/kinobd/index.js +1 -0
  17. package/dist/kinobd/index.js.map +1 -1
  18. package/dist/kinobd-streaming/players.js +5 -0
  19. package/dist/kinobd-streaming/players.js.map +1 -1
  20. package/dist/kodik-streaming/client.d.ts +40 -0
  21. package/dist/kodik-streaming/client.js +209 -0
  22. package/dist/kodik-streaming/client.js.map +1 -0
  23. package/dist/kodik-streaming/config.d.ts +26 -0
  24. package/dist/kodik-streaming/config.js +58 -0
  25. package/dist/kodik-streaming/config.js.map +1 -0
  26. package/dist/kodik-streaming/index.d.ts +4 -0
  27. package/dist/kodik-streaming/index.js +54 -0
  28. package/dist/kodik-streaming/index.js.map +1 -0
  29. package/dist/kodik-streaming/mapping.d.ts +3 -0
  30. package/dist/kodik-streaming/mapping.js +189 -0
  31. package/dist/kodik-streaming/mapping.js.map +1 -0
  32. package/dist/package-version.d.ts +2 -2
  33. package/dist/package-version.js +1 -1
  34. package/dist/shared/anime-episode.d.ts +3 -0
  35. package/dist/shared/anime-episode.js +79 -5
  36. package/dist/shared/anime-episode.js.map +1 -1
  37. package/dist/shikimori/index.js +1 -0
  38. package/dist/shikimori/index.js.map +1 -1
  39. package/dist/shikimori-graphql/index.d.ts +9 -0
  40. package/dist/shikimori-graphql/index.js +205 -0
  41. package/dist/shikimori-graphql/index.js.map +1 -0
  42. package/dist/tmdb/index.js +1 -0
  43. package/dist/tmdb/index.js.map +1 -1
  44. package/dist/tmdb-official/index.d.ts +9 -0
  45. package/dist/tmdb-official/index.js +246 -0
  46. package/dist/tmdb-official/index.js.map +1 -0
  47. package/dist/tvmaze/index.js +58 -3
  48. package/dist/tvmaze/index.js.map +1 -1
  49. package/dist/veoveo-streaming/mapping.js +4 -4
  50. package/dist/veoveo-streaming/mapping.js.map +1 -1
  51. package/dist/videohub-streaming/mapping.js +9 -4
  52. package/dist/videohub-streaming/mapping.js.map +1 -1
  53. package/dist/wikidata/index.js +1 -0
  54. package/dist/wikidata/index.js.map +1 -1
  55. package/package.json +3 -2
@@ -0,0 +1,205 @@
1
+ import { ProviderError, } from "@media-engine/core";
2
+ import { fetchJson, ProviderRateLimitGate } from "../shared/index.js";
3
+ const NAME = "shikimori-graphql";
4
+ const DEFAULT_ENDPOINT = "https://shikimori.io/api/graphql";
5
+ const ANIME_FIELDS = `
6
+ id malId name russian english japanese synonyms description kind episodes episodesAired score status
7
+ airedOn { date year } releasedOn { date }
8
+ poster { originalUrl mainUrl }
9
+ screenshots { originalUrl x332Url }
10
+ genres { id name russian }
11
+ `;
12
+ export function shikimoriGraphqlProvider(options = {}) {
13
+ const endpoint = options.endpoint ?? DEFAULT_ENDPOINT;
14
+ const userAgent = options.userAgent?.trim();
15
+ const gate = new ProviderRateLimitGate();
16
+ async function request(query, variables, context) {
17
+ if (!userAgent) {
18
+ throw new ProviderError({
19
+ provider: NAME,
20
+ code: "PROVIDER_UNAUTHORIZED",
21
+ message: `Provider "${NAME}" is not configured.`,
22
+ });
23
+ }
24
+ const response = await fetchJson({
25
+ provider: NAME,
26
+ url: new URL(endpoint),
27
+ context,
28
+ fetch: options.fetch,
29
+ rateLimitGate: gate,
30
+ maxRetries: 0,
31
+ init: {
32
+ method: "POST",
33
+ headers: { "Content-Type": "application/json", "User-Agent": userAgent },
34
+ body: JSON.stringify({ query, variables }),
35
+ },
36
+ });
37
+ if (response.errors?.length || !Array.isArray(response.data?.animes)) {
38
+ throw new ProviderError({
39
+ provider: NAME,
40
+ code: "PROVIDER_INVALID_RESPONSE",
41
+ message: `Provider "${NAME}" returned an invalid GraphQL response.`,
42
+ });
43
+ }
44
+ return response.data.animes;
45
+ }
46
+ async function loadDetails(query, context) {
47
+ if (query.type && query.type !== "anime")
48
+ return null;
49
+ const requestedId = query.ids?.shikimori ?? query.ids?.myAnimeList;
50
+ if (!requestedId || !/^\d+$/u.test(requestedId))
51
+ return null;
52
+ const records = await request(`query ($ids: String!) { animes(ids: $ids, limit: 2) { ${ANIME_FIELDS} } }`, { ids: requestedId }, context);
53
+ const matches = records.map(mapAnime).filter((item) => Boolean(item));
54
+ const exact = matches.filter((item) => matchesIds(query.ids, item.ids));
55
+ return exact.length === 1 ? exact[0] : null;
56
+ }
57
+ async function search(query, context) {
58
+ if (query.type && query.type !== "anime")
59
+ return [];
60
+ if (query.ids?.shikimori || query.ids?.myAnimeList) {
61
+ const details = await loadDetails({ ...query, type: "anime" }, context);
62
+ return details ? [toSearchResult(details)] : [];
63
+ }
64
+ if (!query.title)
65
+ return [];
66
+ const records = await request(`query ($search: String!, $limit: Int!) { animes(search: $search, limit: $limit) { ${ANIME_FIELDS} } }`, { search: query.title, limit: Math.min(query.limit ?? 20, 50) }, context);
67
+ return records
68
+ .map(mapAnime)
69
+ .filter((item) => Boolean(item))
70
+ .filter((item) => query.year === undefined || item.year === query.year)
71
+ .filter((item) => Boolean(item.year && item.poster?.url && item.ids?.shikimori && item.ids.myAnimeList))
72
+ .map(toSearchResult);
73
+ }
74
+ return {
75
+ name: NAME,
76
+ version: options.version,
77
+ kind: "metadata",
78
+ configured: Boolean(userAgent),
79
+ searchPosterMatchesDetails: true,
80
+ capabilities: {
81
+ mediaTypes: ["anime"],
82
+ metadataRoute: "primary",
83
+ search: { byTitle: true, byExternalIds: ["shikimori", "myAnimeList"] },
84
+ details: { byExternalIds: ["shikimori", "myAnimeList"] },
85
+ features: ["posters", "backdrops", "ratings", "genres", "episodes", "alternative_titles"],
86
+ },
87
+ search,
88
+ getDetails: async (query, context) => {
89
+ const details = await loadDetails(query, context);
90
+ return details ? { provider: NAME, details, source: details.sourceProviders?.[0] } : null;
91
+ },
92
+ };
93
+ }
94
+ function mapAnime(record) {
95
+ const id = numericId(record.id);
96
+ const malId = numericId(record.malId ?? undefined);
97
+ const title = record.russian?.trim() || record.name?.trim();
98
+ const posterUrl = httpsUrl(record.poster?.originalUrl) ?? httpsUrl(record.poster?.mainUrl);
99
+ const backdropUrl = record.screenshots?.map((item) => httpsUrl(item.originalUrl)).find(Boolean);
100
+ if (!id || !malId || !title)
101
+ return null;
102
+ const ids = { shikimori: id, myAnimeList: malId };
103
+ const episodesCount = Math.max(record.episodes ?? 0, record.episodesAired ?? 0) || undefined;
104
+ const description = normalizeDescription(record.description);
105
+ const alternativeTitles = [
106
+ record.name,
107
+ record.english,
108
+ record.japanese,
109
+ ...(record.synonyms ?? []),
110
+ ]
111
+ .map((value) => value?.trim())
112
+ .filter((value) => Boolean(value && value !== title));
113
+ return {
114
+ id: `${NAME}-anime-${id}`,
115
+ type: "anime",
116
+ animeKind: mapKind(record.kind),
117
+ title,
118
+ originalTitle: record.name?.trim() || undefined,
119
+ alternativeTitles: [...new Set(alternativeTitles)],
120
+ year: record.airedOn?.year ?? parseYear(record.airedOn?.date),
121
+ releaseDate: validDate(record.airedOn?.date),
122
+ airedOn: validDate(record.airedOn?.date),
123
+ releasedOn: validDate(record.releasedOn?.date),
124
+ description,
125
+ poster: posterUrl ? { url: posterUrl, type: "poster", source: NAME } : undefined,
126
+ backdrop: backdropUrl ? { url: backdropUrl, type: "backdrop", source: NAME } : undefined,
127
+ images: record.screenshots?.flatMap((item) => {
128
+ const url = httpsUrl(item.originalUrl) ?? httpsUrl(item.x332Url);
129
+ return url ? [{ url, type: "backdrop", source: NAME }] : [];
130
+ }),
131
+ genres: record.genres?.flatMap((genre) => {
132
+ const name = genre.russian?.trim() || genre.name?.trim();
133
+ return name ? [{ id: numericId(genre.id), name, source: NAME }] : [];
134
+ }),
135
+ ratings: typeof record.score === "number" && record.score > 0
136
+ ? [{ source: "shikimori", value: record.score, max: 10 }]
137
+ : undefined,
138
+ episodesCount,
139
+ episodes: episodesCount
140
+ ? Array.from({ length: episodesCount }, (_, index) => ({
141
+ id: `${id}-episode-${index + 1}`,
142
+ episodeNumber: index + 1,
143
+ absoluteNumber: index + 1,
144
+ }))
145
+ : undefined,
146
+ status: mapStatus(record.status),
147
+ ids,
148
+ sourceProviders: [{ provider: NAME, ids, url: `https://shikimori.io/animes/${id}` }],
149
+ };
150
+ }
151
+ function toSearchResult(details) {
152
+ return { provider: NAME, item: { ...details }, source: details.sourceProviders?.[0] };
153
+ }
154
+ function matchesIds(expected, actual) {
155
+ return ["shikimori", "myAnimeList"].every((key) => {
156
+ const source = key;
157
+ return !expected?.[source] || expected[source] === actual?.[source];
158
+ });
159
+ }
160
+ function normalizeDescription(value) {
161
+ return (value
162
+ ?.replace(/\[\[(.*?)\]\]/gu, "$1")
163
+ .replace(/\[(?:character|anime|manga)=\d+\](.*?)\[\/(?:character|anime|manga)\]/gu, "$1")
164
+ .replace(/\[(.*?)\]/gu, "$1")
165
+ .trim() || undefined);
166
+ }
167
+ function numericId(value) {
168
+ return value && /^\d+$/u.test(value) ? value : undefined;
169
+ }
170
+ function httpsUrl(value) {
171
+ if (!value)
172
+ return undefined;
173
+ try {
174
+ const url = new URL(value);
175
+ return url.protocol === "https:" ? url.toString() : undefined;
176
+ }
177
+ catch {
178
+ return undefined;
179
+ }
180
+ }
181
+ function mapKind(value) {
182
+ return ["tv", "movie", "ova", "ona", "special", "music"].includes(value ?? "")
183
+ ? value
184
+ : "unknown";
185
+ }
186
+ function mapStatus(value) {
187
+ switch (value) {
188
+ case "anons":
189
+ return "announced";
190
+ case "ongoing":
191
+ return "ongoing";
192
+ case "released":
193
+ return "released";
194
+ default:
195
+ return undefined;
196
+ }
197
+ }
198
+ function parseYear(value) {
199
+ const year = Number(value?.slice(0, 4));
200
+ return Number.isInteger(year) && year >= 1900 ? year : undefined;
201
+ }
202
+ function validDate(value) {
203
+ return value && /^\d{4}-\d{2}-\d{2}$/u.test(value) ? value : undefined;
204
+ }
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shikimori-graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GASd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAE1F,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,gBAAgB,GAAG,kCAAkC,CAAC;AAC5D,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAmCF,MAAM,UAAU,wBAAwB,CACtC,UAA2C,EAAE;IAE7C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAEzC,KAAK,UAAU,OAAO,CACpB,KAAa,EACb,SAA0C,EAC1C,OAAwB;QAExB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,aAAa,IAAI,sBAAsB;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAkB;YAChD,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;YACtB,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,CAAC;YACb,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,EAAE;gBACxE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAC3C;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,aAAa,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,aAAa,IAAI,yCAAyC;aACpE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,KAA2B,EAC3B,OAAwB;QAExB,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC;QACnE,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,yDAAyD,YAAY,MAAM,EAC3E,EAAE,GAAG,EAAE,WAAW,EAAE,EACpB,OAAO,CACR,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,KAA0B,EAC1B,OAAwB;QAExB,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;YACxE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,qFAAqF,YAAY,MAAM,EACvG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAC/D,OAAO,CACR,CAAC;QACF,OAAO,OAAO;aACX,GAAG,CAAC,QAAQ,CAAC;aACb,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;aACtE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CACtF;aACA,GAAG,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;QAC9B,0BAA0B,EAAE,IAAI;QAChC,YAAY,EAAE;YACZ,UAAU,EAAE,CAAC,OAAO,CAAC;YACrB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;YACtE,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;YACxD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC;SAC1F;QACD,MAAM;QACN,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,MAAsB;IACtC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,GAAG,GAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC;IAC7F,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG;QACxB,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,QAAQ;QACf,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC3B;SACE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;IAEzE,OAAO;QACL,EAAE,EAAE,GAAG,IAAI,UAAU,EAAE,EAAE;QACzB,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,KAAK;QACL,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;QAC/C,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7D,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;QAC5C,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;QACxC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC;QAC9C,WAAW;QACX,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QAChF,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;QACxF,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,CAAC,CAAC;QACF,OAAO,EACL,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;YAClD,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YACzD,CAAC,CAAC,SAAS;QACf,aAAa;QACb,QAAQ,EAAE,aAAa;YACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnD,EAAE,EAAE,GAAG,EAAE,YAAY,KAAK,GAAG,CAAC,EAAE;gBAChC,aAAa,EAAE,KAAK,GAAG,CAAC;gBACxB,cAAc,EAAE,KAAK,GAAG,CAAC;aAC1B,CAAC,CAAC;YACL,CAAC,CAAC,SAAS;QACb,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,GAAG;QACH,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,+BAA+B,EAAE,EAAE,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB;IAC3C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,UAAU,CAAC,QAAiC,EAAE,MAA+B;IACpF,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,GAAkC,CAAC;QAClD,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,OAAO,CACL,KAAK;QACH,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;SACjC,OAAO,CAAC,yEAAyE,EAAE,IAAI,CAAC;SACxF,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;SAC5B,IAAI,EAAE,IAAI,SAAS,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAgC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAgC;IAC/C,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5E,CAAC,CAAE,KAAmB;QACtB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,WAAoB,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,SAAkB,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,UAAmB,CAAC;QAC7B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,OAAO,KAAK,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC"}
@@ -138,6 +138,7 @@ export function tmdbProvider(options = {}) {
138
138
  searchPosterMatchesDetails: true,
139
139
  capabilities: {
140
140
  mediaTypes: ["movie", "series"],
141
+ metadataRoute: "fallback",
141
142
  search: {
142
143
  byTitle: true,
143
144
  byExternalIds: ["imdb", "tmdb"],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tmdb/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tmdb/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type MediaProvider } from "@media-engine/core";
2
+ import { type ProviderFetch } from "../shared/index.js";
3
+ export interface TmdbOfficialProviderOptions {
4
+ apiKey?: string;
5
+ baseUrl?: string;
6
+ fetch?: ProviderFetch;
7
+ version?: string;
8
+ }
9
+ export declare function tmdbOfficialProvider(options?: TmdbOfficialProviderOptions): MediaProvider;
@@ -0,0 +1,246 @@
1
+ import { ProviderError, } from "@media-engine/core";
2
+ import { fetchJson, getProviderHttpStatus, ProviderRateLimitGate, } from "../shared/index.js";
3
+ const NAME = "tmdb-official";
4
+ const DEFAULT_BASE_URL = "https://api.themoviedb.org/3";
5
+ const IMAGE_BASE_URL = "https://image.tmdb.org/t/p/original";
6
+ const MAX_SEARCH_RESULTS_PER_TYPE = 10;
7
+ export function tmdbOfficialProvider(options = {}) {
8
+ const apiKey = options.apiKey?.trim();
9
+ const baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/u, "");
10
+ const gate = new ProviderRateLimitGate();
11
+ async function request(path, parameters, context) {
12
+ if (!apiKey) {
13
+ throw new ProviderError({
14
+ provider: NAME,
15
+ code: "PROVIDER_UNAUTHORIZED",
16
+ message: `Provider "${NAME}" is not configured.`,
17
+ });
18
+ }
19
+ const url = new URL(`${baseUrl}${path}`);
20
+ url.searchParams.set("api_key", apiKey);
21
+ for (const [key, value] of Object.entries(parameters)) {
22
+ if (value !== undefined)
23
+ url.searchParams.set(key, String(value));
24
+ }
25
+ return fetchJson({
26
+ provider: NAME,
27
+ url,
28
+ context,
29
+ fetch: options.fetch,
30
+ rateLimitGate: gate,
31
+ maxRetries: 0,
32
+ });
33
+ }
34
+ async function loadDetails(query, context) {
35
+ if (query.type === undefined) {
36
+ const candidates = await Promise.all(["movie", "series"].map((type) => loadDetails({ ...query, type }, context)));
37
+ const matches = candidates.filter((item) => Boolean(item));
38
+ return matches.length === 1 ? matches[0] : null;
39
+ }
40
+ if (query.type !== "movie" && query.type !== "series")
41
+ return null;
42
+ const type = query.type;
43
+ let tmdbId = query.ids?.tmdb;
44
+ if (!tmdbId && query.ids?.imdb) {
45
+ const found = await request(`/find/${encodeURIComponent(query.ids.imdb)}`, { external_source: "imdb_id", language: locale(query.language) }, context);
46
+ const candidates = type === "movie" ? found.movie_results : found.tv_results;
47
+ if (candidates?.length !== 1 || !candidates[0]?.id)
48
+ return null;
49
+ tmdbId = String(candidates[0].id);
50
+ }
51
+ if (!tmdbId || !/^\d+$/u.test(tmdbId))
52
+ return null;
53
+ let record;
54
+ try {
55
+ record = await request(`/${type === "movie" ? "movie" : "tv"}/${tmdbId}`, {
56
+ language: locale(query.language),
57
+ append_to_response: "external_ids,alternative_titles",
58
+ }, context);
59
+ }
60
+ catch (error) {
61
+ if (getProviderHttpStatus(error) === 404)
62
+ return null;
63
+ throw error;
64
+ }
65
+ const details = mapDetails(record, type);
66
+ if (!details || !matchesIds(query.ids, details.ids))
67
+ return null;
68
+ return details;
69
+ }
70
+ async function search(query, context) {
71
+ if (query.type === "anime")
72
+ return [];
73
+ const types = query.type ? [query.type] : ["movie", "series"];
74
+ if (query.ids?.tmdb || query.ids?.imdb) {
75
+ const details = await Promise.all(types.map((type) => loadDetails({ ...query, type }, context)));
76
+ return details
77
+ .filter((item) => item !== null)
78
+ .filter(isCompleteSearchItem)
79
+ .map(toSearchResult);
80
+ }
81
+ if (!query.title)
82
+ return [];
83
+ const limit = Math.min(query.limit ?? MAX_SEARCH_RESULTS_PER_TYPE, MAX_SEARCH_RESULTS_PER_TYPE);
84
+ const discovered = (await Promise.all(types.map(async (type) => {
85
+ const response = await request(`/search/${type === "movie" ? "movie" : "tv"}`, {
86
+ query: query.title,
87
+ language: locale(query.language),
88
+ year: type === "series" ? query.year : undefined,
89
+ primary_release_year: type === "movie" ? query.year : undefined,
90
+ page: 1,
91
+ include_adult: "false",
92
+ }, context);
93
+ return (response.results ?? []).flatMap((item) => item.id ? [{ type, id: String(item.id) }] : []);
94
+ }))).flatMap((items) => items.slice(0, limit));
95
+ const details = await Promise.all(discovered.map(({ type, id }) => loadDetails({ type, ids: { tmdb: id } }, context)));
96
+ return details
97
+ .filter((item) => item !== null)
98
+ .filter(isCompleteSearchItem)
99
+ .map(toSearchResult);
100
+ }
101
+ return {
102
+ name: NAME,
103
+ version: options.version,
104
+ kind: "metadata",
105
+ configured: Boolean(apiKey),
106
+ searchPosterMatchesDetails: true,
107
+ capabilities: {
108
+ mediaTypes: ["movie", "series"],
109
+ metadataRoute: "primary",
110
+ search: { byTitle: true, byExternalIds: ["imdb", "tmdb"] },
111
+ details: { byExternalIds: ["imdb", "tmdb"] },
112
+ features: ["posters", "backdrops", "ratings", "genres", "seasons"],
113
+ },
114
+ search,
115
+ getDetails: async (query, context) => {
116
+ const details = await loadDetails(query, context);
117
+ return details ? { provider: NAME, details, source: details.sourceProviders?.[0] } : null;
118
+ },
119
+ };
120
+ }
121
+ function mapDetails(record, type) {
122
+ const id = positiveInteger(record.id);
123
+ const title = (type === "movie" ? record.title : record.name)?.trim();
124
+ const date = type === "movie" ? record.release_date : record.first_air_date;
125
+ const imdb = record.external_ids?.imdb_id ?? record.imdb_id ?? undefined;
126
+ if (!id || !title)
127
+ return null;
128
+ const ids = { tmdb: id, ...(imdb ? { imdb } : {}) };
129
+ const common = {
130
+ id: `${NAME}-${type}-${id}`,
131
+ type,
132
+ title,
133
+ originalTitle: (type === "movie" ? record.original_title : record.original_name)?.trim() || undefined,
134
+ alternativeTitles: mapAlternativeTitles(record, title),
135
+ year: parseYear(date),
136
+ releaseDate: validDate(date),
137
+ description: record.overview?.trim() || undefined,
138
+ poster: image(record.poster_path, "poster"),
139
+ backdrop: image(record.backdrop_path, "backdrop"),
140
+ genres: record.genres?.flatMap((genre) => genre.name?.trim()
141
+ ? [{ id: positiveInteger(genre.id), name: genre.name.trim(), source: NAME }]
142
+ : []),
143
+ ratings: typeof record.vote_average === "number" && record.vote_average > 0
144
+ ? [
145
+ {
146
+ source: "tmdb",
147
+ value: record.vote_average,
148
+ max: 10,
149
+ votes: record.vote_count,
150
+ },
151
+ ]
152
+ : undefined,
153
+ ids,
154
+ status: mapStatus(record.status),
155
+ runtimeMinutes: type === "movie" ? record.runtime : record.episode_run_time?.find((value) => value > 0),
156
+ sourceProviders: [
157
+ {
158
+ provider: NAME,
159
+ ids,
160
+ url: `https://www.themoviedb.org/${type === "movie" ? "movie" : "tv"}/${id}`,
161
+ },
162
+ ],
163
+ };
164
+ if (type === "movie")
165
+ return common;
166
+ return {
167
+ ...common,
168
+ type: "series",
169
+ seasonsCount: record.number_of_seasons,
170
+ episodesCount: record.number_of_episodes,
171
+ seasons: record.seasons?.flatMap((season) => typeof season.season_number === "number"
172
+ ? [
173
+ {
174
+ id: positiveInteger(season.id),
175
+ number: season.season_number,
176
+ title: season.name?.trim() || undefined,
177
+ description: season.overview?.trim() || undefined,
178
+ poster: image(season.poster_path, "poster"),
179
+ episodesCount: season.episode_count,
180
+ releaseDate: validDate(season.air_date),
181
+ },
182
+ ]
183
+ : []),
184
+ };
185
+ }
186
+ function toSearchResult(details) {
187
+ const item = { ...details };
188
+ return { provider: NAME, item, source: details.sourceProviders?.[0] };
189
+ }
190
+ function mapAlternativeTitles(record, title) {
191
+ const excluded = new Set([title, record.original_title, record.original_name]
192
+ .filter((value) => Boolean(value?.trim()))
193
+ .map((value) => value.trim().toLocaleLowerCase()));
194
+ const titles = new Map();
195
+ for (const item of record.alternative_titles?.results ?? []) {
196
+ const value = item.title?.trim();
197
+ const key = value?.toLocaleLowerCase();
198
+ if (value && key && !excluded.has(key) && !titles.has(key))
199
+ titles.set(key, value);
200
+ }
201
+ return titles.size > 0 ? [...titles.values()] : undefined;
202
+ }
203
+ function isCompleteSearchItem(details) {
204
+ return Boolean(details.title.trim() && details.year && details.poster?.url && details.ids?.tmdb);
205
+ }
206
+ function matchesIds(expected, actual) {
207
+ return ["tmdb", "imdb"].every((key) => {
208
+ const source = key;
209
+ return !expected?.[source] || expected[source] === actual?.[source];
210
+ });
211
+ }
212
+ function image(path, type) {
213
+ return path?.startsWith("/")
214
+ ? { url: `${IMAGE_BASE_URL}${path}`, type, source: NAME }
215
+ : undefined;
216
+ }
217
+ function locale(language) {
218
+ return language === undefined || language.toLowerCase().startsWith("ru") ? "ru-RU" : "en-US";
219
+ }
220
+ function positiveInteger(value) {
221
+ return Number.isSafeInteger(value) && value > 0 ? String(value) : undefined;
222
+ }
223
+ function parseYear(value) {
224
+ const year = Number(value?.slice(0, 4));
225
+ return Number.isInteger(year) && year >= 1800 ? year : undefined;
226
+ }
227
+ function validDate(value) {
228
+ return value && /^\d{4}-\d{2}-\d{2}$/u.test(value) ? value : undefined;
229
+ }
230
+ function mapStatus(value) {
231
+ switch (value?.toLowerCase()) {
232
+ case "released":
233
+ return "released";
234
+ case "returning series":
235
+ return "ongoing";
236
+ case "ended":
237
+ return "ended";
238
+ case "canceled":
239
+ return "canceled";
240
+ case "in production":
241
+ return "in_production";
242
+ default:
243
+ return undefined;
244
+ }
245
+ }
246
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tmdb-official/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,GASd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,IAAI,GAAG,eAAe,CAAC;AAC7B,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AACxD,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D,MAAM,2BAA2B,GAAG,EAAE,CAAC;AA0DvC,MAAM,UAAU,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAEzC,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,UAAuD,EACvD,OAAwB;QAExB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,aAAa,IAAI,sBAAsB;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,SAAS,CAAI;YAClB,QAAQ,EAAE,IAAI;YACd,GAAG;YACH,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,KAA2B,EAC3B,OAAwB;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,CAAC,OAAO,EAAE,QAAQ,CAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CACvF,CAAC;YACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjF,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;QAE7B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,OAAO,CACzB,SAAS,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAC7C,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAChE,OAAO,CACR,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7E,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;gBAAE,OAAO,IAAI,CAAC;YAChE,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CACpB,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,EACjD;gBACE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAChC,kBAAkB,EAAE,iCAAiC;aACtD,EACD,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,qBAAqB,CAAC,KAAK,CAAC,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,MAAM,CACnB,KAA0B,EAC1B,OAAwB;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,QAAQ,CAAW,CAAC;QAEzE,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAC9D,CAAC;YACF,OAAO,OAAO;iBACX,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;iBACrD,MAAM,CAAC,oBAAoB,CAAC;iBAC5B,GAAG,CAAC,cAAc,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;QAChG,MAAM,UAAU,GAAG,CACjB,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC5B,WAAW,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAC9C;gBACE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAChC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAChD,oBAAoB,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC/D,IAAI,EAAE,CAAC;gBACP,aAAa,EAAE,OAAO;aACvB,EACD,OAAO,CACR,CAAC;YACF,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC;QACJ,CAAC,CAAC,CACH,CACF,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CACpF,CAAC;QACF,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;aACrD,MAAM,CAAC,oBAAoB,CAAC;aAC5B,GAAG,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;QAC3B,0BAA0B,EAAE,IAAI;QAChC,YAAY,EAAE;YACZ,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/B,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAC1D,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAC5C,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;SACnE;QACD,MAAM;QACN,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAkB,EAAE,IAAwB;IAC9D,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IACzE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,GAAG,GAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE;QAC3B,IAAI;QACJ,KAAK;QACL,aAAa,EACX,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS;QACxF,iBAAiB,EAAE,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC;QACtD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;QACrB,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS;QACjD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,QAAiB,CAAC;QACpD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,UAAmB,CAAC;QAC1D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;YAChB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5E,CAAC,CAAC,EAAE,CACP;QACD,OAAO,EACL,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC;YAChE,CAAC,CAAC;gBACE;oBACE,MAAM,EAAE,MAAe;oBACvB,KAAK,EAAE,MAAM,CAAC,YAAY;oBAC1B,GAAG,EAAE,EAAE;oBACP,KAAK,EAAE,MAAM,CAAC,UAAU;iBACzB;aACF;YACH,CAAC,CAAC,SAAS;QACf,GAAG;QACH,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,cAAc,EACZ,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;QACzF,eAAe,EAAE;YACf;gBACE,QAAQ,EAAE,IAAI;gBACd,GAAG;gBACH,GAAG,EAAE,8BAA8B,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE;aAC7E;SACF;KACF,CAAC;IAEF,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,MAAM,CAAC,iBAAiB;QACtC,aAAa,EAAE,MAAM,CAAC,kBAAkB;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1C,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;YACtC,CAAC,CAAC;gBACE;oBACE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,MAAM,EAAE,MAAM,CAAC,aAAa;oBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;oBACvC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS;oBACjD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;oBAC3C,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACxC;aACF;YACH,CAAC,CAAC,EAAE,CACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB;IAC3C,MAAM,IAAI,GAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IACvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAkB,EAAE,KAAa;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC;SACjD,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,CACpD,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAqB;IACjD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,UAAU,CAAC,QAAiC,EAAE,MAA+B;IACpF,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,GAAsB,CAAC;QACtC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,IAA+B,EAAE,IAA2B;IACzE,OAAO,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACzD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,QAA4B;IAC1C,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/F,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,OAAO,KAAK,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,QAAQ,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,UAAmB,CAAC;QAC7B,KAAK,kBAAkB;YACrB,OAAO,SAAkB,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,OAAgB,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,UAAmB,CAAC;QAC7B,KAAK,eAAe;YAClB,OAAO,eAAwB,CAAC;QAClC;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}