tsarr 1.1.3 → 1.3.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 +1 -1
- package/dist/clients/lidarr.d.ts +10 -10
- package/dist/clients/lidarr.d.ts.map +1 -1
- package/dist/clients/lidarr.js +1183 -246
- package/dist/clients/prowlarr.d.ts +5 -5
- package/dist/clients/prowlarr.d.ts.map +1 -1
- package/dist/clients/prowlarr.js +825 -177
- package/dist/clients/radarr.d.ts +23 -23
- package/dist/clients/radarr.d.ts.map +1 -1
- package/dist/clients/radarr.js +1817 -347
- package/dist/clients/readarr.d.ts +5 -5
- package/dist/clients/readarr.d.ts.map +1 -1
- package/dist/clients/readarr.js +877 -192
- package/dist/clients/sonarr.d.ts +36 -17
- package/dist/clients/sonarr.d.ts.map +1 -1
- package/dist/clients/sonarr.js +855 -191
- package/dist/core/response.d.ts +1 -1
- package/dist/core/response.d.ts.map +1 -1
- package/dist/generated/lidarr/client/client.gen.d.ts +3 -0
- package/dist/generated/lidarr/client/client.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/client/index.d.ts +8 -0
- package/dist/generated/lidarr/client/index.d.ts.map +1 -0
- package/dist/generated/lidarr/client/types.gen.d.ts +125 -0
- package/dist/generated/lidarr/client/types.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/client/utils.gen.d.ts +39 -0
- package/dist/generated/lidarr/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/client.gen.d.ts +13 -0
- package/dist/generated/lidarr/client.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/auth.gen.d.ts +19 -0
- package/dist/generated/lidarr/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/bodySerializer.gen.d.ts +18 -0
- package/dist/generated/lidarr/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/params.gen.d.ts +34 -0
- package/dist/generated/lidarr/core/params.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/lidarr/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/lidarr/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/types.gen.d.ts +79 -0
- package/dist/generated/lidarr/core/types.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/core/utils.gen.d.ts +15 -0
- package/dist/generated/lidarr/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/index.d.ts +1 -2
- package/dist/generated/lidarr/index.d.ts.map +1 -1
- package/dist/generated/lidarr/sdk.gen.d.ts +252 -0
- package/dist/generated/lidarr/sdk.gen.d.ts.map +1 -0
- package/dist/generated/lidarr/types.gen.d.ts +3117 -1056
- package/dist/generated/lidarr/types.gen.d.ts.map +1 -1
- package/dist/generated/prowlarr/client/client.gen.d.ts +3 -0
- package/dist/generated/prowlarr/client/client.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/client/index.d.ts +8 -0
- package/dist/generated/prowlarr/client/index.d.ts.map +1 -0
- package/dist/generated/prowlarr/client/types.gen.d.ts +125 -0
- package/dist/generated/prowlarr/client/types.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/client/utils.gen.d.ts +39 -0
- package/dist/generated/prowlarr/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/client.gen.d.ts +13 -0
- package/dist/generated/prowlarr/client.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/auth.gen.d.ts +19 -0
- package/dist/generated/prowlarr/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/bodySerializer.gen.d.ts +18 -0
- package/dist/generated/prowlarr/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/params.gen.d.ts +34 -0
- package/dist/generated/prowlarr/core/params.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/prowlarr/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/prowlarr/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/types.gen.d.ts +79 -0
- package/dist/generated/prowlarr/core/types.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/core/utils.gen.d.ts +15 -0
- package/dist/generated/prowlarr/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/index.d.ts +1 -2
- package/dist/generated/prowlarr/index.d.ts.map +1 -1
- package/dist/generated/prowlarr/sdk.gen.d.ts +145 -0
- package/dist/generated/prowlarr/sdk.gen.d.ts.map +1 -0
- package/dist/generated/prowlarr/types.gen.d.ts +1747 -592
- package/dist/generated/prowlarr/types.gen.d.ts.map +1 -1
- package/dist/generated/radarr/client/client.gen.d.ts +3 -0
- package/dist/generated/radarr/client/client.gen.d.ts.map +1 -0
- package/dist/generated/radarr/client/index.d.ts +8 -0
- package/dist/generated/radarr/client/index.d.ts.map +1 -0
- package/dist/generated/radarr/client/types.gen.d.ts +125 -0
- package/dist/generated/radarr/client/types.gen.d.ts.map +1 -0
- package/dist/generated/radarr/client/utils.gen.d.ts +39 -0
- package/dist/generated/radarr/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/radarr/client.gen.d.ts +13 -0
- package/dist/generated/radarr/client.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/auth.gen.d.ts +19 -0
- package/dist/generated/radarr/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/bodySerializer.gen.d.ts +18 -0
- package/dist/generated/radarr/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/params.gen.d.ts +34 -0
- package/dist/generated/radarr/core/params.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/radarr/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/radarr/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/types.gen.d.ts +79 -0
- package/dist/generated/radarr/core/types.gen.d.ts.map +1 -0
- package/dist/generated/radarr/core/utils.gen.d.ts +15 -0
- package/dist/generated/radarr/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/radarr/index.d.ts +1 -2
- package/dist/generated/radarr/index.d.ts.map +1 -1
- package/dist/generated/radarr/sdk.gen.d.ts +260 -0
- package/dist/generated/radarr/sdk.gen.d.ts.map +1 -0
- package/dist/generated/radarr/types.gen.d.ts +3066 -1064
- package/dist/generated/radarr/types.gen.d.ts.map +1 -1
- package/dist/generated/readarr/client/client.gen.d.ts +3 -0
- package/dist/generated/readarr/client/client.gen.d.ts.map +1 -0
- package/dist/generated/readarr/client/index.d.ts +8 -0
- package/dist/generated/readarr/client/index.d.ts.map +1 -0
- package/dist/generated/readarr/client/types.gen.d.ts +125 -0
- package/dist/generated/readarr/client/types.gen.d.ts.map +1 -0
- package/dist/generated/readarr/client/utils.gen.d.ts +39 -0
- package/dist/generated/readarr/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/readarr/client.gen.d.ts +13 -0
- package/dist/generated/readarr/client.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/auth.gen.d.ts +19 -0
- package/dist/generated/readarr/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/bodySerializer.gen.d.ts +18 -0
- package/dist/generated/readarr/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/params.gen.d.ts +34 -0
- package/dist/generated/readarr/core/params.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/readarr/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/readarr/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/types.gen.d.ts +79 -0
- package/dist/generated/readarr/core/types.gen.d.ts.map +1 -0
- package/dist/generated/readarr/core/utils.gen.d.ts +15 -0
- package/dist/generated/readarr/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/readarr/index.d.ts +1 -2
- package/dist/generated/readarr/index.d.ts.map +1 -1
- package/dist/generated/readarr/sdk.gen.d.ts +250 -0
- package/dist/generated/readarr/sdk.gen.d.ts.map +1 -0
- package/dist/generated/readarr/types.gen.d.ts +3219 -1142
- package/dist/generated/readarr/types.gen.d.ts.map +1 -1
- package/dist/generated/sonarr/client/client.gen.d.ts +3 -0
- package/dist/generated/sonarr/client/client.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/client/index.d.ts +8 -0
- package/dist/generated/sonarr/client/index.d.ts.map +1 -0
- package/dist/generated/sonarr/client/types.gen.d.ts +125 -0
- package/dist/generated/sonarr/client/types.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/client/utils.gen.d.ts +39 -0
- package/dist/generated/sonarr/client/utils.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/client.gen.d.ts +13 -0
- package/dist/generated/sonarr/client.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/auth.gen.d.ts +19 -0
- package/dist/generated/sonarr/core/auth.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/bodySerializer.gen.d.ts +18 -0
- package/dist/generated/sonarr/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/params.gen.d.ts +34 -0
- package/dist/generated/sonarr/core/params.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/pathSerializer.gen.d.ts +34 -0
- package/dist/generated/sonarr/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/generated/sonarr/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/types.gen.d.ts +79 -0
- package/dist/generated/sonarr/core/types.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/core/utils.gen.d.ts +15 -0
- package/dist/generated/sonarr/core/utils.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/index.d.ts +1 -2
- package/dist/generated/sonarr/index.d.ts.map +1 -1
- package/dist/generated/sonarr/sdk.gen.d.ts +37 -0
- package/dist/generated/sonarr/sdk.gen.d.ts.map +1 -0
- package/dist/generated/sonarr/types.gen.d.ts +349 -107
- package/dist/generated/sonarr/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -1
- package/dist/tsarr-1.3.0.tgz +0 -0
- package/package.json +40 -43
- package/dist/generated/lidarr/schemas.gen.d.ts +0 -4584
- package/dist/generated/lidarr/schemas.gen.d.ts.map +0 -1
- package/dist/generated/lidarr/services.gen.d.ts +0 -242
- package/dist/generated/lidarr/services.gen.d.ts.map +0 -1
- package/dist/generated/prowlarr/schemas.gen.d.ts +0 -2151
- package/dist/generated/prowlarr/schemas.gen.d.ts.map +0 -1
- package/dist/generated/prowlarr/services.gen.d.ts +0 -135
- package/dist/generated/prowlarr/services.gen.d.ts.map +0 -1
- package/dist/generated/radarr/schemas.gen.d.ts +0 -4402
- package/dist/generated/radarr/schemas.gen.d.ts.map +0 -1
- package/dist/generated/radarr/services.gen.d.ts +0 -250
- package/dist/generated/radarr/services.gen.d.ts.map +0 -1
- package/dist/generated/readarr/schemas.gen.d.ts +0 -5250
- package/dist/generated/readarr/schemas.gen.d.ts.map +0 -1
- package/dist/generated/readarr/services.gen.d.ts +0 -240
- package/dist/generated/readarr/services.gen.d.ts.map +0 -1
- package/dist/generated/sonarr/schemas.gen.d.ts +0 -612
- package/dist/generated/sonarr/schemas.gen.d.ts.map +0 -1
- package/dist/generated/sonarr/services.gen.d.ts +0 -27
- package/dist/generated/sonarr/services.gen.d.ts.map +0 -1
- package/dist/tsarr-1.1.3.tgz +0 -0
package/dist/clients/sonarr.js
CHANGED
|
@@ -49,17 +49,162 @@ function createServarrClient(config) {
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
//
|
|
53
|
-
var
|
|
54
|
-
|
|
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)}`;
|
|
52
|
+
// src/generated/sonarr/core/bodySerializer.gen.ts
|
|
53
|
+
var jsonBodySerializer = {
|
|
54
|
+
bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
|
|
60
55
|
};
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
|
|
57
|
+
// src/generated/sonarr/core/serverSentEvents.gen.ts
|
|
58
|
+
var createSseClient = ({
|
|
59
|
+
onRequest,
|
|
60
|
+
onSseError,
|
|
61
|
+
onSseEvent,
|
|
62
|
+
responseTransformer,
|
|
63
|
+
responseValidator,
|
|
64
|
+
sseDefaultRetryDelay,
|
|
65
|
+
sseMaxRetryAttempts,
|
|
66
|
+
sseMaxRetryDelay,
|
|
67
|
+
sseSleepFn,
|
|
68
|
+
url,
|
|
69
|
+
...options
|
|
70
|
+
}) => {
|
|
71
|
+
let lastEventId;
|
|
72
|
+
const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
73
|
+
const createStream = async function* () {
|
|
74
|
+
let retryDelay = sseDefaultRetryDelay ?? 3000;
|
|
75
|
+
let attempt = 0;
|
|
76
|
+
const signal = options.signal ?? new AbortController().signal;
|
|
77
|
+
while (true) {
|
|
78
|
+
if (signal.aborted)
|
|
79
|
+
break;
|
|
80
|
+
attempt++;
|
|
81
|
+
const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
|
|
82
|
+
if (lastEventId !== undefined) {
|
|
83
|
+
headers.set("Last-Event-ID", lastEventId);
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const requestInit = {
|
|
87
|
+
redirect: "follow",
|
|
88
|
+
...options,
|
|
89
|
+
body: options.serializedBody,
|
|
90
|
+
headers,
|
|
91
|
+
signal
|
|
92
|
+
};
|
|
93
|
+
let request = new Request(url, requestInit);
|
|
94
|
+
if (onRequest) {
|
|
95
|
+
request = await onRequest(url, requestInit);
|
|
96
|
+
}
|
|
97
|
+
const _fetch = options.fetch ?? globalThis.fetch;
|
|
98
|
+
const response = await _fetch(request);
|
|
99
|
+
if (!response.ok)
|
|
100
|
+
throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
|
|
101
|
+
if (!response.body)
|
|
102
|
+
throw new Error("No body in SSE response");
|
|
103
|
+
const reader = response.body.pipeThrough(new TextDecoderStream).getReader();
|
|
104
|
+
let buffer = "";
|
|
105
|
+
const abortHandler = () => {
|
|
106
|
+
try {
|
|
107
|
+
reader.cancel();
|
|
108
|
+
} catch {}
|
|
109
|
+
};
|
|
110
|
+
signal.addEventListener("abort", abortHandler);
|
|
111
|
+
try {
|
|
112
|
+
while (true) {
|
|
113
|
+
const { done, value } = await reader.read();
|
|
114
|
+
if (done)
|
|
115
|
+
break;
|
|
116
|
+
buffer += value;
|
|
117
|
+
const chunks = buffer.split(`
|
|
118
|
+
|
|
119
|
+
`);
|
|
120
|
+
buffer = chunks.pop() ?? "";
|
|
121
|
+
for (const chunk of chunks) {
|
|
122
|
+
const lines = chunk.split(`
|
|
123
|
+
`);
|
|
124
|
+
const dataLines = [];
|
|
125
|
+
let eventName;
|
|
126
|
+
for (const line of lines) {
|
|
127
|
+
if (line.startsWith("data:")) {
|
|
128
|
+
dataLines.push(line.replace(/^data:\s*/, ""));
|
|
129
|
+
} else if (line.startsWith("event:")) {
|
|
130
|
+
eventName = line.replace(/^event:\s*/, "");
|
|
131
|
+
} else if (line.startsWith("id:")) {
|
|
132
|
+
lastEventId = line.replace(/^id:\s*/, "");
|
|
133
|
+
} else if (line.startsWith("retry:")) {
|
|
134
|
+
const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
|
|
135
|
+
if (!Number.isNaN(parsed)) {
|
|
136
|
+
retryDelay = parsed;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
let data;
|
|
141
|
+
let parsedJson = false;
|
|
142
|
+
if (dataLines.length) {
|
|
143
|
+
const rawData = dataLines.join(`
|
|
144
|
+
`);
|
|
145
|
+
try {
|
|
146
|
+
data = JSON.parse(rawData);
|
|
147
|
+
parsedJson = true;
|
|
148
|
+
} catch {
|
|
149
|
+
data = rawData;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (parsedJson) {
|
|
153
|
+
if (responseValidator) {
|
|
154
|
+
await responseValidator(data);
|
|
155
|
+
}
|
|
156
|
+
if (responseTransformer) {
|
|
157
|
+
data = await responseTransformer(data);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
onSseEvent?.({
|
|
161
|
+
data,
|
|
162
|
+
event: eventName,
|
|
163
|
+
id: lastEventId,
|
|
164
|
+
retry: retryDelay
|
|
165
|
+
});
|
|
166
|
+
if (dataLines.length) {
|
|
167
|
+
yield data;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
} finally {
|
|
172
|
+
signal.removeEventListener("abort", abortHandler);
|
|
173
|
+
reader.releaseLock();
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
} catch (error) {
|
|
177
|
+
onSseError?.(error);
|
|
178
|
+
if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);
|
|
182
|
+
await sleep(backoff);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
const stream = createStream();
|
|
187
|
+
return { stream };
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
// src/generated/sonarr/core/auth.gen.ts
|
|
191
|
+
var getAuthToken = async (auth, callback) => {
|
|
192
|
+
const token = typeof callback === "function" ? await callback(auth) : callback;
|
|
193
|
+
if (!token) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (auth.scheme === "bearer") {
|
|
197
|
+
return `Bearer ${token}`;
|
|
198
|
+
}
|
|
199
|
+
if (auth.scheme === "basic") {
|
|
200
|
+
return `Basic ${btoa(token)}`;
|
|
201
|
+
}
|
|
202
|
+
return token;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
// src/generated/sonarr/core/pathSerializer.gen.ts
|
|
206
|
+
var separatorArrayExplode = (style) => {
|
|
207
|
+
switch (style) {
|
|
63
208
|
case "label":
|
|
64
209
|
return ".";
|
|
65
210
|
case "matrix":
|
|
@@ -70,8 +215,8 @@ var U = (i) => {
|
|
|
70
215
|
return "&";
|
|
71
216
|
}
|
|
72
217
|
};
|
|
73
|
-
var
|
|
74
|
-
switch (
|
|
218
|
+
var separatorArrayNoExplode = (style) => {
|
|
219
|
+
switch (style) {
|
|
75
220
|
case "form":
|
|
76
221
|
return ",";
|
|
77
222
|
case "pipeDelimited":
|
|
@@ -82,8 +227,8 @@ var $ = (i) => {
|
|
|
82
227
|
return ",";
|
|
83
228
|
}
|
|
84
229
|
};
|
|
85
|
-
var
|
|
86
|
-
switch (
|
|
230
|
+
var separatorObjectExplode = (style) => {
|
|
231
|
+
switch (style) {
|
|
87
232
|
case "label":
|
|
88
233
|
return ".";
|
|
89
234
|
case "matrix":
|
|
@@ -94,132 +239,317 @@ var D = (i) => {
|
|
|
94
239
|
return "&";
|
|
95
240
|
}
|
|
96
241
|
};
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
242
|
+
var serializeArrayParam = ({
|
|
243
|
+
allowReserved,
|
|
244
|
+
explode,
|
|
245
|
+
name,
|
|
246
|
+
style,
|
|
247
|
+
value
|
|
248
|
+
}) => {
|
|
249
|
+
if (!explode) {
|
|
250
|
+
const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
|
|
251
|
+
switch (style) {
|
|
101
252
|
case "label":
|
|
102
|
-
return `.${
|
|
253
|
+
return `.${joinedValues2}`;
|
|
103
254
|
case "matrix":
|
|
104
|
-
return `;${
|
|
255
|
+
return `;${name}=${joinedValues2}`;
|
|
105
256
|
case "simple":
|
|
106
|
-
return
|
|
257
|
+
return joinedValues2;
|
|
107
258
|
default:
|
|
108
|
-
return `${
|
|
259
|
+
return `${name}=${joinedValues2}`;
|
|
109
260
|
}
|
|
110
261
|
}
|
|
111
|
-
|
|
112
|
-
|
|
262
|
+
const separator = separatorArrayExplode(style);
|
|
263
|
+
const joinedValues = value.map((v) => {
|
|
264
|
+
if (style === "label" || style === "simple") {
|
|
265
|
+
return allowReserved ? v : encodeURIComponent(v);
|
|
266
|
+
}
|
|
267
|
+
return serializePrimitiveParam({
|
|
268
|
+
allowReserved,
|
|
269
|
+
name,
|
|
270
|
+
value: v
|
|
271
|
+
});
|
|
272
|
+
}).join(separator);
|
|
273
|
+
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
274
|
+
};
|
|
275
|
+
var serializePrimitiveParam = ({
|
|
276
|
+
allowReserved,
|
|
277
|
+
name,
|
|
278
|
+
value
|
|
279
|
+
}) => {
|
|
280
|
+
if (value === undefined || value === null) {
|
|
281
|
+
return "";
|
|
282
|
+
}
|
|
283
|
+
if (typeof value === "object") {
|
|
284
|
+
throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");
|
|
285
|
+
}
|
|
286
|
+
return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
|
|
113
287
|
};
|
|
114
|
-
var
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
288
|
+
var serializeObjectParam = ({
|
|
289
|
+
allowReserved,
|
|
290
|
+
explode,
|
|
291
|
+
name,
|
|
292
|
+
style,
|
|
293
|
+
value,
|
|
294
|
+
valueOnly
|
|
295
|
+
}) => {
|
|
296
|
+
if (value instanceof Date) {
|
|
297
|
+
return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
|
|
298
|
+
}
|
|
299
|
+
if (style !== "deepObject" && !explode) {
|
|
300
|
+
let values = [];
|
|
301
|
+
Object.entries(value).forEach(([key, v]) => {
|
|
302
|
+
values = [
|
|
303
|
+
...values,
|
|
304
|
+
key,
|
|
305
|
+
allowReserved ? v : encodeURIComponent(v)
|
|
306
|
+
];
|
|
121
307
|
});
|
|
122
|
-
|
|
123
|
-
switch (
|
|
308
|
+
const joinedValues2 = values.join(",");
|
|
309
|
+
switch (style) {
|
|
124
310
|
case "form":
|
|
125
|
-
return `${
|
|
311
|
+
return `${name}=${joinedValues2}`;
|
|
126
312
|
case "label":
|
|
127
|
-
return `.${
|
|
313
|
+
return `.${joinedValues2}`;
|
|
128
314
|
case "matrix":
|
|
129
|
-
return `;${
|
|
315
|
+
return `;${name}=${joinedValues2}`;
|
|
130
316
|
default:
|
|
131
|
-
return
|
|
317
|
+
return joinedValues2;
|
|
132
318
|
}
|
|
133
319
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
320
|
+
const separator = separatorObjectExplode(style);
|
|
321
|
+
const joinedValues = Object.entries(value).map(([key, v]) => serializePrimitiveParam({
|
|
322
|
+
allowReserved,
|
|
323
|
+
name: style === "deepObject" ? `${name}[${key}]` : key,
|
|
324
|
+
value: v
|
|
325
|
+
})).join(separator);
|
|
326
|
+
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
// src/generated/sonarr/core/utils.gen.ts
|
|
330
|
+
var PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
331
|
+
var defaultPathSerializer = ({ path, url: _url }) => {
|
|
332
|
+
let url = _url;
|
|
333
|
+
const matches = _url.match(PATH_PARAM_RE);
|
|
334
|
+
if (matches) {
|
|
335
|
+
for (const match of matches) {
|
|
336
|
+
let explode = false;
|
|
337
|
+
let name = match.substring(1, match.length - 1);
|
|
338
|
+
let style = "simple";
|
|
339
|
+
if (name.endsWith("*")) {
|
|
340
|
+
explode = true;
|
|
341
|
+
name = name.substring(0, name.length - 1);
|
|
342
|
+
}
|
|
343
|
+
if (name.startsWith(".")) {
|
|
344
|
+
name = name.substring(1);
|
|
345
|
+
style = "label";
|
|
346
|
+
} else if (name.startsWith(";")) {
|
|
347
|
+
name = name.substring(1);
|
|
348
|
+
style = "matrix";
|
|
349
|
+
}
|
|
350
|
+
const value = path[name];
|
|
351
|
+
if (value === undefined || value === null) {
|
|
145
352
|
continue;
|
|
146
|
-
|
|
147
|
-
|
|
353
|
+
}
|
|
354
|
+
if (Array.isArray(value)) {
|
|
355
|
+
url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
|
|
148
356
|
continue;
|
|
149
357
|
}
|
|
150
|
-
if (typeof
|
|
151
|
-
|
|
358
|
+
if (typeof value === "object") {
|
|
359
|
+
url = url.replace(match, serializeObjectParam({
|
|
360
|
+
explode,
|
|
361
|
+
name,
|
|
362
|
+
style,
|
|
363
|
+
value,
|
|
364
|
+
valueOnly: true
|
|
365
|
+
}));
|
|
152
366
|
continue;
|
|
153
367
|
}
|
|
154
|
-
if (
|
|
155
|
-
|
|
368
|
+
if (style === "matrix") {
|
|
369
|
+
url = url.replace(match, `;${serializePrimitiveParam({
|
|
370
|
+
name,
|
|
371
|
+
value
|
|
372
|
+
})}`);
|
|
156
373
|
continue;
|
|
157
374
|
}
|
|
158
|
-
|
|
159
|
-
|
|
375
|
+
const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
|
|
376
|
+
url = url.replace(match, replaceValue);
|
|
160
377
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
378
|
+
}
|
|
379
|
+
return url;
|
|
380
|
+
};
|
|
381
|
+
var getUrl = ({
|
|
382
|
+
baseUrl,
|
|
383
|
+
path,
|
|
384
|
+
query,
|
|
385
|
+
querySerializer,
|
|
386
|
+
url: _url
|
|
387
|
+
}) => {
|
|
388
|
+
const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
|
|
389
|
+
let url = (baseUrl ?? "") + pathUrl;
|
|
390
|
+
if (path) {
|
|
391
|
+
url = defaultPathSerializer({ path, url });
|
|
392
|
+
}
|
|
393
|
+
let search = query ? querySerializer(query) : "";
|
|
394
|
+
if (search.startsWith("?")) {
|
|
395
|
+
search = search.substring(1);
|
|
396
|
+
}
|
|
397
|
+
if (search) {
|
|
398
|
+
url += `?${search}`;
|
|
399
|
+
}
|
|
400
|
+
return url;
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
// src/generated/sonarr/client/utils.gen.ts
|
|
404
|
+
var createQuerySerializer = ({
|
|
405
|
+
allowReserved,
|
|
406
|
+
array,
|
|
407
|
+
object
|
|
408
|
+
} = {}) => {
|
|
409
|
+
const querySerializer = (queryParams) => {
|
|
410
|
+
const search = [];
|
|
411
|
+
if (queryParams && typeof queryParams === "object") {
|
|
412
|
+
for (const name in queryParams) {
|
|
413
|
+
const value = queryParams[name];
|
|
414
|
+
if (value === undefined || value === null) {
|
|
171
415
|
continue;
|
|
172
416
|
}
|
|
173
|
-
if (
|
|
174
|
-
|
|
175
|
-
|
|
417
|
+
if (Array.isArray(value)) {
|
|
418
|
+
const serializedArray = serializeArrayParam({
|
|
419
|
+
allowReserved,
|
|
420
|
+
explode: true,
|
|
421
|
+
name,
|
|
422
|
+
style: "form",
|
|
423
|
+
value,
|
|
424
|
+
...array
|
|
425
|
+
});
|
|
426
|
+
if (serializedArray)
|
|
427
|
+
search.push(serializedArray);
|
|
428
|
+
} else if (typeof value === "object") {
|
|
429
|
+
const serializedObject = serializeObjectParam({
|
|
430
|
+
allowReserved,
|
|
431
|
+
explode: true,
|
|
432
|
+
name,
|
|
433
|
+
style: "deepObject",
|
|
434
|
+
value,
|
|
435
|
+
...object
|
|
436
|
+
});
|
|
437
|
+
if (serializedObject)
|
|
438
|
+
search.push(serializedObject);
|
|
439
|
+
} else {
|
|
440
|
+
const serializedPrimitive = serializePrimitiveParam({
|
|
441
|
+
allowReserved,
|
|
442
|
+
name,
|
|
443
|
+
value
|
|
444
|
+
});
|
|
445
|
+
if (serializedPrimitive)
|
|
446
|
+
search.push(serializedPrimitive);
|
|
176
447
|
}
|
|
177
|
-
s = [...s, h({ allowReserved: i, name: t, value: r })];
|
|
178
448
|
}
|
|
179
449
|
}
|
|
180
|
-
|
|
450
|
+
return search.join("&");
|
|
451
|
+
};
|
|
452
|
+
return querySerializer;
|
|
181
453
|
};
|
|
182
|
-
var
|
|
183
|
-
if (!
|
|
454
|
+
var getParseAs = (contentType) => {
|
|
455
|
+
if (!contentType) {
|
|
456
|
+
return "stream";
|
|
457
|
+
}
|
|
458
|
+
const cleanContent = contentType.split(";")[0]?.trim();
|
|
459
|
+
if (!cleanContent) {
|
|
184
460
|
return;
|
|
185
|
-
|
|
186
|
-
if (
|
|
461
|
+
}
|
|
462
|
+
if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
|
|
187
463
|
return "json";
|
|
188
|
-
|
|
464
|
+
}
|
|
465
|
+
if (cleanContent === "multipart/form-data") {
|
|
189
466
|
return "formData";
|
|
190
|
-
|
|
467
|
+
}
|
|
468
|
+
if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
|
|
191
469
|
return "blob";
|
|
192
|
-
|
|
470
|
+
}
|
|
471
|
+
if (cleanContent.startsWith("text/")) {
|
|
193
472
|
return "text";
|
|
473
|
+
}
|
|
474
|
+
return;
|
|
194
475
|
};
|
|
195
|
-
var
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
476
|
+
var checkForExistence = (options, name) => {
|
|
477
|
+
if (!name) {
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
|
|
481
|
+
return true;
|
|
482
|
+
}
|
|
483
|
+
return false;
|
|
200
484
|
};
|
|
201
|
-
var
|
|
202
|
-
|
|
203
|
-
|
|
485
|
+
var setAuthParams = async ({
|
|
486
|
+
security,
|
|
487
|
+
...options
|
|
488
|
+
}) => {
|
|
489
|
+
for (const auth of security) {
|
|
490
|
+
if (checkForExistence(options, auth.name)) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
const token = await getAuthToken(auth, options.auth);
|
|
494
|
+
if (!token) {
|
|
495
|
+
continue;
|
|
496
|
+
}
|
|
497
|
+
const name = auth.name ?? "Authorization";
|
|
498
|
+
switch (auth.in) {
|
|
499
|
+
case "query":
|
|
500
|
+
if (!options.query) {
|
|
501
|
+
options.query = {};
|
|
502
|
+
}
|
|
503
|
+
options.query[name] = token;
|
|
504
|
+
break;
|
|
505
|
+
case "cookie":
|
|
506
|
+
options.headers.append("Cookie", `${name}=${token}`);
|
|
507
|
+
break;
|
|
508
|
+
case "header":
|
|
509
|
+
default:
|
|
510
|
+
options.headers.set(name, token);
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
204
514
|
};
|
|
205
|
-
var
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
515
|
+
var buildUrl = (options) => getUrl({
|
|
516
|
+
baseUrl: options.baseUrl,
|
|
517
|
+
path: options.path,
|
|
518
|
+
query: options.query,
|
|
519
|
+
querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
|
|
520
|
+
url: options.url
|
|
521
|
+
});
|
|
522
|
+
var mergeConfigs = (a, b) => {
|
|
523
|
+
const config = { ...a, ...b };
|
|
524
|
+
if (config.baseUrl?.endsWith("/")) {
|
|
525
|
+
config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
|
|
526
|
+
}
|
|
527
|
+
config.headers = mergeHeaders(a.headers, b.headers);
|
|
528
|
+
return config;
|
|
529
|
+
};
|
|
530
|
+
var mergeHeaders = (...headers) => {
|
|
531
|
+
const mergedHeaders = new Headers;
|
|
532
|
+
for (const header of headers) {
|
|
533
|
+
if (!header || typeof header !== "object") {
|
|
209
534
|
continue;
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
222
|
-
|
|
535
|
+
}
|
|
536
|
+
const iterator = header instanceof Headers ? header.entries() : Object.entries(header);
|
|
537
|
+
for (const [key, value] of iterator) {
|
|
538
|
+
if (value === null) {
|
|
539
|
+
mergedHeaders.delete(key);
|
|
540
|
+
} else if (Array.isArray(value)) {
|
|
541
|
+
for (const v of value) {
|
|
542
|
+
mergedHeaders.append(key, v);
|
|
543
|
+
}
|
|
544
|
+
} else if (value !== undefined) {
|
|
545
|
+
mergedHeaders.set(key, typeof value === "object" ? JSON.stringify(value) : value);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
return mergedHeaders;
|
|
550
|
+
};
|
|
551
|
+
|
|
552
|
+
class Interceptors {
|
|
223
553
|
_fns;
|
|
224
554
|
constructor() {
|
|
225
555
|
this._fns = [];
|
|
@@ -227,133 +557,460 @@ var y = class {
|
|
|
227
557
|
clear() {
|
|
228
558
|
this._fns = [];
|
|
229
559
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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 };
|
|
560
|
+
getInterceptorIndex(id) {
|
|
561
|
+
if (typeof id === "number") {
|
|
562
|
+
return this._fns[id] ? id : -1;
|
|
563
|
+
} else {
|
|
564
|
+
return this._fns.indexOf(id);
|
|
264
565
|
}
|
|
265
|
-
|
|
566
|
+
}
|
|
567
|
+
exists(id) {
|
|
568
|
+
const index = this.getInterceptorIndex(id);
|
|
569
|
+
return !!this._fns[index];
|
|
570
|
+
}
|
|
571
|
+
eject(id) {
|
|
572
|
+
const index = this.getInterceptorIndex(id);
|
|
573
|
+
if (this._fns[index]) {
|
|
574
|
+
this._fns[index] = null;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
update(id, fn) {
|
|
578
|
+
const index = this.getInterceptorIndex(id);
|
|
579
|
+
if (this._fns[index]) {
|
|
580
|
+
this._fns[index] = fn;
|
|
581
|
+
return id;
|
|
582
|
+
} else {
|
|
583
|
+
return false;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
use(fn) {
|
|
587
|
+
this._fns = [...this._fns, fn];
|
|
588
|
+
return this._fns.length - 1;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
var createInterceptors = () => ({
|
|
592
|
+
error: new Interceptors,
|
|
593
|
+
request: new Interceptors,
|
|
594
|
+
response: new Interceptors
|
|
595
|
+
});
|
|
596
|
+
var defaultQuerySerializer = createQuerySerializer({
|
|
597
|
+
allowReserved: false,
|
|
598
|
+
array: {
|
|
599
|
+
explode: true,
|
|
600
|
+
style: "form"
|
|
601
|
+
},
|
|
602
|
+
object: {
|
|
603
|
+
explode: true,
|
|
604
|
+
style: "deepObject"
|
|
605
|
+
}
|
|
606
|
+
});
|
|
607
|
+
var defaultHeaders = {
|
|
608
|
+
"Content-Type": "application/json"
|
|
609
|
+
};
|
|
610
|
+
var createConfig = (override = {}) => ({
|
|
611
|
+
...jsonBodySerializer,
|
|
612
|
+
headers: defaultHeaders,
|
|
613
|
+
parseAs: "auto",
|
|
614
|
+
querySerializer: defaultQuerySerializer,
|
|
615
|
+
...override
|
|
616
|
+
});
|
|
617
|
+
|
|
618
|
+
// src/generated/sonarr/client/client.gen.ts
|
|
619
|
+
var createClient = (config = {}) => {
|
|
620
|
+
let _config = mergeConfigs(createConfig(), config);
|
|
621
|
+
const getConfig = () => ({ ..._config });
|
|
622
|
+
const setConfig = (config2) => {
|
|
623
|
+
_config = mergeConfigs(_config, config2);
|
|
624
|
+
return getConfig();
|
|
625
|
+
};
|
|
626
|
+
const interceptors = createInterceptors();
|
|
627
|
+
const beforeRequest = async (options) => {
|
|
628
|
+
const opts = {
|
|
629
|
+
..._config,
|
|
630
|
+
...options,
|
|
631
|
+
fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
|
|
632
|
+
headers: mergeHeaders(_config.headers, options.headers),
|
|
633
|
+
serializedBody: undefined
|
|
634
|
+
};
|
|
635
|
+
if (opts.security) {
|
|
636
|
+
await setAuthParams({
|
|
637
|
+
...opts,
|
|
638
|
+
security: opts.security
|
|
639
|
+
});
|
|
640
|
+
}
|
|
641
|
+
if (opts.requestValidator) {
|
|
642
|
+
await opts.requestValidator(opts);
|
|
643
|
+
}
|
|
644
|
+
if (opts.body && opts.bodySerializer) {
|
|
645
|
+
opts.serializedBody = opts.bodySerializer(opts.body);
|
|
646
|
+
}
|
|
647
|
+
if (opts.serializedBody === undefined || opts.serializedBody === "") {
|
|
648
|
+
opts.headers.delete("Content-Type");
|
|
649
|
+
}
|
|
650
|
+
const url = buildUrl(opts);
|
|
651
|
+
return { opts, url };
|
|
652
|
+
};
|
|
653
|
+
const request = async (options) => {
|
|
654
|
+
const { opts, url } = await beforeRequest(options);
|
|
655
|
+
const requestInit = {
|
|
656
|
+
redirect: "follow",
|
|
657
|
+
...opts,
|
|
658
|
+
body: opts.serializedBody
|
|
659
|
+
};
|
|
660
|
+
let request2 = new Request(url, requestInit);
|
|
661
|
+
for (const fn of interceptors.request._fns) {
|
|
662
|
+
if (fn) {
|
|
663
|
+
request2 = await fn(request2, opts);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
const _fetch = opts.fetch;
|
|
667
|
+
let response = await _fetch(request2);
|
|
668
|
+
for (const fn of interceptors.response._fns) {
|
|
669
|
+
if (fn) {
|
|
670
|
+
response = await fn(response, request2, opts);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
const result = {
|
|
674
|
+
request: request2,
|
|
675
|
+
response
|
|
676
|
+
};
|
|
677
|
+
if (response.ok) {
|
|
678
|
+
const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
|
|
679
|
+
if (response.status === 204 || response.headers.get("Content-Length") === "0") {
|
|
680
|
+
let emptyData;
|
|
681
|
+
switch (parseAs) {
|
|
682
|
+
case "arrayBuffer":
|
|
683
|
+
case "blob":
|
|
684
|
+
case "text":
|
|
685
|
+
emptyData = await response[parseAs]();
|
|
686
|
+
break;
|
|
687
|
+
case "formData":
|
|
688
|
+
emptyData = new FormData;
|
|
689
|
+
break;
|
|
690
|
+
case "stream":
|
|
691
|
+
emptyData = response.body;
|
|
692
|
+
break;
|
|
693
|
+
case "json":
|
|
694
|
+
default:
|
|
695
|
+
emptyData = {};
|
|
696
|
+
break;
|
|
697
|
+
}
|
|
698
|
+
return opts.responseStyle === "data" ? emptyData : {
|
|
699
|
+
data: emptyData,
|
|
700
|
+
...result
|
|
701
|
+
};
|
|
702
|
+
}
|
|
703
|
+
let data;
|
|
704
|
+
switch (parseAs) {
|
|
705
|
+
case "arrayBuffer":
|
|
706
|
+
case "blob":
|
|
707
|
+
case "formData":
|
|
708
|
+
case "json":
|
|
709
|
+
case "text":
|
|
710
|
+
data = await response[parseAs]();
|
|
711
|
+
break;
|
|
712
|
+
case "stream":
|
|
713
|
+
return opts.responseStyle === "data" ? response.body : {
|
|
714
|
+
data: response.body,
|
|
715
|
+
...result
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
if (parseAs === "json") {
|
|
719
|
+
if (opts.responseValidator) {
|
|
720
|
+
await opts.responseValidator(data);
|
|
721
|
+
}
|
|
722
|
+
if (opts.responseTransformer) {
|
|
723
|
+
data = await opts.responseTransformer(data);
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
return opts.responseStyle === "data" ? data : {
|
|
727
|
+
data,
|
|
728
|
+
...result
|
|
729
|
+
};
|
|
730
|
+
}
|
|
731
|
+
const textError = await response.text();
|
|
732
|
+
let jsonError;
|
|
266
733
|
try {
|
|
267
|
-
|
|
734
|
+
jsonError = JSON.parse(textError);
|
|
268
735
|
} catch {}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
736
|
+
const error = jsonError ?? textError;
|
|
737
|
+
let finalError = error;
|
|
738
|
+
for (const fn of interceptors.error._fns) {
|
|
739
|
+
if (fn) {
|
|
740
|
+
finalError = await fn(error, response, request2, opts);
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
finalError = finalError || {};
|
|
744
|
+
if (opts.throwOnError) {
|
|
745
|
+
throw finalError;
|
|
746
|
+
}
|
|
747
|
+
return opts.responseStyle === "data" ? undefined : {
|
|
748
|
+
error: finalError,
|
|
749
|
+
...result
|
|
750
|
+
};
|
|
751
|
+
};
|
|
752
|
+
const makeMethodFn = (method) => (options) => request({ ...options, method });
|
|
753
|
+
const makeSseFn = (method) => async (options) => {
|
|
754
|
+
const { opts, url } = await beforeRequest(options);
|
|
755
|
+
return createSseClient({
|
|
756
|
+
...opts,
|
|
757
|
+
body: opts.body,
|
|
758
|
+
headers: opts.headers,
|
|
759
|
+
method,
|
|
760
|
+
onRequest: async (url2, init) => {
|
|
761
|
+
let request2 = new Request(url2, init);
|
|
762
|
+
for (const fn of interceptors.request._fns) {
|
|
763
|
+
if (fn) {
|
|
764
|
+
request2 = await fn(request2, opts);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
return request2;
|
|
768
|
+
},
|
|
769
|
+
url
|
|
770
|
+
});
|
|
771
|
+
};
|
|
772
|
+
return {
|
|
773
|
+
buildUrl,
|
|
774
|
+
connect: makeMethodFn("CONNECT"),
|
|
775
|
+
delete: makeMethodFn("DELETE"),
|
|
776
|
+
get: makeMethodFn("GET"),
|
|
777
|
+
getConfig,
|
|
778
|
+
head: makeMethodFn("HEAD"),
|
|
779
|
+
interceptors,
|
|
780
|
+
options: makeMethodFn("OPTIONS"),
|
|
781
|
+
patch: makeMethodFn("PATCH"),
|
|
782
|
+
post: makeMethodFn("POST"),
|
|
783
|
+
put: makeMethodFn("PUT"),
|
|
784
|
+
request,
|
|
785
|
+
setConfig,
|
|
786
|
+
sse: {
|
|
787
|
+
connect: makeSseFn("CONNECT"),
|
|
788
|
+
delete: makeSseFn("DELETE"),
|
|
789
|
+
get: makeSseFn("GET"),
|
|
790
|
+
head: makeSseFn("HEAD"),
|
|
791
|
+
options: makeSseFn("OPTIONS"),
|
|
792
|
+
patch: makeSseFn("PATCH"),
|
|
793
|
+
post: makeSseFn("POST"),
|
|
794
|
+
put: makeSseFn("PUT"),
|
|
795
|
+
trace: makeSseFn("TRACE")
|
|
796
|
+
},
|
|
797
|
+
trace: makeMethodFn("TRACE")
|
|
275
798
|
};
|
|
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
799
|
};
|
|
800
|
+
// src/generated/sonarr/client.gen.ts
|
|
801
|
+
var client = createClient(createConfig());
|
|
278
802
|
|
|
279
|
-
// src/generated/sonarr/
|
|
280
|
-
var client = J(x());
|
|
803
|
+
// src/generated/sonarr/sdk.gen.ts
|
|
281
804
|
var getApi = (options) => {
|
|
282
805
|
return (options?.client ?? client).get({
|
|
283
|
-
|
|
284
|
-
|
|
806
|
+
security: [
|
|
807
|
+
{
|
|
808
|
+
name: "X-Api-Key",
|
|
809
|
+
type: "apiKey"
|
|
810
|
+
},
|
|
811
|
+
{
|
|
812
|
+
in: "query",
|
|
813
|
+
name: "apikey",
|
|
814
|
+
type: "apiKey"
|
|
815
|
+
}
|
|
816
|
+
],
|
|
817
|
+
url: "/api",
|
|
818
|
+
...options
|
|
285
819
|
});
|
|
286
820
|
};
|
|
287
821
|
var getApiV5Log = (options) => {
|
|
288
822
|
return (options?.client ?? client).get({
|
|
289
|
-
|
|
290
|
-
|
|
823
|
+
security: [
|
|
824
|
+
{
|
|
825
|
+
name: "X-Api-Key",
|
|
826
|
+
type: "apiKey"
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
in: "query",
|
|
830
|
+
name: "apikey",
|
|
831
|
+
type: "apiKey"
|
|
832
|
+
}
|
|
833
|
+
],
|
|
834
|
+
url: "/api/v5/log",
|
|
835
|
+
...options
|
|
291
836
|
});
|
|
292
837
|
};
|
|
293
838
|
var getApiV5Series = (options) => {
|
|
294
839
|
return (options?.client ?? client).get({
|
|
295
|
-
|
|
296
|
-
|
|
840
|
+
security: [
|
|
841
|
+
{
|
|
842
|
+
name: "X-Api-Key",
|
|
843
|
+
type: "apiKey"
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
in: "query",
|
|
847
|
+
name: "apikey",
|
|
848
|
+
type: "apiKey"
|
|
849
|
+
}
|
|
850
|
+
],
|
|
851
|
+
url: "/api/v5/series",
|
|
852
|
+
...options
|
|
297
853
|
});
|
|
298
854
|
};
|
|
299
855
|
var postApiV5Series = (options) => {
|
|
300
856
|
return (options?.client ?? client).post({
|
|
857
|
+
security: [
|
|
858
|
+
{
|
|
859
|
+
name: "X-Api-Key",
|
|
860
|
+
type: "apiKey"
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
in: "query",
|
|
864
|
+
name: "apikey",
|
|
865
|
+
type: "apiKey"
|
|
866
|
+
}
|
|
867
|
+
],
|
|
868
|
+
url: "/api/v5/series",
|
|
301
869
|
...options,
|
|
302
|
-
|
|
870
|
+
headers: {
|
|
871
|
+
"Content-Type": "application/json",
|
|
872
|
+
...options?.headers
|
|
873
|
+
}
|
|
303
874
|
});
|
|
304
875
|
};
|
|
305
|
-
var
|
|
306
|
-
return (options
|
|
307
|
-
|
|
308
|
-
|
|
876
|
+
var deleteApiV5SeriesById = (options) => {
|
|
877
|
+
return (options.client ?? client).delete({
|
|
878
|
+
security: [
|
|
879
|
+
{
|
|
880
|
+
name: "X-Api-Key",
|
|
881
|
+
type: "apiKey"
|
|
882
|
+
},
|
|
883
|
+
{
|
|
884
|
+
in: "query",
|
|
885
|
+
name: "apikey",
|
|
886
|
+
type: "apiKey"
|
|
887
|
+
}
|
|
888
|
+
],
|
|
889
|
+
url: "/api/v5/series/{id}",
|
|
890
|
+
...options
|
|
309
891
|
});
|
|
310
892
|
};
|
|
311
|
-
var
|
|
312
|
-
return (options
|
|
313
|
-
|
|
314
|
-
|
|
893
|
+
var getApiV5SeriesById = (options) => {
|
|
894
|
+
return (options.client ?? client).get({
|
|
895
|
+
security: [
|
|
896
|
+
{
|
|
897
|
+
name: "X-Api-Key",
|
|
898
|
+
type: "apiKey"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
in: "query",
|
|
902
|
+
name: "apikey",
|
|
903
|
+
type: "apiKey"
|
|
904
|
+
}
|
|
905
|
+
],
|
|
906
|
+
url: "/api/v5/series/{id}",
|
|
907
|
+
...options
|
|
315
908
|
});
|
|
316
909
|
};
|
|
317
|
-
var
|
|
318
|
-
return (options
|
|
910
|
+
var putApiV5SeriesById = (options) => {
|
|
911
|
+
return (options.client ?? client).put({
|
|
912
|
+
security: [
|
|
913
|
+
{
|
|
914
|
+
name: "X-Api-Key",
|
|
915
|
+
type: "apiKey"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
in: "query",
|
|
919
|
+
name: "apikey",
|
|
920
|
+
type: "apiKey"
|
|
921
|
+
}
|
|
922
|
+
],
|
|
923
|
+
url: "/api/v5/series/{id}",
|
|
319
924
|
...options,
|
|
320
|
-
|
|
925
|
+
headers: {
|
|
926
|
+
"Content-Type": "application/json",
|
|
927
|
+
...options.headers
|
|
928
|
+
}
|
|
321
929
|
});
|
|
322
930
|
};
|
|
323
931
|
var getApiV5SeriesByIdFolder = (options) => {
|
|
324
|
-
return (options
|
|
325
|
-
|
|
326
|
-
|
|
932
|
+
return (options.client ?? client).get({
|
|
933
|
+
security: [
|
|
934
|
+
{
|
|
935
|
+
name: "X-Api-Key",
|
|
936
|
+
type: "apiKey"
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
in: "query",
|
|
940
|
+
name: "apikey",
|
|
941
|
+
type: "apiKey"
|
|
942
|
+
}
|
|
943
|
+
],
|
|
944
|
+
url: "/api/v5/series/{id}/folder",
|
|
945
|
+
...options
|
|
327
946
|
});
|
|
328
947
|
};
|
|
329
948
|
var getApiV5SeriesLookup = (options) => {
|
|
330
949
|
return (options?.client ?? client).get({
|
|
331
|
-
|
|
332
|
-
|
|
950
|
+
security: [
|
|
951
|
+
{
|
|
952
|
+
name: "X-Api-Key",
|
|
953
|
+
type: "apiKey"
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
in: "query",
|
|
957
|
+
name: "apikey",
|
|
958
|
+
type: "apiKey"
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
url: "/api/v5/series/lookup",
|
|
962
|
+
...options
|
|
333
963
|
});
|
|
334
964
|
};
|
|
335
965
|
var getApiV5Update = (options) => {
|
|
336
966
|
return (options?.client ?? client).get({
|
|
337
|
-
|
|
338
|
-
|
|
967
|
+
security: [
|
|
968
|
+
{
|
|
969
|
+
name: "X-Api-Key",
|
|
970
|
+
type: "apiKey"
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
in: "query",
|
|
974
|
+
name: "apikey",
|
|
975
|
+
type: "apiKey"
|
|
976
|
+
}
|
|
977
|
+
],
|
|
978
|
+
url: "/api/v5/update",
|
|
979
|
+
...options
|
|
339
980
|
});
|
|
340
981
|
};
|
|
341
982
|
var getApiV5SettingsUpdate = (options) => {
|
|
342
983
|
return (options?.client ?? client).get({
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
984
|
+
security: [
|
|
985
|
+
{
|
|
986
|
+
name: "X-Api-Key",
|
|
987
|
+
type: "apiKey"
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
in: "query",
|
|
991
|
+
name: "apikey",
|
|
992
|
+
type: "apiKey"
|
|
993
|
+
}
|
|
994
|
+
],
|
|
995
|
+
url: "/api/v5/settings/update",
|
|
996
|
+
...options
|
|
351
997
|
});
|
|
352
998
|
};
|
|
353
999
|
var getApiV5SettingsUpdateById = (options) => {
|
|
354
|
-
return (options
|
|
355
|
-
|
|
356
|
-
|
|
1000
|
+
return (options.client ?? client).get({
|
|
1001
|
+
security: [
|
|
1002
|
+
{
|
|
1003
|
+
name: "X-Api-Key",
|
|
1004
|
+
type: "apiKey"
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
in: "query",
|
|
1008
|
+
name: "apikey",
|
|
1009
|
+
type: "apiKey"
|
|
1010
|
+
}
|
|
1011
|
+
],
|
|
1012
|
+
url: "/api/v5/settings/update/{id}",
|
|
1013
|
+
...options
|
|
357
1014
|
});
|
|
358
1015
|
};
|
|
359
1016
|
|
|
@@ -370,6 +1027,20 @@ class SonarrClient {
|
|
|
370
1027
|
async getApi() {
|
|
371
1028
|
return getApi();
|
|
372
1029
|
}
|
|
1030
|
+
async getSystemStatus() {
|
|
1031
|
+
return client.get({
|
|
1032
|
+
url: "/api/v3/system/status",
|
|
1033
|
+
headers: this.clientConfig.getHeaders(),
|
|
1034
|
+
baseUrl: this.clientConfig.getBaseUrl()
|
|
1035
|
+
});
|
|
1036
|
+
}
|
|
1037
|
+
async getHealth() {
|
|
1038
|
+
return client.get({
|
|
1039
|
+
url: "/api/v3/health",
|
|
1040
|
+
headers: this.clientConfig.getHeaders(),
|
|
1041
|
+
baseUrl: this.clientConfig.getBaseUrl()
|
|
1042
|
+
});
|
|
1043
|
+
}
|
|
373
1044
|
async getSeries() {
|
|
374
1045
|
return getApiV5Series();
|
|
375
1046
|
}
|
|
@@ -411,19 +1082,12 @@ class SonarrClient {
|
|
|
411
1082
|
async getUpdateSettings() {
|
|
412
1083
|
return getApiV5SettingsUpdate();
|
|
413
1084
|
}
|
|
414
|
-
async updateSettings(settings) {
|
|
415
|
-
return putApiV5SettingsUpdate({ body: settings });
|
|
416
|
-
}
|
|
417
1085
|
async getUpdateSetting(id) {
|
|
418
1086
|
return getApiV5SettingsUpdateById({ path: { id } });
|
|
419
1087
|
}
|
|
420
1088
|
updateConfig(newConfig) {
|
|
421
1089
|
const updatedConfig = { ...this.clientConfig.config, ...newConfig };
|
|
422
1090
|
this.clientConfig = createServarrClient(updatedConfig);
|
|
423
|
-
client.setConfig({
|
|
424
|
-
baseUrl: this.clientConfig.getBaseUrl(),
|
|
425
|
-
headers: this.clientConfig.getHeaders()
|
|
426
|
-
});
|
|
427
1091
|
return this.clientConfig.config;
|
|
428
1092
|
}
|
|
429
1093
|
}
|