tsarr 2.9.0 → 2.10.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 (49) hide show
  1. package/README.md +7 -5
  2. package/dist/cli/commands/bazarr.d.ts +2 -0
  3. package/dist/cli/commands/bazarr.d.ts.map +1 -1
  4. package/dist/cli/commands/config.d.ts.map +1 -1
  5. package/dist/cli/commands/lidarr.d.ts +2 -0
  6. package/dist/cli/commands/lidarr.d.ts.map +1 -1
  7. package/dist/cli/commands/radarr.d.ts.map +1 -1
  8. package/dist/cli/commands/readarr.d.ts +2 -0
  9. package/dist/cli/commands/readarr.d.ts.map +1 -1
  10. package/dist/cli/commands/sonarr.d.ts.map +1 -1
  11. package/dist/cli/index.js +2138 -2405
  12. package/dist/clients/base.d.ts +136 -0
  13. package/dist/clients/base.d.ts.map +1 -0
  14. package/dist/clients/bazarr.d.ts +1 -1
  15. package/dist/clients/bazarr.d.ts.map +1 -1
  16. package/dist/clients/bazarr.js +100 -3
  17. package/dist/clients/lidarr.d.ts +24 -681
  18. package/dist/clients/lidarr.d.ts.map +1 -1
  19. package/dist/clients/lidarr.js +323 -196
  20. package/dist/clients/prowlarr.d.ts +25 -638
  21. package/dist/clients/prowlarr.d.ts.map +1 -1
  22. package/dist/clients/prowlarr.js +331 -175
  23. package/dist/clients/qbittorrent.d.ts +1 -17
  24. package/dist/clients/qbittorrent.d.ts.map +1 -1
  25. package/dist/clients/qbittorrent.js +97 -2
  26. package/dist/clients/radarr.d.ts +4 -657
  27. package/dist/clients/radarr.d.ts.map +1 -1
  28. package/dist/clients/radarr.js +323 -164
  29. package/dist/clients/readarr.d.ts +4 -635
  30. package/dist/clients/readarr.d.ts.map +1 -1
  31. package/dist/clients/readarr.js +323 -164
  32. package/dist/clients/seerr.d.ts +1 -1
  33. package/dist/clients/seerr.d.ts.map +1 -1
  34. package/dist/clients/seerr.js +100 -3
  35. package/dist/clients/sonarr.d.ts +181 -772
  36. package/dist/clients/sonarr.d.ts.map +1 -1
  37. package/dist/clients/sonarr.js +346 -157
  38. package/dist/core/client.d.ts +3 -0
  39. package/dist/core/client.d.ts.map +1 -1
  40. package/dist/core/fetch.d.ts +23 -0
  41. package/dist/core/fetch.d.ts.map +1 -0
  42. package/dist/core/index.d.ts +1 -0
  43. package/dist/core/index.d.ts.map +1 -1
  44. package/dist/core/types.d.ts +7 -0
  45. package/dist/core/types.d.ts.map +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/tsarr-2.10.0.tgz +0 -0
  48. package/package.json +2 -4
  49. package/dist/tsarr-2.9.0.tgz +0 -0
