@media-engine/core 0.1.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -0
  3. package/dist/cache/index.d.ts +2 -0
  4. package/dist/cache/index.js +2 -0
  5. package/dist/cache/index.js.map +1 -0
  6. package/dist/cache/memory.d.ts +19 -0
  7. package/dist/cache/memory.js +83 -0
  8. package/dist/cache/memory.js.map +1 -0
  9. package/dist/cache/types.d.ts +9 -0
  10. package/dist/cache/types.js +2 -0
  11. package/dist/cache/types.js.map +1 -0
  12. package/dist/details/index.d.ts +1 -0
  13. package/dist/details/index.js +2 -0
  14. package/dist/details/index.js.map +1 -0
  15. package/dist/details/types.d.ts +19 -0
  16. package/dist/details/types.js +2 -0
  17. package/dist/details/types.js.map +1 -0
  18. package/dist/engine/engine.d.ts +29 -0
  19. package/dist/engine/engine.js +1007 -0
  20. package/dist/engine/engine.js.map +1 -0
  21. package/dist/engine/index.d.ts +2 -0
  22. package/dist/engine/index.js +2 -0
  23. package/dist/engine/index.js.map +1 -0
  24. package/dist/engine/types.d.ts +13 -0
  25. package/dist/engine/types.js +2 -0
  26. package/dist/engine/types.js.map +1 -0
  27. package/dist/errors/index.d.ts +1 -0
  28. package/dist/errors/index.js +2 -0
  29. package/dist/errors/index.js.map +1 -0
  30. package/dist/errors/types.d.ts +27 -0
  31. package/dist/errors/types.js +77 -0
  32. package/dist/errors/types.js.map +1 -0
  33. package/dist/index.d.ts +12 -0
  34. package/dist/index.js +7 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/media/index.d.ts +1 -0
  37. package/dist/media/index.js +2 -0
  38. package/dist/media/index.js.map +1 -0
  39. package/dist/media/types.d.ts +136 -0
  40. package/dist/media/types.js +2 -0
  41. package/dist/media/types.js.map +1 -0
  42. package/dist/merge/index.d.ts +2 -0
  43. package/dist/merge/index.js +2 -0
  44. package/dist/merge/index.js.map +1 -0
  45. package/dist/merge/strategy.d.ts +8 -0
  46. package/dist/merge/strategy.js +1168 -0
  47. package/dist/merge/strategy.js.map +1 -0
  48. package/dist/merge/types.d.ts +18 -0
  49. package/dist/merge/types.js +2 -0
  50. package/dist/merge/types.js.map +1 -0
  51. package/dist/providers/index.d.ts +2 -0
  52. package/dist/providers/index.js +2 -0
  53. package/dist/providers/index.js.map +1 -0
  54. package/dist/providers/registry.d.ts +9 -0
  55. package/dist/providers/registry.js +92 -0
  56. package/dist/providers/registry.js.map +1 -0
  57. package/dist/providers/types.d.ts +63 -0
  58. package/dist/providers/types.js +2 -0
  59. package/dist/providers/types.js.map +1 -0
  60. package/dist/response/index.d.ts +1 -0
  61. package/dist/response/index.js +2 -0
  62. package/dist/response/index.js.map +1 -0
  63. package/dist/response/types.d.ts +32 -0
  64. package/dist/response/types.js +2 -0
  65. package/dist/response/types.js.map +1 -0
  66. package/dist/search/index.d.ts +1 -0
  67. package/dist/search/index.js +2 -0
  68. package/dist/search/index.js.map +1 -0
  69. package/dist/search/types.d.ts +26 -0
  70. package/dist/search/types.js +2 -0
  71. package/dist/search/types.js.map +1 -0
  72. package/dist/streaming/index.d.ts +1 -0
  73. package/dist/streaming/index.js +2 -0
  74. package/dist/streaming/index.js.map +1 -0
  75. package/dist/streaming/types.d.ts +126 -0
  76. package/dist/streaming/types.js +2 -0
  77. package/dist/streaming/types.js.map +1 -0
  78. package/dist/testing/fixtures.d.ts +4 -0
  79. package/dist/testing/fixtures.js +101 -0
  80. package/dist/testing/fixtures.js.map +1 -0
  81. package/dist/testing/index.d.ts +2 -0
  82. package/dist/testing/index.js +3 -0
  83. package/dist/testing/index.js.map +1 -0
  84. package/dist/testing/providers.d.ts +26 -0
  85. package/dist/testing/providers.js +147 -0
  86. package/dist/testing/providers.js.map +1 -0
  87. package/package.json +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/merge/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { DetailsQuery } from "../details/index.js";
