tsarr 1.1.2 → 1.2.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 +3 -3
- package/dist/clients/lidarr.js +4 -4
- package/dist/clients/prowlarr.js +4 -4
- package/dist/clients/radarr.js +4 -4
- package/dist/clients/readarr.js +4 -4
- package/dist/clients/sonarr.d.ts +33 -14
- package/dist/clients/sonarr.d.ts.map +1 -1
- package/dist/clients/sonarr.js +14 -13
- package/dist/core/errors.d.ts +5 -5
- package/dist/core/response.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/tsarr-1.2.0.tgz +0 -0
- package/package.json +1 -1
- package/dist/tsarr-1.1.2.tgz +0 -0
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Tsarr
|
|
2
2
|
|
|
3
3
|
[](https://www.typescriptlang.org/)
|
|
4
4
|
[](https://bun.sh)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://github.com/robbeverhelst/Tsarr/actions)
|
|
7
7
|
|
|
8
8
|
**Type-safe TypeScript SDK for Servarr APIs (Radarr, Sonarr, etc.)**
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Tsarr provides type-safe TypeScript clients for all Servarr APIs, generated from their Swagger/OpenAPI specifications. Perfect for building automation tools, scripts, and applications to manage your media servers.
|
|
11
11
|
|
|
12
12
|
## Features
|
|
13
13
|
|
package/dist/clients/lidarr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/errors.ts
|
|
2
|
-
class
|
|
2
|
+
class TsarrError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
statusCode;
|
|
5
5
|
details;
|
|
@@ -8,18 +8,18 @@ class TsArrError extends Error {
|
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.statusCode = statusCode;
|
|
10
10
|
this.details = details;
|
|
11
|
-
this.name = "
|
|
11
|
+
this.name = "TsarrError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
class ApiKeyError extends
|
|
15
|
+
class ApiKeyError extends TsarrError {
|
|
16
16
|
constructor(message = "Invalid or missing API key") {
|
|
17
17
|
super(message, "API_KEY_ERROR", 401);
|
|
18
18
|
this.name = "ApiKeyError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
class ConnectionError extends
|
|
22
|
+
class ConnectionError extends TsarrError {
|
|
23
23
|
constructor(message, details) {
|
|
24
24
|
super(message, "CONNECTION_ERROR", undefined, details);
|
|
25
25
|
this.name = "ConnectionError";
|
package/dist/clients/prowlarr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/errors.ts
|
|
2
|
-
class
|
|
2
|
+
class TsarrError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
statusCode;
|
|
5
5
|
details;
|
|
@@ -8,18 +8,18 @@ class TsArrError extends Error {
|
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.statusCode = statusCode;
|
|
10
10
|
this.details = details;
|
|
11
|
-
this.name = "
|
|
11
|
+
this.name = "TsarrError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
class ApiKeyError extends
|
|
15
|
+
class ApiKeyError extends TsarrError {
|
|
16
16
|
constructor(message = "Invalid or missing API key") {
|
|
17
17
|
super(message, "API_KEY_ERROR", 401);
|
|
18
18
|
this.name = "ApiKeyError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
class ConnectionError extends
|
|
22
|
+
class ConnectionError extends TsarrError {
|
|
23
23
|
constructor(message, details) {
|
|
24
24
|
super(message, "CONNECTION_ERROR", undefined, details);
|
|
25
25
|
this.name = "ConnectionError";
|
package/dist/clients/radarr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/errors.ts
|
|
2
|
-
class
|
|
2
|
+
class TsarrError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
statusCode;
|
|
5
5
|
details;
|
|
@@ -8,18 +8,18 @@ class TsArrError extends Error {
|
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.statusCode = statusCode;
|
|
10
10
|
this.details = details;
|
|
11
|
-
this.name = "
|
|
11
|
+
this.name = "TsarrError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
class ApiKeyError extends
|
|
15
|
+
class ApiKeyError extends TsarrError {
|
|
16
16
|
constructor(message = "Invalid or missing API key") {
|
|
17
17
|
super(message, "API_KEY_ERROR", 401);
|
|
18
18
|
this.name = "ApiKeyError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
class ConnectionError extends
|
|
22
|
+
class ConnectionError extends TsarrError {
|
|
23
23
|
constructor(message, details) {
|
|
24
24
|
super(message, "CONNECTION_ERROR", undefined, details);
|
|
25
25
|
this.name = "ConnectionError";
|
package/dist/clients/readarr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/errors.ts
|
|
2
|
-
class
|
|
2
|
+
class TsarrError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
statusCode;
|
|
5
5
|
details;
|
|
@@ -8,18 +8,18 @@ class TsArrError extends Error {
|
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.statusCode = statusCode;
|
|
10
10
|
this.details = details;
|
|
11
|
-
this.name = "
|
|
11
|
+
this.name = "TsarrError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
class ApiKeyError extends
|
|
15
|
+
class ApiKeyError extends TsarrError {
|
|
16
16
|
constructor(message = "Invalid or missing API key") {
|
|
17
17
|
super(message, "API_KEY_ERROR", 401);
|
|
18
18
|
this.name = "ApiKeyError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
class ConnectionError extends
|
|
22
|
+
class ConnectionError extends TsarrError {
|
|
23
23
|
constructor(message, details) {
|
|
24
24
|
super(message, "CONNECTION_ERROR", undefined, details);
|
|
25
25
|
this.name = "ConnectionError";
|
package/dist/clients/sonarr.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ServarrClientConfig } from '../core/types.js';
|
|
2
2
|
import * as SonarrApi from '../generated/sonarr/index.js';
|
|
3
|
-
import type { SeriesResource
|
|
3
|
+
import type { SeriesResource } from '../generated/sonarr/types.gen.js';
|
|
4
4
|
/**
|
|
5
5
|
* Sonarr API client for TV show management
|
|
6
6
|
*
|
|
@@ -27,6 +27,26 @@ export declare class SonarrClient {
|
|
|
27
27
|
request: Request;
|
|
28
28
|
response: Response;
|
|
29
29
|
}>;
|
|
30
|
+
getSystemStatus(): Promise<({
|
|
31
|
+
data: undefined;
|
|
32
|
+
error: unknown;
|
|
33
|
+
} | {
|
|
34
|
+
data: unknown;
|
|
35
|
+
error: undefined;
|
|
36
|
+
}) & {
|
|
37
|
+
request: Request;
|
|
38
|
+
response: Response;
|
|
39
|
+
}>;
|
|
40
|
+
getHealth(): Promise<({
|
|
41
|
+
data: undefined;
|
|
42
|
+
error: unknown;
|
|
43
|
+
} | {
|
|
44
|
+
data: unknown;
|
|
45
|
+
error: undefined;
|
|
46
|
+
}) & {
|
|
47
|
+
request: Request;
|
|
48
|
+
response: Response;
|
|
49
|
+
}>;
|
|
30
50
|
/**
|
|
31
51
|
* Get all TV series in the library
|
|
32
52
|
*/
|
|
@@ -40,6 +60,9 @@ export declare class SonarrClient {
|
|
|
40
60
|
request: Request;
|
|
41
61
|
response: Response;
|
|
42
62
|
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Get a specific series by ID
|
|
65
|
+
*/
|
|
43
66
|
getSeriesById(id: number): Promise<({
|
|
44
67
|
data: undefined;
|
|
45
68
|
error: unknown;
|
|
@@ -50,6 +73,9 @@ export declare class SonarrClient {
|
|
|
50
73
|
request: Request;
|
|
51
74
|
response: Response;
|
|
52
75
|
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Add a new series to the library
|
|
78
|
+
*/
|
|
53
79
|
addSeries(series: SeriesResource): Promise<({
|
|
54
80
|
data: undefined;
|
|
55
81
|
error: unknown;
|
|
@@ -60,6 +86,9 @@ export declare class SonarrClient {
|
|
|
60
86
|
request: Request;
|
|
61
87
|
response: Response;
|
|
62
88
|
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Update an existing series
|
|
91
|
+
*/
|
|
63
92
|
updateSeries(id: number, series: SeriesResource): Promise<({
|
|
64
93
|
data: undefined;
|
|
65
94
|
error: unknown;
|
|
@@ -70,6 +99,9 @@ export declare class SonarrClient {
|
|
|
70
99
|
request: Request;
|
|
71
100
|
response: Response;
|
|
72
101
|
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Delete a series
|
|
104
|
+
*/
|
|
73
105
|
deleteSeries(id: number): Promise<({
|
|
74
106
|
data: undefined;
|
|
75
107
|
error: unknown;
|
|
@@ -145,19 +177,6 @@ export declare class SonarrClient {
|
|
|
145
177
|
request: Request;
|
|
146
178
|
response: Response;
|
|
147
179
|
}>;
|
|
148
|
-
/**
|
|
149
|
-
* Update system settings
|
|
150
|
-
*/
|
|
151
|
-
updateSettings(settings: UpdateSettingsResource): Promise<({
|
|
152
|
-
data: undefined;
|
|
153
|
-
error: unknown;
|
|
154
|
-
} | {
|
|
155
|
-
data: SonarrApi.UpdateSettingsResource;
|
|
156
|
-
error: undefined;
|
|
157
|
-
}) & {
|
|
158
|
-
request: Request;
|
|
159
|
-
response: Response;
|
|
160
|
-
}>;
|
|
161
180
|
/**
|
|
162
181
|
* Get specific update setting by ID
|
|
163
182
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonarr.d.ts","sourceRoot":"","sources":["../../src/clients/sonarr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"sonarr.d.ts","sourceRoot":"","sources":["../../src/clients/sonarr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,mBAAmB;IAWjC,MAAM;;;;;;;;;;IAIN,eAAe;;;;;;;;;;IAMf,SAAS;;;;;;;;;;IAQf;;OAEG;IACG,SAAS;;;;;;;;;;IAIf;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAI9B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,cAAc;;;;;;;;;;IAItC;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;;;;;;;;;;IAIrD;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAI7B;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAMhC;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;IAM/B;;OAEG;IACG,OAAO,CACX,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;IAchB;;OAEG;IACG,UAAU;;;;;;;;;;IAIhB;;OAEG;IACG,iBAAiB;;;;;;;;;;IAIvB;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAIjC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC;;;;;;CAWrD"}
|
package/dist/clients/sonarr.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/errors.ts
|
|
2
|
-
class
|
|
2
|
+
class TsarrError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
statusCode;
|
|
5
5
|
details;
|
|
@@ -8,18 +8,18 @@ class TsArrError extends Error {
|
|
|
8
8
|
this.code = code;
|
|
9
9
|
this.statusCode = statusCode;
|
|
10
10
|
this.details = details;
|
|
11
|
-
this.name = "
|
|
11
|
+
this.name = "TsarrError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
class ApiKeyError extends
|
|
15
|
+
class ApiKeyError extends TsarrError {
|
|
16
16
|
constructor(message = "Invalid or missing API key") {
|
|
17
17
|
super(message, "API_KEY_ERROR", 401);
|
|
18
18
|
this.name = "ApiKeyError";
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
class ConnectionError extends
|
|
22
|
+
class ConnectionError extends TsarrError {
|
|
23
23
|
constructor(message, details) {
|
|
24
24
|
super(message, "CONNECTION_ERROR", undefined, details);
|
|
25
25
|
this.name = "ConnectionError";
|
|
@@ -344,12 +344,6 @@ var getApiV5SettingsUpdate = (options) => {
|
|
|
344
344
|
url: "/api/v5/settings/update"
|
|
345
345
|
});
|
|
346
346
|
};
|
|
347
|
-
var putApiV5SettingsUpdate = (options) => {
|
|
348
|
-
return (options?.client ?? client).put({
|
|
349
|
-
...options,
|
|
350
|
-
url: "/api/v5/settings/update"
|
|
351
|
-
});
|
|
352
|
-
};
|
|
353
347
|
var getApiV5SettingsUpdateById = (options) => {
|
|
354
348
|
return (options?.client ?? client).get({
|
|
355
349
|
...options,
|
|
@@ -370,6 +364,16 @@ class SonarrClient {
|
|
|
370
364
|
async getApi() {
|
|
371
365
|
return getApi();
|
|
372
366
|
}
|
|
367
|
+
async getSystemStatus() {
|
|
368
|
+
return client.get({
|
|
369
|
+
url: "/api/v3/system/status"
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
async getHealth() {
|
|
373
|
+
return client.get({
|
|
374
|
+
url: "/api/v3/health"
|
|
375
|
+
});
|
|
376
|
+
}
|
|
373
377
|
async getSeries() {
|
|
374
378
|
return getApiV5Series();
|
|
375
379
|
}
|
|
@@ -411,9 +415,6 @@ class SonarrClient {
|
|
|
411
415
|
async getUpdateSettings() {
|
|
412
416
|
return getApiV5SettingsUpdate();
|
|
413
417
|
}
|
|
414
|
-
async updateSettings(settings) {
|
|
415
|
-
return putApiV5SettingsUpdate({ body: settings });
|
|
416
|
-
}
|
|
417
418
|
async getUpdateSetting(id) {
|
|
418
419
|
return getApiV5SettingsUpdateById({ path: { id } });
|
|
419
420
|
}
|
package/dist/core/errors.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class TsarrError extends Error {
|
|
2
2
|
code?: string | undefined;
|
|
3
3
|
statusCode?: number | undefined;
|
|
4
4
|
details?: unknown | undefined;
|
|
5
5
|
constructor(message: string, code?: string | undefined, statusCode?: number | undefined, details?: unknown | undefined);
|
|
6
6
|
}
|
|
7
|
-
export declare class ApiKeyError extends
|
|
7
|
+
export declare class ApiKeyError extends TsarrError {
|
|
8
8
|
constructor(message?: string);
|
|
9
9
|
}
|
|
10
|
-
export declare class ConnectionError extends
|
|
10
|
+
export declare class ConnectionError extends TsarrError {
|
|
11
11
|
constructor(message: string, details?: unknown);
|
|
12
12
|
}
|
|
13
|
-
export declare class ValidationError extends
|
|
13
|
+
export declare class ValidationError extends TsarrError {
|
|
14
14
|
constructor(message: string, details?: unknown);
|
|
15
15
|
}
|
|
16
|
-
export declare class NotFoundError extends
|
|
16
|
+
export declare class NotFoundError extends TsarrError {
|
|
17
17
|
constructor(resource: string);
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/core/response.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TsarrError } from './errors.js';
|
|
2
2
|
export interface ApiResponse<T> {
|
|
3
3
|
data?: T;
|
|
4
|
-
error?:
|
|
4
|
+
error?: TsarrError;
|
|
5
5
|
success: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare function handleApiResponse<T>(promise: Promise<{
|