@@ -0,0 +1,136 @@
1
+ import { createServarrClient } from '../core/client';
2
+ import type { ServarrClientConfig } from '../core/types';
3
+ type ApiCall = (...args: any[]) => Promise<any>;
4
+ export interface ServarrOps {
5
+ getSystemStatus: ApiCall;
6
+ getHealth: ApiCall;
7
+ getTags: ApiCall;
8
+ createTag: ApiCall;
9
+ getTagById: ApiCall;
10
+ updateTagById: ApiCall;
11
+ deleteTagById: ApiCall;
12
+ getTagDetails: ApiCall;
13
+ getTagDetailById: ApiCall;
14
+ getNotifications: ApiCall;
15
+ createNotification: ApiCall;
16
+ getNotificationById: ApiCall;
17
+ updateNotificationById: ApiCall;
18
+ deleteNotificationById: ApiCall;
19
+ getNotificationSchema: ApiCall;
20
+ testNotification: ApiCall;
21
+ testAllNotifications: ApiCall;
22
+ getDownloadClients: ApiCall;
23
+ createDownloadClient: ApiCall;
24
+ getDownloadClientById: ApiCall;
25
+ updateDownloadClientById: ApiCall;
26
+ deleteDownloadClientById: ApiCall;
27
+ getDownloadClientSchema: ApiCall;
28
+ testDownloadClient: ApiCall;
29
+ testAllDownloadClients: ApiCall;
30
+ getIndexers: ApiCall;
31
+ createIndexer: ApiCall;
32
+ getIndexerById: ApiCall;
33
+ updateIndexerById: ApiCall;
34
+ deleteIndexerById: ApiCall;
35
+ getIndexerSchema: ApiCall;
36
+ testIndexer: ApiCall;
37
+ testAllIndexers: ApiCall;
38
+ restartSystem: ApiCall;
39
+ shutdownSystem: ApiCall;
40
+ getBackups: ApiCall;
41
+ deleteBackup: ApiCall;
42
+ restoreBackup: ApiCall;
43
+ uploadBackup: ApiCall;
44
+ getLogFiles: ApiCall;
45
+ getLogFileByName: ApiCall;
46
+ runCommand: ApiCall;
47
+ getCommands: ApiCall;
48
+ getHostConfig: ApiCall;
49
+ getHostConfigById: ApiCall;
50
+ updateHostConfig: ApiCall;
51
+ getUiConfig: ApiCall;
52
+ getUiConfigById: ApiCall;
53
+ updateUiConfig: ApiCall;
54
+ }
55
+ interface RawClient {
56
+ setConfig(config: Record<string, unknown>): unknown;
57
+ }
58
+ export declare abstract class ServarrBaseClient {
59
+ protected clientConfig: ReturnType<typeof createServarrClient>;
60
+ protected readonly rawClient: RawClient;
61
+ protected abstract readonly ops: ServarrOps;
62
+ constructor(config: ServarrClientConfig, rawClient: RawClient);
63
+ protected configureRawClient(): void;
64
+ protected getClientConfig(): {
65
+ baseUrl: string;
66
+ headers: {
67
+ 'X-Api-Key': string;
68
+ 'Content-Type': string;
69
+ };
70
+ fetch: typeof fetch;
71
+ };
72
+ getSystemStatus(): Promise<any>;
73
+ getHealth(): Promise<any>;
74
+ getTags(): Promise<any>;
75
+ addTag(tag: {
76
+ id?: number;
77
+ label?: string | null;
78
+ }): Promise<any>;
79
+ getTag(id: number): Promise<any>;
80
+ updateTag(id: number | string, tag: {
81
+ id?: number;
82
+ label?: string | null;
83
+ }): Promise<any>;
84
+ deleteTag(id: number): Promise<any>;
85
+ getTagDetails(): Promise<any>;
86
+ getTagDetailById(id: number): Promise<any>;
87
+ getNotifications(): Promise<any>;
88
+ getNotification(id: number): Promise<any>;
89
+ addNotification(notification: Record<string, unknown>): Promise<any>;
90
+ updateNotification(id: number | string, notification: Record<string, unknown>): Promise<any>;
91
+ deleteNotification(id: number): Promise<any>;
92
+ getNotificationSchema(): Promise<any>;
93
+ testNotification(notification: Record<string, unknown>): Promise<any>;
94
+ testAllNotifications(): Promise<any>;
95
+ getDownloadClients(): Promise<any>;
96
+ getDownloadClient(id: number): Promise<any>;
97
+ addDownloadClient(client: Record<string, unknown>): Promise<any>;
98
+ updateDownloadClient(id: number | string, client: Record<string, unknown>): Promise<any>;
99
+ deleteDownloadClient(id: number): Promise<any>;
100
+ getDownloadClientSchema(): Promise<any>;
101
+ testDownloadClient(client: Record<string, unknown>): Promise<any>;
102
+ testAllDownloadClients(): Promise<any>;
103
+ getIndexers(): Promise<any>;
104
+ getIndexer(id: number): Promise<any>;
105
+ addIndexer(indexer: Record<string, unknown>): Promise<any>;
106
+ updateIndexer(id: number | string, indexer: Record<string, unknown>): Promise<any>;
107
+ deleteIndexer(id: number): Promise<any>;
108
+ getIndexerSchema(): Promise<any>;
109
+ testIndexer(indexer: Record<string, unknown>): Promise<any>;
110
+ testAllIndexers(): Promise<any>;
111
+ restartSystem(): Promise<any>;
112
+ shutdownSystem(): Promise<any>;
113
+ getSystemBackups(): Promise<any>;
114
+ deleteSystemBackup(id: number): Promise<any>;
115
+ restoreSystemBackup(id: number): Promise<any>;
116
+ uploadSystemBackup(): Promise<any>;
117
+ getLogFiles(): Promise<any>;
118
+ getLogFileByName(filename: string): Promise<any>;
119
+ runCommand(command: Record<string, unknown>): Promise<any>;
120
+ getCommands(): Promise<any>;
121
+ getHostConfig(): Promise<any>;
122
+ getHostConfigById(id: number): Promise<any>;
123
+ updateHostConfig(id: number | string, config: Record<string, unknown>): Promise<any>;
124
+ getUiConfig(): Promise<any>;
125
+ getUiConfigById(id: number): Promise<any>;
126
+ updateUiConfig(id: number | string, config: Record<string, unknown>): Promise<any>;
127
+ updateConfig(newConfig: Partial<ServarrClientConfig>): {
128
+ baseUrl: string;
129
+ apiKey: string;
130
+ timeout?: number;
131
+ retry?: import("..").RetryOptions;
132
+ headers?: Record<string, string>;
133
+ };
134
+ }
135
+ export {};
136
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/clients/base.ts"],"names":[],"mappings":"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"}
@@ -851,9 +851,9 @@ export declare class BazarrClient {
851
851
  baseUrl: string;
852
852
  apiKey: string;
853
853
  timeout?: number;
854
+ retry?: import("../index.js").RetryOptions;
854
855
  headers?: Record<string, string>;
855
856
  };
