@zivue/zuuid 0.2.1 → 0.2.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +66 -16
  3. package/dist/client.d.ts +17 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +36 -0
  6. package/dist/identity.d.ts +1 -1
  7. package/dist/identity.d.ts.map +1 -1
  8. package/dist/identity.js +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/providers/gamesdb/client.d.ts +19 -0
  13. package/dist/providers/gamesdb/client.d.ts.map +1 -0
  14. package/dist/providers/gamesdb/client.js +57 -0
  15. package/dist/providers/gamesdb/constants.d.ts +2 -0
  16. package/dist/providers/gamesdb/constants.d.ts.map +1 -1
  17. package/dist/providers/gamesdb/constants.js +2 -0
  18. package/dist/providers/gamesdb/game.d.ts +7 -5
  19. package/dist/providers/gamesdb/game.d.ts.map +1 -1
  20. package/dist/providers/gamesdb/game.js +203 -22
  21. package/dist/providers/gamesdb/index.d.ts +2 -0
  22. package/dist/providers/gamesdb/index.d.ts.map +1 -1
  23. package/dist/providers/gamesdb/index.js +2 -0
  24. package/dist/providers/gamesdb/platform.d.ts +5 -2
  25. package/dist/providers/gamesdb/platform.d.ts.map +1 -1
  26. package/dist/providers/gamesdb/platform.js +87 -4
  27. package/dist/providers/gamesdb/types.d.ts +21 -0
  28. package/dist/providers/gamesdb/types.d.ts.map +1 -0
  29. package/dist/providers/gamesdb/types.js +1 -0
  30. package/dist/providers/imdb/client.d.ts +16 -0
  31. package/dist/providers/imdb/client.d.ts.map +1 -0
  32. package/dist/providers/imdb/client.js +29 -0
  33. package/dist/providers/imdb/constants.d.ts +4 -0
  34. package/dist/providers/imdb/constants.d.ts.map +1 -0
  35. package/dist/providers/imdb/constants.js +3 -0
  36. package/dist/providers/imdb/index.d.ts +4 -0
  37. package/dist/providers/imdb/index.d.ts.map +1 -0
  38. package/dist/providers/imdb/index.js +3 -0
  39. package/dist/providers/imdb/movie.d.ts +16 -0
  40. package/dist/providers/imdb/movie.d.ts.map +1 -0
  41. package/dist/providers/imdb/movie.js +183 -0
  42. package/dist/providers/imdb/types.d.ts +10 -0
  43. package/dist/providers/imdb/types.d.ts.map +1 -0
  44. package/dist/providers/imdb/types.js +1 -0
  45. package/dist/providers/tmdb/tv.d.ts.map +1 -1
  46. package/dist/providers/tmdb/tv.js +0 -1
  47. package/package.json +13 -1
