@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 +28 -46
- package/README.ru.md +53 -0
- package/dist/client.d.ts +17 -1
- package/dist/client.js +23 -2
- package/dist/client.js.map +1 -1
- package/package.json +11 -5
package/README.md
CHANGED
|
@@ -1,71 +1,53 @@
|
|
|
1
1
|
# @media-engine/sdk
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**English** | [Русский](https://github.com/Yaneart/media-engine/blob/main/packages/sdk/README.ru.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A typed `fetch` client for the Media Engine REST API.
|
|
6
6
|
|
|
7
|
-
|
|
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
|
|
16
|
+
const media = new MediaEngineClient({
|
|
19
17
|
baseUrl: "http://127.0.0.1:3000",
|
|
20
18
|
});
|
|
21
19
|
|
|
22
|
-
const search = await
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
32
|
+
- `search()`;
|
|
33
|
+
- `getDetails()`;
|
|
34
|
+
- `getAvailability()`;
|
|
35
|
+
- `discoverTorrents()`;
|
|
36
|
+
- `getProviders()`;
|
|
37
|
+
- `getStreamingProviders()`;
|
|
38
|
+
- `getTorrentProviders()`;
|
|
39
|
+
- `getHealth()`.
|
|
52
40
|
|
|
53
|
-
|
|
41
|
+
Each method accepts optional headers and an `AbortSignal`. You can also provide your own compatible `fetch` implementation.
|
|
54
42
|
|
|
55
|
-
|
|
43
|
+
Failed HTTP responses and invalid payloads throw `MediaEngineApiError`, which keeps the HTTP status and response body when possible.
|
|
56
44
|
|
|
57
|
-
|
|
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
|
-
|
|
65
|
-
|
|
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
|
-
|
|
51
|
+
## License
|
|
70
52
|
|
|
71
|
-
|
|
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
|
|
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);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
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": "
|
|
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": "
|
|
50
|
+
"@media-engine/core": "1.0.0"
|
|
49
51
|
},
|
|
50
52
|
"scripts": {
|
|
51
|
-
"
|
|
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 &&
|
|
58
|
+
"test": "pnpm build && pnpm test:unit",
|
|
59
|
+
"test:unit": "node ../../scripts/run-node-tests.mjs"
|
|
54
60
|
}
|
|
55
61
|
}
|