856
857
  }
857
- export * from './bazarr-types';
858
858
  export * from './bazarr-types.js';
859
859
  //# sourceMappingURL=bazarr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bazarr.d.ts","sourceRoot":"","sources":["../../src/clients/bazarr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bazarr.d.ts","sourceRoot":"","sources":["../../src/clients/bazarr.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,95 @@ class ConnectionError extends TsarrError {
26
26
  }
27
27
  }
28
28
 
29
+ // src/core/fetch.ts
30
+ var DEFAULT_TIMEOUT = 30000;
31
+ var DEFAULT_MAX_RETRIES = 3;
32
+ var DEFAULT_INITIAL_DELAY = 1000;
33
+ var DEFAULT_MAX_DELAY = 1e4;
34
+ var RETRYABLE_STATUS_CODES = new Set([408, 429, 502, 503, 504]);
35
+ function isRetryable(error) {
36
+ if (error instanceof DOMException && error.name === "AbortError") {
37
+ return false;
38
+ }
39
+ if (error instanceof TypeError) {
40
+ return true;
41
+ }
42
+ return false;
43
+ }
44
+ function getRetryDelay(attempt, initialDelayMs, maxDelayMs) {
45
+ const delay = initialDelayMs * 2 ** attempt;
46
+ const jitter = delay * 0.2 * Math.random();
47
+ return Math.min(delay + jitter, maxDelayMs);
48
+ }
49
+ function createResilientFetch(options = {}) {
50
+ const timeout = options.timeout ?? DEFAULT_TIMEOUT;
51
+ const maxRetries = options.retry ? options.retry.maxRetries ?? DEFAULT_MAX_RETRIES : 0;
52
+ const initialDelayMs = options.retry?.initialDelayMs ?? DEFAULT_INITIAL_DELAY;
53
+ const maxDelayMs = options.retry?.maxDelayMs ?? DEFAULT_MAX_DELAY;
54
+ const resilientFetch = async (input, init) => {
55
+ let lastError;
56
+ const template = createRequestTemplate(input, init);
57
+ for (let attempt = 0;attempt <= maxRetries; attempt++) {
58
+ const controller = new AbortController;
59
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
60
+ const callerSignal = init?.signal;
61
+ if (callerSignal?.aborted) {
62
+ clearTimeout(timeoutId);
63
+ throw callerSignal.reason ?? new DOMException("The operation was aborted.", "AbortError");
64
+ }
65
+ const onCallerAbort = () => controller.abort(callerSignal.reason);
66
+ callerSignal?.addEventListener("abort", onCallerAbort, { once: true });
67
+ try {
68
+ const response = await globalThis.fetch(new Request(template.clone(), { signal: controller.signal }));
69
+ clearTimeout(timeoutId);
70
+ callerSignal?.removeEventListener("abort", onCallerAbort);
71
+ if (RETRYABLE_STATUS_CODES.has(response.status) && attempt < maxRetries) {
72
+ lastError = new ConnectionError(`Request failed with status ${response.status}`);
73
+ const delay = getRetryDelay(attempt, initialDelayMs, maxDelayMs);
74
+ await new Promise((resolve) => setTimeout(resolve, delay));
75
+ continue;
76
+ }
77
+ return response;
78
+ } catch (error) {
79
+ clearTimeout(timeoutId);
80
+ callerSignal?.removeEventListener("abort", onCallerAbort);
81
+ if (callerSignal?.aborted) {
82
+ throw callerSignal.reason ?? new DOMException("The operation was aborted.", "AbortError");
83
+ }
84
+ if (error instanceof DOMException && error.name === "AbortError") {
85
+ lastError = new ConnectionError(`Request timed out after ${timeout}ms`);
86
+ if (attempt < maxRetries) {
87
+ const delay = getRetryDelay(attempt, initialDelayMs, maxDelayMs);
88
+ await new Promise((resolve) => setTimeout(resolve, delay));
89
+ continue;
90
+ }
91
+ throw lastError;
92
+ }
93
+ if (isRetryable(error) && attempt < maxRetries) {
94
+ lastError = error;
95
+ const delay = getRetryDelay(attempt, initialDelayMs, maxDelayMs);
96
+ await new Promise((resolve) => setTimeout(resolve, delay));
97
+ continue;
98
+ }
99
+ throw error;
100
+ }
101
+ }
102
+ throw lastError;
103
+ };
104
+ return Object.assign(resilientFetch, {
105
+ preconnect: globalThis.fetch.preconnect?.bind(globalThis.fetch)
106
+ });
107
+ }
108
+ function createRequestTemplate(input, init) {
109
+ const { signal: _signal, ...requestInit } = init ?? {};
110
+ if (input instanceof Request) {
111
+ return init ? new Request(input.clone(), requestInit) : input.clone();
112
+ }
113
+ return new Request(input, requestInit);
114
+ }
115
+
29
116
  // src/core/client.ts