2
+ import type { MediaDetails } from "../media/index.js";
3
+ import type { ProviderDetailsResult, ProviderSearchResult } from "../providers/index.js";
4
+ import type { EngineWarning } from "../response/index.js";
5
+ import type { MediaSearchResult, SearchQuery } from "../search/index.js";
6
+ export type MatchStrength = "exact_id" | "exact_title_year_type" | "normalized_title_year_type" | "weak" | "none";
7
+ export interface MergeContext {
8
+ query?: SearchQuery | DetailsQuery;
9
+ language?: string;
10
+ providerPriority?: string[];
11
+ debug?: boolean;
12
+ warnings?: EngineWarning[];
13
+ includeIrrelevantSearchResults?: boolean;
14
+ }
15
+ export interface MergeStrategy {
16
+ mergeSearchResults(results: ProviderSearchResult[], context: MergeContext): MediaSearchResult[];
17
+ mergeDetails(results: ProviderDetailsResult[], context: MergeContext): MediaDetails | null;
18
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/merge/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type * from "./types.js";
2
+ export * from "./registry.js";
@@ -0,0 +1,2 @@
1
+ export * from "./registry.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { MediaProvider, ProviderDetailsQuery, ProviderInfo, ProviderSearchQuery } from "./types.js";
2
+ export declare class ProviderRegistry {
3
+ private readonly providers;
4
+ constructor(providers?: MediaProvider[]);
5
+ register(provider: MediaProvider): void;
6
+ getProviders(): ProviderInfo[];
7
+ selectSearchProviders(query: ProviderSearchQuery): MediaProvider[];
8
+ selectDetailsProviders(query: ProviderDetailsQuery): MediaProvider[];
9
+ }
@@ -0,0 +1,92 @@
1
+ const EXTERNAL_ID_SOURCES = [
2
+ "imdb",
3
+ "tmdb",
4
+ "kinopoisk",
5
+ "shikimori",
6
+ "myAnimeList",
7
+ "aniList",
8
+ "worldArt",
9
+ ];
10
+ // Registry for provider registration and capability-based selection.
11
+ // Реестр для регистрации провайдеров и выбора по их возможностям.
12
+ export class ProviderRegistry {
13
+ providers = new Map();
14
+ constructor(providers = []) {
15
+ for (const provider of providers) {
16
+ this.register(provider);
17
+ }
18
+ }
19
+ // Registers one provider and rejects duplicate stable names.
20
+ // Регистрирует одного провайдера и запрещает повторяющиеся стабильные имена.
21
+ register(provider) {
22
+ const name = provider.name.trim();
23
+ if (!name) {
24
+ throw new Error("Provider name is required.");
25
+ }
26
+ if (name !== provider.name) {
27
+ throw new Error(`Provider name "${provider.name}" must not include leading or trailing whitespace.`);
28
+ }
29
+ if (this.providers.has(provider.name)) {
30
+ throw new Error(`Provider with name "${provider.name}" is already registered.`);
31
+ }
32
+ this.providers.set(provider.name, provider);
33
+ }
34
+ // Returns safe provider metadata without provider internals or secrets.
35
+ // Возвращает безопасные метаданные провайдеров без внутренних данных и секретов.
36
+ getProviders() {
37
+ return Array.from(this.providers.values()).map((provider) => ({
38
+ name: provider.name,
39
+ version: provider.version,
40
+ kind: provider.kind,
41
+ capabilities: {
42
+ mediaTypes: [...provider.capabilities.mediaTypes],
43
+ search: {
44
+ byTitle: provider.capabilities.search.byTitle,
45
+ byExternalIds: [...provider.capabilities.search.byExternalIds],
46
+ },
47
+ details: {
48
+ byExternalIds: [...provider.capabilities.details.byExternalIds],
49
+ },
50
+ features: provider.capabilities.features ? [...provider.capabilities.features] : undefined,
51
+ },
52
+ }));
53
+ }
54
+ // Selects providers that can handle a normalized search query.
55
+ // Выбирает провайдеров, которые могут обработать нормализованный поисковый запрос.
56
+ selectSearchProviders(query) {
57
+ const queryIdSources = getExternalIdSources(query.ids);
58
+ return Array.from(this.providers.values()).filter((provider) => {
59
+ if (query.type && !provider.capabilities.mediaTypes.includes(query.type)) {
60
+ return false;
61
+ }
62
+ const supportsTitleSearch = Boolean(query.title?.trim()) && provider.capabilities.search.byTitle;
63
+ const supportsIdSearch = queryIdSources.some((source) => provider.capabilities.search.byExternalIds.includes(source));
64
+ return supportsTitleSearch || supportsIdSearch;
65
+ });
66
+ }
67
+ // Selects providers that can handle a normalized details query.
68
+ // Выбирает провайдеров, которые могут обработать нормализованный запрос деталей.
69
+ selectDetailsProviders(query) {
70
+ const queryIdSources = getExternalIdSources(query.ids);
71
+ return Array.from(this.providers.values()).filter((provider) => {
72
+ if (!provider.getDetails) {
73
+ return false;
74
+ }
75
+ if (query.type &&
76
+ !provider.capabilities.mediaTypes.includes(query.type) &&
77
+ !(query.type === "anime" && provider.capabilities.mediaTypes.includes("series"))) {
78
+ return false;
79
+ }
80
+ return queryIdSources.some((source) => provider.capabilities.details.byExternalIds.includes(source));
81
+ });
82
+ }
83
+ }
84
+ // Extracts present external ID sources from an ExternalIds object.
85
+ // Достает присутствующие источники внешних ID из объекта ExternalIds.
86
+ function getExternalIdSources(ids) {
87
+ if (!ids) {
88
+ return [];
89
+ }
90
+ return EXTERNAL_ID_SOURCES.filter((source) => Boolean(ids[source]));
91
+ }
92
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { ExternalIds, MediaDetails, MediaItem, MediaType, ProviderSource } from "../media/index.js";
2
+ export type ProviderKind = "metadata";
3
+ export type ExternalIdSource = "imdb" | "tmdb" | "kinopoisk" | "shikimori" | "myAnimeList" | "aniList" | "worldArt";
4
+ export type ProviderFeature = "posters" | "backdrops" | "ratings" | "genres" | "persons" | "seasons" | "episodes" | "alternative_titles";
5
+ export interface ProviderCapabilities {
6
+ mediaTypes: MediaType[];
7
+ search: {
8
+ byTitle: boolean;
9
+ byExternalIds: ExternalIdSource[];
10
+ };
11
+ details: {
12
+ byExternalIds: ExternalIdSource[];
13
+ };
14
+ features?: ProviderFeature[];
15
+ }
16
+ export interface ProviderContext {
17
+ signal?: AbortSignal;
18
+ timeoutMs?: number;
19
+ debug?: boolean;
20
+ language?: string;
21
+ }
22
+ export interface ProviderSearchQuery {
23
+ title?: string;
24
+ type?: MediaType;
25
+ year?: number;
26
+ ids?: ExternalIds;
27
+ limit?: number;
28
+ language?: string;
29
+ }
30
+ export interface ProviderDetailsQuery {
31
+ id?: string;
32
+ ids?: ExternalIds;
33
+ type?: MediaType;
34
+ language?: string;
35
+ }
36
+ export interface ProviderSearchResult {
37
+ provider: string;
38
+ item: MediaItem;
39
+ confidence?: number;
40
+ source?: ProviderSource;
41
+ raw?: unknown;
42
+ }
43
+ export interface ProviderDetailsResult {
44
+ provider: string;
45
+ details: MediaDetails;
46
+ confidence?: number;
47
+ source?: ProviderSource;
48
+ raw?: unknown;
49
+ }
50
+ export interface ProviderInfo {
51
+ name: string;
52
+ version?: string;
53
+ kind: ProviderKind;
54
+ capabilities: ProviderCapabilities;
55
+ }
56
+ export interface MediaProvider {
57
+ name: string;
58
+ version?: string;
59
+ kind: "metadata";
60
+ capabilities: ProviderCapabilities;
61
+ search(query: ProviderSearchQuery, context: ProviderContext): Promise<ProviderSearchResult[]>;
62
+ getDetails?(query: ProviderDetailsQuery, context: ProviderContext): Promise<ProviderDetailsResult | null>;
63
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type * from "./types.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/response/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ export interface ProviderFailure {
2
+ provider: string;
3
+ code: string;
4
+ retryable: boolean;
5
+ message: string;
6
+ }
7
+ export interface ProviderExecutionMeta {
8
+ requested: string[];
9
+ successful: string[];
10
+ failed: ProviderFailure[];
11
+ }
12
+ export interface ProviderTimingMeta {
13
+ provider: string;
14
+ status: "success" | "failed";
15
+ tookMs: number;
16
+ }
17
+ export interface EngineWarning {
18
+ code: string;
19
+ message: string;
20
+ provider?: string;
21
+ }
22
+ export interface ResponseDebugMeta {
23
+ providers: string[];
24
+ timings: ProviderTimingMeta[];
25
+ }
26
+ export interface ResponseMeta {
27
+ providers: ProviderExecutionMeta;
28
+ cached: boolean;
29
+ tookMs: number;
30
+ warnings?: EngineWarning[];
31
+ debug?: ResponseDebugMeta;
32
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/response/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type * from "./types.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { ExternalIds, MediaItem, MediaType, ProviderSource } from "../media/index.js";
2
+ import type { ResponseMeta } from "../response/index.js";
3
+ export interface SearchQuery {
4
+ title?: string;
5
+ type?: MediaType;
6
+ year?: number;
7
+ ids?: ExternalIds;
8
+ imdb?: string;
9
+ tmdb?: string;
10
+ kinopoisk?: string;
11
+ shikimori?: string;
12
+ myAnimeList?: string;
13
+ aniList?: string;
14
+ limit?: number;
15
+ language?: string;
16
+ }
17
+ export interface MediaSearchResult {
18
+ item: MediaItem;
19
+ score: number;
20
+ sources: ProviderSource[];
21
+ }
22
+ export interface SearchResponse {
23
+ query: SearchQuery;
24
+ results: MediaSearchResult[];
25
+ meta: ResponseMeta;
26
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/search/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type * from "./types.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/streaming/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,126 @@
1
+ import type { ExternalIds, MediaType } from "../media/index.js";
2
+ import type { ExternalIdSource, ProviderContext } from "../providers/index.js";
3
+ import type { ResponseMeta } from "../response/index.js";
4
+ export interface StreamQuery {
5
+ type: MediaType;
6
+ ids?: ExternalIds;
7
+ imdb?: string;
8
+ tmdb?: string;
9
+ kinopoisk?: string;
10
+ shikimori?: string;
11
+ myAnimeList?: string;
12
+ aniList?: string;
13
+ title?: string;
14
+ year?: number;
15
+ seasonNumber?: number;
16
+ episodeNumber?: number;
17
+ absoluteEpisodeNumber?: number;
18
+ providers?: string[];
19
+ language?: string;
20
+ }
21
+ export interface StreamMediaItem {
22
+ type: MediaType;
23
+ title?: string;
24
+ originalTitle?: string;
25
+ year?: number;
26
+ ids?: ExternalIds;
27
+ }
28
+ export interface StreamEpisodeRef {
29
+ seasonNumber?: number;
30
+ episodeNumber?: number;
31
+ absoluteEpisodeNumber?: number;
32
+ }
33
+ export interface StreamEpisodeAvailability extends StreamEpisodeRef {
34
+ title?: string;
35
+ options: StreamOption[];
36
+ }
37
+ export type PlayerSourceKind = "embed" | "hls" | "mp4" | "external";
38
+ export interface PlayerSource {
39
+ kind: PlayerSourceKind;
40
+ label: string;
41
+ providerPlayerId?: string;
42
+ }
43
+ export interface StreamAccess {
44
+ url: string;
45
+ method?: "GET" | "POST";
46
+ headers?: Record<string, string>;
47
+ referer?: string;
48
+ }
49
+ export interface TranslationInfo {
50
+ id?: string;
51
+ title: string;
52
+ type: "dub" | "voiceover" | "subtitles" | "original" | "unknown";
53
+ language?: string;
54
+ team?: string;
55
+ }
56
+ export interface QualityInfo {
57
+ label: string;
58
+ height?: number;
59
+ width?: number;
60
+ bitrateKbps?: number;
61
+ codec?: string;
62
+ }
63
+ export type SubtitleFormat = "vtt" | "srt" | "ass" | "unknown";
64
+ export interface SubtitleTrack {
65
+ language?: string;
66
+ label?: string;
67
+ format?: SubtitleFormat;
68
+ url?: string;
69
+ }
70
+ export interface AudioTrack {
71
+ language?: string;
72
+ label?: string;
73
+ codec?: string;
74
+ }
75
+ export type StreamAvailabilityStatus = "available" | "region_locked" | "temporarily_unavailable" | "requires_account" | "unknown";
76
+ export interface StreamOption {
77
+ id: string;
78
+ provider: string;
79
+ player: PlayerSource;
80
+ translation?: TranslationInfo;
81
+ quality?: QualityInfo;
82
+ subtitles?: SubtitleTrack[];
83
+ audio?: AudioTrack[];
84
+ episode?: StreamEpisodeRef;
85
+ access: StreamAccess;
86
+ availability: StreamAvailabilityStatus;
87
+ expiresAt?: string;
88
+ sourceUrl?: string;
89
+ }
90
+ export interface StreamingProviderSource {
91
+ provider: string;
92
+ url?: string;
93
+ ids?: ExternalIds;
94
+ }
95
+ export interface MediaAvailability {
96
+ query: StreamQuery;
97
+ item?: StreamMediaItem;
98
+ episodes?: StreamEpisodeAvailability[];
99
+ options: StreamOption[];
100
+ sourceProviders: StreamingProviderSource[];
101
+ checkedAt: string;
102
+ meta?: ResponseMeta;
103
+ }
104
+ export type StreamingProviderFeature = "embed" | "hls" | "mp4" | "external" | "translations" | "subtitles" | "qualities" | "episode_mapping" | "headers";
105
+ export interface StreamingProviderCapabilities {
106
+ mediaTypes: MediaType[];
107
+ lookup: {
108
+ byTitle: boolean;
109
+ byExternalIds: ExternalIdSource[];
110
+ byEpisode: boolean;
111
+ };
112
+ features?: StreamingProviderFeature[];
113
+ }
114
+ export interface StreamingProviderInfo {
115
+ name: string;
116
+ version?: string;
117
+ kind: "streaming";
118
+ capabilities: StreamingProviderCapabilities;
119
+ }
120
+ export interface StreamingProvider {
121
+ name: string;
122
+ version?: string;
123
+ kind: "streaming";
124
+ capabilities: StreamingProviderCapabilities;
125
+ getAvailability(query: StreamQuery, context: ProviderContext): Promise<MediaAvailability | null>;
126
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { AnimeDetails, MovieDetails, SeriesDetails } from "../media/index.js";
2
+ export declare const sampleMovie: MovieDetails;
3
+ export declare const sampleSeries: SeriesDetails;
4
+ export declare const sampleAnime: AnimeDetails;