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 CHANGED
@@ -1,13 +1,13 @@
1
- # TsArr
1
+ # Tsarr
2
2
 
3
3
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
4
4
  [![Bun](https://img.shields.io/badge/Bun-000000?style=flat-square&logo=bun&logoColor=white)](https://bun.sh)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
6
- [![CI](https://github.com/robbeverhelst/TsArr/workflows/CI/badge.svg)](https://github.com/robbeverhelst/TsArr/actions)
6
+ [![CI](https://github.com/robbeverhelst/Tsarr/workflows/CI/badge.svg)](https://github.com/robbeverhelst/Tsarr/actions)
7
7
 
8
8
  **Type-safe TypeScript SDK for Servarr APIs (Radarr, Sonarr, etc.)**
9
9
 
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.
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
 
@@ -1,5 +1,5 @@
1
1
  // src/core/errors.ts
2
- class TsArrError extends Error {
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 = "TsArrError";
11
+ this.name = "TsarrError";
12
12
  }
13
13
  }
14
14
 
15
- class ApiKeyError extends TsArrError {
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 TsArrError {
22
+ class ConnectionError extends TsarrError {
23
23
  constructor(message, details) {
24
24
  super(message, "CONNECTION_ERROR", undefined, details);
25
25
  this.name = "ConnectionError";
@@ -1,5 +1,5 @@
1
1
  // src/core/errors.ts
2
- class TsArrError extends Error {
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 = "TsArrError";
11
+ this.name = "TsarrError";
12
12
  }
13
13
  }
14
14
 
15
- class ApiKeyError extends TsArrError {
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 TsArrError {
22
+ class ConnectionError extends TsarrError {
23
23
  constructor(message, details) {
24
24
  super(message, "CONNECTION_ERROR", undefined, details);
25
25
  this.name = "ConnectionError";
@@ -1,5 +1,5 @@
1
1
  // src/core/errors.ts
2
- class TsArrError extends Error {
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 = "TsArrError";
11
+ this.name = "TsarrError";
12
12
  }
13
13
  }
14
14
 
15
- class ApiKeyError extends TsArrError {
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 TsArrError {
22
+ class ConnectionError extends TsarrError {
23
23
  constructor(message, details) {
24
24
  super(message, "CONNECTION_ERROR", undefined, details);
25
25
  this.name = "ConnectionError";
@@ -1,5 +1,5 @@
1
1
  // src/core/errors.ts
2
- class TsArrError extends Error {
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 = "TsArrError";
11
+ this.name = "TsarrError";
12
12
  }
13
13
  }
14
14
 
15
- class ApiKeyError extends TsArrError {
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 TsArrError {
22
+ class ConnectionError extends TsarrError {
23
23
  constructor(message, details) {
24
24
  super(message, "CONNECTION_ERROR", undefined, details);
25
25
  this.name = "ConnectionError";
@@ -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, UpdateSettingsResource } from '../generated/sonarr/types.gen.js';
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,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/F;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,mBAAmB;IAWjC,MAAM;;;;;;;;;;IAMZ;;OAEG;IACG,SAAS;;;;;;;;;;IAIT,aAAa,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAIxB,SAAS,CAAC,MAAM,EAAE,cAAc;;;;;;;;;;IAIhC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;;;;;;;;;;IAI/C,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,cAAc,CAAC,QAAQ,EAAE,sBAAsB;;;;;;;;;;IAIrD;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAKjC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC;;;;;;CAWrD"}
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"}
@@ -1,5 +1,5 @@
1
1
  // src/core/errors.ts
2
- class TsArrError extends Error {
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 = "TsArrError";
11
+ this.name = "TsarrError";
12
12
  }
13
13
  }
14
14
 
15
- class ApiKeyError extends TsArrError {
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 TsArrError {
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
  }
@@ -1,19 +1,19 @@
1
- export declare class TsArrError extends Error {
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 TsArrError {
7
+ export declare class ApiKeyError extends TsarrError {
8
8
  constructor(message?: string);
9
9
  }
10
- export declare class ConnectionError extends TsArrError {
10
+ export declare class ConnectionError extends TsarrError {
11
11
  constructor(message: string, details?: unknown);
12
12
  }
13
- export declare class ValidationError extends TsArrError {
13
+ export declare class ValidationError extends TsarrError {
14
14
  constructor(message: string, details?: unknown);
15
15
  }
16
- export declare class NotFoundError extends TsArrError {
16
+ export declare class NotFoundError extends TsarrError {
17
17
  constructor(resource: string);
18
18
  }
19
19
  //# sourceMappingURL=errors.d.ts.map
@@ -1,7 +1,7 @@
1
- import { TsArrError } from './errors.js';
1
+ import { TsarrError } from './errors.js';
2
2
  export interface ApiResponse<T> {
3
3
  data?: T;
4
- error?: TsArrError;
4
+ error?: TsarrError;
5
5
  success: boolean;
6
6
  }
7
7
  export declare function handleApiResponse<T>(promise: Promise<{