117
+ var DEFAULT_TIMEOUT_MS = 30000;
30
118
  function createServarrClient(config) {
31
119
  if (!config.apiKey) {
32
120
  throw new ApiKeyError;
@@ -38,6 +126,11 @@ function createServarrClient(config) {
38
126
  ...config,
39
127
  baseUrl: config.baseUrl.replace(/\/$/, "")
40
128
  };
129
+ const timeoutMs = validatedConfig.timeout ?? DEFAULT_TIMEOUT_MS;
130
+ const resilientFetch = createResilientFetch({
131
+ timeout: timeoutMs,
132
+ retry: validatedConfig.retry
133
+ });
41
134
  return {
42
135
  config: validatedConfig,
43
136
  getHeaders: () => ({
@@ -45,7 +138,9 @@ function createServarrClient(config) {
45
138
  "Content-Type": "application/json",
46
139
  ...validatedConfig.headers
47
140
  }),
48
- getBaseUrl: () => validatedConfig.baseUrl
141
+ getBaseUrl: () => validatedConfig.baseUrl,
142
+ getTimeout: () => timeoutMs,
143
+ getFetch: () => resilientFetch
49
144
  };
50
145
  }
51
146
 
@@ -1208,7 +1303,8 @@ class BazarrClient {
1208
1303
  client.setConfig({
1209
1304
  baseUrl: getBazarrApiBaseUrl(this.clientConfig.getBaseUrl()),
1210
1305
  headers: getBazarrHeaders(this.clientConfig),
1211
- auth: this.clientConfig.config.apiKey
1306
+ auth: this.clientConfig.config.apiKey,
1307
+ fetch: this.clientConfig.getFetch()
1212
1308
  });
1213
1309
  }
1214
1310
  async getSystemStatus() {
@@ -1549,7 +1645,8 @@ class BazarrClient {
1549
1645
  client.setConfig({
1550
1646
  baseUrl: getBazarrApiBaseUrl(this.clientConfig.getBaseUrl()),
1551
1647
  headers: getBazarrHeaders(this.clientConfig),
1552
- auth: this.clientConfig.config.apiKey
1648
+ auth: this.clientConfig.config.apiKey,
1649
+ fetch: this.clientConfig.getFetch()
1553
1650
  });
1554
1651
  return this.clientConfig.config;
1555
1652
  }