tsarr 1.1.0 → 1.1.2

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 (74) hide show
  1. package/dist/clients/lidarr.d.ts +373 -0
  2. package/dist/clients/lidarr.d.ts.map +1 -0
  3. package/dist/clients/lidarr.js +626 -0
  4. package/dist/clients/prowlarr.d.ts +143 -0
  5. package/dist/clients/prowlarr.d.ts.map +1 -0
  6. package/dist/clients/prowlarr.js +408 -0
  7. package/dist/clients/radarr.d.ts +1007 -0
  8. package/dist/clients/radarr.d.ts.map +1 -0
  9. package/dist/clients/radarr.js +1059 -0
  10. package/dist/clients/readarr.d.ts +173 -0
  11. package/dist/clients/readarr.d.ts.map +1 -0
  12. package/dist/clients/readarr.js +432 -0
  13. package/dist/clients/sonarr.d.ts +181 -0
  14. package/dist/clients/sonarr.d.ts.map +1 -0
  15. package/dist/clients/sonarr.js +432 -0
  16. package/dist/core/client.d.ts +17 -0
  17. package/dist/core/client.d.ts.map +1 -0
  18. package/dist/core/errors.d.ts +19 -0
  19. package/dist/core/errors.d.ts.map +1 -0
  20. package/dist/core/index.d.ts +5 -0
  21. package/dist/core/index.d.ts.map +1 -0
  22. package/dist/core/response.d.ts +13 -0
  23. package/dist/core/response.d.ts.map +1 -0
  24. package/dist/core/types.d.ts +12 -0
  25. package/dist/core/types.d.ts.map +1 -0
  26. package/dist/generated/lidarr/index.d.ts +4 -0
  27. package/dist/generated/lidarr/index.d.ts.map +1 -0
  28. package/dist/generated/lidarr/schemas.gen.d.ts +4584 -0
  29. package/dist/generated/lidarr/schemas.gen.d.ts.map +1 -0
  30. package/dist/generated/lidarr/services.gen.d.ts +242 -0
  31. package/dist/generated/lidarr/services.gen.d.ts.map +1 -0
  32. package/dist/generated/lidarr/types.gen.d.ts +2618 -0
  33. package/dist/generated/lidarr/types.gen.d.ts.map +1 -0
  34. package/dist/generated/prowlarr/index.d.ts +4 -0
  35. package/dist/generated/prowlarr/index.d.ts.map +1 -0
  36. package/dist/generated/prowlarr/schemas.gen.d.ts +2151 -0
  37. package/dist/generated/prowlarr/schemas.gen.d.ts.map +1 -0
  38. package/dist/generated/prowlarr/services.gen.d.ts +135 -0
  39. package/dist/generated/prowlarr/services.gen.d.ts.map +1 -0
  40. package/dist/generated/prowlarr/types.gen.d.ts +1339 -0
  41. package/dist/generated/prowlarr/types.gen.d.ts.map +1 -0
  42. package/dist/generated/radarr/index.d.ts +4 -0
  43. package/dist/generated/radarr/index.d.ts.map +1 -0
  44. package/dist/generated/radarr/schemas.gen.d.ts +4402 -0
  45. package/dist/generated/radarr/schemas.gen.d.ts.map +1 -0
  46. package/dist/generated/radarr/services.gen.d.ts +250 -0
  47. package/dist/generated/radarr/services.gen.d.ts.map +1 -0
  48. package/dist/generated/radarr/types.gen.d.ts +2547 -0
  49. package/dist/generated/radarr/types.gen.d.ts.map +1 -0
  50. package/dist/generated/readarr/index.d.ts +4 -0
  51. package/dist/generated/readarr/index.d.ts.map +1 -0
  52. package/dist/generated/readarr/schemas.gen.d.ts +5250 -0
  53. package/dist/generated/readarr/schemas.gen.d.ts.map +1 -0
  54. package/dist/generated/readarr/services.gen.d.ts +240 -0
  55. package/dist/generated/readarr/services.gen.d.ts.map +1 -0
  56. package/dist/generated/readarr/types.gen.d.ts +2770 -0
  57. package/dist/generated/readarr/types.gen.d.ts.map +1 -0
  58. package/dist/generated/sonarr/index.d.ts +4 -0
  59. package/dist/generated/sonarr/index.d.ts.map +1 -0
  60. package/dist/generated/sonarr/schemas.gen.d.ts +612 -0
  61. package/dist/generated/sonarr/schemas.gen.d.ts.map +1 -0
  62. package/dist/generated/sonarr/services.gen.d.ts +27 -0
  63. package/dist/generated/sonarr/services.gen.d.ts.map +1 -0
  64. package/dist/generated/sonarr/types.gen.d.ts +282 -0
  65. package/dist/generated/sonarr/types.gen.d.ts.map +1 -0
  66. package/dist/index.d.ts +13 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/radarr/index.d.ts +2 -0
  69. package/dist/radarr/index.d.ts.map +1 -0
  70. package/dist/sonarr/index.d.ts +2 -0
  71. package/dist/sonarr/index.d.ts.map +1 -0
  72. package/dist/tsarr-1.1.2.tgz +0 -0
  73. package/package.json +5 -4
  74. package/dist/tsarr-1.1.0.tgz +0 -0
