@media-engine/sdk 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,71 +1,53 @@
1
1
  # @media-engine/sdk
2
2
 
3
- Typed HTTP SDK for applications that call the Media Engine REST API.
3
+ **English** | [Русский](https://github.com/Yaneart/media-engine/blob/main/packages/sdk/README.ru.md)
4
4
 
5
- The SDK is framework-independent. It does not depend on React, NestJS, Express, or provider packages.
5
+ A typed `fetch` client for the Media Engine REST API.
6
6
 
7
- ## Install
7
+ Use it when your browser, bot, or another service talks to `apps/api` instead of creating `MediaEngine` directly.
8
8
 
9
9
  ```bash
10
10
  npm install @media-engine/sdk
11
11
  ```
12
12
 
13
- ## Usage
14
-
15
13
  ```ts
16
14
  import { MediaEngineClient } from "@media-engine/sdk";
17
15
 
18
- const client = new MediaEngineClient({
16
+ const media = new MediaEngineClient({
19
17
  baseUrl: "http://127.0.0.1:3000",
20
18
  });
21
19
 
22
- const search = await client.search({
23
- title: "Interstellar",
24
- type: "movie",
25
- });
26
-
27
- const details = await client.getDetails({
28
- imdb: "tt0816692",
29
- type: "movie",
30
- });
31
-
32
- const availability = await client.getAvailability({
33
- kinopoisk: "258687",
34
- type: "movie",
35
- });
36
-
37
- const providers = await client.getProviders();
38
- const streamingProviders = await client.getStreamingProviders();
39
- const health = await client.getHealth();
20
+ const search = await media.search({ title: "Interstellar" });
21
+ const details = await media.getDetails({ imdb: "tt0816692" });
22
+ const torrents = await media.discoverTorrents({ type: "movie", imdb: "tt0816692" });
23
+ const health = await media.getHealth();
24
+ const live = await media.getLiveness();
25
+ const ready = await media.getReadiness();
40
26
  ```
41
27
 
42
- ## Methods
28
+ Pass a namespaced external ID to `getDetails()`, through `ids` or a shortcut such as `imdb`. The API rejects the deprecated plain `id` lookup with HTTP 400.
43
29
 
44
- - `search(query)` calls `GET /media/search`.
45
- - `getDetails(query)` calls `GET /media/details`.
46
- - `getAvailability(query)` calls `GET /media/availability`.
47
- - `getProviders()` calls `GET /providers`.
48
- - `getStreamingProviders()` calls `GET /providers/streaming`.
49
- - `getHealth()` calls `GET /health`.
30
+ The main client methods are:
50
31
 
51
- Search, details, and availability methods accept the query types from `@media-engine/core`. External IDs can be sent either as top-level shortcuts such as `imdb`, `kinopoisk`, and `shikimori`, or through `ids`.
32
+ - `search()`;
33
+ - `getDetails()`;
34
+ - `getAvailability()`;
35
+ - `discoverTorrents()`;
36
+ - `getProviders()`;
37
+ - `getStreamingProviders()`;
38
+ - `getTorrentProviders()`;
39
+ - `getHealth()`.
52
40
 
53
- ## Availability
41
+ Each method accepts optional headers and an `AbortSignal`. You can also provide your own compatible `fetch` implementation.
54
42
 
55
- `getAvailability` returns normalized player options from the API's configured streaming providers:
43
+ Failed HTTP responses and invalid payloads throw `MediaEngineApiError`, which keeps the HTTP status and response body when possible.
56
44
 
57
- ```ts
58
- const episode = await client.getAvailability({
59
- type: "anime",
60
- shikimori: "20",
61
- absoluteEpisodeNumber: 1,
62
- });
45
+ The SDK does not call providers, render players, or run a torrent client. It only turns typed method calls into HTTP requests.
63
46
 
64
- for (const option of episode.options) {
65
- console.log(option.player.label, option.translation?.title, option.access.url);
66
- }
67
- ```
47
+ See the [public API guide](https://github.com/Yaneart/media-engine/blob/main/docs/public-api.md) for query examples.
48
+ For a complete browser-to-NestJS setup, follow the
49
+ [beginner quick start](https://github.com/Yaneart/media-engine/blob/main/docs/quick-start.md).
68
50
 
69
- The SDK does not render players and does not know provider secrets. It only serializes query parameters, calls the API, and returns the typed response.
51
+ ## License
70
52
 
71
- Failed HTTP responses and invalid JSON payloads throw `MediaEngineApiError`.
53
+ MIT
package/README.ru.md ADDED
@@ -0,0 +1,53 @@
1
+ # @media-engine/sdk
2
+
3
+ [English](https://github.com/Yaneart/media-engine/blob/main/packages/sdk/README.md) | **Русский**
4
+
5
+ Типизированный `fetch`-клиент для REST API Media Engine.
6
+
7
+ Он нужен, когда браузер, бот или другой сервис обращается к `apps/api`, а не создаёт `MediaEngine` напрямую.
8
+
9
+ ```bash
10
+ npm install @media-engine/sdk
11
+ ```
12
+
13
+ ```ts
14
+ import { MediaEngineClient } from "@media-engine/sdk";
15
+
16
+ const media = new MediaEngineClient({
17
+ baseUrl: "http://127.0.0.1:3000",
18
+ });
19
+
20
+ const search = await media.search({ title: "Интерстеллар" });
21
+ const details = await media.getDetails({ imdb: "tt0816692" });
22
+ const torrents = await media.discoverTorrents({ type: "movie", imdb: "tt0816692" });
23
+ const health = await media.getHealth();
24
+ const live = await media.getLiveness();
25
+ const ready = await media.getReadiness();
26
+ ```
27
+
28
+ В `getDetails()` передавайте внешний ID с указанием источника — через `ids` или сокращение вроде `imdb`. API отклоняет устаревший запрос с одним обычным `id` и возвращает HTTP 400.
29
+
30
+ Основные методы клиента:
31
+
32
+ - `search()`;
33
+ - `getDetails()`;
34
+ - `getAvailability()`;
35
+ - `discoverTorrents()`;
36
+ - `getProviders()`;
37
+ - `getStreamingProviders()`;
38
+ - `getTorrentProviders()`;
39
+ - `getHealth()`.
40
+
41
+ Каждый метод принимает дополнительные заголовки и `AbortSignal`. При необходимости можно передать собственную совместимую реализацию `fetch`.
42
+
43
+ При неуспешном HTTP-ответе или неверных данных SDK выбрасывает `MediaEngineApiError` и по возможности сохраняет HTTP-статус и тело ответа.
44
+
45
+ SDK не вызывает провайдеры, не рисует плееры и не запускает torrent-клиент. Он только превращает типизированные методы в HTTP-запросы.
46
+
47
+ Примеры запросов есть в [описании публичного API](https://github.com/Yaneart/media-engine/blob/main/docs/public-api.md).
48
+ Полная настройка связи browser с NestJS показана в
49
+ [быстром старте для новичка](https://github.com/Yaneart/media-engine/blob/main/docs/quick-start.ru.md).
50
+
51
+ ## Лицензия
52
+
53
+ MIT
package/dist/client.d.ts CHANGED
@@ -2,10 +2,14 @@ import type { DetailsResponse } from "@media-engine/core";
2
2
  import type { DetailsQuery } from "@media-engine/core";
3
3
  import type { MediaAvailability } from "@media-engine/core";
4
4
  import type { ProviderInfo } from "@media-engine/core";
5
+ import type { ProviderHealthStatus } from "@media-engine/core";
5
6
  import type { SearchResponse } from "@media-engine/core";
6
7
  import type { SearchQuery } from "@media-engine/core";
7
8
  import type { StreamQuery } from "@media-engine/core";
8
9
  import type { StreamingProviderInfo } from "@media-engine/core";
10
+ import type { TorrentDiscoveryQuery } from "@media-engine/core";
11
+ import type { TorrentDiscoveryResponse } from "@media-engine/core";
12
+ import type { TorrentProviderInfo } from "@media-engine/core";
9
13
  export type MediaEngineFetch = (input: URL | string, init?: RequestInit) => Promise<Response>;
10
14
  export interface MediaEngineClientOptions {
11
15
  baseUrl: string;
@@ -16,10 +20,16 @@ export interface MediaEngineRequestOptions {
16
20
  signal?: AbortSignal;
17
21
  headers?: HeadersInit;
18
22
  }
19
- export interface MediaEngineHealthResponse {
23
+ export interface MediaEngineLivenessResponse {
20
24
  status: "ok";
21
25
  service: "media-engine-api";
22
26
  }
27
+ export interface MediaEngineHealthResponse {
28
+ status: "ok" | "degraded";
29
+ service: "media-engine-api";
30
+ providers: ProviderHealthStatus[];
31
+ }
32
+ export type MediaEngineReadinessResponse = MediaEngineHealthResponse;
23
33
  export declare class MediaEngineApiError extends Error {
24
34
  readonly status: number;
25
35
  readonly body: unknown;
@@ -36,9 +46,13 @@ export declare class MediaEngineClient {
36
46
  search(query: SearchQuery, options?: MediaEngineRequestOptions): Promise<SearchResponse>;
37
47
  getDetails(query: DetailsQuery, options?: MediaEngineRequestOptions): Promise<DetailsResponse>;
38
48
  getAvailability(query: StreamQuery, options?: MediaEngineRequestOptions): Promise<MediaAvailability>;
49
+ discoverTorrents(query: TorrentDiscoveryQuery, options?: MediaEngineRequestOptions): Promise<TorrentDiscoveryResponse>;
39
50
  getProviders(options?: MediaEngineRequestOptions): Promise<ProviderInfo[]>;
40
51
  getStreamingProviders(options?: MediaEngineRequestOptions): Promise<StreamingProviderInfo[]>;
52
+ getTorrentProviders(options?: MediaEngineRequestOptions): Promise<TorrentProviderInfo[]>;
41
53
  getHealth(options?: MediaEngineRequestOptions): Promise<MediaEngineHealthResponse>;
54
+ getLiveness(options?: MediaEngineRequestOptions): Promise<MediaEngineLivenessResponse>;
55
+ getReadiness(options?: MediaEngineRequestOptions): Promise<MediaEngineReadinessResponse>;
42
56
  protected createUrl(path: string): URL;
43
57
  protected request(input: URL, init?: RequestInit): Promise<Response>;
44
58
  private requestJson;
@@ -46,5 +60,7 @@ export declare class MediaEngineClient {
46
60
  export type MediaEngineSearchResponse = SearchResponse;
47
61
  export type MediaEngineDetailsResponse = DetailsResponse;
48
62
  export type MediaEngineAvailabilityResponse = MediaAvailability;
63
+ export type MediaEngineTorrentDiscoveryResponse = TorrentDiscoveryResponse;
49
64
  export type MediaEngineProviderInfo = ProviderInfo;
50
65
  export type MediaEngineStreamingProviderInfo = StreamingProviderInfo;
66
+ export type MediaEngineTorrentProviderInfo = TorrentProviderInfo;
package/dist/client.js CHANGED
@@ -43,8 +43,8 @@ export class MediaEngineClient {
43
43
  search(query, options) {
44
44
  return this.requestJson("/media/search", query, options);
45
45
  }
46
- // EN: Load merged media details through GET /media/details.
47
- // RU: Загружает объединенные media details через GET /media/details.
46
+ // EN: Load merged media details through GET /media/details using namespaced external IDs.
47
+ // RU: Загружает объединенные media details через GET /media/details по внешним ID с namespace.
48
48
  getDetails(query, options) {
49
49
  return this.requestJson("/media/details", query, options);
50
50
  }
@@ -53,6 +53,11 @@ export class MediaEngineClient {
53
53
  getAvailability(query, options) {
54
54
  return this.requestJson("/media/availability", query, options);
55
55
  }
56
+ // EN: Discover normalized torrent handoff candidates through GET /media/torrents.
57
+ // RU: Ищет нормализованные torrent handoff кандидаты через GET /media/torrents.
58
+ discoverTorrents(query, options) {
59
+ return this.requestJson("/media/torrents", query, options);
60
+ }
56
61
  // EN: List safe provider metadata through GET /providers.
57
62
  // RU: Получает безопасные provider metadata через GET /providers.
58
63
  getProviders(options) {
@@ -63,11 +68,26 @@ export class MediaEngineClient {
63
68
  getStreamingProviders(options) {
64
69
  return this.requestJson("/providers/streaming", undefined, options);
65
70
  }
71
+ // EN: List safe torrent provider metadata through GET /providers/torrent.
72
+ // RU: Получает безопасные metadata torrent-провайдеров через GET /providers/torrent.
73
+ getTorrentProviders(options) {
74
+ return this.requestJson("/providers/torrent", undefined, options);
75
+ }
66
76
  // EN: Check API readiness through GET /health.
67
77
  // RU: Проверяет готовность API через GET /health.
68
78
  getHealth(options) {
69
79
  return this.requestJson("/health", undefined, options);
70
80
  }
81
+ // EN: Check whether the API process is alive through GET /health/live.
82
+ // RU: Проверяет, жив ли процесс API, через GET /health/live.
83
+ getLiveness(options) {
84
+ return this.requestJson("/health/live", undefined, options);
85
+ }
86
+ // EN: Check provider-aware readiness through GET /health/ready.
87
+ // RU: Проверяет provider-aware готовность через GET /health/ready.
88
+ getReadiness(options) {
89
+ return this.requestJson("/health/ready", undefined, options);
90
+ }
71
91
  // EN: Build an absolute API URL from a relative endpoint path.
72
92
  // RU: Собирает абсолютный API URL из относительного endpoint path.
73
93
  createUrl(path) {
@@ -108,6 +128,7 @@ export class MediaEngineClient {
108
128
  // RU: Добавляет поля core search/details/streaming query в API URL search params.
109
129
  function appendQuery(url, query) {
110
130
  appendParam(url, "title", "title" in query ? query.title : undefined);
131
+ appendArrayParam(url, "alternativeTitles", "alternativeTitles" in query ? query.alternativeTitles : undefined);
111
132
  appendParam(url, "type", query.type);
112
133
  appendParam(url, "year", "year" in query ? query.year : undefined);
113
134
  appendParam(url, "limit", "limit" in query ? query.limit : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@media-engine/sdk",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Typed HTTP SDK for Media Engine API clients.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/Yaneart/media-engine#readme",
@@ -18,6 +18,7 @@
18
18
  "movies",
19
19
  "series",
20
20
  "anime",
21
+ "torrent",
21
22
  "sdk",
22
23
  "api-client"
23
24
  ],
@@ -39,17 +40,22 @@
39
40
  "!dist/**/*.test.d.ts",
40
41
  "!dist/**/*.test.js",
41
42
  "!dist/**/*.test.js.map",
42
- "README.md"
43
+ "README.md",
44
+ "README.ru.md"
43
45
  ],
44
46
  "publishConfig": {
45
47
  "access": "public"
46
48
  },
47
49
  "dependencies": {
48
- "@media-engine/core": "0.1.0"
50
+ "@media-engine/core": "1.0.0"
49
51
  },
50
52
  "scripts": {
51
- "build": "tsc -p tsconfig.json",
53
+ "clean": "node ../../scripts/clean-package-dist.mjs",
54
+ "build": "pnpm clean && tsc -p tsconfig.json",
55
+ "coverage": "pnpm build && pnpm coverage:unit",
56
+ "coverage:unit": "node ../../scripts/run-node-tests.mjs --coverage --lines=95 --branches=88 --functions=95",
52
57
  "typecheck": "tsc -p tsconfig.json --noEmit",
53
- "test": "pnpm build && node --test dist/client.test.js"
58
+ "test": "pnpm build && pnpm test:unit",
59
+ "test:unit": "node ../../scripts/run-node-tests.mjs"
54
60
  }
55
61
  }