Update the sdk initialiser to use custom logic to refresh the access token as its having issues with its homegrown logic for some reason.

The patchset is to expose an internal API to reduce the amount of code i need to copy from the library source

vielle.dev 8bb95982 99dcbf38

verified
Changed files
+223 -962
patches
src
components
home
playing
spotify
+163 -915
patches/@spotify__web-api-ts-sdk.patch
··· 1 - diff --git a/dist/cjs/SpotifyApi.d.ts b/dist/cjs/SpotifyApi.d.ts 2 - index cf5eff3cb728065892287539b2a85e2fe16b283b..fe3c2a037f4e47e6c748753a5661261552cfcc1b 100644 3 - --- a/dist/cjs/SpotifyApi.d.ts 4 - +++ b/dist/cjs/SpotifyApi.d.ts 5 - @@ -35,7 +35,7 @@ export declare class SpotifyApi { 6 - search: SearchExecutionFunction; 7 - currentUser: CurrentUserEndpoints; 8 - constructor(authentication: IAuthStrategy, config?: SdkOptions); 9 - - makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise<TReturnType>; 10 - + makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise<TReturnType | null>; 11 - private initializeSdk; 12 - switchAuthenticationStrategy(authentication: IAuthStrategy): void; 13 - /** 14 1 diff --git a/dist/cjs/SpotifyApi.js.map b/dist/cjs/SpotifyApi.js.map 15 2 index 2d356d41a56db1b8984445364ad2a94c05632cfa..195edd6643860eb7cc5da74c080cfaef47c9a323 100644 16 3 --- a/dist/cjs/SpotifyApi.js.map ··· 109 96 \ No newline at end of file 110 97 +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":"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"} 111 98 \ No newline at end of file 112 - diff --git a/dist/cjs/endpoints/AlbumsEndpoints.d.ts b/dist/cjs/endpoints/AlbumsEndpoints.d.ts 113 - index 18274fea2c934cd17f8ca87d551477cf8bda5291..bed7d9e02f1e65693b5f6772e78463a52ef442a8 100644 114 - --- a/dist/cjs/endpoints/AlbumsEndpoints.d.ts 115 - +++ b/dist/cjs/endpoints/AlbumsEndpoints.d.ts 116 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 117 - export default class AlbumsEndpoints extends EndpointsBase { 118 - get(id: string, market?: Market): Promise<Album>; 119 - get(ids: string[], market?: Market): Promise<Album[]>; 120 - - tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedTrack>>; 121 - + tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedTrack> | null>; 122 - } 123 - diff --git a/dist/cjs/endpoints/AlbumsEndpoints.js b/dist/cjs/endpoints/AlbumsEndpoints.js 124 - index 558f566069a7756bd8506298655a3d04dc9d0727..2eb39da32149091646eed89e3461f64aff27297e 100644 125 - --- a/dist/cjs/endpoints/AlbumsEndpoints.js 126 - +++ b/dist/cjs/endpoints/AlbumsEndpoints.js 127 - @@ -14,6 +14,8 @@ class AlbumsEndpoints extends EndpointsBase_js_1.default { 128 - const params = this.paramsFor({ ids: idOrIds, market }); 129 - // TODO: only returns top 20, validate here 130 - const response = await this.getRequest(`albums${params}`); 131 - + if (!response) 132 - + return response; 133 - return response.albums; 134 - } 135 - tracks(albumId, market, limit, offset) { 136 99 diff --git a/dist/cjs/endpoints/AlbumsEndpoints.js.map b/dist/cjs/endpoints/AlbumsEndpoints.js.map 137 - index 13c3a0d24c5ffef9729936189d90d7639729896d..fc40487a6c97f94a0480f25290934be5d4dcbbe8 100644 100 + index 13c3a0d24c5ffef9729936189d90d7639729896d..298227fb7a1617bbaaeacb240b74e1ea57948799 100644 138 101 --- a/dist/cjs/endpoints/AlbumsEndpoints.js.map 139 102 +++ b/dist/cjs/endpoints/AlbumsEndpoints.js.map 140 103 @@ -1 +1 @@ 141 104 -{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AArBD,kCAqBC"} 142 105 \ No newline at end of file 143 - +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AAtBD,kCAsBC"} 106 + +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AArBD,kCAqBC"} 144 107 \ No newline at end of file 145 - diff --git a/dist/cjs/endpoints/ArtistsEndpoints.d.ts b/dist/cjs/endpoints/ArtistsEndpoints.d.ts 146 - index 4b5237b7acbc95486893d7384fb6adcdf71ee74a..8bdba8fcbc5a9c45deb1a49580764c7cbbd1cd7b 100644 147 - --- a/dist/cjs/endpoints/ArtistsEndpoints.d.ts 148 - +++ b/dist/cjs/endpoints/ArtistsEndpoints.d.ts 149 - @@ -3,7 +3,7 @@ import EndpointsBase from "./EndpointsBase.js"; 150 - export default class ArtistsEndpoints extends EndpointsBase { 151 - get(id: string): Promise<Artist>; 152 - get(ids: string[]): Promise<Artist[]>; 153 - - albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAlbum>>; 154 - - topTracks(id: string, market: Market): Promise<TopTracksResult>; 155 - - relatedArtists(id: string): Promise<Artists>; 156 - + albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAlbum> | null>; 157 - + topTracks(id: string, market: Market): Promise<TopTracksResult | null>; 158 - + relatedArtists(id: string): Promise<Artists | null>; 159 - } 160 - diff --git a/dist/cjs/endpoints/ArtistsEndpoints.js b/dist/cjs/endpoints/ArtistsEndpoints.js 161 - index 6c6eee4d65b70db5df80865431c035ab10d60262..09a222ee0b5a3a0b93396008bb72a2ba69728c28 100644 162 - --- a/dist/cjs/endpoints/ArtistsEndpoints.js 163 - +++ b/dist/cjs/endpoints/ArtistsEndpoints.js 164 - @@ -12,6 +12,8 @@ class ArtistsEndpoints extends EndpointsBase_js_1.default { 165 - } 166 - const params = this.paramsFor({ ids: idOrIds }); 167 - const response = await this.getRequest(`artists${params}`); 168 - + if (!response) 169 - + return response; 170 - return response.artists; 171 - } 172 - albums(id, includeGroups, market, limit, offset) { 173 108 diff --git a/dist/cjs/endpoints/ArtistsEndpoints.js.map b/dist/cjs/endpoints/ArtistsEndpoints.js.map 174 - index 8bf5c0c2e5bfbeabc81b764bc66814010a7e828b..b7d33f131af79fb432943e5f78b69afbafff1f9b 100644 109 + index 8bf5c0c2e5bfbeabc81b764bc66814010a7e828b..3ef89674d83081ce15e1a24a3a80fb7cff9071f9 100644 175 110 --- a/dist/cjs/endpoints/ArtistsEndpoints.js.map 176 111 +++ b/dist/cjs/endpoints/ArtistsEndpoints.js.map 177 112 @@ -1 +1 @@ 178 113 -{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":";;;;;AAUA,0EAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,0BAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ;AA7CD,mCA6CC"} 179 114 \ No newline at end of file 180 - +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":";;;;;AAUA,0EAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,0BAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ;AA9CD,mCA8CC"} 115 + +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":";;;;;AAUA,0EAA+C;AAE/C,MAAqB,gBAAiB,SAAQ,0BAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ;AA7CD,mCA6CC"} 181 116 \ No newline at end of file 182 - diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.d.ts b/dist/cjs/endpoints/AudiobooksEndpoints.d.ts 183 - index cfe18b338a678454c67cba7086ef4b292e0ab54a..33f2577aa2b4050e49f22b3bdca75b8ba1993fdd 100644 184 - --- a/dist/cjs/endpoints/AudiobooksEndpoints.d.ts 185 - +++ b/dist/cjs/endpoints/AudiobooksEndpoints.d.ts 186 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 187 - export default class AudiobooksEndpoints extends EndpointsBase { 188 - get(id: string, market?: Market): Promise<Audiobook>; 189 - get(ids: string[], market?: Market): Promise<Audiobook[]>; 190 - - getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedChapter>>; 191 - + getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedChapter> | null>; 192 - } 193 - diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.js b/dist/cjs/endpoints/AudiobooksEndpoints.js 194 - index 5cd33ac00e938d5af436107bbf0dfb055d1f87c0..e227dda6bb5c8720b801245827fe768e4ad54693 100644 195 - --- a/dist/cjs/endpoints/AudiobooksEndpoints.js 196 - +++ b/dist/cjs/endpoints/AudiobooksEndpoints.js 197 - @@ -12,6 +12,8 @@ class AudiobooksEndpoints extends EndpointsBase_js_1.default { 198 - } 199 - const params = this.paramsFor({ ids: idOrIds, market }); 200 - const response = await this.getRequest(`audiobooks${params}`); 201 - + if (!response) 202 - + return response; 203 - return response.audiobooks; 204 - } 205 - getAudiobookChapters(id, market, limit, offset) { 206 117 diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.js.map b/dist/cjs/endpoints/AudiobooksEndpoints.js.map 207 - index 4f5a448ad51548883d3eb68a057aa825e766e146..7fa408648e38a4091db7288d18d9b4893e47fe98 100644 118 + index 4f5a448ad51548883d3eb68a057aa825e766e146..d87a7c24f3292e3d4728d9398d70222b524ac2c6 100644 208 119 --- a/dist/cjs/endpoints/AudiobooksEndpoints.js.map 209 120 +++ b/dist/cjs/endpoints/AudiobooksEndpoints.js.map 210 121 @@ -1 +1 @@ 211 122 -{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,mBAAoB,SAAQ,0BAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ;AAnBD,sCAmBC"} 212 123 \ No newline at end of file 213 - +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,mBAAoB,SAAQ,0BAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ;AApBD,sCAoBC"} 124 + +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,mBAAoB,SAAQ,0BAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ;AAnBD,sCAmBC"} 214 125 \ No newline at end of file 215 - diff --git a/dist/cjs/endpoints/BrowseEndpoints.d.ts b/dist/cjs/endpoints/BrowseEndpoints.d.ts 216 - index 7f998995a6b7cdb8c31dcfc9d0284826cf9b8a90..87b59ecd24941b849bd43e472ab8421cbba0e0d3 100644 217 - --- a/dist/cjs/endpoints/BrowseEndpoints.d.ts 218 - +++ b/dist/cjs/endpoints/BrowseEndpoints.d.ts 219 - @@ -1,9 +1,9 @@ 220 - import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; 221 - import EndpointsBase from './EndpointsBase.js'; 222 - export default class BrowseEndpoints extends EndpointsBase { 223 - - getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise<Categories>; 224 - - getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise<Category>; 225 - - getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise<NewReleases>; 226 - - getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists>; 227 - - getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists>; 228 - + getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise<Categories | null>; 229 - + getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise<Category | null>; 230 - + getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise<NewReleases | null>; 231 - + getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists | null>; 232 - + getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists | null>; 233 - } 234 - diff --git a/dist/cjs/endpoints/ChaptersEndpoints.js b/dist/cjs/endpoints/ChaptersEndpoints.js 235 - index f3ac2c65fb099887371999b1b018b54e8a6ef532..6b6dbc9ccba2f74c2b611ecab82d5f0764b7bd77 100644 236 - --- a/dist/cjs/endpoints/ChaptersEndpoints.js 237 - +++ b/dist/cjs/endpoints/ChaptersEndpoints.js 238 - @@ -13,6 +13,8 @@ class ChaptersEndpoints extends EndpointsBase_js_1.default { 239 - // TODO: Only returns top 50, validate / pre-check here 240 - const params = this.paramsFor({ ids: idOrIds, market }); 241 - const response = await this.getRequest(`chapters${params}`); 242 - + if (!response) 243 - + return response; 244 - return response.chapters; 245 - } 246 - } 247 126 diff --git a/dist/cjs/endpoints/ChaptersEndpoints.js.map b/dist/cjs/endpoints/ChaptersEndpoints.js.map 248 - index b47dff3998031c839fc89777937b00373ad8bd4e..2b2588de79ed0f2cbb141428dac235e9517550de 100644 127 + index b47dff3998031c839fc89777937b00373ad8bd4e..a78b064098b825d65f1272420f388fcbbc79ff8f 100644 249 128 --- a/dist/cjs/endpoints/ChaptersEndpoints.js.map 250 129 +++ b/dist/cjs/endpoints/ChaptersEndpoints.js.map 251 130 @@ -1 +1 @@ 252 131 -{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAK/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} 253 132 \ No newline at end of file 254 - +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAK/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAfD,oCAeC"} 133 + +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAK/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} 255 134 \ No newline at end of file 256 - diff --git a/dist/cjs/endpoints/CurrentUserEndpoints.d.ts b/dist/cjs/endpoints/CurrentUserEndpoints.d.ts 257 - index ef1c96f9bb072d17d9ce2aecfd3ac918c0f268f9..20d31d09d22308a87cb0be7072c2a40937b58206 100644 258 - --- a/dist/cjs/endpoints/CurrentUserEndpoints.d.ts 259 - +++ b/dist/cjs/endpoints/CurrentUserEndpoints.d.ts 260 - @@ -9,47 +9,47 @@ export default class CurrentUserEndpoints extends EndpointsBase { 261 - shows: CurrentUserShowsEndpoints; 262 - tracks: CurrentUserTracksEndpoints; 263 - constructor(api: SpotifyApi); 264 - - profile(): Promise<UserProfile>; 265 - - topItems<T extends "artists" | "tracks">(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise<Page<T extends "artists" ? Artist : Track>>; 266 - - followedArtists(after?: string, limit?: MaxInt<50>): Promise<FollowedArtists>; 267 - + profile(): Promise<UserProfile | null>; 268 - + topItems<T extends "artists" | "tracks">(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise<Page<T extends "artists" ? Artist : Track> | null>; 269 - + followedArtists(after?: string, limit?: MaxInt<50>): Promise<FollowedArtists | null>; 270 - followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<void>; 271 - unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<void>; 272 - - followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<boolean[]>; 273 - + followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<boolean[] | null>; 274 - } 275 - declare class CurrentUserAlbumsEndpoints extends EndpointsBase { 276 - - savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedAlbum>>; 277 - + savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedAlbum> | null>; 278 - saveAlbums(ids: string[]): Promise<void>; 279 - removeSavedAlbums(ids: string[]): Promise<void>; 280 - - hasSavedAlbums(ids: string[]): Promise<boolean[]>; 281 - + hasSavedAlbums(ids: string[]): Promise<boolean[] | null>; 282 - } 283 - declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { 284 - - savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAudiobook>>; 285 - + savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAudiobook> | null>; 286 - saveAudiobooks(ids: string[]): Promise<void>; 287 - removeSavedAudiobooks(ids: string[]): Promise<void>; 288 - - hasSavedAudiobooks(ids: string[]): Promise<boolean[]>; 289 - + hasSavedAudiobooks(ids: string[]): Promise<boolean[] | null>; 290 - } 291 - declare class CurrentUserEpisodesEndpoints extends EndpointsBase { 292 - - savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SavedEpisode>>; 293 - + savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SavedEpisode> | null>; 294 - saveEpisodes(ids: string[]): Promise<void>; 295 - removeSavedEpisodes(ids: string[]): Promise<void>; 296 - - hasSavedEpisodes(ids: string[]): Promise<boolean[]>; 297 - + hasSavedEpisodes(ids: string[]): Promise<boolean[] | null>; 298 - } 299 - declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { 300 - - playlists(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedPlaylist>>; 301 - + playlists(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedPlaylist> | null>; 302 - follow(playlist_id: string): Promise<void>; 303 - unfollow(playlist_id: string): Promise<void>; 304 - - isFollowing(playlistId: string, ids: string[]): Promise<boolean[]>; 305 - + isFollowing(playlistId: string, ids: string[]): Promise<boolean[] | null>; 306 - } 307 - declare class CurrentUserShowsEndpoints extends EndpointsBase { 308 - - savedShows(limit?: MaxInt<50>, offset?: number): Promise<Page<SavedShow>>; 309 - + savedShows(limit?: MaxInt<50>, offset?: number): Promise<Page<SavedShow> | null>; 310 - saveShows(ids: string[]): Promise<unknown>; 311 - removeSavedShows(ids: string[], market?: Market): Promise<unknown>; 312 - - hasSavedShow(ids: string[]): Promise<boolean[]>; 313 - + hasSavedShow(ids: string[]): Promise<boolean[] | null>; 314 - } 315 - declare class CurrentUserTracksEndpoints extends EndpointsBase { 316 - - savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedTrack>>; 317 - + savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedTrack> | null>; 318 - saveTracks(ids: string[]): Promise<void>; 319 - removeSavedTracks(ids: string[]): Promise<void>; 320 - - hasSavedTracks(ids: string[]): Promise<boolean[]>; 321 - + hasSavedTracks(ids: string[]): Promise<boolean[] | null>; 322 - } 323 - export {}; 324 - diff --git a/dist/cjs/endpoints/EndpointsBase.d.ts b/dist/cjs/endpoints/EndpointsBase.d.ts 325 - index c91dff76bfa4664d7a9976f84c98a8e65b08cb70..62e63dac60f91346fae2b6dc121e309df52ba3f3 100644 326 - --- a/dist/cjs/endpoints/EndpointsBase.d.ts 327 - +++ b/dist/cjs/endpoints/EndpointsBase.d.ts 328 - @@ -2,9 +2,9 @@ import { SpotifyApi } from "../SpotifyApi.js"; 329 - export default class EndpointsBase { 330 - protected api: SpotifyApi; 331 - constructor(api: SpotifyApi); 332 - - protected getRequest<TReturnType>(url: string): Promise<TReturnType>; 333 - - protected postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType>; 334 - - protected putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType>; 335 - - protected deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType>; 336 - + protected getRequest<TReturnType>(url: string): Promise<TReturnType | null>; 337 - + protected postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType | null>; 338 - + protected putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType | null>; 339 - + protected deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType | null>; 340 - protected paramsFor(args: any): string; 341 - } 342 135 diff --git a/dist/cjs/endpoints/EndpointsBase.js.map b/dist/cjs/endpoints/EndpointsBase.js.map 343 136 index f0473508d6cc503ca83c96ded895d202b48977b3..1b8c6d680673f2fedda300ebe82ccdbe7111b782 100644 344 137 --- a/dist/cjs/endpoints/EndpointsBase.js.map ··· 348 141 \ No newline at end of file 349 142 +{"version":3,"file":"EndpointsBase.js","sourceRoot":"","sources":["../../../src/endpoints/EndpointsBase.ts"],"names":[],"mappings":";;AAEA,MAAqB,aAAa;IACR;IAAtB,YAAsB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IACrC,CAAC;IAES,KAAK,CAAC,UAAU,CAAc,GAAW;QAC/C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,WAAW,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC5H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,UAAU,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC3H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAES,KAAK,CAAC,aAAa,CAA+B,GAAW,EAAE,IAAY;QACjF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,IAAS;QACzB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;gBACnF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;CACJ;AA7BD,gCA6BC"} 350 143 \ No newline at end of file 351 - diff --git a/dist/cjs/endpoints/EpisodesEndpoints.js b/dist/cjs/endpoints/EpisodesEndpoints.js 352 - index aa809afbe2f5e30bab4622b94c978700341651d8..58960a963d789cb7320bcee8517f8128762e85ad 100644 353 - --- a/dist/cjs/endpoints/EpisodesEndpoints.js 354 - +++ b/dist/cjs/endpoints/EpisodesEndpoints.js 355 - @@ -12,6 +12,8 @@ class EpisodesEndpoints extends EndpointsBase_js_1.default { 356 - } 357 - const params = this.paramsFor({ ids: idOrIds, market }); 358 - const response = await this.getRequest(`episodes${params}`); 359 - + if (!response) 360 - + return response; 361 - return response.episodes; 362 - } 363 - } 364 144 diff --git a/dist/cjs/endpoints/EpisodesEndpoints.js.map b/dist/cjs/endpoints/EpisodesEndpoints.js.map 365 - index 017ea1fb67b3751fff77c143d67f57514bb5b996..c60f6af5f86147d8059412c3d89e4ba9beab762d 100644 145 + index 017ea1fb67b3751fff77c143d67f57514bb5b996..bc10678835b90f42d2a9be229570c95c3b8a56e5 100644 366 146 --- a/dist/cjs/endpoints/EpisodesEndpoints.js.map 367 147 +++ b/dist/cjs/endpoints/EpisodesEndpoints.js.map 368 148 @@ -1 +1 @@ 369 149 -{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} 370 150 \ No newline at end of file 371 - +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAfD,oCAeC"} 151 + +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,iBAAkB,SAAQ,0BAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAdD,oCAcC"} 372 152 \ No newline at end of file 373 - diff --git a/dist/cjs/endpoints/MarketsEndpoints.d.ts b/dist/cjs/endpoints/MarketsEndpoints.d.ts 374 - index 4ceb08e53ada5c140d6cba3267e8d60b35586827..cc046b287cf3a12a23cdec477d197319189b0c6b 100644 375 - --- a/dist/cjs/endpoints/MarketsEndpoints.d.ts 376 - +++ b/dist/cjs/endpoints/MarketsEndpoints.d.ts 377 - @@ -1,5 +1,5 @@ 378 - import type { Markets } from '../types.js'; 379 - import EndpointsBase from './EndpointsBase.js'; 380 - export default class MarketsEndpoints extends EndpointsBase { 381 - - getAvailableMarkets(): Promise<Markets>; 382 - + getAvailableMarkets(): Promise<Markets | null>; 383 - } 384 - diff --git a/dist/cjs/endpoints/PlayerEndpoints.d.ts b/dist/cjs/endpoints/PlayerEndpoints.d.ts 385 - index 52792b8fb66f5a4e5056c674a175fb12d9b6c43b..2b6ec0f5e0199cd5d908e63fe6b410fce8c55315 100644 386 - --- a/dist/cjs/endpoints/PlayerEndpoints.d.ts 387 - +++ b/dist/cjs/endpoints/PlayerEndpoints.d.ts 388 - @@ -5,11 +5,11 @@ interface QueryRange { 389 - type: "before" | "after"; 390 - } 391 - export default class PlayerEndpoints extends EndpointsBase { 392 - - getPlaybackState(market?: Market, additional_types?: string): Promise<PlaybackState>; 393 - - getAvailableDevices(): Promise<Devices>; 394 - - getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise<PlaybackState>; 395 - - getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise<RecentlyPlayedTracksPage>; 396 - - getUsersQueue(): Promise<Queue>; 397 - + getPlaybackState(market?: Market, additional_types?: string): Promise<PlaybackState | null>; 398 - + getAvailableDevices(): Promise<Devices | null>; 399 - + getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise<PlaybackState | null>; 400 - + getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise<RecentlyPlayedTracksPage | null>; 401 - + getUsersQueue(): Promise<Queue | null>; 402 - transferPlayback(device_ids: string[], play?: boolean): Promise<void>; 403 - startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise<void>; 404 - pausePlayback(device_id: string): Promise<void>; 405 153 diff --git a/dist/cjs/endpoints/PlayerEndpoints.js.map b/dist/cjs/endpoints/PlayerEndpoints.js.map 406 154 index 94159b453d45d007e614ab4f0d81e8eafd4501f3..c862611b08e57318150f4218c0d74580b4a5473b 100644 407 155 --- a/dist/cjs/endpoints/PlayerEndpoints.js.map ··· 412 160 +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":"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"} 413 161 \ No newline at end of file 414 162 diff --git a/dist/cjs/endpoints/PlaylistsEndpoints.d.ts b/dist/cjs/endpoints/PlaylistsEndpoints.d.ts 415 - index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..1477d0769fae34f47b34a4d85c46e29337dac979 100644 163 + index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..8a439ea2f95f5bdbd5bec4cc9dde867e06d74ec2 100644 416 164 --- a/dist/cjs/endpoints/PlaylistsEndpoints.d.ts 417 165 +++ b/dist/cjs/endpoints/PlaylistsEndpoints.d.ts 418 - @@ -1,17 +1,16 @@ 166 + @@ -1,4 +1,3 @@ 419 167 -/// <reference types="node" /> 420 168 import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; 421 169 import EndpointsBase from './EndpointsBase.js'; 422 170 export default class PlaylistsEndpoints extends EndpointsBase { 423 - - getPlaylist<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise<Playlist<AdditionalTypes extends undefined ? Track : TrackItem>>; 424 - - getPlaylistItems<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise<Page<PlaylistedTrack<AdditionalTypes extends undefined ? Track : TrackItem>>>; 425 - + getPlaylist<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise<Playlist<AdditionalTypes extends undefined ? Track : TrackItem> | null>; 426 - + getPlaylistItems<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise<Page<PlaylistedTrack<AdditionalTypes extends undefined ? Track : TrackItem>> | null>; 427 - changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise<void>; 428 - - movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise<SnapshotReference>; 429 - - updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise<SnapshotReference>; 430 - + movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise<SnapshotReference | null>; 431 - + updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise<SnapshotReference | null>; 432 - addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise<void>; 433 - removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise<void>; 434 - - getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise<Page<Playlist<TrackItem>>>; 435 - - createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise<Playlist<TrackItem>>; 436 - - getPlaylistCoverImage(playlist_id: string): Promise<Image[]>; 437 - + getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise<Page<Playlist<TrackItem>> | null>; 438 - + createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise<Playlist<TrackItem> | null>; 439 - + getPlaylistCoverImage(playlist_id: string): Promise<Image[] | null>; 440 - addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise<void>; 441 - addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise<void>; 442 - } 443 171 diff --git a/dist/cjs/endpoints/PlaylistsEndpoints.js.map b/dist/cjs/endpoints/PlaylistsEndpoints.js.map 444 172 index 4bfe4e675a39d5043db26002aca95c1b321aed01..733e9743acf49400060efdb6d211e6871ef151c6 100644 445 173 --- a/dist/cjs/endpoints/PlaylistsEndpoints.js.map ··· 449 177 \ No newline at end of file 450 178 +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":"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"} 451 179 \ No newline at end of file 452 - diff --git a/dist/cjs/endpoints/RecommendationsEndpoints.d.ts b/dist/cjs/endpoints/RecommendationsEndpoints.d.ts 453 - index ddd71517d997daee270a15e60782d6bd29fa3a6a..cf864f5fa1f48da6fc836df78a3a19e70eece0c5 100644 454 - --- a/dist/cjs/endpoints/RecommendationsEndpoints.d.ts 455 - +++ b/dist/cjs/endpoints/RecommendationsEndpoints.d.ts 456 - @@ -1,8 +1,8 @@ 457 - import type { Genres, Track } from '../types.js'; 458 - import EndpointsBase from './EndpointsBase.js'; 459 - export default class RecommendationsEndpoints extends EndpointsBase { 460 - - get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise<RecommendationsResponse>; 461 - - genreSeeds(): Promise<Genres>; 462 - + get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise<RecommendationsResponse | null>; 463 - + genreSeeds(): Promise<Genres | null>; 464 - } 465 - export interface RecommendationsRequestRequiredArguments { 466 - seed_artists?: string[]; 467 - diff --git a/dist/cjs/endpoints/SearchEndpoints.d.ts b/dist/cjs/endpoints/SearchEndpoints.d.ts 468 - index 71fcb99808b86ed766d459b11d09a2ad5080408d..6656f5bc3f1c94612ed548b96693692c7859cdf0 100644 469 - --- a/dist/cjs/endpoints/SearchEndpoints.d.ts 470 - +++ b/dist/cjs/endpoints/SearchEndpoints.d.ts 471 - @@ -1,8 +1,8 @@ 472 - import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; 473 - import EndpointsBase from './EndpointsBase.js'; 474 - export interface SearchExecutionFunction { 475 - - <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T>>; 476 - + <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T> | null>; 477 - } 478 - export default class SearchEndpoints extends EndpointsBase { 479 - - execute<const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T>>; 480 - + execute<const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T> | null>; 481 - } 482 - diff --git a/dist/cjs/endpoints/ShowsEndpoints.d.ts b/dist/cjs/endpoints/ShowsEndpoints.d.ts 483 - index 41b64a4de6399faa92e28aec51b977cddd06d00b..4e6fe35b6161bf21820819775281600f74a23325 100644 484 - --- a/dist/cjs/endpoints/ShowsEndpoints.d.ts 485 - +++ b/dist/cjs/endpoints/ShowsEndpoints.d.ts 486 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 487 - export default class ShowsEndpoints extends EndpointsBase { 488 - get(id: string, market: Market): Promise<Show>; 489 - get(ids: string[], market: Market): Promise<Show[]>; 490 - - episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedEpisode>>; 491 - + episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedEpisode> | null>; 492 - } 493 - diff --git a/dist/cjs/endpoints/ShowsEndpoints.js b/dist/cjs/endpoints/ShowsEndpoints.js 494 - index fe5565df19dc961e1a238e07847d230e3d4d27e6..4864a186e753748e85544e36da09f90d2c20e3b6 100644 495 - --- a/dist/cjs/endpoints/ShowsEndpoints.js 496 - +++ b/dist/cjs/endpoints/ShowsEndpoints.js 497 - @@ -13,6 +13,8 @@ class ShowsEndpoints extends EndpointsBase_js_1.default { 498 - // TODO: only returns 50, validate here 499 - const params = this.paramsFor({ ids: idOrIds, market }); 500 - const response = await this.getRequest(`shows${params}`); 501 - + if (!response) 502 - + return response; 503 - return response.shows; 504 - } 505 - episodes(id, market, limit, offset) { 506 180 diff --git a/dist/cjs/endpoints/ShowsEndpoints.js.map b/dist/cjs/endpoints/ShowsEndpoints.js.map 507 - index 4b4438eaaa344bbe5161c18ce31a25dd0a007e19..bc822b62ea5a1c3f4d733c89eb61f321bdfc849c 100644 181 + index 4b4438eaaa344bbe5161c18ce31a25dd0a007e19..1cc228ddceafcfb3551c3431b2401a99cdd2f747 100644 508 182 --- a/dist/cjs/endpoints/ShowsEndpoints.js.map 509 183 +++ b/dist/cjs/endpoints/ShowsEndpoints.js.map 510 184 @@ -1 +1 @@ 511 185 -{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,cAAe,SAAQ,0BAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ;AApBD,iCAoBC"} 512 186 \ No newline at end of file 513 - +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,cAAe,SAAQ,0BAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ;AArBD,iCAqBC"} 187 + +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,cAAe,SAAQ,0BAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ;AApBD,iCAoBC"} 514 188 \ No newline at end of file 515 - diff --git a/dist/cjs/endpoints/TracksEndpoints.d.ts b/dist/cjs/endpoints/TracksEndpoints.d.ts 516 - index 5a2811cbe7365ec4e81823f69046dea8141941de..7a8109f3f656be9ed76e4f781e83343c85a907d7 100644 517 - --- a/dist/cjs/endpoints/TracksEndpoints.d.ts 518 - +++ b/dist/cjs/endpoints/TracksEndpoints.d.ts 519 - @@ -5,5 +5,5 @@ export default class TracksEndpoints extends EndpointsBase { 520 - get(ids: string[], market?: Market): Promise<Track[]>; 521 - audioFeatures(id: string): Promise<AudioFeatures>; 522 - audioFeatures(ids: string[]): Promise<AudioFeatures[]>; 523 - - audioAnalysis(id: string): Promise<AudioAnalysis>; 524 - + audioAnalysis(id: string): Promise<AudioAnalysis | null>; 525 - } 526 - diff --git a/dist/cjs/endpoints/TracksEndpoints.js b/dist/cjs/endpoints/TracksEndpoints.js 527 - index ff233256c9f33dba91583197a8b5ef27e21f470d..b2979f790208db343d83ef929994ec5fe2d30dc9 100644 528 - --- a/dist/cjs/endpoints/TracksEndpoints.js 529 - +++ b/dist/cjs/endpoints/TracksEndpoints.js 530 - @@ -13,6 +13,8 @@ class TracksEndpoints extends EndpointsBase_js_1.default { 531 - const params = this.paramsFor({ ids: idOrIds, market }); 532 - // TODO: only returns top 20, validate here 533 - const response = await this.getRequest(`tracks${params}`); 534 - + if (!response) 535 - + return response; 536 - return response.tracks; 537 - } 538 - async audioFeatures(idOrIds) { 539 - @@ -21,6 +23,8 @@ class TracksEndpoints extends EndpointsBase_js_1.default { 540 - } 541 - const params = this.paramsFor({ ids: idOrIds }); 542 - const response = await this.getRequest(`audio-features${params}`); 543 - + if (!response) 544 - + return response; 545 - return response.audio_features; 546 - } 547 - audioAnalysis(id) { 548 189 diff --git a/dist/cjs/endpoints/TracksEndpoints.js.map b/dist/cjs/endpoints/TracksEndpoints.js.map 549 - index 4a7e10a5243a977c350f671555dabed75ecb6bea..2b87ede72498b34c2bf5eed23e422b56610daff6 100644 190 + index 4a7e10a5243a977c350f671555dabed75ecb6bea..d3a3d4c9ea19af96f1f0bc95ed4a32fe51015ab4 100644 550 191 --- a/dist/cjs/endpoints/TracksEndpoints.js.map 551 192 +++ b/dist/cjs/endpoints/TracksEndpoints.js.map 552 193 @@ -1 +1 @@ 553 194 -{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ;AA/BD,kCA+BC"} 554 195 \ No newline at end of file 555 - +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ;AAjCD,kCAiCC"} 196 + +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":";;;;;AACA,0EAA+C;AAE/C,MAAqB,eAAgB,SAAQ,0BAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ;AA/BD,kCA+BC"} 197 + \ No newline at end of file 198 + diff --git a/dist/cjs/index.d.ts b/dist/cjs/index.d.ts 199 + index fbf77964cdd33a0bac5c37ad35e2b1af18d95cd4..44ddaef876d324384ab51d28b5a83300d3be84e7 100644 200 + --- a/dist/cjs/index.d.ts 201 + +++ b/dist/cjs/index.d.ts 202 + @@ -12,7 +12,8 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR 203 + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; 204 + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; 205 + import { Scopes } from "./Scopes.js"; 206 + +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; 207 + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; 208 + -export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; 209 + +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; 210 + export type * from "./types.js"; 211 + -export type { IAuthStrategy, ICacheStore, }; 212 + +export type { IAuthStrategy, ICacheStore }; 213 + diff --git a/dist/cjs/index.js b/dist/cjs/index.js 214 + index 8a61bc1e3b1d350548a56297763db57b348cf036..7fa6b7fe124d083df5e433bf9ca062431b9a931a 100644 215 + --- a/dist/cjs/index.js 216 + +++ b/dist/cjs/index.js 217 + @@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { 218 + return (mod && mod.__esModule) ? mod : { "default": mod }; 219 + }; 220 + Object.defineProperty(exports, "__esModule", { value: true }); 221 + -exports.emptyAccessToken = exports.Scopes = exports.DefaultResponseDeserializer = exports.DefaultResponseValidator = exports.DocumentLocationRedirectionStrategy = exports.NoOpErrorHandler = exports.ConsoleLoggingErrorHandler = exports.GenericCache = exports.LocalStorageCachingStrategy = exports.InMemoryCachingStrategy = exports.ClientCredentialsStrategy = exports.AuthorizationCodeWithPKCEStrategy = exports.SpotifyApi = void 0; 222 + +exports.emptyAccessToken = exports.ProvidedAccessTokenStrategy = exports.Scopes = exports.DefaultResponseDeserializer = exports.DefaultResponseValidator = exports.DocumentLocationRedirectionStrategy = exports.NoOpErrorHandler = exports.ConsoleLoggingErrorHandler = exports.GenericCache = exports.LocalStorageCachingStrategy = exports.InMemoryCachingStrategy = exports.ClientCredentialsStrategy = exports.AuthorizationCodeWithPKCEStrategy = exports.SpotifyApi = void 0; 223 + const SpotifyApi_js_1 = require("./SpotifyApi.js"); 224 + Object.defineProperty(exports, "SpotifyApi", { enumerable: true, get: function () { return SpotifyApi_js_1.SpotifyApi; } }); 225 + const AuthorizationCodeWithPKCEStrategy_js_1 = __importDefault(require("./auth/AuthorizationCodeWithPKCEStrategy.js")); 226 + @@ -28,6 +28,8 @@ const DefaultResponseDeserializer_js_1 = __importDefault(require("./serializatio 227 + exports.DefaultResponseDeserializer = DefaultResponseDeserializer_js_1.default; 228 + const Scopes_js_1 = require("./Scopes.js"); 229 + Object.defineProperty(exports, "Scopes", { enumerable: true, get: function () { return Scopes_js_1.Scopes; } }); 230 + +const ProvidedAccessTokenStrategy_js_1 = __importDefault(require("./auth/ProvidedAccessTokenStrategy.js")); 231 + +exports.ProvidedAccessTokenStrategy = ProvidedAccessTokenStrategy_js_1.default; 232 + const IAuthStrategy_js_1 = require("./auth/IAuthStrategy.js"); 233 + Object.defineProperty(exports, "emptyAccessToken", { enumerable: true, get: function () { return IAuthStrategy_js_1.emptyAccessToken; } }); 234 + //# sourceMappingURL=index.js.map 235 + \ No newline at end of file 236 + diff --git a/dist/cjs/index.js.map b/dist/cjs/index.js.map 237 + index 46aff6b589a7a9b2ba5c22bae770313f827ee9d3..158f74fc9607ace092aa7a1e4cabb2e4cc234957 100644 238 + --- a/dist/cjs/index.js.map 239 + +++ b/dist/cjs/index.js.map 240 + @@ -1 +1 @@ 241 + -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6C;AAiBzC,2FAjBK,0BAAU,OAiBL;AAhBd,uHAA4F;AAiBxF,4CAjBG,8CAAiC,CAiBH;AAhBrC,uGAA4E;AAiBxE,oCAjBG,sCAAyB,CAiBH;AAf7B,sGAA2E;AAgBvE,kCAhBG,oCAAuB,CAgBH;AAf3B,8GAAmF;AAgB/E,sCAhBG,wCAA2B,CAgBH;AAd/B,gFAAqD;AAejD,uBAfG,yBAAY,CAeH;AAdhB,kHAAuF;AAenF,qCAfG,uCAA0B,CAeH;AAd9B,8FAAmE;AAe/D,2BAfG,6BAAgB,CAeH;AAdpB,kIAAuG;AAenG,8CAfG,gDAAmC,CAeH;AAdvC,mHAAwF;AAepF,mCAfG,qCAAwB,CAeH;AAd5B,oHAAyF;AAerF,sCAfG,wCAA2B,CAeH;AAd/B,2CAAqC;AAejC,uFAfK,kBAAM,OAeL;AAdV,8DAA2D;AAevD,iGAfK,mCAAgB,OAeL"} 556 242 \ No newline at end of file 557 - diff --git a/dist/cjs/endpoints/UsersEndpoints.d.ts b/dist/cjs/endpoints/UsersEndpoints.d.ts 558 - index 613633e0d2cf885fbc0aca7a67855b67dbcc465e..172bf9cf6f6d69e2fad97b578ef487d28e34f90f 100644 559 - --- a/dist/cjs/endpoints/UsersEndpoints.d.ts 560 - +++ b/dist/cjs/endpoints/UsersEndpoints.d.ts 561 - @@ -1,5 +1,5 @@ 562 - import type { User } from '../types.js'; 563 - import EndpointsBase from './EndpointsBase.js'; 564 - export default class UsersEndpoints extends EndpointsBase { 565 - - profile(userId: string): Promise<User>; 566 - + profile(userId: string): Promise<User | null>; 567 - } 243 + +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6C;AAkB3C,2FAlBO,0BAAU,OAkBP;AAjBZ,uHAA4F;AAkB1F,4CAlBK,8CAAiC,CAkBL;AAjBnC,uGAA4E;AAkB1E,oCAlBK,sCAAyB,CAkBL;AAhB3B,sGAA2E;AAiBzE,kCAjBK,oCAAuB,CAiBL;AAhBzB,8GAAmF;AAiBjF,sCAjBK,wCAA2B,CAiBL;AAf7B,gFAAqD;AAgBnD,uBAhBK,yBAAY,CAgBL;AAfd,kHAAuF;AAgBrF,qCAhBK,uCAA0B,CAgBL;AAf5B,8FAAmE;AAgBjE,2BAhBK,6BAAgB,CAgBL;AAflB,kIAAuG;AAgBrG,8CAhBK,gDAAmC,CAgBL;AAfrC,mHAAwF;AAgBtF,mCAhBK,qCAAwB,CAgBL;AAf1B,oHAAyF;AAgBvF,sCAhBK,wCAA2B,CAgBL;AAf7B,2CAAqC;AAgBnC,uFAhBO,kBAAM,OAgBP;AAfR,2GAAgF;AAgB9E,sCAhBK,wCAA2B,CAgBL;AAf7B,8DAA2D;AAgBzD,iGAhBO,mCAAgB,OAgBP"} 244 + \ No newline at end of file 568 245 diff --git a/dist/cjs/responsevalidation/DefaultResponseValidator.js.map b/dist/cjs/responsevalidation/DefaultResponseValidator.js.map 569 246 index 068804c9b81eb0a8b14280e3cac9ae1f978d788f..183a8e3201157d54088092006c84a3502f752ba4 100644 570 247 --- a/dist/cjs/responsevalidation/DefaultResponseValidator.js.map ··· 583 260 \ No newline at end of file 584 261 +{"version":3,"file":"DefaultResponseDeserializer.js","sourceRoot":"","sources":["../../../src/serialization/DefaultResponseDeserializer.ts"],"names":[],"mappings":";;AAEA,MAAqB,2BAA2B;IACrC,KAAK,CAAC,WAAW,CAAc,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAmB,CAAC;QAC/B,CAAC;QAED,OAAO,IAAmB,CAAC;IAC/B,CAAC;CACJ;AAXD,8CAWC"} 585 262 \ No newline at end of file 586 - diff --git a/dist/mjs/SpotifyApi.d.ts b/dist/mjs/SpotifyApi.d.ts 587 - index cf5eff3cb728065892287539b2a85e2fe16b283b..fe3c2a037f4e47e6c748753a5661261552cfcc1b 100644 588 - --- a/dist/mjs/SpotifyApi.d.ts 589 - +++ b/dist/mjs/SpotifyApi.d.ts 590 - @@ -35,7 +35,7 @@ export declare class SpotifyApi { 591 - search: SearchExecutionFunction; 592 - currentUser: CurrentUserEndpoints; 593 - constructor(authentication: IAuthStrategy, config?: SdkOptions); 594 - - makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise<TReturnType>; 595 - + makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise<TReturnType | null>; 596 - private initializeSdk; 597 - switchAuthenticationStrategy(authentication: IAuthStrategy): void; 598 - /** 599 263 diff --git a/dist/mjs/SpotifyApi.js.map b/dist/mjs/SpotifyApi.js.map 600 264 index e98086ce346896a304fce6450801e17c0ec79b2a..8a04aacb1823ed6fbc8fb4d5ce9a7050ad0e7754 100644 601 265 --- a/dist/mjs/SpotifyApi.js.map ··· 668 332 \ No newline at end of file 669 333 +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":"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"} 670 334 \ No newline at end of file 671 - diff --git a/dist/mjs/endpoints/AlbumsEndpoints.d.ts b/dist/mjs/endpoints/AlbumsEndpoints.d.ts 672 - index 18274fea2c934cd17f8ca87d551477cf8bda5291..bed7d9e02f1e65693b5f6772e78463a52ef442a8 100644 673 - --- a/dist/mjs/endpoints/AlbumsEndpoints.d.ts 674 - +++ b/dist/mjs/endpoints/AlbumsEndpoints.d.ts 675 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 676 - export default class AlbumsEndpoints extends EndpointsBase { 677 - get(id: string, market?: Market): Promise<Album>; 678 - get(ids: string[], market?: Market): Promise<Album[]>; 679 - - tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedTrack>>; 680 - + tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedTrack> | null>; 681 - } 682 - diff --git a/dist/mjs/endpoints/AlbumsEndpoints.js b/dist/mjs/endpoints/AlbumsEndpoints.js 683 - index f93c182f9ab3a47c25db61a5cc896b65b89c249d..1b761c1b125b704e5c6fe48ba278ceb999f34192 100644 684 - --- a/dist/mjs/endpoints/AlbumsEndpoints.js 685 - +++ b/dist/mjs/endpoints/AlbumsEndpoints.js 686 - @@ -9,6 +9,8 @@ export default class AlbumsEndpoints extends EndpointsBase { 687 - const params = this.paramsFor({ ids: idOrIds, market }); 688 - // TODO: only returns top 20, validate here 689 - const response = await this.getRequest(`albums${params}`); 690 - + if (!response) 691 - + return response; 692 - return response.albums; 693 - } 694 - tracks(albumId, market, limit, offset) { 695 335 diff --git a/dist/mjs/endpoints/AlbumsEndpoints.js.map b/dist/mjs/endpoints/AlbumsEndpoints.js.map 696 - index e0b9429b4a0a7bcf28635430262b0345c40938b2..07be0dc89ec1e4dcb7020fb0e8474f13b7712a36 100644 336 + index e0b9429b4a0a7bcf28635430262b0345c40938b2..2b89fc1b01507a7230d7c891bda9e407d6ffb445 100644 697 337 --- a/dist/mjs/endpoints/AlbumsEndpoints.js.map 698 338 +++ b/dist/mjs/endpoints/AlbumsEndpoints.js.map 699 339 @@ -1 +1 @@ 700 340 -{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ"} 701 341 \ No newline at end of file 702 - +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ"} 342 + +{"version":3,"file":"AlbumsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AlbumsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAe,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAwB,UAAU,OAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ"} 703 343 \ No newline at end of file 704 - diff --git a/dist/mjs/endpoints/ArtistsEndpoints.d.ts b/dist/mjs/endpoints/ArtistsEndpoints.d.ts 705 - index 4b5237b7acbc95486893d7384fb6adcdf71ee74a..8bdba8fcbc5a9c45deb1a49580764c7cbbd1cd7b 100644 706 - --- a/dist/mjs/endpoints/ArtistsEndpoints.d.ts 707 - +++ b/dist/mjs/endpoints/ArtistsEndpoints.d.ts 708 - @@ -3,7 +3,7 @@ import EndpointsBase from "./EndpointsBase.js"; 709 - export default class ArtistsEndpoints extends EndpointsBase { 710 - get(id: string): Promise<Artist>; 711 - get(ids: string[]): Promise<Artist[]>; 712 - - albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAlbum>>; 713 - - topTracks(id: string, market: Market): Promise<TopTracksResult>; 714 - - relatedArtists(id: string): Promise<Artists>; 715 - + albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAlbum> | null>; 716 - + topTracks(id: string, market: Market): Promise<TopTracksResult | null>; 717 - + relatedArtists(id: string): Promise<Artists | null>; 718 - } 719 - diff --git a/dist/mjs/endpoints/ArtistsEndpoints.js b/dist/mjs/endpoints/ArtistsEndpoints.js 720 - index ab7fe438b8946ba19b545ba7c7fea4a3d021b7f2..8c786497cde5010bc4558712eaee1b271017f1c2 100644 721 - --- a/dist/mjs/endpoints/ArtistsEndpoints.js 722 - +++ b/dist/mjs/endpoints/ArtistsEndpoints.js 723 - @@ -7,6 +7,8 @@ export default class ArtistsEndpoints extends EndpointsBase { 724 - } 725 - const params = this.paramsFor({ ids: idOrIds }); 726 - const response = await this.getRequest(`artists${params}`); 727 - + if (!response) 728 - + return response; 729 - return response.artists; 730 - } 731 - albums(id, includeGroups, market, limit, offset) { 732 344 diff --git a/dist/mjs/endpoints/ArtistsEndpoints.js.map b/dist/mjs/endpoints/ArtistsEndpoints.js.map 733 - index 033e2a97bc6d715d348326791260fc2303addd1d..c83be3b97ed6fac3630a5bf9928193102e6f78d5 100644 345 + index 033e2a97bc6d715d348326791260fc2303addd1d..f662e72b69a48f1e5929bf8f1a25b599b6984161 100644 734 346 --- a/dist/mjs/endpoints/ArtistsEndpoints.js.map 735 347 +++ b/dist/mjs/endpoints/ArtistsEndpoints.js.map 736 348 @@ -1 +1 @@ 737 349 -{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;SACjB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ"} 738 350 \ No newline at end of file 739 - +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ"} 351 + +{"version":3,"file":"ArtistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ArtistsEndpoints.ts"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa;IAGhD,KAAK,CAAC,GAAG,CAAC,OAA0B;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAS,WAAW,OAAO,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAU,UAAU,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CACT,EAAU,EACV,aAAsB,EACtB,MAAe,EACf,KAAkB,EAClB,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,KAAK;YACL,MAAM;SACT,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,UAAU,MAAM,EAAE,CAClC,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,EAAU,EAAE,MAAc;QACvC,+FAA+F;QAC/F,0BAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,UAAU,CAClB,WAAW,EAAE,cAAc,MAAM,EAAE,CACtC,CAAC;IACN,CAAC;IAEM,cAAc,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAU,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;CACJ"} 740 352 \ No newline at end of file 741 - diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.d.ts b/dist/mjs/endpoints/AudiobooksEndpoints.d.ts 742 - index cfe18b338a678454c67cba7086ef4b292e0ab54a..33f2577aa2b4050e49f22b3bdca75b8ba1993fdd 100644 743 - --- a/dist/mjs/endpoints/AudiobooksEndpoints.d.ts 744 - +++ b/dist/mjs/endpoints/AudiobooksEndpoints.d.ts 745 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 746 - export default class AudiobooksEndpoints extends EndpointsBase { 747 - get(id: string, market?: Market): Promise<Audiobook>; 748 - get(ids: string[], market?: Market): Promise<Audiobook[]>; 749 - - getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedChapter>>; 750 - + getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedChapter> | null>; 751 - } 752 - diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.js b/dist/mjs/endpoints/AudiobooksEndpoints.js 753 - index 3e7854353fff37736fd746eb929285dda337486f..571cb4acbc2f4554115ae2604837a9afd842e241 100644 754 - --- a/dist/mjs/endpoints/AudiobooksEndpoints.js 755 - +++ b/dist/mjs/endpoints/AudiobooksEndpoints.js 756 - @@ -7,6 +7,8 @@ export default class AudiobooksEndpoints extends EndpointsBase { 757 - } 758 - const params = this.paramsFor({ ids: idOrIds, market }); 759 - const response = await this.getRequest(`audiobooks${params}`); 760 - + if (!response) 761 - + return response; 762 - return response.audiobooks; 763 - } 764 - getAudiobookChapters(id, market, limit, offset) { 765 353 diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.js.map b/dist/mjs/endpoints/AudiobooksEndpoints.js.map 766 - index 916809ef07644ef1d5ce8b1c9feb0e5d7ff747b0..07c830a5638b4fa623b78a8d389bf75cb0f6dbc0 100644 354 + index 916809ef07644ef1d5ce8b1c9feb0e5d7ff747b0..cbae806d0e71e1b3d050abc26e910189f9d46aad 100644 767 355 --- a/dist/mjs/endpoints/AudiobooksEndpoints.js.map 768 356 +++ b/dist/mjs/endpoints/AudiobooksEndpoints.js.map 769 357 @@ -1 +1 @@ 770 358 -{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACvE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ"} 771 359 \ No newline at end of file 772 - +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ"} 360 + +{"version":3,"file":"AudiobooksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/AudiobooksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa;IAGnD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAY,cAAc,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC/B,CAAC;IAEM,oBAAoB,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAA0B,cAAc,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;CAEJ"} 773 361 \ No newline at end of file 774 - diff --git a/dist/mjs/endpoints/BrowseEndpoints.d.ts b/dist/mjs/endpoints/BrowseEndpoints.d.ts 775 - index 7f998995a6b7cdb8c31dcfc9d0284826cf9b8a90..87b59ecd24941b849bd43e472ab8421cbba0e0d3 100644 776 - --- a/dist/mjs/endpoints/BrowseEndpoints.d.ts 777 - +++ b/dist/mjs/endpoints/BrowseEndpoints.d.ts 778 - @@ -1,9 +1,9 @@ 779 - import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; 780 - import EndpointsBase from './EndpointsBase.js'; 781 - export default class BrowseEndpoints extends EndpointsBase { 782 - - getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise<Categories>; 783 - - getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise<Category>; 784 - - getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise<NewReleases>; 785 - - getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists>; 786 - - getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists>; 787 - + getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise<Categories | null>; 788 - + getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise<Category | null>; 789 - + getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise<NewReleases | null>; 790 - + getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists | null>; 791 - + getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise<FeaturedPlaylists | null>; 792 - } 793 - diff --git a/dist/mjs/endpoints/ChaptersEndpoints.js b/dist/mjs/endpoints/ChaptersEndpoints.js 794 - index 057eecb900d09464670463c5cb24feb41ff80e4e..6d3e3a846de0f82e683685d3f083356e6ed1a634 100644 795 - --- a/dist/mjs/endpoints/ChaptersEndpoints.js 796 - +++ b/dist/mjs/endpoints/ChaptersEndpoints.js 797 - @@ -8,6 +8,8 @@ export default class ChaptersEndpoints extends EndpointsBase { 798 - // TODO: Only returns top 50, validate / pre-check here 799 - const params = this.paramsFor({ ids: idOrIds, market }); 800 - const response = await this.getRequest(`chapters${params}`); 801 - + if (!response) 802 - + return response; 803 - return response.chapters; 804 - } 805 - } 806 362 diff --git a/dist/mjs/endpoints/ChaptersEndpoints.js.map b/dist/mjs/endpoints/ChaptersEndpoints.js.map 807 - index d686d3ea29f38e83ebabd541f0ef9fa58f914cd9..4930112f3e0b51baa979cc53721081c717a4598d 100644 363 + index d686d3ea29f38e83ebabd541f0ef9fa58f914cd9..5889fb7b1d5d40275a93b9432e4fd9de9c3142aa 100644 808 364 --- a/dist/mjs/endpoints/ChaptersEndpoints.js.map 809 365 +++ b/dist/mjs/endpoints/ChaptersEndpoints.js.map 810 366 @@ -1 +1 @@ 811 367 -{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAK/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 812 368 \ No newline at end of file 813 - +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAK/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 369 + +{"version":3,"file":"ChaptersEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ChaptersEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAK/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAGjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAqB;QAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,uDAAuD;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 814 370 \ No newline at end of file 815 - diff --git a/dist/mjs/endpoints/CurrentUserEndpoints.d.ts b/dist/mjs/endpoints/CurrentUserEndpoints.d.ts 816 - index ef1c96f9bb072d17d9ce2aecfd3ac918c0f268f9..20d31d09d22308a87cb0be7072c2a40937b58206 100644 817 - --- a/dist/mjs/endpoints/CurrentUserEndpoints.d.ts 818 - +++ b/dist/mjs/endpoints/CurrentUserEndpoints.d.ts 819 - @@ -9,47 +9,47 @@ export default class CurrentUserEndpoints extends EndpointsBase { 820 - shows: CurrentUserShowsEndpoints; 821 - tracks: CurrentUserTracksEndpoints; 822 - constructor(api: SpotifyApi); 823 - - profile(): Promise<UserProfile>; 824 - - topItems<T extends "artists" | "tracks">(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise<Page<T extends "artists" ? Artist : Track>>; 825 - - followedArtists(after?: string, limit?: MaxInt<50>): Promise<FollowedArtists>; 826 - + profile(): Promise<UserProfile | null>; 827 - + topItems<T extends "artists" | "tracks">(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise<Page<T extends "artists" ? Artist : Track> | null>; 828 - + followedArtists(after?: string, limit?: MaxInt<50>): Promise<FollowedArtists | null>; 829 - followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<void>; 830 - unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<void>; 831 - - followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<boolean[]>; 832 - + followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise<boolean[] | null>; 833 - } 834 - declare class CurrentUserAlbumsEndpoints extends EndpointsBase { 835 - - savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedAlbum>>; 836 - + savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedAlbum> | null>; 837 - saveAlbums(ids: string[]): Promise<void>; 838 - removeSavedAlbums(ids: string[]): Promise<void>; 839 - - hasSavedAlbums(ids: string[]): Promise<boolean[]>; 840 - + hasSavedAlbums(ids: string[]): Promise<boolean[] | null>; 841 - } 842 - declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { 843 - - savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAudiobook>>; 844 - + savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedAudiobook> | null>; 845 - saveAudiobooks(ids: string[]): Promise<void>; 846 - removeSavedAudiobooks(ids: string[]): Promise<void>; 847 - - hasSavedAudiobooks(ids: string[]): Promise<boolean[]>; 848 - + hasSavedAudiobooks(ids: string[]): Promise<boolean[] | null>; 849 - } 850 - declare class CurrentUserEpisodesEndpoints extends EndpointsBase { 851 - - savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SavedEpisode>>; 852 - + savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SavedEpisode> | null>; 853 - saveEpisodes(ids: string[]): Promise<void>; 854 - removeSavedEpisodes(ids: string[]): Promise<void>; 855 - - hasSavedEpisodes(ids: string[]): Promise<boolean[]>; 856 - + hasSavedEpisodes(ids: string[]): Promise<boolean[] | null>; 857 - } 858 - declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { 859 - - playlists(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedPlaylist>>; 860 - + playlists(limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedPlaylist> | null>; 861 - follow(playlist_id: string): Promise<void>; 862 - unfollow(playlist_id: string): Promise<void>; 863 - - isFollowing(playlistId: string, ids: string[]): Promise<boolean[]>; 864 - + isFollowing(playlistId: string, ids: string[]): Promise<boolean[] | null>; 865 - } 866 - declare class CurrentUserShowsEndpoints extends EndpointsBase { 867 - - savedShows(limit?: MaxInt<50>, offset?: number): Promise<Page<SavedShow>>; 868 - + savedShows(limit?: MaxInt<50>, offset?: number): Promise<Page<SavedShow> | null>; 869 - saveShows(ids: string[]): Promise<unknown>; 870 - removeSavedShows(ids: string[], market?: Market): Promise<unknown>; 871 - - hasSavedShow(ids: string[]): Promise<boolean[]>; 872 - + hasSavedShow(ids: string[]): Promise<boolean[] | null>; 873 - } 874 - declare class CurrentUserTracksEndpoints extends EndpointsBase { 875 - - savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedTrack>>; 876 - + savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise<Page<SavedTrack> | null>; 877 - saveTracks(ids: string[]): Promise<void>; 878 - removeSavedTracks(ids: string[]): Promise<void>; 879 - - hasSavedTracks(ids: string[]): Promise<boolean[]>; 880 - + hasSavedTracks(ids: string[]): Promise<boolean[] | null>; 881 - } 882 - export {}; 883 - diff --git a/dist/mjs/endpoints/EndpointsBase.d.ts b/dist/mjs/endpoints/EndpointsBase.d.ts 884 - index c91dff76bfa4664d7a9976f84c98a8e65b08cb70..62e63dac60f91346fae2b6dc121e309df52ba3f3 100644 885 - --- a/dist/mjs/endpoints/EndpointsBase.d.ts 886 - +++ b/dist/mjs/endpoints/EndpointsBase.d.ts 887 - @@ -2,9 +2,9 @@ import { SpotifyApi } from "../SpotifyApi.js"; 888 - export default class EndpointsBase { 889 - protected api: SpotifyApi; 890 - constructor(api: SpotifyApi); 891 - - protected getRequest<TReturnType>(url: string): Promise<TReturnType>; 892 - - protected postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType>; 893 - - protected putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType>; 894 - - protected deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType>; 895 - + protected getRequest<TReturnType>(url: string): Promise<TReturnType | null>; 896 - + protected postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType | null>; 897 - + protected putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType?: string | undefined): Promise<TReturnType | null>; 898 - + protected deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType | null>; 899 - protected paramsFor(args: any): string; 900 - } 901 371 diff --git a/dist/mjs/endpoints/EndpointsBase.js.map b/dist/mjs/endpoints/EndpointsBase.js.map 902 372 index e93c0f83790363247c53b09de0fa2fa19523eb6a..ab3c7550cdc23ea60e4aa5503a02f4c4b1cd1a64 100644 903 373 --- a/dist/mjs/endpoints/EndpointsBase.js.map ··· 907 377 \ No newline at end of file 908 378 +{"version":3,"file":"EndpointsBase.js","sourceRoot":"","sources":["../../../src/endpoints/EndpointsBase.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,aAAa;IACR;IAAtB,YAAsB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;IACrC,CAAC;IAES,KAAK,CAAC,UAAU,CAAc,GAAW;QAC/C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAES,KAAK,CAAC,WAAW,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC5H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAES,KAAK,CAAC,UAAU,CAA+B,GAAW,EAAE,IAAY,EAAE,cAAkC,SAAS;QAC3H,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAES,KAAK,CAAC,aAAa,CAA+B,GAAW,EAAE,IAAY;QACjF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAc,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAES,SAAS,CAAC,IAAS;QACzB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;gBACnF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;CACJ"} 909 379 \ No newline at end of file 910 - diff --git a/dist/mjs/endpoints/EpisodesEndpoints.js b/dist/mjs/endpoints/EpisodesEndpoints.js 911 - index c526dba76d93e55281b093f8ba9762b8b248b1a4..1e301fe0ab04b6a053ca7518027d4e34e135d5ac 100644 912 - --- a/dist/mjs/endpoints/EpisodesEndpoints.js 913 - +++ b/dist/mjs/endpoints/EpisodesEndpoints.js 914 - @@ -7,6 +7,8 @@ export default class EpisodesEndpoints extends EndpointsBase { 915 - } 916 - const params = this.paramsFor({ ids: idOrIds, market }); 917 - const response = await this.getRequest(`episodes${params}`); 918 - + if (!response) 919 - + return response; 920 - return response.episodes; 921 - } 922 - } 923 380 diff --git a/dist/mjs/endpoints/EpisodesEndpoints.js.map b/dist/mjs/endpoints/EpisodesEndpoints.js.map 924 - index 19c79bb444c2b9e1ad0727be8846d2711ef74a47..678e9c7aebd4344dc960b2bda2674b1c140e0b3e 100644 381 + index 19c79bb444c2b9e1ad0727be8846d2711ef74a47..858b2e925ab48fa3746b03562c976d435fadfe9b 100644 925 382 --- a/dist/mjs/endpoints/EpisodesEndpoints.js.map 926 383 +++ b/dist/mjs/endpoints/EpisodesEndpoints.js.map 927 384 @@ -1 +1 @@ 928 385 -{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SACnE;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 929 386 \ No newline at end of file 930 - +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 387 + +{"version":3,"file":"EpisodesEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/EpisodesEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa;IAIjD,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAU,YAAY,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAW,WAAW,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACJ"} 931 388 \ No newline at end of file 932 - diff --git a/dist/mjs/endpoints/MarketsEndpoints.d.ts b/dist/mjs/endpoints/MarketsEndpoints.d.ts 933 - index 4ceb08e53ada5c140d6cba3267e8d60b35586827..cc046b287cf3a12a23cdec477d197319189b0c6b 100644 934 - --- a/dist/mjs/endpoints/MarketsEndpoints.d.ts 935 - +++ b/dist/mjs/endpoints/MarketsEndpoints.d.ts 936 - @@ -1,5 +1,5 @@ 937 - import type { Markets } from '../types.js'; 938 - import EndpointsBase from './EndpointsBase.js'; 939 - export default class MarketsEndpoints extends EndpointsBase { 940 - - getAvailableMarkets(): Promise<Markets>; 941 - + getAvailableMarkets(): Promise<Markets | null>; 942 - } 943 - diff --git a/dist/mjs/endpoints/PlayerEndpoints.d.ts b/dist/mjs/endpoints/PlayerEndpoints.d.ts 944 - index 52792b8fb66f5a4e5056c674a175fb12d9b6c43b..2b6ec0f5e0199cd5d908e63fe6b410fce8c55315 100644 945 - --- a/dist/mjs/endpoints/PlayerEndpoints.d.ts 946 - +++ b/dist/mjs/endpoints/PlayerEndpoints.d.ts 947 - @@ -5,11 +5,11 @@ interface QueryRange { 948 - type: "before" | "after"; 949 - } 950 - export default class PlayerEndpoints extends EndpointsBase { 951 - - getPlaybackState(market?: Market, additional_types?: string): Promise<PlaybackState>; 952 - - getAvailableDevices(): Promise<Devices>; 953 - - getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise<PlaybackState>; 954 - - getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise<RecentlyPlayedTracksPage>; 955 - - getUsersQueue(): Promise<Queue>; 956 - + getPlaybackState(market?: Market, additional_types?: string): Promise<PlaybackState | null>; 957 - + getAvailableDevices(): Promise<Devices | null>; 958 - + getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise<PlaybackState | null>; 959 - + getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise<RecentlyPlayedTracksPage | null>; 960 - + getUsersQueue(): Promise<Queue | null>; 961 - transferPlayback(device_ids: string[], play?: boolean): Promise<void>; 962 - startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise<void>; 963 - pausePlayback(device_id: string): Promise<void>; 964 389 diff --git a/dist/mjs/endpoints/PlayerEndpoints.js.map b/dist/mjs/endpoints/PlayerEndpoints.js.map 965 390 index 6b1c7937d058d128aa981035117b3fa06d4564cf..015469900dd2ed19f8ab3d962bb6aa469fc65265 100644 966 391 --- a/dist/mjs/endpoints/PlayerEndpoints.js.map ··· 971 396 +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":"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"} 972 397 \ No newline at end of file 973 398 diff --git a/dist/mjs/endpoints/PlaylistsEndpoints.d.ts b/dist/mjs/endpoints/PlaylistsEndpoints.d.ts 974 - index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..1477d0769fae34f47b34a4d85c46e29337dac979 100644 399 + index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..8a439ea2f95f5bdbd5bec4cc9dde867e06d74ec2 100644 975 400 --- a/dist/mjs/endpoints/PlaylistsEndpoints.d.ts 976 401 +++ b/dist/mjs/endpoints/PlaylistsEndpoints.d.ts 977 - @@ -1,17 +1,16 @@ 402 + @@ -1,4 +1,3 @@ 978 403 -/// <reference types="node" /> 979 404 import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; 980 405 import EndpointsBase from './EndpointsBase.js'; 981 406 export default class PlaylistsEndpoints extends EndpointsBase { 982 - - getPlaylist<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise<Playlist<AdditionalTypes extends undefined ? Track : TrackItem>>; 983 - - getPlaylistItems<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise<Page<PlaylistedTrack<AdditionalTypes extends undefined ? Track : TrackItem>>>; 984 - + getPlaylist<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise<Playlist<AdditionalTypes extends undefined ? Track : TrackItem> | null>; 985 - + getPlaylistItems<AdditionalTypes extends QueryAdditionalTypes | undefined = undefined>(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise<Page<PlaylistedTrack<AdditionalTypes extends undefined ? Track : TrackItem>> | null>; 986 - changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise<void>; 987 - - movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise<SnapshotReference>; 988 - - updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise<SnapshotReference>; 989 - + movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise<SnapshotReference | null>; 990 - + updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise<SnapshotReference | null>; 991 - addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise<void>; 992 - removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise<void>; 993 - - getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise<Page<Playlist<TrackItem>>>; 994 - - createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise<Playlist<TrackItem>>; 995 - - getPlaylistCoverImage(playlist_id: string): Promise<Image[]>; 996 - + getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise<Page<Playlist<TrackItem>> | null>; 997 - + createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise<Playlist<TrackItem> | null>; 998 - + getPlaylistCoverImage(playlist_id: string): Promise<Image[] | null>; 999 - addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise<void>; 1000 - addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise<void>; 1001 - } 1002 407 diff --git a/dist/mjs/endpoints/PlaylistsEndpoints.js.map b/dist/mjs/endpoints/PlaylistsEndpoints.js.map 1003 408 index 0482d4fe4c4294e273f728a2e5b046420f303a5a..7d15483da9c877cd43a2e33cec89be974d34b55b 100644 1004 409 --- a/dist/mjs/endpoints/PlaylistsEndpoints.js.map ··· 1008 413 \ No newline at end of file 1009 414 +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":"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"} 1010 415 \ No newline at end of file 1011 - diff --git a/dist/mjs/endpoints/RecommendationsEndpoints.d.ts b/dist/mjs/endpoints/RecommendationsEndpoints.d.ts 1012 - index ddd71517d997daee270a15e60782d6bd29fa3a6a..cf864f5fa1f48da6fc836df78a3a19e70eece0c5 100644 1013 - --- a/dist/mjs/endpoints/RecommendationsEndpoints.d.ts 1014 - +++ b/dist/mjs/endpoints/RecommendationsEndpoints.d.ts 1015 - @@ -1,8 +1,8 @@ 1016 - import type { Genres, Track } from '../types.js'; 1017 - import EndpointsBase from './EndpointsBase.js'; 1018 - export default class RecommendationsEndpoints extends EndpointsBase { 1019 - - get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise<RecommendationsResponse>; 1020 - - genreSeeds(): Promise<Genres>; 1021 - + get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise<RecommendationsResponse | null>; 1022 - + genreSeeds(): Promise<Genres | null>; 1023 - } 1024 - export interface RecommendationsRequestRequiredArguments { 1025 - seed_artists?: string[]; 1026 - diff --git a/dist/mjs/endpoints/SearchEndpoints.d.ts b/dist/mjs/endpoints/SearchEndpoints.d.ts 1027 - index 71fcb99808b86ed766d459b11d09a2ad5080408d..6656f5bc3f1c94612ed548b96693692c7859cdf0 100644 1028 - --- a/dist/mjs/endpoints/SearchEndpoints.d.ts 1029 - +++ b/dist/mjs/endpoints/SearchEndpoints.d.ts 1030 - @@ -1,8 +1,8 @@ 1031 - import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; 1032 - import EndpointsBase from './EndpointsBase.js'; 1033 - export interface SearchExecutionFunction { 1034 - - <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T>>; 1035 - + <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T> | null>; 1036 - } 1037 - export default class SearchEndpoints extends EndpointsBase { 1038 - - execute<const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T>>; 1039 - + execute<const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T> | null>; 1040 - } 1041 - diff --git a/dist/mjs/endpoints/ShowsEndpoints.d.ts b/dist/mjs/endpoints/ShowsEndpoints.d.ts 1042 - index 41b64a4de6399faa92e28aec51b977cddd06d00b..4e6fe35b6161bf21820819775281600f74a23325 100644 1043 - --- a/dist/mjs/endpoints/ShowsEndpoints.d.ts 1044 - +++ b/dist/mjs/endpoints/ShowsEndpoints.d.ts 1045 - @@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; 1046 - export default class ShowsEndpoints extends EndpointsBase { 1047 - get(id: string, market: Market): Promise<Show>; 1048 - get(ids: string[], market: Market): Promise<Show[]>; 1049 - - episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedEpisode>>; 1050 - + episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise<Page<SimplifiedEpisode> | null>; 1051 - } 1052 - diff --git a/dist/mjs/endpoints/ShowsEndpoints.js b/dist/mjs/endpoints/ShowsEndpoints.js 1053 - index d19128c3c9ba72d5a968bb19d9e5b9d4863194e3..88e6701f007445bcc75c233490adf6d0a27a18db 100644 1054 - --- a/dist/mjs/endpoints/ShowsEndpoints.js 1055 - +++ b/dist/mjs/endpoints/ShowsEndpoints.js 1056 - @@ -8,6 +8,8 @@ export default class ShowsEndpoints extends EndpointsBase { 1057 - // TODO: only returns 50, validate here 1058 - const params = this.paramsFor({ ids: idOrIds, market }); 1059 - const response = await this.getRequest(`shows${params}`); 1060 - + if (!response) 1061 - + return response; 1062 - return response.shows; 1063 - } 1064 - episodes(id, market, limit, offset) { 1065 416 diff --git a/dist/mjs/endpoints/ShowsEndpoints.js.map b/dist/mjs/endpoints/ShowsEndpoints.js.map 1066 - index 3f1eb890cfd275ad7bb8439691256c8b9b6a7971..5e87e6f5390575a5d65f6b3fc430c087ffba03e1 100644 417 + index 3f1eb890cfd275ad7bb8439691256c8b9b6a7971..6e1fbe7ad3e743c9461aec546320d427df1f8ac8 100644 1067 418 --- a/dist/mjs/endpoints/ShowsEndpoints.js.map 1068 419 +++ b/dist/mjs/endpoints/ShowsEndpoints.js.map 1069 420 @@ -1 +1 @@ 1070 421 -{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ"} 1071 422 \ No newline at end of file 1072 - +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ"} 423 + +{"version":3,"file":"ShowsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/ShowsEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa;IAI9C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAc;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,CAAO,SAAS,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;QAChE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,EAAU,EAAE,MAAe,EAAE,KAAkB,EAAE,MAAe;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAA0B,SAAS,EAAE,YAAY,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;CACJ"} 1073 424 \ No newline at end of file 1074 - diff --git a/dist/mjs/endpoints/TracksEndpoints.d.ts b/dist/mjs/endpoints/TracksEndpoints.d.ts 1075 - index 5a2811cbe7365ec4e81823f69046dea8141941de..7a8109f3f656be9ed76e4f781e83343c85a907d7 100644 1076 - --- a/dist/mjs/endpoints/TracksEndpoints.d.ts 1077 - +++ b/dist/mjs/endpoints/TracksEndpoints.d.ts 1078 - @@ -5,5 +5,5 @@ export default class TracksEndpoints extends EndpointsBase { 1079 - get(ids: string[], market?: Market): Promise<Track[]>; 1080 - audioFeatures(id: string): Promise<AudioFeatures>; 1081 - audioFeatures(ids: string[]): Promise<AudioFeatures[]>; 1082 - - audioAnalysis(id: string): Promise<AudioAnalysis>; 1083 - + audioAnalysis(id: string): Promise<AudioAnalysis | null>; 1084 - } 1085 - diff --git a/dist/mjs/endpoints/TracksEndpoints.js b/dist/mjs/endpoints/TracksEndpoints.js 1086 - index 203d45d432745ef347824e4b03a7b6fcfd5743e1..29eff54383e6ce4a7ce5b5b7293d4566f91ffc0e 100644 1087 - --- a/dist/mjs/endpoints/TracksEndpoints.js 1088 - +++ b/dist/mjs/endpoints/TracksEndpoints.js 1089 - @@ -8,6 +8,8 @@ export default class TracksEndpoints extends EndpointsBase { 1090 - const params = this.paramsFor({ ids: idOrIds, market }); 1091 - // TODO: only returns top 20, validate here 1092 - const response = await this.getRequest(`tracks${params}`); 1093 - + if (!response) 1094 - + return response; 1095 - return response.tracks; 1096 - } 1097 - async audioFeatures(idOrIds) { 1098 - @@ -16,6 +18,8 @@ export default class TracksEndpoints extends EndpointsBase { 1099 - } 1100 - const params = this.paramsFor({ ids: idOrIds }); 1101 - const response = await this.getRequest(`audio-features${params}`); 1102 - + if (!response) 1103 - + return response; 1104 - return response.audio_features; 1105 - } 1106 - audioAnalysis(id) { 1107 425 diff --git a/dist/mjs/endpoints/TracksEndpoints.js.map b/dist/mjs/endpoints/TracksEndpoints.js.map 1108 - index 979607aae926efc41a44f301b96ff9419a4b3b65..bf8fa7c3ca4506d867e073438df2fbd668b627c0 100644 426 + index 979607aae926efc41a44f301b96ff9419a4b3b65..c84a80853f5e023d29ad53a0b4449e137f9b9841 100644 1109 427 --- a/dist/mjs/endpoints/TracksEndpoints.js.map 1110 428 +++ b/dist/mjs/endpoints/TracksEndpoints.js.map 1111 429 @@ -1 +1 @@ 1112 430 -{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ"} 1113 431 \ No newline at end of file 1114 - +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ"} 432 + +{"version":3,"file":"TracksEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/TracksEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,aAAa;IAI/C,KAAK,CAAC,GAAG,CAAC,OAA0B,EAAE,MAAe;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,UAAU,CAAQ,UAAU,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,SAAS,MAAM,EAAE,CAAC,CAAC;QAClE,OAAO,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,aAAa,CAAC,OAA0B;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAA0B,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,QAAQ,CAAC,cAAc,CAAC;IACnC,CAAC;IAEM,aAAa,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;CAEJ"} 433 + \ No newline at end of file 434 + diff --git a/dist/mjs/index.d.ts b/dist/mjs/index.d.ts 435 + index fbf77964cdd33a0bac5c37ad35e2b1af18d95cd4..44ddaef876d324384ab51d28b5a83300d3be84e7 100644 436 + --- a/dist/mjs/index.d.ts 437 + +++ b/dist/mjs/index.d.ts 438 + @@ -12,7 +12,8 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR 439 + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; 440 + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; 441 + import { Scopes } from "./Scopes.js"; 442 + +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; 443 + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; 444 + -export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; 445 + +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; 446 + export type * from "./types.js"; 447 + -export type { IAuthStrategy, ICacheStore, }; 448 + +export type { IAuthStrategy, ICacheStore }; 449 + diff --git a/dist/mjs/index.js b/dist/mjs/index.js 450 + index b850ca13517ccfc7df23ea9655f26075c9d06e92..88008269940e3448565381716765aad8e8102e41 100644 451 + --- a/dist/mjs/index.js 452 + +++ b/dist/mjs/index.js 453 + @@ -10,6 +10,7 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR 454 + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; 455 + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; 456 + import { Scopes } from "./Scopes.js"; 457 + +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; 458 + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; 459 + -export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; 460 + +export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; 461 + //# sourceMappingURL=index.js.map 462 + \ No newline at end of file 463 + diff --git a/dist/mjs/index.js.map b/dist/mjs/index.js.map 464 + index 5713a86abb96eea14b688db85121fea9a0154532..f10ec14395391f8f9fb580f526620088f9eeffd6 100644 465 + --- a/dist/mjs/index.js.map 466 + +++ b/dist/mjs/index.js.map 467 + @@ -1 +1 @@ 468 + -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,iCAAiC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAE5E,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAEnF,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,0BAA0B,MAAM,+CAA+C,CAAC;AACvF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,mCAAmC,MAAM,sDAAsD,CAAC;AACvG,OAAO,wBAAwB,MAAM,kDAAkD,CAAC;AACxF,OAAO,2BAA2B,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACH,UAAU,EACV,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,mCAAmC,EACnC,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,EACN,gBAAgB,EACnB,CAAA"} 469 + \ No newline at end of file 470 + +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,iCAAiC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAE5E,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAEnF,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,0BAA0B,MAAM,+CAA+C,CAAC;AACvF,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,mCAAmC,MAAM,sDAAsD,CAAC;AACvG,OAAO,wBAAwB,MAAM,kDAAkD,CAAC;AACxF,OAAO,2BAA2B,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,2BAA2B,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,UAAU,EACV,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,mCAAmC,EACnC,wBAAwB,EACxB,2BAA2B,EAC3B,MAAM,EACN,2BAA2B,EAC3B,gBAAgB,GACjB,CAAC"} 1115 471 \ No newline at end of file 1116 - diff --git a/dist/mjs/endpoints/UsersEndpoints.d.ts b/dist/mjs/endpoints/UsersEndpoints.d.ts 1117 - index 613633e0d2cf885fbc0aca7a67855b67dbcc465e..172bf9cf6f6d69e2fad97b578ef487d28e34f90f 100644 1118 - --- a/dist/mjs/endpoints/UsersEndpoints.d.ts 1119 - +++ b/dist/mjs/endpoints/UsersEndpoints.d.ts 1120 - @@ -1,5 +1,5 @@ 1121 - import type { User } from '../types.js'; 1122 - import EndpointsBase from './EndpointsBase.js'; 1123 - export default class UsersEndpoints extends EndpointsBase { 1124 - - profile(userId: string): Promise<User>; 1125 - + profile(userId: string): Promise<User | null>; 1126 - } 1127 472 diff --git a/dist/mjs/responsevalidation/DefaultResponseValidator.js.map b/dist/mjs/responsevalidation/DefaultResponseValidator.js.map 1128 473 index 02df457d0327575055c3c1b8ff28eb7ddad93532..9a36ddcdd58aeb0753350e88204064e4f7e5f009 100644 1129 474 --- a/dist/mjs/responsevalidation/DefaultResponseValidator.js.map ··· 1142 487 \ No newline at end of file 1143 488 +{"version":3,"file":"DefaultResponseDeserializer.js","sourceRoot":"","sources":["../../../src/serialization/DefaultResponseDeserializer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,2BAA2B;IACrC,KAAK,CAAC,WAAW,CAAc,QAAkB;QACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAmB,CAAC;QAC/B,CAAC;QAED,OAAO,IAAmB,CAAC;IAC/B,CAAC;CACJ"} 1144 489 \ No newline at end of file 1145 - diff --git a/src/SpotifyApi.ts b/src/SpotifyApi.ts 1146 - index cc3438644134cdf4ce25456be665def9f0e4bff7..6cb80d473be9ebb70d8eb641a962545e54f27bf4 100644 1147 - --- a/src/SpotifyApi.ts 1148 - +++ b/src/SpotifyApi.ts 1149 - @@ -74,7 +74,7 @@ export class SpotifyApi { 1150 - this.authenticationStrategy.setConfiguration(this.sdkConfig); 1151 - } 490 + diff --git a/src/index.ts b/src/index.ts 491 + index c930787038206b886c1769a30324c1863f36ad4c..7697be275db7b9f690ea2ac5675358181c944321 100644 492 + --- a/src/index.ts 493 + +++ b/src/index.ts 494 + @@ -12,27 +12,26 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR 495 + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; 496 + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; 497 + import { Scopes } from "./Scopes.js"; 498 + +import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; 499 + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; 1152 500 1153 - - public async makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body: any = undefined, contentType: string | undefined = undefined): Promise<TReturnType> { 1154 - + public async makeRequest<TReturnType>(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body: any = undefined, contentType: string | undefined = undefined): Promise<TReturnType | null> { 1155 - try { 1156 - const accessToken = await this.authenticationStrategy.getOrCreateAccessToken(); 1157 - if (isEmptyAccessToken(accessToken)) { 1158 - diff --git a/src/endpoints/AlbumsEndpoints.ts b/src/endpoints/AlbumsEndpoints.ts 1159 - index 79311e52dabcb0318bd09600d1bd3de0e70525b0..f5d300eb6aae9d0eb86cfc0e8b18e484a1997b7e 100644 1160 - --- a/src/endpoints/AlbumsEndpoints.ts 1161 - +++ b/src/endpoints/AlbumsEndpoints.ts 1162 - @@ -15,6 +15,7 @@ export default class AlbumsEndpoints extends EndpointsBase { 1163 - const params = this.paramsFor({ ids: idOrIds, market }); 1164 - // TODO: only returns top 20, validate here 1165 - const response = await this.getRequest<Albums>(`albums${params}`); 1166 - + if (!response) return response; 1167 - return response.albums; 1168 - } 1169 - 1170 - diff --git a/src/endpoints/ArtistsEndpoints.ts b/src/endpoints/ArtistsEndpoints.ts 1171 - index f1e95ca5ae7bfe7afad48de0efc998fc96abe312..d7cbe4b02baeae866268da2dc0346327a6f3dd0f 100644 1172 - --- a/src/endpoints/ArtistsEndpoints.ts 1173 - +++ b/src/endpoints/ArtistsEndpoints.ts 1174 - @@ -21,6 +21,7 @@ export default class ArtistsEndpoints extends EndpointsBase { 1175 - 1176 - const params = this.paramsFor({ ids: idOrIds }); 1177 - const response = await this.getRequest<Artists>(`artists${params}`); 1178 - + if (!response) return response; 1179 - return response.artists; 1180 - } 1181 - 1182 - diff --git a/src/endpoints/AudiobooksEndpoints.ts b/src/endpoints/AudiobooksEndpoints.ts 1183 - index ceaa6465119e98c624f777308f90ea1a1e1bc5b5..6620b7e18394f79fb30c28bb6b53b8ed5e4e5220 100644 1184 - --- a/src/endpoints/AudiobooksEndpoints.ts 1185 - +++ b/src/endpoints/AudiobooksEndpoints.ts 1186 - @@ -12,6 +12,7 @@ export default class AudiobooksEndpoints extends EndpointsBase { 1187 - 1188 - const params = this.paramsFor({ ids: idOrIds, market }); 1189 - const response = await this.getRequest<Audiobooks>(`audiobooks${params}`); 1190 - + if (!response) return response; 1191 - return response.audiobooks; 1192 - } 1193 - 1194 - diff --git a/src/endpoints/ChaptersEndpoints.ts b/src/endpoints/ChaptersEndpoints.ts 1195 - index 80afd92cfc9ed41e74b8fe5e8b31aa9c5c17f8c4..4989c6c70c7990f2c3e96b3c2e206c97bbbf396c 100644 1196 - --- a/src/endpoints/ChaptersEndpoints.ts 1197 - +++ b/src/endpoints/ChaptersEndpoints.ts 1198 - @@ -16,6 +16,7 @@ export default class ChaptersEndpoints extends EndpointsBase { 1199 - // TODO: Only returns top 50, validate / pre-check here 1200 - const params = this.paramsFor({ ids: idOrIds, market }); 1201 - const response = await this.getRequest<Chapters>(`chapters${params}`); 1202 - + if (!response) return response; 1203 - return response.chapters; 1204 - } 1205 - } 1206 - diff --git a/src/endpoints/EndpointsBase.ts b/src/endpoints/EndpointsBase.ts 1207 - index 588270c5581f8d4f617750c8486f77ed942a4ae8..8f1f38b971e23c6e250b1ad0c9d1ff1d9ae7cdbd 100644 1208 - --- a/src/endpoints/EndpointsBase.ts 1209 - +++ b/src/endpoints/EndpointsBase.ts 1210 - @@ -4,19 +4,19 @@ export default class EndpointsBase { 1211 - constructor(protected api: SpotifyApi) { 1212 - } 1213 - 1214 - - protected async getRequest<TReturnType>(url: string): Promise<TReturnType> { 1215 - + protected async getRequest<TReturnType>(url: string): Promise<TReturnType | null> { 1216 - return await this.api.makeRequest<TReturnType>("GET", url); 1217 - } 1218 - 1219 - - protected async postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType: string | undefined = undefined): Promise<TReturnType> { 1220 - + protected async postRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType: string | undefined = undefined): Promise<TReturnType | null> { 1221 - return await this.api.makeRequest<TReturnType>("POST", url, body, contentType); 1222 - } 1223 - 1224 - - protected async putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType: string | undefined = undefined): Promise<TReturnType> { 1225 - + protected async putRequest<TReturnType, TBody = unknown>(url: string, body?: TBody, contentType: string | undefined = undefined): Promise<TReturnType | null> { 1226 - return await this.api.makeRequest<TReturnType>("PUT", url, body, contentType); 1227 - } 501 + export { 502 + - SpotifyApi, 503 + - AuthorizationCodeWithPKCEStrategy, 504 + - ClientCredentialsStrategy, 505 + - InMemoryCachingStrategy, 506 + - LocalStorageCachingStrategy, 507 + - GenericCache, 508 + - ConsoleLoggingErrorHandler, 509 + - NoOpErrorHandler, 510 + - DocumentLocationRedirectionStrategy, 511 + - DefaultResponseValidator, 512 + - DefaultResponseDeserializer, 513 + - Scopes, 514 + - emptyAccessToken 515 + -} 516 + + SpotifyApi, 517 + + AuthorizationCodeWithPKCEStrategy, 518 + + ClientCredentialsStrategy, 519 + + InMemoryCachingStrategy, 520 + + LocalStorageCachingStrategy, 521 + + GenericCache, 522 + + ConsoleLoggingErrorHandler, 523 + + NoOpErrorHandler, 524 + + DocumentLocationRedirectionStrategy, 525 + + DefaultResponseValidator, 526 + + DefaultResponseDeserializer, 527 + + Scopes, 528 + + ProvidedAccessTokenStrategy, 529 + + emptyAccessToken, 530 + +}; 1228 531 1229 - - protected async deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType> { 1230 - + protected async deleteRequest<TReturnType, TBody = unknown>(url: string, body?: TBody): Promise<TReturnType | null> { 1231 - return await this.api.makeRequest<TReturnType>("DELETE", url, body); 1232 - } 1233 - 1234 - diff --git a/src/endpoints/EpisodesEndpoints.ts b/src/endpoints/EpisodesEndpoints.ts 1235 - index c002e872232ccad4056172d02a662c3168f3b180..b19df1797ef9ed84d6f6f89dd488c84b4cfb31ab 100644 1236 - --- a/src/endpoints/EpisodesEndpoints.ts 1237 - +++ b/src/endpoints/EpisodesEndpoints.ts 1238 - @@ -13,6 +13,7 @@ export default class EpisodesEndpoints extends EndpointsBase { 1239 - 1240 - const params = this.paramsFor({ ids: idOrIds, market }); 1241 - const response = await this.getRequest<Episodes>(`episodes${params}`); 1242 - + if (!response) return response; 1243 - return response.episodes; 1244 - } 1245 - } 1246 - diff --git a/src/endpoints/SearchEndpoints.ts b/src/endpoints/SearchEndpoints.ts 1247 - index c6d08d27dc979bef80652f1c389e3b8249a670b9..ba788ddd6ddd8809fdf83c040edc78a4fe91c1a9 100644 1248 - --- a/src/endpoints/SearchEndpoints.ts 1249 - +++ b/src/endpoints/SearchEndpoints.ts 1250 - @@ -2,7 +2,7 @@ import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; 1251 - import EndpointsBase from './EndpointsBase.js'; 532 + export type * from "./types.js"; 1252 533 1253 - export interface SearchExecutionFunction { 1254 - - <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T>>; 1255 - + <const T extends readonly ItemTypes[]>(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise<SearchResults<T> | null>; 1256 - } 1257 - 1258 - export default class SearchEndpoints extends EndpointsBase { 1259 - diff --git a/src/endpoints/ShowsEndpoints.ts b/src/endpoints/ShowsEndpoints.ts 1260 - index 664c3a6a82ffd75b0eadbac0092330ba0e19aed1..fd59f795d5b789416e4c25f890ee4b159a972c43 100644 1261 - --- a/src/endpoints/ShowsEndpoints.ts 1262 - +++ b/src/endpoints/ShowsEndpoints.ts 1263 - @@ -14,6 +14,7 @@ export default class ShowsEndpoints extends EndpointsBase { 1264 - // TODO: only returns 50, validate here 1265 - const params = this.paramsFor({ ids: idOrIds, market }); 1266 - const response = await this.getRequest<Shows>(`shows${params}`); 1267 - + if (!response) return response; 1268 - return response.shows; 1269 - } 1270 - 1271 - diff --git a/src/endpoints/TracksEndpoints.ts b/src/endpoints/TracksEndpoints.ts 1272 - index c8019773d46cb560c9554482279abd35706b003a..6fbe67410aeef98d38dea2ea3ead491f47391d1c 100644 1273 - --- a/src/endpoints/TracksEndpoints.ts 1274 - +++ b/src/endpoints/TracksEndpoints.ts 1275 - @@ -14,6 +14,7 @@ export default class TracksEndpoints extends EndpointsBase { 1276 - const params = this.paramsFor({ ids: idOrIds, market }); 1277 - // TODO: only returns top 20, validate here 1278 - const response = await this.getRequest<Tracks>(`tracks${params}`); 1279 - + if (!response) return response; 1280 - return response.tracks; 1281 - } 1282 - 1283 - @@ -25,6 +26,7 @@ export default class TracksEndpoints extends EndpointsBase { 1284 - } 1285 - const params = this.paramsFor({ ids: idOrIds }); 1286 - const response = await this.getRequest<AudioFeaturesCollection>(`audio-features${params}`); 1287 - + if (!response) return response; 1288 - return response.audio_features; 1289 - } 1290 - 534 + -export type { 535 + - IAuthStrategy, 536 + - ICacheStore, 537 + -} 538 + +export type { IAuthStrategy, ICacheStore };
+3 -3
pnpm-lock.yaml
··· 6 6 7 7 patchedDependencies: 8 8 '@spotify/web-api-ts-sdk': 9 - hash: ptw4jgazdhouuxg5ym53ts4jam 9 + hash: bnc3y2fwaac6u2mz36j2lkl57i 10 10 path: patches/@spotify__web-api-ts-sdk.patch 11 11 12 12 importers: ··· 18 18 version: 9.3.1(astro@5.12.6(@types/node@24.1.0)(rollup@4.46.2)(typescript@5.8.3)) 19 19 '@spotify/web-api-ts-sdk': 20 20 specifier: ^1.2.0 21 - version: 1.2.0(patch_hash=ptw4jgazdhouuxg5ym53ts4jam) 21 + version: 1.2.0(patch_hash=bnc3y2fwaac6u2mz36j2lkl57i) 22 22 astro: 23 23 specifier: ^5.12.6 24 24 version: 5.12.6(@types/node@24.1.0)(rollup@4.46.2)(typescript@5.8.3) ··· 1903 1903 1904 1904 '@shikijs/vscode-textmate@10.0.2': {} 1905 1905 1906 - '@spotify/web-api-ts-sdk@1.2.0(patch_hash=ptw4jgazdhouuxg5ym53ts4jam)': {} 1906 + '@spotify/web-api-ts-sdk@1.2.0(patch_hash=bnc3y2fwaac6u2mz36j2lkl57i)': {} 1907 1907 1908 1908 '@swc/helpers@0.5.17': 1909 1909 dependencies:
+57 -44
src/components/home/playing/spotify/index.ts
··· 3 3 */ 4 4 5 5 import { SpotifyApi, type AccessToken } from "@spotify/web-api-ts-sdk"; 6 + import { ProvidedAccessTokenStrategy } from "@spotify/web-api-ts-sdk"; 6 7 import { SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET } from "astro:env/server"; 7 8 8 9 import fs from "node:fs/promises"; 9 - import { isObj } from "/utils"; 10 + import { isObj, throws } from "/utils"; 10 11 11 12 /** 12 - * the refresh_token field is not checked as 13 + * the refresh_token field is not checked as it might not be returned from the api 13 14 */ 14 15 const isSpotifyAccessToken = (token: any): token is AccessToken => 15 16 isObj(token) && ··· 20 21 "expires_in" in token && 21 22 typeof token.expires_in === "number"; 22 23 24 + const reloadAccessToken = async (refresh_token: string) => 25 + fetch("https://accounts.spotify.com/api/token", { 26 + method: "post", 27 + headers: { 28 + "content-type": "application/x-www-form-urlencoded", 29 + Authorization: 30 + "Basic " + 31 + Buffer.from(SPOTIFY_CLIENT_ID + ":" + SPOTIFY_CLIENT_SECRET).toString( 32 + "base64", 33 + ), 34 + }, 35 + body: new URLSearchParams({ 36 + grant_type: "refresh_token", 37 + refresh_token: refresh_token, 38 + }).toString(), 39 + }) 40 + .then((res) => res.json()) 41 + .then((token) => 42 + isSpotifyAccessToken(token) 43 + ? { 44 + ...token, 45 + // if no refresh_token is provided then insert it 46 + ...(token.refresh_token ? {} : { refresh_token: refresh_token }), 47 + } 48 + : console.error("Response was not a valid access token:", token), 49 + ) 50 + .catch((err) => console.error(err)) 51 + .then((token) => 52 + !!token 53 + ? token 54 + : throws( 55 + new Error( 56 + "Could not generate a new access token from the refresh token", 57 + ), 58 + ), 59 + ); 60 + 61 + /** MAIN LOGIC HERE */ 23 62 // try load last known refresh token from file 24 63 const refreshToken = await fs 25 64 .readFile("./.refreshToken", { encoding: "utf-8" }) ··· 30 69 // if refreshToken is undefined then we dont have a valid one saved, and can request the user obtain one 31 70 // (this could be corruption, failed save, or missing file) 32 71 if (!refreshToken) 33 - throw new Error( 34 - "No access token is stored in `./.refreshToken`. Please generate one using the `/callback` endpoint in a dev server.", 35 - ); 72 + throw "No access token is stored in `./.refreshToken`. Please generate one using the `/callback` endpoint in a dev server."; 36 73 37 - const accessToken = await fetch("https://accounts.spotify.com/api/token", { 38 - method: "post", 39 - 40 - headers: { 41 - "content-type": "application/x-www-form-urlencoded", 42 - Authorization: 43 - "Basic " + 44 - Buffer.from(SPOTIFY_CLIENT_ID + ":" + SPOTIFY_CLIENT_SECRET).toString( 45 - "base64", 46 - ), 47 - }, 48 - 49 - body: new URLSearchParams({ 50 - grant_type: "refresh_token", 51 - refresh_token: refreshToken, 52 - }).toString(), 53 - }) 54 - .then((res) => res.json()) 55 - .then((token) => 56 - isSpotifyAccessToken(token) 57 - ? { 58 - ...token, 59 - // if no refresh_token is provided then insert it 60 - ...(token.refresh_token ? {} : { refresh_token: refreshToken }), 61 - } 62 - : console.error("Response was not a valid access token:", token), 63 - ) 64 - .catch((err) => console.error(err)); 74 + const accessToken = await reloadAccessToken(refreshToken); 65 75 66 76 if (!accessToken) 67 - throw new Error( 68 - "Could not generate a new access token from the refresh token", 69 - ); 77 + throw "Could not generate a new access token from the refresh token"; 70 78 71 - export const sdk = SpotifyApi.withAccessToken(SPOTIFY_CLIENT_ID, accessToken, { 72 - async afterRequest() { 73 - const token = await sdk.getAccessToken(); 74 - if (!token) return; 75 - fs.writeFile("./.refreshToken", token.refresh_token, { 76 - encoding: "utf-8", 77 - }); 79 + export const sdk = new SpotifyApi( 80 + new ProvidedAccessTokenStrategy(SPOTIFY_CLIENT_ID, accessToken, (_, token) => 81 + reloadAccessToken(token.refresh_token), 82 + ), 83 + { 84 + async afterRequest() { 85 + const token = await sdk.getAccessToken(); 86 + if (!token) return; 87 + fs.writeFile("./.refreshToken", token.refresh_token, { 88 + encoding: "utf-8", 89 + }); 90 + }, 78 91 }, 79 - }); 92 + );