@@ -0,0 +1,143 @@
1
+ import type { ServarrClientConfig } from '../core/types.js';
2
+ import * as ProwlarrApi from '../generated/prowlarr/index.js';
3
+ import type { CommandResource, IndexerResource } from '../generated/prowlarr/types.gen.js';
4
+ /**
5
+ * Prowlarr API client for indexer management
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const prowlarr = new ProwlarrClient({
10
+ * baseUrl: 'http://localhost:9696',
11
+ * apiKey: 'your-api-key'
12
+ * });
13
+ *
14
+ * const indexers = await prowlarr.getIndexers();
15
+ * ```
16
+ */
17
+ export declare class ProwlarrClient {
18
+ private clientConfig;
19
+ constructor(config: ServarrClientConfig);
20
+ getSystemStatus(): Promise<({
21
+ data: undefined;
22
+ error: unknown;
23
+ } | {
24
+ data: ProwlarrApi.SystemResource;
25
+ error: undefined;
26
+ }) & {
27
+ request: Request;
28
+ response: Response;
29
+ }>;
30
+ getHealth(): Promise<({
31
+ data: undefined;
32
+ error: unknown;
33
+ } | {
34
+ data: ProwlarrApi.GetApiV1HealthResponse;
35
+ error: undefined;
36
+ }) & {
37
+ request: Request;
38
+ response: Response;
39
+ }>;
40
+ /**
41
+ * Get all configured indexers
42
+ */
43
+ getIndexers(): Promise<({
44
+ data: undefined;
45
+ error: unknown;
46
+ } | {
47
+ data: ProwlarrApi.GetApiV1IndexerResponse;
48
+ error: undefined;
49
+ }) & {
50
+ request: Request;
51
+ response: Response;
52
+ }>;
53
+ getIndexer(id: number): Promise<({
54
+ data: undefined;
55
+ error: unknown;
56
+ } | {
57
+ data: ProwlarrApi.IndexerResource;
58
+ error: undefined;
59
+ }) & {
60
+ request: Request;
61
+ response: Response;
62
+ }>;
63
+ addIndexer(indexer: IndexerResource): Promise<({
64
+ data: undefined;
65
+ error: unknown;
66
+ } | {
67
+ data: ProwlarrApi.IndexerResource;
68
+ error: undefined;
69
+ }) & {
70
+ request: Request;
71
+ response: Response;
72
+ }>;
73
+ updateIndexer(id: number, indexer: IndexerResource): Promise<({
74
+ data: undefined;
75
+ error: unknown;
76
+ } | {
77
+ data: ProwlarrApi.IndexerResource;
78
+ error: undefined;
79
+ }) & {
80
+ request: Request;
81
+ response: Response;
82
+ }>;
83
+ deleteIndexer(id: number): Promise<({
84
+ data: undefined;
85
+ error: unknown;
86
+ } | {
87
+ data: unknown;
88
+ error: undefined;
89
+ }) & {
90
+ request: Request;
91
+ response: Response;
92
+ }>;
93
+ /**
94
+ * Search across all or specific indexers
95
+ */
96
+ search(query: string, indexerIds?: number[]): Promise<({
97
+ data: undefined;
98
+ error: unknown;
99
+ } | {
100
+ data: ProwlarrApi.GetApiV1SearchResponse;
101
+ error: undefined;
102
+ }) & {
103
+ request: Request;
104
+ response: Response;
105
+ }>;
106
+ getApplications(): Promise<({
107
+ data: undefined;
108
+ error: unknown;
109
+ } | {
110
+ data: ProwlarrApi.GetApiV1ApplicationsResponse;
111
+ error: undefined;
112
+ }) & {
113
+ request: Request;
114
+ response: Response;
115
+ }>;
116
+ runCommand(command: CommandResource): Promise<({
117
+ data: undefined;
118
+ error: unknown;
119
+ } | {
120
+ data: ProwlarrApi.CommandResource;
121
+ error: undefined;
122
+ }) & {
123
+ request: Request;
124
+ response: Response;
125
+ }>;
126
+ getCommands(): Promise<({
127
+ data: undefined;
128
+ error: unknown;
129
+ } | {
130
+ data: ProwlarrApi.GetApiV1CommandResponse;
131
+ error: undefined;
132
+ }) & {
133
+ request: Request;
134
+ response: Response;
135
+ }>;
136
+ updateConfig(newConfig: Partial<ServarrClientConfig>): {
137
+ baseUrl: string;
138
+ apiKey: string;
139
+ timeout?: number;
140
+ headers?: Record<string, string>;
141
+ };
142
+ }
143
+ //# sourceMappingURL=prowlarr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prowlarr.d.ts","sourceRoot":"","sources":["../../src/clients/prowlarr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,WAAW,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE3F;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,mBAAmB;IAUjC,eAAe;;;;;;;;;;IAIf,SAAS;;;;;;;;;;IAMf;;OAEG;IACG,WAAW;;;;;;;;;;IAIX,UAAU,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAIrB,UAAU,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;IAInC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe;;;;;;;;;;IAIlD,aAAa,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;IAM9B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;IAU3C,eAAe;;;;;;;;;;IAKf,UAAU,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;IAInC,WAAW;;;;;;;;;;IAIjB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC;;;;;;CAWrD"}
@@ -0,0 +1,408 @@
1
+ // src/core/errors.ts
2
+ class TsArrError extends Error {
3
+ code;
4
+ statusCode;
5
+ details;
6
+ constructor(message, code, statusCode, details) {
7
+ super(message);
8
+ this.code = code;
9
+ this.statusCode = statusCode;
10
+ this.details = details;
11
+ this.name = "TsArrError";
12
+ }
13
+ }
14
+
15
+ class ApiKeyError extends TsArrError {
16
+ constructor(message = "Invalid or missing API key") {
17
+ super(message, "API_KEY_ERROR", 401);
18
+ this.name = "ApiKeyError";
19
+ }
20
+ }
21
+
22
+ class ConnectionError extends TsArrError {
23
+ constructor(message, details) {
24
+ super(message, "CONNECTION_ERROR", undefined, details);
25
+ this.name = "ConnectionError";
26
+ }
27
+ }
28
+
29
+ // src/core/client.ts
30
+ function createServarrClient(config) {
31
+ if (!config.apiKey) {
32
+ throw new ApiKeyError;
33
+ }
34
+ if (!config.baseUrl) {
35
+ throw new ConnectionError("No base URL provided");
36
+ }
37
+ const validatedConfig = {
38
+ ...config,
39
+ baseUrl: config.baseUrl.replace(/\/$/, "")
40
+ };
41
+ return {
42
+ config: validatedConfig,
43
+ getHeaders: () => ({
44
+ "X-Api-Key": validatedConfig.apiKey,
45
+ "Content-Type": "application/json",
46
+ ...validatedConfig.headers
47
+ }),
48
+ getBaseUrl: () => validatedConfig.baseUrl
49
+ };
50
+ }
51
+
52
+ // node_modules/@hey-api/client-fetch/dist/index.js
53
+ var T = /\{[^{}]+\}/g;
54
+ var h = ({ allowReserved: i, name: n, value: e }) => {
55
+ if (e == null)
56
+ return "";
57
+ if (typeof e == "object")
58
+ throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");
59
+ return `${n}=${i ? e : encodeURIComponent(e)}`;
60
+ };
61
+ var U = (i) => {
62
+ switch (i) {
63
+ case "label":
64
+ return ".";
65
+ case "matrix":
66
+ return ";";
67
+ case "simple":
68
+ return ",";
69
+ default:
70
+ return "&";
71
+ }
72
+ };
73
+ var $ = (i) => {
74
+ switch (i) {
75
+ case "form":
76
+ return ",";
77
+ case "pipeDelimited":
78
+ return "|";
79
+ case "spaceDelimited":
80
+ return "%20";
81
+ default:
82
+ return ",";
83
+ }
84
+ };
85
+ var D = (i) => {
86
+ switch (i) {
87
+ case "label":
88
+ return ".";
89
+ case "matrix":
90
+ return ";";
91
+ case "simple":
92
+ return ",";
93
+ default:
94
+ return "&";
95
+ }
96
+ };
97
+ var j = ({ allowReserved: i, explode: n, name: e, style: a, value: o }) => {
98
+ if (!n) {
99
+ let r = (i ? o : o.map((c) => encodeURIComponent(c))).join($(a));
100
+ switch (a) {
101
+ case "label":
102
+ return `.${r}`;
103
+ case "matrix":
104
+ return `;${e}=${r}`;
105
+ case "simple":
106
+ return r;
107
+ default:
108
+ return `${e}=${r}`;
109
+ }
110
+ }
111
+ let s = U(a), t = o.map((r) => a === "label" || a === "simple" ? i ? r : encodeURIComponent(r) : h({ allowReserved: i, name: e, value: r })).join(s);
112
+ return a === "label" || a === "matrix" ? s + t : t;
113
+ };
114
+ var C = ({ allowReserved: i, explode: n, name: e, style: a, value: o }) => {
115
+ if (o instanceof Date)
116
+ return `${e}=${o.toISOString()}`;
117
+ if (a !== "deepObject" && !n) {
118
+ let r = [];
119
+ Object.entries(o).forEach(([u, l]) => {
120
+ r = [...r, u, i ? l : encodeURIComponent(l)];
121
+ });
122
+ let c = r.join(",");
123
+ switch (a) {
124
+ case "form":
125
+ return `${e}=${c}`;
126
+ case "label":
127
+ return `.${c}`;
128
+ case "matrix":
129
+ return `;${e}=${c}`;
130
+ default:
131
+ return c;
132
+ }
133
+ }
134
+ let s = D(a), t = Object.entries(o).map(([r, c]) => h({ allowReserved: i, name: a === "deepObject" ? `${e}[${r}]` : r, value: c })).join(s);
135
+ return a === "label" || a === "matrix" ? s + t : t;
136
+ };
137
+ var _ = ({ path: i, url: n }) => {
138
+ let e = n, a = n.match(T);
139
+ if (a)
140
+ for (let o of a) {
141
+ let s = false, t = o.substring(1, o.length - 1), r = "simple";
142
+ t.endsWith("*") && (s = true, t = t.substring(0, t.length - 1)), t.startsWith(".") ? (t = t.substring(1), r = "label") : t.startsWith(";") && (t = t.substring(1), r = "matrix");
143
+ let c = i[t];
144
+ if (c == null)
145
+ continue;
146
+ if (Array.isArray(c)) {
147
+ e = e.replace(o, j({ explode: s, name: t, style: r, value: c }));
148
+ continue;
149
+ }
150
+ if (typeof c == "object") {
151
+ e = e.replace(o, C({ explode: s, name: t, style: r, value: c }));
152
+ continue;
153
+ }
154
+ if (r === "matrix") {
155
+ e = e.replace(o, `;${h({ name: t, value: c })}`);
156
+ continue;
157
+ }
158
+ let u = encodeURIComponent(r === "label" ? `.${c}` : c);
159
+ e = e.replace(o, u);
160
+ }
161
+ return e;
162
+ };
163
+ var b = ({ allowReserved: i, array: n, object: e } = {}) => (o) => {
164
+ let s = [];
165
+ if (o && typeof o == "object")
166
+ for (let t in o) {
167
+ let r = o[t];
168
+ if (r != null) {
169
+ if (Array.isArray(r)) {
170
+ s = [...s, j({ allowReserved: i, explode: true, name: t, style: "form", value: r, ...n })];
171
+ continue;
172
+ }
173
+ if (typeof r == "object") {
174
+ s = [...s, C({ allowReserved: i, explode: true, name: t, style: "deepObject", value: r, ...e })];
175
+ continue;
176
+ }
177
+ s = [...s, h({ allowReserved: i, name: t, value: r })];
178
+ }
179
+ }
180
+ return s.join("&");
181
+ };
182
+ var A = (i) => {
183
+ if (!i)
184
+ return;
185
+ let n = i.split(";")[0].trim();
186
+ if (n.startsWith("application/json") || n.endsWith("+json"))
187
+ return "json";
188
+ if (n === "multipart/form-data")
189
+ return "formData";
190
+ if (["application/", "audio/", "image/", "video/"].some((e) => n.startsWith(e)))
191
+ return "blob";
192
+ if (n.startsWith("text/"))
193
+ return "text";
194
+ };
195
+ var w = ({ baseUrl: i, path: n, query: e, querySerializer: a, url: o }) => {
196
+ let s = o.startsWith("/") ? o : `/${o}`, t = i + s;
197
+ n && (t = _({ path: n, url: t }));
198
+ let r = e ? a(e) : "";
199
+ return r.startsWith("?") && (r = r.substring(1)), r && (t += `?${r}`), t;
200
+ };
201
+ var R = (i, n) => {
202
+ let e = { ...i, ...n };
203
+ return e.baseUrl?.endsWith("/") && (e.baseUrl = e.baseUrl.substring(0, e.baseUrl.length - 1)), e.headers = O(i.headers, n.headers), e;
204
+ };
205
+ var O = (...i) => {
206
+ let n = new Headers;
207
+ for (let e of i) {
208
+ if (!e || typeof e != "object")
209
+ continue;
210
+ let a = e instanceof Headers ? e.entries() : Object.entries(e);
211
+ for (let [o, s] of a)
212
+ if (s === null)
213
+ n.delete(o);
214
+ else if (Array.isArray(s))
215
+ for (let t of s)
216
+ n.append(o, t);
217
+ else
218
+ s !== undefined && n.set(o, typeof s == "object" ? JSON.stringify(s) : s);
219
+ }
220
+ return n;
221
+ };
222
+ var y = class {
223
+ _fns;
224
+ constructor() {
225
+ this._fns = [];
226
+ }
227
+ clear() {
228
+ this._fns = [];
229
+ }
230
+ exists(n) {
231
+ return this._fns.indexOf(n) !== -1;
232
+ }
233
+ eject(n) {
234
+ let e = this._fns.indexOf(n);
235
+ e !== -1 && (this._fns = [...this._fns.slice(0, e), ...this._fns.slice(e + 1)]);
236
+ }
237
+ use(n) {
238
+ this._fns = [...this._fns, n];
239
+ }
240
+ };
241
+ var P = () => ({ error: new y, request: new y, response: new y });
242
+ var E = { bodySerializer: (i) => JSON.stringify(i) };
243
+ var W = b({ allowReserved: false, array: { explode: true, style: "form" }, object: { explode: true, style: "deepObject" } });
244
+ var B = { "Content-Type": "application/json" };
245
+ var x = (i = {}) => ({ ...E, baseUrl: "", fetch: globalThis.fetch, headers: B, parseAs: "auto", querySerializer: W, ...i });
246
+ var J = (i = {}) => {
247
+ let n = R(x(), i), e = () => ({ ...n }), a = (t) => (n = R(n, t), e()), o = P(), s = async (t) => {
248
+ let r = { ...n, ...t, headers: O(n.headers, t.headers) };
249
+ r.body && r.bodySerializer && (r.body = r.bodySerializer(r.body)), r.body || r.headers.delete("Content-Type");
250
+ let c = w({ baseUrl: r.baseUrl ?? "", path: r.path, query: r.query, querySerializer: typeof r.querySerializer == "function" ? r.querySerializer : b(r.querySerializer), url: r.url }), u = { redirect: "follow", ...r }, l = new Request(c, u);
251
+ for (let f of o.request._fns)
252
+ l = await f(l, r);
253
+ let I = r.fetch, p = await I(l);
254
+ for (let f of o.response._fns)
255
+ p = await f(p, l, r);
256
+ let g = { request: l, response: p };
257
+ if (p.ok) {
258
+ if (p.status === 204 || p.headers.get("Content-Length") === "0")
259
+ return { data: {}, ...g };
260
+ if (r.parseAs === "stream")
261
+ return { data: p.body, ...g };
262
+ let f = (r.parseAs === "auto" ? A(p.headers.get("Content-Type")) : r.parseAs) ?? "json", S = await p[f]();
263
+ return f === "json" && r.responseTransformer && (S = await r.responseTransformer(S)), { data: S, ...g };
264
+ }
265
+ let m = await p.text();
266
+ try {
267
+ m = JSON.parse(m);
268
+ } catch {}
269
+ let d = m;
270
+ for (let f of o.error._fns)
271
+ d = await f(m, p, l, r);
272
+ if (d = d || {}, r.throwOnError)
273
+ throw d;
274
+ return { error: d, ...g };
275
+ };
276
+ return { connect: (t) => s({ ...t, method: "CONNECT" }), delete: (t) => s({ ...t, method: "DELETE" }), get: (t) => s({ ...t, method: "GET" }), getConfig: e, head: (t) => s({ ...t, method: "HEAD" }), interceptors: o, options: (t) => s({ ...t, method: "OPTIONS" }), patch: (t) => s({ ...t, method: "PATCH" }), post: (t) => s({ ...t, method: "POST" }), put: (t) => s({ ...t, method: "PUT" }), request: s, setConfig: a, trace: (t) => s({ ...t, method: "TRACE" }) };
277
+ };
278
+
279
+ // src/generated/prowlarr/services.gen.ts
280
+ var client = J(x());
281
+ var getApiV1Applications = (options) => {
282
+ return (options?.client ?? client).get({
283
+ ...options,
284
+ url: "/api/v1/applications"
285
+ });
286
+ };
287
+ var postApiV1Command = (options) => {
288
+ return (options?.client ?? client).post({
289
+ ...options,
290
+ url: "/api/v1/command"
291
+ });
292
+ };
293
+ var getApiV1Command = (options) => {
294
+ return (options?.client ?? client).get({
295
+ ...options,
296
+ url: "/api/v1/command"
297
+ });
298
+ };
299
+ var getApiV1Health = (options) => {
300
+ return (options?.client ?? client).get({
301
+ ...options,
302
+ url: "/api/v1/health"
303
+ });
304
+ };
305
+ var getApiV1IndexerById = (options) => {
306
+ return (options?.client ?? client).get({
307
+ ...options,
308
+ url: "/api/v1/indexer/{id}"
309
+ });
310
+ };
311
+ var putApiV1IndexerById = (options) => {
312
+ return (options?.client ?? client).put({
313
+ ...options,
314
+ url: "/api/v1/indexer/{id}"
315
+ });
316
+ };
317
+ var deleteApiV1IndexerById = (options) => {
318
+ return (options?.client ?? client).delete({
319
+ ...options,
320
+ url: "/api/v1/indexer/{id}"
321
+ });
322
+ };
323
+ var getApiV1Indexer = (options) => {
324
+ return (options?.client ?? client).get({
325
+ ...options,
326
+ url: "/api/v1/indexer"
327
+ });
328
+ };
329
+ var postApiV1Indexer = (options) => {
330
+ return (options?.client ?? client).post({
331
+ ...options,
332
+ url: "/api/v1/indexer"
333
+ });
334
+ };
335
+ var getApiV1Search = (options) => {
336
+ return (options?.client ?? client).get({
337
+ ...options,
338
+ url: "/api/v1/search"
339
+ });
340
+ };
341
+ var getApiV1SystemStatus = (options) => {
342
+ return (options?.client ?? client).get({
343
+ ...options,
344
+ url: "/api/v1/system/status"
345
+ });
346
+ };
347
+
348
+ // src/clients/prowlarr.ts
349
+ class ProwlarrClient {
350
+ clientConfig;
351
+ constructor(config) {
352
+ this.clientConfig = createServarrClient(config);
353
+ client.setConfig({
354
+ baseUrl: this.clientConfig.getBaseUrl(),
355
+ headers: this.clientConfig.getHeaders()
356
+ });
357
+ }
358
+ async getSystemStatus() {
359
+ return getApiV1SystemStatus();
360
+ }
361
+ async getHealth() {
362
+ return getApiV1Health();
363
+ }
364
+ async getIndexers() {
365
+ return getApiV1Indexer();
366
+ }
367
+ async getIndexer(id) {
368
+ return getApiV1IndexerById({ path: { id } });
369
+ }
370
+ async addIndexer(indexer) {
371
+ return postApiV1Indexer({ body: indexer });
372
+ }
373
+ async updateIndexer(id, indexer) {
374
+ return putApiV1IndexerById({ path: { id: String(id) }, body: indexer });
375
+ }
376
+ async deleteIndexer(id) {
377
+ return deleteApiV1IndexerById({ path: { id } });
378
+ }
379
+ async search(query, indexerIds) {
380
+ return getApiV1Search({
381
+ query: {
382
+ query,
383
+ ...indexerIds && { indexerIds }
384
+ }
385
+ });
386
+ }
387
+ async getApplications() {
388
+ return getApiV1Applications();
389
+ }
390
+ async runCommand(command) {
391
+ return postApiV1Command({ body: command });
392
+ }
393
+ async getCommands() {
394
+ return getApiV1Command();
395
+ }
396
+ updateConfig(newConfig) {
397
+ const updatedConfig = { ...this.clientConfig.config, ...newConfig };
398
+ this.clientConfig = createServarrClient(updatedConfig);
399
+ client.setConfig({
400
+ baseUrl: this.clientConfig.getBaseUrl(),
401
+ headers: this.clientConfig.getHeaders()
402
+ });
403
+ return this.clientConfig.config;
404
+ }
405
+ }
406
+ export {
407
+ ProwlarrClient
408
+ };