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.
- package/README.md +7 -5
- package/dist/cli/commands/bazarr.d.ts +2 -0
- package/dist/cli/commands/bazarr.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/lidarr.d.ts +2 -0
- package/dist/cli/commands/lidarr.d.ts.map +1 -1
- package/dist/cli/commands/radarr.d.ts.map +1 -1
- package/dist/cli/commands/readarr.d.ts +2 -0
- package/dist/cli/commands/readarr.d.ts.map +1 -1
- package/dist/cli/commands/sonarr.d.ts.map +1 -1
- package/dist/cli/index.js +2138 -2405
- package/dist/clients/base.d.ts +136 -0
- package/dist/clients/base.d.ts.map +1 -0
- package/dist/clients/bazarr.d.ts +1 -1
- package/dist/clients/bazarr.d.ts.map +1 -1
- package/dist/clients/bazarr.js +100 -3
- package/dist/clients/lidarr.d.ts +24 -681
- package/dist/clients/lidarr.d.ts.map +1 -1
- package/dist/clients/lidarr.js +323 -196
- package/dist/clients/prowlarr.d.ts +25 -638
- package/dist/clients/prowlarr.d.ts.map +1 -1
- package/dist/clients/prowlarr.js +331 -175
- package/dist/clients/qbittorrent.d.ts +1 -17
- package/dist/clients/qbittorrent.d.ts.map +1 -1
- package/dist/clients/qbittorrent.js +97 -2
- package/dist/clients/radarr.d.ts +4 -657
- package/dist/clients/radarr.d.ts.map +1 -1
- package/dist/clients/radarr.js +323 -164
- package/dist/clients/readarr.d.ts +4 -635
- package/dist/clients/readarr.d.ts.map +1 -1
- package/dist/clients/readarr.js +323 -164
- package/dist/clients/seerr.d.ts +1 -1
- package/dist/clients/seerr.d.ts.map +1 -1
- package/dist/clients/seerr.js +100 -3
- package/dist/clients/sonarr.d.ts +181 -772
- package/dist/clients/sonarr.d.ts.map +1 -1
- package/dist/clients/sonarr.js +346 -157
- package/dist/core/client.d.ts +3 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/fetch.d.ts +23 -0
- package/dist/core/fetch.d.ts.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tsarr-2.10.0.tgz +0 -0
- package/package.json +2 -4
- package/dist/tsarr-2.9.0.tgz +0 -0
package/dist/core/types.d.ts
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
import type { RetryOptions } from './fetch';
|
|
1
2
|
export interface ServarrClientConfig {
|
|
2
3
|
baseUrl: string;
|
|
3
4
|
apiKey: string;
|
|
5
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
4
6
|
timeout?: number;
|
|
7
|
+
/** Retry configuration for transient failures */
|
|
8
|
+
retry?: RetryOptions;
|
|
5
9
|
headers?: Record<string, string>;
|
|
6
10
|
}
|
|
7
11
|
export interface QBittorrentClientConfig {
|
|
8
12
|
baseUrl: string;
|
|
9
13
|
username: string;
|
|
10
14
|
password: string;
|
|
15
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
11
16
|
timeout?: number;
|
|
17
|
+
/** Retry configuration for transient failures */
|
|
18
|
+
retry?: RetryOptions;
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
class
|
|
1
|
+
class p extends Error{code;statusCode;details;constructor(r,o,e,n){super(r);this.code=o;this.statusCode=e;this.details=n;this.name="TsarrError"}}class h extends p{constructor(r="Invalid or missing API key"){super(r,"API_KEY_ERROR",401);this.name="ApiKeyError"}}class c extends p{constructor(r,o){super(r,"CONNECTION_ERROR",void 0,o);this.name="ConnectionError"}}class K extends p{constructor(r,o){super(r,"VALIDATION_ERROR",void 0,o);this.name="ValidationError"}}class U extends p{constructor(r){super(`Resource not found: ${r}`,"NOT_FOUND",404);this.name="NotFoundError"}}var k=30000,B=3,$=1000,v=1e4,F=new Set([408,429,502,503,504]);function b(r){if(r instanceof DOMException&&r.name==="AbortError")return!1;if(r instanceof TypeError)return!0;return!1}function g(r,o,e){let n=o*2**r,s=n*0.2*Math.random();return Math.min(n+s,e)}function R(r={}){let o=r.timeout??k,e=r.retry?r.retry.maxRetries??B:0,n=r.retry?.initialDelayMs??$,s=r.retry?.maxDelayMs??v;return Object.assign(async(O,m)=>{let u,P=H(O,m);for(let d=0;d<=e;d++){let w=new AbortController,C=setTimeout(()=>w.abort(),o),f=m?.signal;if(f?.aborted)throw clearTimeout(C),f.reason??new DOMException("The operation was aborted.","AbortError");let N=()=>w.abort(f.reason);f?.addEventListener("abort",N,{once:!0});try{let t=await globalThis.fetch(new Request(P.clone(),{signal:w.signal}));if(clearTimeout(C),f?.removeEventListener("abort",N),F.has(t.status)&&d<e){u=new c(`Request failed with status ${t.status}`);let x=g(d,n,s);await new Promise((i)=>setTimeout(i,x));continue}return t}catch(t){if(clearTimeout(C),f?.removeEventListener("abort",N),f?.aborted)throw f.reason??new DOMException("The operation was aborted.","AbortError");if(t instanceof DOMException&&t.name==="AbortError"){if(u=new c(`Request timed out after ${o}ms`),d<e){let x=g(d,n,s);await new Promise((i)=>setTimeout(i,x));continue}throw u}if(b(t)&&d<e){u=t;let x=g(d,n,s);await new Promise((i)=>setTimeout(i,x));continue}throw t}}throw u},{preconnect:globalThis.fetch.preconnect?.bind(globalThis.fetch)})}function H(r,o){let{signal:e,...n}=o??{};if(r instanceof Request)return o?new Request(r.clone(),n):r.clone();return new Request(r,n)}var L=30000;function Z(r){if(!r.apiKey)throw new h;if(!r.baseUrl)throw new c("No base URL provided");let o={...r,baseUrl:r.baseUrl.replace(/\/$/,"")},e=o.timeout??L,n=R({timeout:e,retry:o.retry});return{config:o,getHeaders:()=>({"X-Api-Key":o.apiKey,"Content-Type":"application/json",...o.headers}),getBaseUrl:()=>o.baseUrl,getTimeout:()=>e,getFetch:()=>n}}function I(r){if(!r||r.trim()==="")throw new h;return r.trim()}function X(r){if(!r||r.trim()==="")throw new c("No base URL provided");let o;try{o=new URL(r)}catch{throw new c(`Failed to connect: Invalid URL: ${r}`)}if(o.protocol==="http:"&&!V(o.hostname))console.warn(`Warning: Using unencrypted HTTP for remote URL "${o.host}". Consider using HTTPS to protect your API key in transit.`);return r.trim().replace(/\/$/,"")}function V(r){return r==="localhost"||r==="127.0.0.1"||r==="::1"||r==="0.0.0.0"||r.endsWith(".local")||/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/.test(r)}export{X as validateBaseUrl,I as validateApiKey,Z as createServarrClient,R as createResilientFetch,K as ValidationError,p as TsarrError,dr as SonarrClient,wr as Sonarr,er as SeerrClient,hr as Seerr,or as ReadarrClient,pr as Readarr,l as RadarrClient,ir as Radarr,M as QBittorrentClient,xr as QBittorrent,E as ProwlarrClient,ur as Prowlarr,U as NotFoundError,S as LidarrClient,sr as Lidarr,c as ConnectionError,q as BazarrClient,cr as Bazarr,h as ApiKeyError};
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tsarr",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"author": "Robbe Verhelst",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
},
|
|
88
88
|
"description": "Type-safe TypeScript SDK for Servarr APIs (Radarr, Sonarr, etc.)",
|
|
89
89
|
"engines": {
|
|
90
|
-
"node": ">=24.
|
|
90
|
+
"node": ">=24.15.0"
|
|
91
91
|
},
|
|
92
92
|
"files": [
|
|
93
93
|
"dist",
|
|
@@ -132,8 +132,6 @@
|
|
|
132
132
|
"generate": "bun run scripts/generate.ts",
|
|
133
133
|
"refresh:specs": "bun run scripts/refresh-specs.ts",
|
|
134
134
|
"generate:types": "bun run scripts/generate-type-exports.ts",
|
|
135
|
-
"generate:radarr": "bun run scripts/generate-radarr.ts",
|
|
136
|
-
"generate:sonarr": "bun run scripts/generate-sonarr.ts",
|
|
137
135
|
"clean": "rm -rf src/generated && rm -rf dist",
|
|
138
136
|
"docs": "typedoc",
|
|
139
137
|
"docs:serve": "typedoc --serve",
|
package/dist/tsarr-2.9.0.tgz
DELETED
|
Binary file
|