@@ -0,0 +1,183 @@
1
+ import { createSourceRecord } from "../../source.js";
2
+ import { addAlias, addDescription, addDetail, addMedia, addRelation, addTag, baseDataFromSource, datePrefix, finalizeData, normalizeRating, objectPayload, stringField, valueAsString } from "../common.js";
3
+ import { IMDB_PROVIDER } from "./constants.js";
4
+ export async function fetchImdbMovieSourceRecord(provider, input) {
5
+ return fetchImdbTitleSourceRecord(provider, input, "movie");
6
+ }
7
+ export async function fetchImdbTvSourceRecord(provider, input) {
8
+ return fetchImdbTitleSourceRecord(provider, input, "tv");
9
+ }
10
+ export async function transformImdbMovie(source, options = {}) {
11
+ return transformImdbTitle(source, "movie", options);
12
+ }
13
+ export async function transformImdbTv(source, options = {}) {
14
+ return transformImdbTitle(source, "tv", options);
15
+ }
16
+ export async function searchImdbMovies() {
17
+ throw new Error("IMDb search is not implemented; fetch by IMDb title id instead.");
18
+ }
19
+ async function fetchImdbTitleSourceRecord(provider, input, category) {
20
+ const id = normalizeImdbTitleId(input.id);
21
+ const baseUrl = provider.titleBaseUrl?.replace(/\/$/, "");
22
+ if (!baseUrl) {
23
+ throw new Error("IMDb title base URL is disabled");
24
+ }
25
+ const url = `${baseUrl}/${id}/`;
26
+ const response = await provider.fetcher(url, {
27
+ headers: {
28
+ Accept: "text/html,application/xhtml+xml",
29
+ "Accept-Language": "en-US,en;q=0.9",
30
+ "User-Agent": provider.userAgent
31
+ }
32
+ });
33
+ if (response.status === 404) {
34
+ return undefined;
35
+ }
36
+ if (!response.ok) {
37
+ throw new Error(`IMDb title request failed with status ${response.status}`);
38
+ }
39
+ const html = await response.text();
40
+ return createSourceRecord({
41
+ source: { provider: IMDB_PROVIDER, category, externalId: id },
42
+ payload: extractImdbPayload(url, html)
43
+ });
44
+ }
45
+ async function transformImdbTitle(source, fallbackCategory, options = {}) {
46
+ const payload = objectPayload(source.payload);
47
+ const jsonLd = objectPayload(payload.jsonLd ?? {});
48
+ const externalId = normalizeImdbTitleId(source.source.externalId);
49
+ const category = source.source.category === "tv" || schemaType(jsonLd).includes("TVSeries") ? "tv" : fallbackCategory;
50
+ const title = stringField(jsonLd, "name") ?? fallbackTitle(payload) ?? externalId;
51
+ const data = await baseDataFromSource(source, IMDB_PROVIDER, category, category, externalId, title);
52
+ data.primaryDate = datePrefix(stringField(jsonLd, "datePublished"));
53
+ addAlias(data, title, "primary", true, IMDB_PROVIDER);
54
+ addDescription(data, IMDB_PROVIDER, stringField(jsonLd, "description"));
55
+ addMedia(data, IMDB_PROVIDER, stringField(jsonLd, "image"), "poster");
56
+ const aggregateRating = objectPayload(jsonLd.aggregateRating ?? {});
57
+ const nativeRating = numericValue(aggregateRating.ratingValue);
58
+ const normalizedRating = normalizeRating(nativeRating, 0, 10);
59
+ if (normalizedRating !== undefined) {
60
+ data.rating = normalizedRating;
61
+ }
62
+ addDetail(data, IMDB_PROVIDER, "provider_rating", nativeRating);
63
+ addDetail(data, IMDB_PROVIDER, "rating_count", numericValue(aggregateRating.ratingCount));
64
+ addDetail(data, IMDB_PROVIDER, "best_rating", numericValue(aggregateRating.bestRating));
65
+ addDetail(data, IMDB_PROVIDER, "content_rating", stringField(jsonLd, "contentRating"));
66
+ addDetail(data, IMDB_PROVIDER, "duration", stringField(jsonLd, "duration"));
67
+ addDetail(data, IMDB_PROVIDER, "schema_type", valueAsString(jsonLd["@type"]));
68
+ addDetail(data, IMDB_PROVIDER, "url", stringField(payload, "url") ?? imdbTitleUrl(externalId, options.titleBaseUrl));
69
+ for (const genre of stringArray(jsonLd.genre)) {
70
+ addTag(data, genre);
71
+ }
72
+ for (const actor of personArray(jsonLd.actor)) {
73
+ await addPersonRelation(data, actor, "performed_by");
74
+ }
75
+ for (const director of personArray(jsonLd.director)) {
76
+ await addPersonRelation(data, director, "directed_by");
77
+ }
78
+ for (const creator of personArray(jsonLd.creator)) {
79
+ await addPersonRelation(data, creator, "created_by");
80
+ }
81
+ return finalizeData(data, source);
82
+ }
83
+ function extractImdbPayload(url, html) {
84
+ return {
85
+ url,
86
+ html,
87
+ title: cleanPageTitle(decodeHtml(textFromMatch(html.match(/<title[^>]*>([\s\S]*?)<\/title>/i)?.[1]))) ?? null,
88
+ jsonLd: parseJsonScript(html, /<script[^>]+type=["']application\/ld\+json["'][^>]*>([\s\S]*?)<\/script>/i) ?? null,
89
+ nextData: parseJsonScript(html, /<script[^>]+id=["']__NEXT_DATA__["'][^>]*>([\s\S]*?)<\/script>/i) ?? null
90
+ };
91
+ }
92
+ function parseJsonScript(html, pattern) {
93
+ const raw = html.match(pattern)?.[1];
94
+ const text = textFromMatch(raw);
95
+ if (!text) {
96
+ return undefined;
97
+ }
98
+ try {
99
+ return JSON.parse(decodeHtml(text) ?? text);
100
+ }
101
+ catch {
102
+ try {
103
+ return JSON.parse(text);
104
+ }
105
+ catch {
106
+ return undefined;
107
+ }
108
+ }
109
+ }
110
+ function textFromMatch(value) {
111
+ const normalized = value?.trim();
112
+ return normalized || undefined;
113
+ }
114
+ function normalizeImdbTitleId(value) {
115
+ const raw = String(value).trim();
116
+ const withoutUrl = raw.match(/title\/(tt\d+)/i)?.[1] ?? raw;
117
+ const normalized = withoutUrl.toLowerCase().startsWith("tt") ? withoutUrl : `tt${withoutUrl.padStart(7, "0")}`;
118
+ if (!/^tt\d+$/i.test(normalized)) {
119
+ throw new Error(`Invalid IMDb title id: ${value}`);
120
+ }
121
+ return normalized.toLowerCase();
122
+ }
123
+ function imdbTitleUrl(id, titleBaseUrl) {
124
+ const base = titleBaseUrl?.replace(/\/$/, "");
125
+ return base ? `${base}/${id}/` : undefined;
126
+ }
127
+ function schemaType(jsonLd) {
128
+ const value = jsonLd["@type"];
129
+ return Array.isArray(value) ? value.map((item) => valueAsString(item)).filter(Boolean).join(",") : valueAsString(value) ?? "";
130
+ }
131
+ function fallbackTitle(payload) {
132
+ return cleanPageTitle(stringField(payload, "title"));
133
+ }
134
+ function cleanPageTitle(title) {
135
+ return title?.replace(/\s*-\s*IMDb\s*$/i, "").trim() || undefined;
136
+ }
137
+ function numericValue(value) {
138
+ if (typeof value === "number" && Number.isFinite(value)) {
139
+ return value;
140
+ }
141
+ if (typeof value === "string") {
142
+ const parsed = Number(value.replace(/,/g, ""));
143
+ return Number.isFinite(parsed) ? parsed : undefined;
144
+ }
145
+ return undefined;
146
+ }
147
+ function stringArray(value) {
148
+ if (typeof value === "string") {
149
+ return [value];
150
+ }
151
+ if (Array.isArray(value)) {
152
+ return value.filter((item) => typeof item === "string" && item.trim() !== "");
153
+ }
154
+ return [];
155
+ }
156
+ function personArray(value) {
157
+ if (Array.isArray(value)) {
158
+ return value.filter((item) => !!item && typeof item === "object" && !Array.isArray(item));
159
+ }
160
+ return value && typeof value === "object" && !Array.isArray(value) ? [value] : [];
161
+ }
162
+ async function addPersonRelation(data, person, relationType) {
163
+ const name = stringField(person, "name");
164
+ const externalId = imdbNameId(stringField(person, "url"));
165
+ if (!name || !externalId) {
166
+ return;
167
+ }
168
+ await addRelation(data, IMDB_PROVIDER, "person", externalId, relationType, name);
169
+ }
170
+ function imdbNameId(url) {
171
+ return url?.match(/name\/(nm\d+)/i)?.[1]?.toLowerCase();
172
+ }
173
+ function decodeHtml(value) {
174
+ return value
175
+ ?.replace(/&quot;/g, '"')
176
+ .replace(/&#34;/g, '"')
177
+ .replace(/&#x27;/g, "'")
178
+ .replace(/&#39;/g, "'")
179
+ .replace(/&amp;/g, "&")
180
+ .replace(/&lt;/g, "<")
181
+ .replace(/&gt;/g, ">")
182
+ .trim();
183
+ }
@@ -0,0 +1,10 @@
1
+ export type ImdbFetchLike = (input: string | URL, init?: RequestInit) => Promise<Response>;
2
+ export type ImdbProviderOptions = {
3
+ fetch?: ImdbFetchLike;
4
+ titleBaseUrl?: string | null;
5
+ userAgent?: string;
6
+ };
7
+ export type ImdbTransformOptions = {
8
+ titleBaseUrl?: string | null;
9
+ };
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/imdb/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE3F,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tv.d.ts","sourceRoot":"","sources":["../../../src/providers/tmdb/tv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tv.d.ts","sourceRoot":"","sources":["../../../src/providers/tmdb/tv.ts"],"names":[],"mappings":"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"}
@@ -152,7 +152,6 @@ export async function transformTmdbTv(source, options = {}) {
152
152
  addTvCertifications(data, payload);
153
153
  addStructuredDetail(data, "production_countries", payload.production_countries);
154
154
  addStructuredDetail(data, "spoken_languages", payload.spoken_languages);
155
- addStructuredDetail(data, "content_ratings", payload.content_ratings?.results);
156
155
  addStructuredDetail(data, "last_episode_to_air", payload.last_episode_to_air);
157
156
  addStructuredDetail(data, "next_episode_to_air", payload.next_episode_to_air);
158
157
  addStructuredDetail(data, "watch_providers", payload.watch_providers?.results);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zivue/zuuid",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "TypeScript helpers for fetching, searching, and transforming Zuuid datasets.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -243,6 +243,18 @@
243
243
  "./providers/tmdb/person": {
244
244
  "types": "./dist/providers/tmdb/person.d.ts",
245
245
  "import": "./dist/providers/tmdb/person.js"
246
+ },
247
+ "./providers/imdb": {
248
+ "types": "./dist/providers/imdb/index.d.ts",
249
+ "import": "./dist/providers/imdb/index.js"
250
+ },
251
+ "./providers/imdb/movie": {
252
+ "types": "./dist/providers/imdb/movie.d.ts",
253
+ "import": "./dist/providers/imdb/movie.js"
254
+ },
255
+ "./providers/gamesdb/client": {
256
+ "types": "./dist/providers/gamesdb/client.d.ts",
257
+ "import": "./dist/providers/gamesdb/client.js"
246
258
  }
247
259
  },
248
260
  "types": "./dist/index.d.ts",