diff --git a/patches/@spotify__web-api-ts-sdk.patch b/patches/@spotify__web-api-ts-sdk.patch index 57678df..ea65789 100644 --- a/patches/@spotify__web-api-ts-sdk.patch +++ b/patches/@spotify__web-api-ts-sdk.patch @@ -1,16 +1,3 @@ -diff --git a/dist/cjs/SpotifyApi.d.ts b/dist/cjs/SpotifyApi.d.ts -index cf5eff3cb728065892287539b2a85e2fe16b283b..fe3c2a037f4e47e6c748753a5661261552cfcc1b 100644 ---- a/dist/cjs/SpotifyApi.d.ts -+++ b/dist/cjs/SpotifyApi.d.ts -@@ -35,7 +35,7 @@ export declare class SpotifyApi { - search: SearchExecutionFunction; - currentUser: CurrentUserEndpoints; - constructor(authentication: IAuthStrategy, config?: SdkOptions); -- makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; -+ makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; - private initializeSdk; - switchAuthenticationStrategy(authentication: IAuthStrategy): void; - /** diff --git a/dist/cjs/SpotifyApi.js.map b/dist/cjs/SpotifyApi.js.map index 2d356d41a56db1b8984445364ad2a94c05632cfa..195edd6643860eb7cc5da74c080cfaef47c9a323 100644 --- a/dist/cjs/SpotifyApi.js.map @@ -109,236 +96,42 @@ index f85f2a00cbfcda194c6b540c3dee8d225b32843d..ccf13b41dc77052585ccbda7bc7ce85c \ No newline at end of file +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/AlbumsEndpoints.d.ts b/dist/cjs/endpoints/AlbumsEndpoints.d.ts -index 18274fea2c934cd17f8ca87d551477cf8bda5291..bed7d9e02f1e65693b5f6772e78463a52ef442a8 100644 ---- a/dist/cjs/endpoints/AlbumsEndpoints.d.ts -+++ b/dist/cjs/endpoints/AlbumsEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class AlbumsEndpoints extends EndpointsBase { - get(id: string, market?: Market): Promise; - get(ids: string[], market?: Market): Promise; -- tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/cjs/endpoints/AlbumsEndpoints.js b/dist/cjs/endpoints/AlbumsEndpoints.js -index 558f566069a7756bd8506298655a3d04dc9d0727..2eb39da32149091646eed89e3461f64aff27297e 100644 ---- a/dist/cjs/endpoints/AlbumsEndpoints.js -+++ b/dist/cjs/endpoints/AlbumsEndpoints.js -@@ -14,6 +14,8 @@ class AlbumsEndpoints extends EndpointsBase_js_1.default { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`albums${params}`); -+ if (!response) -+ return response; - return response.albums; - } - tracks(albumId, market, limit, offset) { diff --git a/dist/cjs/endpoints/AlbumsEndpoints.js.map b/dist/cjs/endpoints/AlbumsEndpoints.js.map -index 13c3a0d24c5ffef9729936189d90d7639729896d..fc40487a6c97f94a0480f25290934be5d4dcbbe8 100644 +index 13c3a0d24c5ffef9729936189d90d7639729896d..298227fb7a1617bbaaeacb240b74e1ea57948799 100644 --- a/dist/cjs/endpoints/AlbumsEndpoints.js.map +++ b/dist/cjs/endpoints/AlbumsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/cjs/endpoints/ArtistsEndpoints.d.ts b/dist/cjs/endpoints/ArtistsEndpoints.d.ts -index 4b5237b7acbc95486893d7384fb6adcdf71ee74a..8bdba8fcbc5a9c45deb1a49580764c7cbbd1cd7b 100644 ---- a/dist/cjs/endpoints/ArtistsEndpoints.d.ts -+++ b/dist/cjs/endpoints/ArtistsEndpoints.d.ts -@@ -3,7 +3,7 @@ import EndpointsBase from "./EndpointsBase.js"; - export default class ArtistsEndpoints extends EndpointsBase { - get(id: string): Promise; - get(ids: string[]): Promise; -- albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -- topTracks(id: string, market: Market): Promise; -- relatedArtists(id: string): Promise; -+ albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; -+ topTracks(id: string, market: Market): Promise; -+ relatedArtists(id: string): Promise; - } -diff --git a/dist/cjs/endpoints/ArtistsEndpoints.js b/dist/cjs/endpoints/ArtistsEndpoints.js -index 6c6eee4d65b70db5df80865431c035ab10d60262..09a222ee0b5a3a0b93396008bb72a2ba69728c28 100644 ---- a/dist/cjs/endpoints/ArtistsEndpoints.js -+++ b/dist/cjs/endpoints/ArtistsEndpoints.js -@@ -12,6 +12,8 @@ class ArtistsEndpoints extends EndpointsBase_js_1.default { - } - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`artists${params}`); -+ if (!response) -+ return response; - return response.artists; - } - albums(id, includeGroups, market, limit, offset) { ++{"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"} +\ No newline at end of file diff --git a/dist/cjs/endpoints/ArtistsEndpoints.js.map b/dist/cjs/endpoints/ArtistsEndpoints.js.map -index 8bf5c0c2e5bfbeabc81b764bc66814010a7e828b..b7d33f131af79fb432943e5f78b69afbafff1f9b 100644 +index 8bf5c0c2e5bfbeabc81b764bc66814010a7e828b..3ef89674d83081ce15e1a24a3a80fb7cff9071f9 100644 --- a/dist/cjs/endpoints/ArtistsEndpoints.js.map +++ b/dist/cjs/endpoints/ArtistsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.d.ts b/dist/cjs/endpoints/AudiobooksEndpoints.d.ts -index cfe18b338a678454c67cba7086ef4b292e0ab54a..33f2577aa2b4050e49f22b3bdca75b8ba1993fdd 100644 ---- a/dist/cjs/endpoints/AudiobooksEndpoints.d.ts -+++ b/dist/cjs/endpoints/AudiobooksEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class AudiobooksEndpoints extends EndpointsBase { - get(id: string, market?: Market): Promise; - get(ids: string[], market?: Market): Promise; -- getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.js b/dist/cjs/endpoints/AudiobooksEndpoints.js -index 5cd33ac00e938d5af436107bbf0dfb055d1f87c0..e227dda6bb5c8720b801245827fe768e4ad54693 100644 ---- a/dist/cjs/endpoints/AudiobooksEndpoints.js -+++ b/dist/cjs/endpoints/AudiobooksEndpoints.js -@@ -12,6 +12,8 @@ class AudiobooksEndpoints extends EndpointsBase_js_1.default { - } - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`audiobooks${params}`); -+ if (!response) -+ return response; - return response.audiobooks; - } - getAudiobookChapters(id, market, limit, offset) { ++{"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"} +\ No newline at end of file diff --git a/dist/cjs/endpoints/AudiobooksEndpoints.js.map b/dist/cjs/endpoints/AudiobooksEndpoints.js.map -index 4f5a448ad51548883d3eb68a057aa825e766e146..7fa408648e38a4091db7288d18d9b4893e47fe98 100644 +index 4f5a448ad51548883d3eb68a057aa825e766e146..d87a7c24f3292e3d4728d9398d70222b524ac2c6 100644 --- a/dist/cjs/endpoints/AudiobooksEndpoints.js.map +++ b/dist/cjs/endpoints/AudiobooksEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/BrowseEndpoints.d.ts b/dist/cjs/endpoints/BrowseEndpoints.d.ts -index 7f998995a6b7cdb8c31dcfc9d0284826cf9b8a90..87b59ecd24941b849bd43e472ab8421cbba0e0d3 100644 ---- a/dist/cjs/endpoints/BrowseEndpoints.d.ts -+++ b/dist/cjs/endpoints/BrowseEndpoints.d.ts -@@ -1,9 +1,9 @@ - import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class BrowseEndpoints extends EndpointsBase { -- getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; -- getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; -+ getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; -+ getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; - } -diff --git a/dist/cjs/endpoints/ChaptersEndpoints.js b/dist/cjs/endpoints/ChaptersEndpoints.js -index f3ac2c65fb099887371999b1b018b54e8a6ef532..6b6dbc9ccba2f74c2b611ecab82d5f0764b7bd77 100644 ---- a/dist/cjs/endpoints/ChaptersEndpoints.js -+++ b/dist/cjs/endpoints/ChaptersEndpoints.js -@@ -13,6 +13,8 @@ class ChaptersEndpoints extends EndpointsBase_js_1.default { - // TODO: Only returns top 50, validate / pre-check here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`chapters${params}`); -+ if (!response) -+ return response; - return response.chapters; - } - } diff --git a/dist/cjs/endpoints/ChaptersEndpoints.js.map b/dist/cjs/endpoints/ChaptersEndpoints.js.map -index b47dff3998031c839fc89777937b00373ad8bd4e..2b2588de79ed0f2cbb141428dac235e9517550de 100644 +index b47dff3998031c839fc89777937b00373ad8bd4e..a78b064098b825d65f1272420f388fcbbc79ff8f 100644 --- a/dist/cjs/endpoints/ChaptersEndpoints.js.map +++ b/dist/cjs/endpoints/ChaptersEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/cjs/endpoints/CurrentUserEndpoints.d.ts b/dist/cjs/endpoints/CurrentUserEndpoints.d.ts -index ef1c96f9bb072d17d9ce2aecfd3ac918c0f268f9..20d31d09d22308a87cb0be7072c2a40937b58206 100644 ---- a/dist/cjs/endpoints/CurrentUserEndpoints.d.ts -+++ b/dist/cjs/endpoints/CurrentUserEndpoints.d.ts -@@ -9,47 +9,47 @@ export default class CurrentUserEndpoints extends EndpointsBase { - shows: CurrentUserShowsEndpoints; - tracks: CurrentUserTracksEndpoints; - constructor(api: SpotifyApi); -- profile(): Promise; -- topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise>; -- followedArtists(after?: string, limit?: MaxInt<50>): Promise; -+ profile(): Promise; -+ topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise | null>; -+ followedArtists(after?: string, limit?: MaxInt<50>): Promise; - followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; - unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; -- followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; -+ followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; - } - declare class CurrentUserAlbumsEndpoints extends EndpointsBase { -- savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; -+ savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise | null>; - saveAlbums(ids: string[]): Promise; - removeSavedAlbums(ids: string[]): Promise; -- hasSavedAlbums(ids: string[]): Promise; -+ hasSavedAlbums(ids: string[]): Promise; - } - declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { -- savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise>; -+ savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise | null>; - saveAudiobooks(ids: string[]): Promise; - removeSavedAudiobooks(ids: string[]): Promise; -- hasSavedAudiobooks(ids: string[]): Promise; -+ hasSavedAudiobooks(ids: string[]): Promise; - } - declare class CurrentUserEpisodesEndpoints extends EndpointsBase { -- savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - saveEpisodes(ids: string[]): Promise; - removeSavedEpisodes(ids: string[]): Promise; -- hasSavedEpisodes(ids: string[]): Promise; -+ hasSavedEpisodes(ids: string[]): Promise; - } - declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { -- playlists(limit?: MaxInt<50>, offset?: number): Promise>; -+ playlists(limit?: MaxInt<50>, offset?: number): Promise | null>; - follow(playlist_id: string): Promise; - unfollow(playlist_id: string): Promise; -- isFollowing(playlistId: string, ids: string[]): Promise; -+ isFollowing(playlistId: string, ids: string[]): Promise; - } - declare class CurrentUserShowsEndpoints extends EndpointsBase { -- savedShows(limit?: MaxInt<50>, offset?: number): Promise>; -+ savedShows(limit?: MaxInt<50>, offset?: number): Promise | null>; - saveShows(ids: string[]): Promise; - removeSavedShows(ids: string[], market?: Market): Promise; -- hasSavedShow(ids: string[]): Promise; -+ hasSavedShow(ids: string[]): Promise; - } - declare class CurrentUserTracksEndpoints extends EndpointsBase { -- savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; -+ savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise | null>; - saveTracks(ids: string[]): Promise; - removeSavedTracks(ids: string[]): Promise; -- hasSavedTracks(ids: string[]): Promise; -+ hasSavedTracks(ids: string[]): Promise; - } - export {}; -diff --git a/dist/cjs/endpoints/EndpointsBase.d.ts b/dist/cjs/endpoints/EndpointsBase.d.ts -index c91dff76bfa4664d7a9976f84c98a8e65b08cb70..62e63dac60f91346fae2b6dc121e309df52ba3f3 100644 ---- a/dist/cjs/endpoints/EndpointsBase.d.ts -+++ b/dist/cjs/endpoints/EndpointsBase.d.ts -@@ -2,9 +2,9 @@ import { SpotifyApi } from "../SpotifyApi.js"; - export default class EndpointsBase { - protected api: SpotifyApi; - constructor(api: SpotifyApi); -- protected getRequest(url: string): Promise; -- protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -- protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -- protected deleteRequest(url: string, body?: TBody): Promise; -+ protected getRequest(url: string): Promise; -+ protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -+ protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -+ protected deleteRequest(url: string, body?: TBody): Promise; - protected paramsFor(args: any): string; - } ++{"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"} +\ No newline at end of file diff --git a/dist/cjs/endpoints/EndpointsBase.js.map b/dist/cjs/endpoints/EndpointsBase.js.map index f0473508d6cc503ca83c96ded895d202b48977b3..1b8c6d680673f2fedda300ebe82ccdbe7111b782 100644 --- a/dist/cjs/endpoints/EndpointsBase.js.map @@ -348,60 +141,15 @@ index f0473508d6cc503ca83c96ded895d202b48977b3..1b8c6d680673f2fedda300ebe82ccdbe \ No newline at end of file +{"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/EpisodesEndpoints.js b/dist/cjs/endpoints/EpisodesEndpoints.js -index aa809afbe2f5e30bab4622b94c978700341651d8..58960a963d789cb7320bcee8517f8128762e85ad 100644 ---- a/dist/cjs/endpoints/EpisodesEndpoints.js -+++ b/dist/cjs/endpoints/EpisodesEndpoints.js -@@ -12,6 +12,8 @@ class EpisodesEndpoints extends EndpointsBase_js_1.default { - } - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`episodes${params}`); -+ if (!response) -+ return response; - return response.episodes; - } - } diff --git a/dist/cjs/endpoints/EpisodesEndpoints.js.map b/dist/cjs/endpoints/EpisodesEndpoints.js.map -index 017ea1fb67b3751fff77c143d67f57514bb5b996..c60f6af5f86147d8059412c3d89e4ba9beab762d 100644 +index 017ea1fb67b3751fff77c143d67f57514bb5b996..bc10678835b90f42d2a9be229570c95c3b8a56e5 100644 --- a/dist/cjs/endpoints/EpisodesEndpoints.js.map +++ b/dist/cjs/endpoints/EpisodesEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/MarketsEndpoints.d.ts b/dist/cjs/endpoints/MarketsEndpoints.d.ts -index 4ceb08e53ada5c140d6cba3267e8d60b35586827..cc046b287cf3a12a23cdec477d197319189b0c6b 100644 ---- a/dist/cjs/endpoints/MarketsEndpoints.d.ts -+++ b/dist/cjs/endpoints/MarketsEndpoints.d.ts -@@ -1,5 +1,5 @@ - import type { Markets } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class MarketsEndpoints extends EndpointsBase { -- getAvailableMarkets(): Promise; -+ getAvailableMarkets(): Promise; - } -diff --git a/dist/cjs/endpoints/PlayerEndpoints.d.ts b/dist/cjs/endpoints/PlayerEndpoints.d.ts -index 52792b8fb66f5a4e5056c674a175fb12d9b6c43b..2b6ec0f5e0199cd5d908e63fe6b410fce8c55315 100644 ---- a/dist/cjs/endpoints/PlayerEndpoints.d.ts -+++ b/dist/cjs/endpoints/PlayerEndpoints.d.ts -@@ -5,11 +5,11 @@ interface QueryRange { - type: "before" | "after"; - } - export default class PlayerEndpoints extends EndpointsBase { -- getPlaybackState(market?: Market, additional_types?: string): Promise; -- getAvailableDevices(): Promise; -- getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; -- getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; -- getUsersQueue(): Promise; -+ getPlaybackState(market?: Market, additional_types?: string): Promise; -+ getAvailableDevices(): Promise; -+ getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; -+ getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; -+ getUsersQueue(): Promise; - transferPlayback(device_ids: string[], play?: boolean): Promise; - startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise; - pausePlayback(device_id: string): Promise; diff --git a/dist/cjs/endpoints/PlayerEndpoints.js.map b/dist/cjs/endpoints/PlayerEndpoints.js.map index 94159b453d45d007e614ab4f0d81e8eafd4501f3..c862611b08e57318150f4218c0d74580b4a5473b 100644 --- a/dist/cjs/endpoints/PlayerEndpoints.js.map @@ -412,34 +160,14 @@ index 94159b453d45d007e614ab4f0d81e8eafd4501f3..c862611b08e57318150f4218c0d74580 +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/cjs/endpoints/PlaylistsEndpoints.d.ts b/dist/cjs/endpoints/PlaylistsEndpoints.d.ts -index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..1477d0769fae34f47b34a4d85c46e29337dac979 100644 +index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..8a439ea2f95f5bdbd5bec4cc9dde867e06d74ec2 100644 --- a/dist/cjs/endpoints/PlaylistsEndpoints.d.ts +++ b/dist/cjs/endpoints/PlaylistsEndpoints.d.ts -@@ -1,17 +1,16 @@ +@@ -1,4 +1,3 @@ -/// import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; import EndpointsBase from './EndpointsBase.js'; export default class PlaylistsEndpoints extends EndpointsBase { -- getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise>; -- getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise>>; -+ getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise | null>; -+ getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise> | null>; - changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise; -- movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; -- updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; -+ movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; -+ updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; - addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise; - removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise; -- getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise>>; -- createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise>; -- getPlaylistCoverImage(playlist_id: string): Promise; -+ getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise> | null>; -+ createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise | null>; -+ getPlaylistCoverImage(playlist_id: string): Promise; - addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise; - addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise; - } diff --git a/dist/cjs/endpoints/PlaylistsEndpoints.js.map b/dist/cjs/endpoints/PlaylistsEndpoints.js.map index 4bfe4e675a39d5043db26002aca95c1b321aed01..733e9743acf49400060efdb6d211e6871ef151c6 100644 --- a/dist/cjs/endpoints/PlaylistsEndpoints.js.map @@ -449,122 +177,71 @@ index 4bfe4e675a39d5043db26002aca95c1b321aed01..733e9743acf49400060efdb6d211e687 \ No newline at end of file +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/RecommendationsEndpoints.d.ts b/dist/cjs/endpoints/RecommendationsEndpoints.d.ts -index ddd71517d997daee270a15e60782d6bd29fa3a6a..cf864f5fa1f48da6fc836df78a3a19e70eece0c5 100644 ---- a/dist/cjs/endpoints/RecommendationsEndpoints.d.ts -+++ b/dist/cjs/endpoints/RecommendationsEndpoints.d.ts -@@ -1,8 +1,8 @@ - import type { Genres, Track } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class RecommendationsEndpoints extends EndpointsBase { -- get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; -- genreSeeds(): Promise; -+ get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; -+ genreSeeds(): Promise; - } - export interface RecommendationsRequestRequiredArguments { - seed_artists?: string[]; -diff --git a/dist/cjs/endpoints/SearchEndpoints.d.ts b/dist/cjs/endpoints/SearchEndpoints.d.ts -index 71fcb99808b86ed766d459b11d09a2ad5080408d..6656f5bc3f1c94612ed548b96693692c7859cdf0 100644 ---- a/dist/cjs/endpoints/SearchEndpoints.d.ts -+++ b/dist/cjs/endpoints/SearchEndpoints.d.ts -@@ -1,8 +1,8 @@ - import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export interface SearchExecutionFunction { -- (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; -+ (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise | null>; - } - export default class SearchEndpoints extends EndpointsBase { -- execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; -+ execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise | null>; - } -diff --git a/dist/cjs/endpoints/ShowsEndpoints.d.ts b/dist/cjs/endpoints/ShowsEndpoints.d.ts -index 41b64a4de6399faa92e28aec51b977cddd06d00b..4e6fe35b6161bf21820819775281600f74a23325 100644 ---- a/dist/cjs/endpoints/ShowsEndpoints.d.ts -+++ b/dist/cjs/endpoints/ShowsEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class ShowsEndpoints extends EndpointsBase { - get(id: string, market: Market): Promise; - get(ids: string[], market: Market): Promise; -- episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/cjs/endpoints/ShowsEndpoints.js b/dist/cjs/endpoints/ShowsEndpoints.js -index fe5565df19dc961e1a238e07847d230e3d4d27e6..4864a186e753748e85544e36da09f90d2c20e3b6 100644 ---- a/dist/cjs/endpoints/ShowsEndpoints.js -+++ b/dist/cjs/endpoints/ShowsEndpoints.js -@@ -13,6 +13,8 @@ class ShowsEndpoints extends EndpointsBase_js_1.default { - // TODO: only returns 50, validate here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`shows${params}`); -+ if (!response) -+ return response; - return response.shows; - } - episodes(id, market, limit, offset) { diff --git a/dist/cjs/endpoints/ShowsEndpoints.js.map b/dist/cjs/endpoints/ShowsEndpoints.js.map -index 4b4438eaaa344bbe5161c18ce31a25dd0a007e19..bc822b62ea5a1c3f4d733c89eb61f321bdfc849c 100644 +index 4b4438eaaa344bbe5161c18ce31a25dd0a007e19..1cc228ddceafcfb3551c3431b2401a99cdd2f747 100644 --- a/dist/cjs/endpoints/ShowsEndpoints.js.map +++ b/dist/cjs/endpoints/ShowsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/cjs/endpoints/TracksEndpoints.d.ts b/dist/cjs/endpoints/TracksEndpoints.d.ts -index 5a2811cbe7365ec4e81823f69046dea8141941de..7a8109f3f656be9ed76e4f781e83343c85a907d7 100644 ---- a/dist/cjs/endpoints/TracksEndpoints.d.ts -+++ b/dist/cjs/endpoints/TracksEndpoints.d.ts -@@ -5,5 +5,5 @@ export default class TracksEndpoints extends EndpointsBase { - get(ids: string[], market?: Market): Promise; - audioFeatures(id: string): Promise; - audioFeatures(ids: string[]): Promise; -- audioAnalysis(id: string): Promise; -+ audioAnalysis(id: string): Promise; - } -diff --git a/dist/cjs/endpoints/TracksEndpoints.js b/dist/cjs/endpoints/TracksEndpoints.js -index ff233256c9f33dba91583197a8b5ef27e21f470d..b2979f790208db343d83ef929994ec5fe2d30dc9 100644 ---- a/dist/cjs/endpoints/TracksEndpoints.js -+++ b/dist/cjs/endpoints/TracksEndpoints.js -@@ -13,6 +13,8 @@ class TracksEndpoints extends EndpointsBase_js_1.default { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`tracks${params}`); -+ if (!response) -+ return response; - return response.tracks; - } - async audioFeatures(idOrIds) { -@@ -21,6 +23,8 @@ class TracksEndpoints extends EndpointsBase_js_1.default { - } - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`audio-features${params}`); -+ if (!response) -+ return response; - return response.audio_features; - } - audioAnalysis(id) { ++{"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"} +\ No newline at end of file diff --git a/dist/cjs/endpoints/TracksEndpoints.js.map b/dist/cjs/endpoints/TracksEndpoints.js.map -index 4a7e10a5243a977c350f671555dabed75ecb6bea..2b87ede72498b34c2bf5eed23e422b56610daff6 100644 +index 4a7e10a5243a977c350f671555dabed75ecb6bea..d3a3d4c9ea19af96f1f0bc95ed4a32fe51015ab4 100644 --- a/dist/cjs/endpoints/TracksEndpoints.js.map +++ b/dist/cjs/endpoints/TracksEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} +\ No newline at end of file +diff --git a/dist/cjs/index.d.ts b/dist/cjs/index.d.ts +index fbf77964cdd33a0bac5c37ad35e2b1af18d95cd4..44ddaef876d324384ab51d28b5a83300d3be84e7 100644 +--- a/dist/cjs/index.d.ts ++++ b/dist/cjs/index.d.ts +@@ -12,7 +12,8 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; + import { Scopes } from "./Scopes.js"; ++import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +-export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; ++export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; + export type * from "./types.js"; +-export type { IAuthStrategy, ICacheStore, }; ++export type { IAuthStrategy, ICacheStore }; +diff --git a/dist/cjs/index.js b/dist/cjs/index.js +index 8a61bc1e3b1d350548a56297763db57b348cf036..7fa6b7fe124d083df5e433bf9ca062431b9a931a 100644 +--- a/dist/cjs/index.js ++++ b/dist/cjs/index.js +@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); +-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; ++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; + const SpotifyApi_js_1 = require("./SpotifyApi.js"); + Object.defineProperty(exports, "SpotifyApi", { enumerable: true, get: function () { return SpotifyApi_js_1.SpotifyApi; } }); + const AuthorizationCodeWithPKCEStrategy_js_1 = __importDefault(require("./auth/AuthorizationCodeWithPKCEStrategy.js")); +@@ -28,6 +28,8 @@ const DefaultResponseDeserializer_js_1 = __importDefault(require("./serializatio + exports.DefaultResponseDeserializer = DefaultResponseDeserializer_js_1.default; + const Scopes_js_1 = require("./Scopes.js"); + Object.defineProperty(exports, "Scopes", { enumerable: true, get: function () { return Scopes_js_1.Scopes; } }); ++const ProvidedAccessTokenStrategy_js_1 = __importDefault(require("./auth/ProvidedAccessTokenStrategy.js")); ++exports.ProvidedAccessTokenStrategy = ProvidedAccessTokenStrategy_js_1.default; + const IAuthStrategy_js_1 = require("./auth/IAuthStrategy.js"); + Object.defineProperty(exports, "emptyAccessToken", { enumerable: true, get: function () { return IAuthStrategy_js_1.emptyAccessToken; } }); + //# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/dist/cjs/index.js.map b/dist/cjs/index.js.map +index 46aff6b589a7a9b2ba5c22bae770313f827ee9d3..158f74fc9607ace092aa7a1e4cabb2e4cc234957 100644 +--- a/dist/cjs/index.js.map ++++ b/dist/cjs/index.js.map +@@ -1 +1 @@ +-{"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"} +\ No newline at end of file ++{"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"} \ No newline at end of file -diff --git a/dist/cjs/endpoints/UsersEndpoints.d.ts b/dist/cjs/endpoints/UsersEndpoints.d.ts -index 613633e0d2cf885fbc0aca7a67855b67dbcc465e..172bf9cf6f6d69e2fad97b578ef487d28e34f90f 100644 ---- a/dist/cjs/endpoints/UsersEndpoints.d.ts -+++ b/dist/cjs/endpoints/UsersEndpoints.d.ts -@@ -1,5 +1,5 @@ - import type { User } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class UsersEndpoints extends EndpointsBase { -- profile(userId: string): Promise; -+ profile(userId: string): Promise; - } diff --git a/dist/cjs/responsevalidation/DefaultResponseValidator.js.map b/dist/cjs/responsevalidation/DefaultResponseValidator.js.map index 068804c9b81eb0a8b14280e3cac9ae1f978d788f..183a8e3201157d54088092006c84a3502f752ba4 100644 --- a/dist/cjs/responsevalidation/DefaultResponseValidator.js.map @@ -583,19 +260,6 @@ index 4f7eb1cb4c7d8c351e91433f79956629d6f8894c..f5ce4d5ff966586bfce38bf2b3985643 \ No newline at end of file +{"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"} \ No newline at end of file -diff --git a/dist/mjs/SpotifyApi.d.ts b/dist/mjs/SpotifyApi.d.ts -index cf5eff3cb728065892287539b2a85e2fe16b283b..fe3c2a037f4e47e6c748753a5661261552cfcc1b 100644 ---- a/dist/mjs/SpotifyApi.d.ts -+++ b/dist/mjs/SpotifyApi.d.ts -@@ -35,7 +35,7 @@ export declare class SpotifyApi { - search: SearchExecutionFunction; - currentUser: CurrentUserEndpoints; - constructor(authentication: IAuthStrategy, config?: SdkOptions); -- makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; -+ makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body?: any, contentType?: string | undefined): Promise; - private initializeSdk; - switchAuthenticationStrategy(authentication: IAuthStrategy): void; - /** diff --git a/dist/mjs/SpotifyApi.js.map b/dist/mjs/SpotifyApi.js.map index e98086ce346896a304fce6450801e17c0ec79b2a..8a04aacb1823ed6fbc8fb4d5ce9a7050ad0e7754 100644 --- a/dist/mjs/SpotifyApi.js.map @@ -668,236 +332,42 @@ index d0e4fdb1d785de4c2aff7778c223db6e3d650e73..db5837395777593aaf7b2a71e9296cb3 \ No newline at end of file +{"version":3,"file":"GenericCache.js","sourceRoot":"","sources":["../../../src/caching/GenericCache.ts"],"names":[],"mappings":"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/AlbumsEndpoints.d.ts b/dist/mjs/endpoints/AlbumsEndpoints.d.ts -index 18274fea2c934cd17f8ca87d551477cf8bda5291..bed7d9e02f1e65693b5f6772e78463a52ef442a8 100644 ---- a/dist/mjs/endpoints/AlbumsEndpoints.d.ts -+++ b/dist/mjs/endpoints/AlbumsEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class AlbumsEndpoints extends EndpointsBase { - get(id: string, market?: Market): Promise; - get(ids: string[], market?: Market): Promise; -- tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ tracks(albumId: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/mjs/endpoints/AlbumsEndpoints.js b/dist/mjs/endpoints/AlbumsEndpoints.js -index f93c182f9ab3a47c25db61a5cc896b65b89c249d..1b761c1b125b704e5c6fe48ba278ceb999f34192 100644 ---- a/dist/mjs/endpoints/AlbumsEndpoints.js -+++ b/dist/mjs/endpoints/AlbumsEndpoints.js -@@ -9,6 +9,8 @@ export default class AlbumsEndpoints extends EndpointsBase { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`albums${params}`); -+ if (!response) -+ return response; - return response.albums; - } - tracks(albumId, market, limit, offset) { diff --git a/dist/mjs/endpoints/AlbumsEndpoints.js.map b/dist/mjs/endpoints/AlbumsEndpoints.js.map -index e0b9429b4a0a7bcf28635430262b0345c40938b2..07be0dc89ec1e4dcb7020fb0e8474f13b7712a36 100644 +index e0b9429b4a0a7bcf28635430262b0345c40938b2..2b89fc1b01507a7230d7c891bda9e407d6ffb445 100644 --- a/dist/mjs/endpoints/AlbumsEndpoints.js.map +++ b/dist/mjs/endpoints/AlbumsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/mjs/endpoints/ArtistsEndpoints.d.ts b/dist/mjs/endpoints/ArtistsEndpoints.d.ts -index 4b5237b7acbc95486893d7384fb6adcdf71ee74a..8bdba8fcbc5a9c45deb1a49580764c7cbbd1cd7b 100644 ---- a/dist/mjs/endpoints/ArtistsEndpoints.d.ts -+++ b/dist/mjs/endpoints/ArtistsEndpoints.d.ts -@@ -3,7 +3,7 @@ import EndpointsBase from "./EndpointsBase.js"; - export default class ArtistsEndpoints extends EndpointsBase { - get(id: string): Promise; - get(ids: string[]): Promise; -- albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -- topTracks(id: string, market: Market): Promise; -- relatedArtists(id: string): Promise; -+ albums(id: string, includeGroups?: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; -+ topTracks(id: string, market: Market): Promise; -+ relatedArtists(id: string): Promise; - } -diff --git a/dist/mjs/endpoints/ArtistsEndpoints.js b/dist/mjs/endpoints/ArtistsEndpoints.js -index ab7fe438b8946ba19b545ba7c7fea4a3d021b7f2..8c786497cde5010bc4558712eaee1b271017f1c2 100644 ---- a/dist/mjs/endpoints/ArtistsEndpoints.js -+++ b/dist/mjs/endpoints/ArtistsEndpoints.js -@@ -7,6 +7,8 @@ export default class ArtistsEndpoints extends EndpointsBase { - } - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`artists${params}`); -+ if (!response) -+ return response; - return response.artists; - } - albums(id, includeGroups, market, limit, offset) { ++{"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"} +\ No newline at end of file diff --git a/dist/mjs/endpoints/ArtistsEndpoints.js.map b/dist/mjs/endpoints/ArtistsEndpoints.js.map -index 033e2a97bc6d715d348326791260fc2303addd1d..c83be3b97ed6fac3630a5bf9928193102e6f78d5 100644 +index 033e2a97bc6d715d348326791260fc2303addd1d..f662e72b69a48f1e5929bf8f1a25b599b6984161 100644 --- a/dist/mjs/endpoints/ArtistsEndpoints.js.map +++ b/dist/mjs/endpoints/ArtistsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.d.ts b/dist/mjs/endpoints/AudiobooksEndpoints.d.ts -index cfe18b338a678454c67cba7086ef4b292e0ab54a..33f2577aa2b4050e49f22b3bdca75b8ba1993fdd 100644 ---- a/dist/mjs/endpoints/AudiobooksEndpoints.d.ts -+++ b/dist/mjs/endpoints/AudiobooksEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class AudiobooksEndpoints extends EndpointsBase { - get(id: string, market?: Market): Promise; - get(ids: string[], market?: Market): Promise; -- getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ getAudiobookChapters(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.js b/dist/mjs/endpoints/AudiobooksEndpoints.js -index 3e7854353fff37736fd746eb929285dda337486f..571cb4acbc2f4554115ae2604837a9afd842e241 100644 ---- a/dist/mjs/endpoints/AudiobooksEndpoints.js -+++ b/dist/mjs/endpoints/AudiobooksEndpoints.js -@@ -7,6 +7,8 @@ export default class AudiobooksEndpoints extends EndpointsBase { - } - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`audiobooks${params}`); -+ if (!response) -+ return response; - return response.audiobooks; - } - getAudiobookChapters(id, market, limit, offset) { ++{"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"} +\ No newline at end of file diff --git a/dist/mjs/endpoints/AudiobooksEndpoints.js.map b/dist/mjs/endpoints/AudiobooksEndpoints.js.map -index 916809ef07644ef1d5ce8b1c9feb0e5d7ff747b0..07c830a5638b4fa623b78a8d389bf75cb0f6dbc0 100644 +index 916809ef07644ef1d5ce8b1c9feb0e5d7ff747b0..cbae806d0e71e1b3d050abc26e910189f9d46aad 100644 --- a/dist/mjs/endpoints/AudiobooksEndpoints.js.map +++ b/dist/mjs/endpoints/AudiobooksEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/BrowseEndpoints.d.ts b/dist/mjs/endpoints/BrowseEndpoints.d.ts -index 7f998995a6b7cdb8c31dcfc9d0284826cf9b8a90..87b59ecd24941b849bd43e472ab8421cbba0e0d3 100644 ---- a/dist/mjs/endpoints/BrowseEndpoints.d.ts -+++ b/dist/mjs/endpoints/BrowseEndpoints.d.ts -@@ -1,9 +1,9 @@ - import type { CountryCodeA2, MaxInt, Categories, Category, NewReleases, FeaturedPlaylists } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class BrowseEndpoints extends EndpointsBase { -- getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; -- getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; -- getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; -+ getCategories(country?: CountryCodeA2, locale?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getCategory(categoryId: string, country?: CountryCodeA2, locale?: string): Promise; -+ getNewReleases(country?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getFeaturedPlaylists(country?: CountryCodeA2, locale?: string, timestamp?: string, limit?: MaxInt<50>, offset?: number): Promise; -+ getPlaylistsForCategory(category_id: string, country?: CountryCodeA2, limit?: MaxInt<50>, offset?: number): Promise; - } -diff --git a/dist/mjs/endpoints/ChaptersEndpoints.js b/dist/mjs/endpoints/ChaptersEndpoints.js -index 057eecb900d09464670463c5cb24feb41ff80e4e..6d3e3a846de0f82e683685d3f083356e6ed1a634 100644 ---- a/dist/mjs/endpoints/ChaptersEndpoints.js -+++ b/dist/mjs/endpoints/ChaptersEndpoints.js -@@ -8,6 +8,8 @@ export default class ChaptersEndpoints extends EndpointsBase { - // TODO: Only returns top 50, validate / pre-check here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`chapters${params}`); -+ if (!response) -+ return response; - return response.chapters; - } - } diff --git a/dist/mjs/endpoints/ChaptersEndpoints.js.map b/dist/mjs/endpoints/ChaptersEndpoints.js.map -index d686d3ea29f38e83ebabd541f0ef9fa58f914cd9..4930112f3e0b51baa979cc53721081c717a4598d 100644 +index d686d3ea29f38e83ebabd541f0ef9fa58f914cd9..5889fb7b1d5d40275a93b9432e4fd9de9c3142aa 100644 --- a/dist/mjs/endpoints/ChaptersEndpoints.js.map +++ b/dist/mjs/endpoints/ChaptersEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/mjs/endpoints/CurrentUserEndpoints.d.ts b/dist/mjs/endpoints/CurrentUserEndpoints.d.ts -index ef1c96f9bb072d17d9ce2aecfd3ac918c0f268f9..20d31d09d22308a87cb0be7072c2a40937b58206 100644 ---- a/dist/mjs/endpoints/CurrentUserEndpoints.d.ts -+++ b/dist/mjs/endpoints/CurrentUserEndpoints.d.ts -@@ -9,47 +9,47 @@ export default class CurrentUserEndpoints extends EndpointsBase { - shows: CurrentUserShowsEndpoints; - tracks: CurrentUserTracksEndpoints; - constructor(api: SpotifyApi); -- profile(): Promise; -- topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise>; -- followedArtists(after?: string, limit?: MaxInt<50>): Promise; -+ profile(): Promise; -+ topItems(type: T, time_range?: 'short_term' | 'medium_term' | 'long_term', limit?: MaxInt<50>, offset?: number): Promise | null>; -+ followedArtists(after?: string, limit?: MaxInt<50>): Promise; - followArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; - unfollowArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; -- followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; -+ followsArtistsOrUsers(ids: string[], type: 'artist' | 'user'): Promise; - } - declare class CurrentUserAlbumsEndpoints extends EndpointsBase { -- savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; -+ savedAlbums(limit?: MaxInt<50>, offset?: number, market?: Market): Promise | null>; - saveAlbums(ids: string[]): Promise; - removeSavedAlbums(ids: string[]): Promise; -- hasSavedAlbums(ids: string[]): Promise; -+ hasSavedAlbums(ids: string[]): Promise; - } - declare class CurrentUserAudiobooksEndpoints extends EndpointsBase { -- savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise>; -+ savedAudiobooks(limit?: MaxInt<50>, offset?: number): Promise | null>; - saveAudiobooks(ids: string[]): Promise; - removeSavedAudiobooks(ids: string[]): Promise; -- hasSavedAudiobooks(ids: string[]): Promise; -+ hasSavedAudiobooks(ids: string[]): Promise; - } - declare class CurrentUserEpisodesEndpoints extends EndpointsBase { -- savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ savedEpisodes(market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - saveEpisodes(ids: string[]): Promise; - removeSavedEpisodes(ids: string[]): Promise; -- hasSavedEpisodes(ids: string[]): Promise; -+ hasSavedEpisodes(ids: string[]): Promise; - } - declare class CurrentUserPlaylistsEndpoints extends EndpointsBase { -- playlists(limit?: MaxInt<50>, offset?: number): Promise>; -+ playlists(limit?: MaxInt<50>, offset?: number): Promise | null>; - follow(playlist_id: string): Promise; - unfollow(playlist_id: string): Promise; -- isFollowing(playlistId: string, ids: string[]): Promise; -+ isFollowing(playlistId: string, ids: string[]): Promise; - } - declare class CurrentUserShowsEndpoints extends EndpointsBase { -- savedShows(limit?: MaxInt<50>, offset?: number): Promise>; -+ savedShows(limit?: MaxInt<50>, offset?: number): Promise | null>; - saveShows(ids: string[]): Promise; - removeSavedShows(ids: string[], market?: Market): Promise; -- hasSavedShow(ids: string[]): Promise; -+ hasSavedShow(ids: string[]): Promise; - } - declare class CurrentUserTracksEndpoints extends EndpointsBase { -- savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise>; -+ savedTracks(limit?: MaxInt<50>, offset?: number, market?: Market): Promise | null>; - saveTracks(ids: string[]): Promise; - removeSavedTracks(ids: string[]): Promise; -- hasSavedTracks(ids: string[]): Promise; -+ hasSavedTracks(ids: string[]): Promise; - } - export {}; -diff --git a/dist/mjs/endpoints/EndpointsBase.d.ts b/dist/mjs/endpoints/EndpointsBase.d.ts -index c91dff76bfa4664d7a9976f84c98a8e65b08cb70..62e63dac60f91346fae2b6dc121e309df52ba3f3 100644 ---- a/dist/mjs/endpoints/EndpointsBase.d.ts -+++ b/dist/mjs/endpoints/EndpointsBase.d.ts -@@ -2,9 +2,9 @@ import { SpotifyApi } from "../SpotifyApi.js"; - export default class EndpointsBase { - protected api: SpotifyApi; - constructor(api: SpotifyApi); -- protected getRequest(url: string): Promise; -- protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -- protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -- protected deleteRequest(url: string, body?: TBody): Promise; -+ protected getRequest(url: string): Promise; -+ protected postRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -+ protected putRequest(url: string, body?: TBody, contentType?: string | undefined): Promise; -+ protected deleteRequest(url: string, body?: TBody): Promise; - protected paramsFor(args: any): string; - } ++{"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"} +\ No newline at end of file diff --git a/dist/mjs/endpoints/EndpointsBase.js.map b/dist/mjs/endpoints/EndpointsBase.js.map index e93c0f83790363247c53b09de0fa2fa19523eb6a..ab3c7550cdc23ea60e4aa5503a02f4c4b1cd1a64 100644 --- a/dist/mjs/endpoints/EndpointsBase.js.map @@ -907,60 +377,15 @@ index e93c0f83790363247c53b09de0fa2fa19523eb6a..ab3c7550cdc23ea60e4aa5503a02f4c4 \ No newline at end of file +{"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/EpisodesEndpoints.js b/dist/mjs/endpoints/EpisodesEndpoints.js -index c526dba76d93e55281b093f8ba9762b8b248b1a4..1e301fe0ab04b6a053ca7518027d4e34e135d5ac 100644 ---- a/dist/mjs/endpoints/EpisodesEndpoints.js -+++ b/dist/mjs/endpoints/EpisodesEndpoints.js -@@ -7,6 +7,8 @@ export default class EpisodesEndpoints extends EndpointsBase { - } - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`episodes${params}`); -+ if (!response) -+ return response; - return response.episodes; - } - } diff --git a/dist/mjs/endpoints/EpisodesEndpoints.js.map b/dist/mjs/endpoints/EpisodesEndpoints.js.map -index 19c79bb444c2b9e1ad0727be8846d2711ef74a47..678e9c7aebd4344dc960b2bda2674b1c140e0b3e 100644 +index 19c79bb444c2b9e1ad0727be8846d2711ef74a47..858b2e925ab48fa3746b03562c976d435fadfe9b 100644 --- a/dist/mjs/endpoints/EpisodesEndpoints.js.map +++ b/dist/mjs/endpoints/EpisodesEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/MarketsEndpoints.d.ts b/dist/mjs/endpoints/MarketsEndpoints.d.ts -index 4ceb08e53ada5c140d6cba3267e8d60b35586827..cc046b287cf3a12a23cdec477d197319189b0c6b 100644 ---- a/dist/mjs/endpoints/MarketsEndpoints.d.ts -+++ b/dist/mjs/endpoints/MarketsEndpoints.d.ts -@@ -1,5 +1,5 @@ - import type { Markets } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class MarketsEndpoints extends EndpointsBase { -- getAvailableMarkets(): Promise; -+ getAvailableMarkets(): Promise; - } -diff --git a/dist/mjs/endpoints/PlayerEndpoints.d.ts b/dist/mjs/endpoints/PlayerEndpoints.d.ts -index 52792b8fb66f5a4e5056c674a175fb12d9b6c43b..2b6ec0f5e0199cd5d908e63fe6b410fce8c55315 100644 ---- a/dist/mjs/endpoints/PlayerEndpoints.d.ts -+++ b/dist/mjs/endpoints/PlayerEndpoints.d.ts -@@ -5,11 +5,11 @@ interface QueryRange { - type: "before" | "after"; - } - export default class PlayerEndpoints extends EndpointsBase { -- getPlaybackState(market?: Market, additional_types?: string): Promise; -- getAvailableDevices(): Promise; -- getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; -- getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; -- getUsersQueue(): Promise; -+ getPlaybackState(market?: Market, additional_types?: string): Promise; -+ getAvailableDevices(): Promise; -+ getCurrentlyPlayingTrack(market?: Market, additional_types?: string): Promise; -+ getRecentlyPlayedTracks(limit?: MaxInt<50>, queryRange?: QueryRange): Promise; -+ getUsersQueue(): Promise; - transferPlayback(device_ids: string[], play?: boolean): Promise; - startResumePlayback(device_id: string, context_uri?: string, uris?: string[], offset?: object, positionMs?: number): Promise; - pausePlayback(device_id: string): Promise; diff --git a/dist/mjs/endpoints/PlayerEndpoints.js.map b/dist/mjs/endpoints/PlayerEndpoints.js.map index 6b1c7937d058d128aa981035117b3fa06d4564cf..015469900dd2ed19f8ab3d962bb6aa469fc65265 100644 --- a/dist/mjs/endpoints/PlayerEndpoints.js.map @@ -971,34 +396,14 @@ index 6b1c7937d058d128aa981035117b3fa06d4564cf..015469900dd2ed19f8ab3d962bb6aa46 +{"version":3,"file":"PlayerEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlayerEndpoints.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/mjs/endpoints/PlaylistsEndpoints.d.ts b/dist/mjs/endpoints/PlaylistsEndpoints.d.ts -index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..1477d0769fae34f47b34a4d85c46e29337dac979 100644 +index 8760c8c7b8d61681a85537a40d33aafeff8d1cd0..8a439ea2f95f5bdbd5bec4cc9dde867e06d74ec2 100644 --- a/dist/mjs/endpoints/PlaylistsEndpoints.d.ts +++ b/dist/mjs/endpoints/PlaylistsEndpoints.d.ts -@@ -1,17 +1,16 @@ +@@ -1,4 +1,3 @@ -/// import type { Market, Playlist, MaxInt, Page, Track, SnapshotReference, Image, PlaylistedTrack, QueryAdditionalTypes, TrackItem } from '../types.js'; import EndpointsBase from './EndpointsBase.js'; export default class PlaylistsEndpoints extends EndpointsBase { -- getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise>; -- getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise>>; -+ getPlaylist(playlist_id: string, market?: Market, fields?: string, additional_types?: AdditionalTypes): Promise | null>; -+ getPlaylistItems(playlist_id: string, market?: Market, fields?: string, limit?: MaxInt<50>, offset?: number, additional_types?: AdditionalTypes): Promise> | null>; - changePlaylistDetails(playlist_id: string, request: ChangePlaylistDetailsRequest): Promise; -- movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; -- updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; -+ movePlaylistItems(playlist_id: string, range_start: number, range_length: number, moveToPosition: number): Promise; -+ updatePlaylistItems(playlist_id: string, request: UpdatePlaylistItemsRequest): Promise; - addItemsToPlaylist(playlist_id: string, uris?: string[], position?: number): Promise; - removeItemsFromPlaylist(playlist_id: string, request: RemovePlaylistItemsRequest): Promise; -- getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise>>; -- createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise>; -- getPlaylistCoverImage(playlist_id: string): Promise; -+ getUsersPlaylists(user_id: string, limit?: MaxInt<50>, offset?: number): Promise> | null>; -+ createPlaylist(user_id: string, request: CreatePlaylistRequest): Promise | null>; -+ getPlaylistCoverImage(playlist_id: string): Promise; - addCustomPlaylistCoverImage(playlist_id: string, imageData: Buffer | HTMLImageElement | HTMLCanvasElement | string): Promise; - addCustomPlaylistCoverImageFromBase64String(playlist_id: string, base64EncodedJpeg: string): Promise; - } diff --git a/dist/mjs/endpoints/PlaylistsEndpoints.js.map b/dist/mjs/endpoints/PlaylistsEndpoints.js.map index 0482d4fe4c4294e273f728a2e5b046420f303a5a..7d15483da9c877cd43a2e33cec89be974d34b55b 100644 --- a/dist/mjs/endpoints/PlaylistsEndpoints.js.map @@ -1008,122 +413,62 @@ index 0482d4fe4c4294e273f728a2e5b046420f303a5a..7d15483da9c877cd43a2e33cec89be97 \ No newline at end of file +{"version":3,"file":"PlaylistsEndpoints.js","sourceRoot":"","sources":["../../../src/endpoints/PlaylistsEndpoints.ts"],"names":[],"mappings":"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/RecommendationsEndpoints.d.ts b/dist/mjs/endpoints/RecommendationsEndpoints.d.ts -index ddd71517d997daee270a15e60782d6bd29fa3a6a..cf864f5fa1f48da6fc836df78a3a19e70eece0c5 100644 ---- a/dist/mjs/endpoints/RecommendationsEndpoints.d.ts -+++ b/dist/mjs/endpoints/RecommendationsEndpoints.d.ts -@@ -1,8 +1,8 @@ - import type { Genres, Track } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class RecommendationsEndpoints extends EndpointsBase { -- get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; -- genreSeeds(): Promise; -+ get(request: RecommendationsRequestRequiredArguments | RecommendationsRequest): Promise; -+ genreSeeds(): Promise; - } - export interface RecommendationsRequestRequiredArguments { - seed_artists?: string[]; -diff --git a/dist/mjs/endpoints/SearchEndpoints.d.ts b/dist/mjs/endpoints/SearchEndpoints.d.ts -index 71fcb99808b86ed766d459b11d09a2ad5080408d..6656f5bc3f1c94612ed548b96693692c7859cdf0 100644 ---- a/dist/mjs/endpoints/SearchEndpoints.d.ts -+++ b/dist/mjs/endpoints/SearchEndpoints.d.ts -@@ -1,8 +1,8 @@ - import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export interface SearchExecutionFunction { -- (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; -+ (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise | null>; - } - export default class SearchEndpoints extends EndpointsBase { -- execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; -+ execute(q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise | null>; - } -diff --git a/dist/mjs/endpoints/ShowsEndpoints.d.ts b/dist/mjs/endpoints/ShowsEndpoints.d.ts -index 41b64a4de6399faa92e28aec51b977cddd06d00b..4e6fe35b6161bf21820819775281600f74a23325 100644 ---- a/dist/mjs/endpoints/ShowsEndpoints.d.ts -+++ b/dist/mjs/endpoints/ShowsEndpoints.d.ts -@@ -3,5 +3,5 @@ import EndpointsBase from './EndpointsBase.js'; - export default class ShowsEndpoints extends EndpointsBase { - get(id: string, market: Market): Promise; - get(ids: string[], market: Market): Promise; -- episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise>; -+ episodes(id: string, market?: Market, limit?: MaxInt<50>, offset?: number): Promise | null>; - } -diff --git a/dist/mjs/endpoints/ShowsEndpoints.js b/dist/mjs/endpoints/ShowsEndpoints.js -index d19128c3c9ba72d5a968bb19d9e5b9d4863194e3..88e6701f007445bcc75c233490adf6d0a27a18db 100644 ---- a/dist/mjs/endpoints/ShowsEndpoints.js -+++ b/dist/mjs/endpoints/ShowsEndpoints.js -@@ -8,6 +8,8 @@ export default class ShowsEndpoints extends EndpointsBase { - // TODO: only returns 50, validate here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`shows${params}`); -+ if (!response) -+ return response; - return response.shows; - } - episodes(id, market, limit, offset) { diff --git a/dist/mjs/endpoints/ShowsEndpoints.js.map b/dist/mjs/endpoints/ShowsEndpoints.js.map -index 3f1eb890cfd275ad7bb8439691256c8b9b6a7971..5e87e6f5390575a5d65f6b3fc430c087ffba03e1 100644 +index 3f1eb890cfd275ad7bb8439691256c8b9b6a7971..6e1fbe7ad3e743c9461aec546320d427df1f8ac8 100644 --- a/dist/mjs/endpoints/ShowsEndpoints.js.map +++ b/dist/mjs/endpoints/ShowsEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} -\ No newline at end of file -diff --git a/dist/mjs/endpoints/TracksEndpoints.d.ts b/dist/mjs/endpoints/TracksEndpoints.d.ts -index 5a2811cbe7365ec4e81823f69046dea8141941de..7a8109f3f656be9ed76e4f781e83343c85a907d7 100644 ---- a/dist/mjs/endpoints/TracksEndpoints.d.ts -+++ b/dist/mjs/endpoints/TracksEndpoints.d.ts -@@ -5,5 +5,5 @@ export default class TracksEndpoints extends EndpointsBase { - get(ids: string[], market?: Market): Promise; - audioFeatures(id: string): Promise; - audioFeatures(ids: string[]): Promise; -- audioAnalysis(id: string): Promise; -+ audioAnalysis(id: string): Promise; - } -diff --git a/dist/mjs/endpoints/TracksEndpoints.js b/dist/mjs/endpoints/TracksEndpoints.js -index 203d45d432745ef347824e4b03a7b6fcfd5743e1..29eff54383e6ce4a7ce5b5b7293d4566f91ffc0e 100644 ---- a/dist/mjs/endpoints/TracksEndpoints.js -+++ b/dist/mjs/endpoints/TracksEndpoints.js -@@ -8,6 +8,8 @@ export default class TracksEndpoints extends EndpointsBase { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`tracks${params}`); -+ if (!response) -+ return response; - return response.tracks; - } - async audioFeatures(idOrIds) { -@@ -16,6 +18,8 @@ export default class TracksEndpoints extends EndpointsBase { - } - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`audio-features${params}`); -+ if (!response) -+ return response; - return response.audio_features; - } - audioAnalysis(id) { ++{"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"} +\ No newline at end of file diff --git a/dist/mjs/endpoints/TracksEndpoints.js.map b/dist/mjs/endpoints/TracksEndpoints.js.map -index 979607aae926efc41a44f301b96ff9419a4b3b65..bf8fa7c3ca4506d867e073438df2fbd668b627c0 100644 +index 979607aae926efc41a44f301b96ff9419a4b3b65..c84a80853f5e023d29ad53a0b4449e137f9b9841 100644 --- a/dist/mjs/endpoints/TracksEndpoints.js.map +++ b/dist/mjs/endpoints/TracksEndpoints.js.map @@ -1 +1 @@ -{"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"} \ No newline at end of file -+{"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"} ++{"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"} +\ No newline at end of file +diff --git a/dist/mjs/index.d.ts b/dist/mjs/index.d.ts +index fbf77964cdd33a0bac5c37ad35e2b1af18d95cd4..44ddaef876d324384ab51d28b5a83300d3be84e7 100644 +--- a/dist/mjs/index.d.ts ++++ b/dist/mjs/index.d.ts +@@ -12,7 +12,8 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; + import { Scopes } from "./Scopes.js"; ++import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +-export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; ++export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; + export type * from "./types.js"; +-export type { IAuthStrategy, ICacheStore, }; ++export type { IAuthStrategy, ICacheStore }; +diff --git a/dist/mjs/index.js b/dist/mjs/index.js +index b850ca13517ccfc7df23ea9655f26075c9d06e92..88008269940e3448565381716765aad8e8102e41 100644 +--- a/dist/mjs/index.js ++++ b/dist/mjs/index.js +@@ -10,6 +10,7 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; + import { Scopes } from "./Scopes.js"; ++import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; +-export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, emptyAccessToken }; ++export { SpotifyApi, AuthorizationCodeWithPKCEStrategy, ClientCredentialsStrategy, InMemoryCachingStrategy, LocalStorageCachingStrategy, GenericCache, ConsoleLoggingErrorHandler, NoOpErrorHandler, DocumentLocationRedirectionStrategy, DefaultResponseValidator, DefaultResponseDeserializer, Scopes, ProvidedAccessTokenStrategy, emptyAccessToken, }; + //# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/dist/mjs/index.js.map b/dist/mjs/index.js.map +index 5713a86abb96eea14b688db85121fea9a0154532..f10ec14395391f8f9fb580f526620088f9eeffd6 100644 +--- a/dist/mjs/index.js.map ++++ b/dist/mjs/index.js.map +@@ -1 +1 @@ +-{"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"} +\ No newline at end of file ++{"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"} \ No newline at end of file -diff --git a/dist/mjs/endpoints/UsersEndpoints.d.ts b/dist/mjs/endpoints/UsersEndpoints.d.ts -index 613633e0d2cf885fbc0aca7a67855b67dbcc465e..172bf9cf6f6d69e2fad97b578ef487d28e34f90f 100644 ---- a/dist/mjs/endpoints/UsersEndpoints.d.ts -+++ b/dist/mjs/endpoints/UsersEndpoints.d.ts -@@ -1,5 +1,5 @@ - import type { User } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - export default class UsersEndpoints extends EndpointsBase { -- profile(userId: string): Promise; -+ profile(userId: string): Promise; - } diff --git a/dist/mjs/responsevalidation/DefaultResponseValidator.js.map b/dist/mjs/responsevalidation/DefaultResponseValidator.js.map index 02df457d0327575055c3c1b8ff28eb7ddad93532..9a36ddcdd58aeb0753350e88204064e4f7e5f009 100644 --- a/dist/mjs/responsevalidation/DefaultResponseValidator.js.map @@ -1142,149 +487,52 @@ index 0764fe7c33bd2dc62b5e36f881ebed94dc78297a..05b1af1da8ccfff41e470953ebb451a7 \ No newline at end of file +{"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"} \ No newline at end of file -diff --git a/src/SpotifyApi.ts b/src/SpotifyApi.ts -index cc3438644134cdf4ce25456be665def9f0e4bff7..6cb80d473be9ebb70d8eb641a962545e54f27bf4 100644 ---- a/src/SpotifyApi.ts -+++ b/src/SpotifyApi.ts -@@ -74,7 +74,7 @@ export class SpotifyApi { - this.authenticationStrategy.setConfiguration(this.sdkConfig); - } - -- public async makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body: any = undefined, contentType: string | undefined = undefined): Promise { -+ public async makeRequest(method: "GET" | "POST" | "PUT" | "DELETE", url: string, body: any = undefined, contentType: string | undefined = undefined): Promise { - try { - const accessToken = await this.authenticationStrategy.getOrCreateAccessToken(); - if (isEmptyAccessToken(accessToken)) { -diff --git a/src/endpoints/AlbumsEndpoints.ts b/src/endpoints/AlbumsEndpoints.ts -index 79311e52dabcb0318bd09600d1bd3de0e70525b0..f5d300eb6aae9d0eb86cfc0e8b18e484a1997b7e 100644 ---- a/src/endpoints/AlbumsEndpoints.ts -+++ b/src/endpoints/AlbumsEndpoints.ts -@@ -15,6 +15,7 @@ export default class AlbumsEndpoints extends EndpointsBase { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`albums${params}`); -+ if (!response) return response; - return response.albums; - } - -diff --git a/src/endpoints/ArtistsEndpoints.ts b/src/endpoints/ArtistsEndpoints.ts -index f1e95ca5ae7bfe7afad48de0efc998fc96abe312..d7cbe4b02baeae866268da2dc0346327a6f3dd0f 100644 ---- a/src/endpoints/ArtistsEndpoints.ts -+++ b/src/endpoints/ArtistsEndpoints.ts -@@ -21,6 +21,7 @@ export default class ArtistsEndpoints extends EndpointsBase { - - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`artists${params}`); -+ if (!response) return response; - return response.artists; - } - -diff --git a/src/endpoints/AudiobooksEndpoints.ts b/src/endpoints/AudiobooksEndpoints.ts -index ceaa6465119e98c624f777308f90ea1a1e1bc5b5..6620b7e18394f79fb30c28bb6b53b8ed5e4e5220 100644 ---- a/src/endpoints/AudiobooksEndpoints.ts -+++ b/src/endpoints/AudiobooksEndpoints.ts -@@ -12,6 +12,7 @@ export default class AudiobooksEndpoints extends EndpointsBase { - - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`audiobooks${params}`); -+ if (!response) return response; - return response.audiobooks; - } - -diff --git a/src/endpoints/ChaptersEndpoints.ts b/src/endpoints/ChaptersEndpoints.ts -index 80afd92cfc9ed41e74b8fe5e8b31aa9c5c17f8c4..4989c6c70c7990f2c3e96b3c2e206c97bbbf396c 100644 ---- a/src/endpoints/ChaptersEndpoints.ts -+++ b/src/endpoints/ChaptersEndpoints.ts -@@ -16,6 +16,7 @@ export default class ChaptersEndpoints extends EndpointsBase { - // TODO: Only returns top 50, validate / pre-check here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`chapters${params}`); -+ if (!response) return response; - return response.chapters; - } - } -diff --git a/src/endpoints/EndpointsBase.ts b/src/endpoints/EndpointsBase.ts -index 588270c5581f8d4f617750c8486f77ed942a4ae8..8f1f38b971e23c6e250b1ad0c9d1ff1d9ae7cdbd 100644 ---- a/src/endpoints/EndpointsBase.ts -+++ b/src/endpoints/EndpointsBase.ts -@@ -4,19 +4,19 @@ export default class EndpointsBase { - constructor(protected api: SpotifyApi) { - } - -- protected async getRequest(url: string): Promise { -+ protected async getRequest(url: string): Promise { - return await this.api.makeRequest("GET", url); - } - -- protected async postRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { -+ protected async postRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { - return await this.api.makeRequest("POST", url, body, contentType); - } - -- protected async putRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { -+ protected async putRequest(url: string, body?: TBody, contentType: string | undefined = undefined): Promise { - return await this.api.makeRequest("PUT", url, body, contentType); - } - -- protected async deleteRequest(url: string, body?: TBody): Promise { -+ protected async deleteRequest(url: string, body?: TBody): Promise { - return await this.api.makeRequest("DELETE", url, body); - } - -diff --git a/src/endpoints/EpisodesEndpoints.ts b/src/endpoints/EpisodesEndpoints.ts -index c002e872232ccad4056172d02a662c3168f3b180..b19df1797ef9ed84d6f6f89dd488c84b4cfb31ab 100644 ---- a/src/endpoints/EpisodesEndpoints.ts -+++ b/src/endpoints/EpisodesEndpoints.ts -@@ -13,6 +13,7 @@ export default class EpisodesEndpoints extends EndpointsBase { - - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`episodes${params}`); -+ if (!response) return response; - return response.episodes; - } - } -diff --git a/src/endpoints/SearchEndpoints.ts b/src/endpoints/SearchEndpoints.ts -index c6d08d27dc979bef80652f1c389e3b8249a670b9..ba788ddd6ddd8809fdf83c040edc78a4fe91c1a9 100644 ---- a/src/endpoints/SearchEndpoints.ts -+++ b/src/endpoints/SearchEndpoints.ts -@@ -2,7 +2,7 @@ import type { ItemTypes, Market, MaxInt, SearchResults } from '../types.js'; - import EndpointsBase from './EndpointsBase.js'; - - export interface SearchExecutionFunction { -- (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise>; -+ (q: string, type: T, market?: Market, limit?: MaxInt<50>, offset?: number, include_external?: string): Promise | null>; - } - - export default class SearchEndpoints extends EndpointsBase { -diff --git a/src/endpoints/ShowsEndpoints.ts b/src/endpoints/ShowsEndpoints.ts -index 664c3a6a82ffd75b0eadbac0092330ba0e19aed1..fd59f795d5b789416e4c25f890ee4b159a972c43 100644 ---- a/src/endpoints/ShowsEndpoints.ts -+++ b/src/endpoints/ShowsEndpoints.ts -@@ -14,6 +14,7 @@ export default class ShowsEndpoints extends EndpointsBase { - // TODO: only returns 50, validate here - const params = this.paramsFor({ ids: idOrIds, market }); - const response = await this.getRequest(`shows${params}`); -+ if (!response) return response; - return response.shows; - } +diff --git a/src/index.ts b/src/index.ts +index c930787038206b886c1769a30324c1863f36ad4c..7697be275db7b9f690ea2ac5675358181c944321 100644 +--- a/src/index.ts ++++ b/src/index.ts +@@ -12,27 +12,26 @@ import DocumentLocationRedirectionStrategy from "./redirection/DocumentLocationR + import DefaultResponseValidator from "./responsevalidation/DefaultResponseValidator.js"; + import DefaultResponseDeserializer from "./serialization/DefaultResponseDeserializer.js"; + import { Scopes } from "./Scopes.js"; ++import ProvidedAccessTokenStrategy from "./auth/ProvidedAccessTokenStrategy.js"; + import { emptyAccessToken } from "./auth/IAuthStrategy.js"; -diff --git a/src/endpoints/TracksEndpoints.ts b/src/endpoints/TracksEndpoints.ts -index c8019773d46cb560c9554482279abd35706b003a..6fbe67410aeef98d38dea2ea3ead491f47391d1c 100644 ---- a/src/endpoints/TracksEndpoints.ts -+++ b/src/endpoints/TracksEndpoints.ts -@@ -14,6 +14,7 @@ export default class TracksEndpoints extends EndpointsBase { - const params = this.paramsFor({ ids: idOrIds, market }); - // TODO: only returns top 20, validate here - const response = await this.getRequest(`tracks${params}`); -+ if (!response) return response; - return response.tracks; - } + export { +- SpotifyApi, +- AuthorizationCodeWithPKCEStrategy, +- ClientCredentialsStrategy, +- InMemoryCachingStrategy, +- LocalStorageCachingStrategy, +- GenericCache, +- ConsoleLoggingErrorHandler, +- NoOpErrorHandler, +- DocumentLocationRedirectionStrategy, +- DefaultResponseValidator, +- DefaultResponseDeserializer, +- Scopes, +- emptyAccessToken +-} ++ SpotifyApi, ++ AuthorizationCodeWithPKCEStrategy, ++ ClientCredentialsStrategy, ++ InMemoryCachingStrategy, ++ LocalStorageCachingStrategy, ++ GenericCache, ++ ConsoleLoggingErrorHandler, ++ NoOpErrorHandler, ++ DocumentLocationRedirectionStrategy, ++ DefaultResponseValidator, ++ DefaultResponseDeserializer, ++ Scopes, ++ ProvidedAccessTokenStrategy, ++ emptyAccessToken, ++}; -@@ -25,6 +26,7 @@ export default class TracksEndpoints extends EndpointsBase { - } - const params = this.paramsFor({ ids: idOrIds }); - const response = await this.getRequest(`audio-features${params}`); -+ if (!response) return response; - return response.audio_features; - } + export type * from "./types.js"; +-export type { +- IAuthStrategy, +- ICacheStore, +-} ++export type { IAuthStrategy, ICacheStore }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eceded7..72168d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: patchedDependencies: '@spotify/web-api-ts-sdk': - hash: ptw4jgazdhouuxg5ym53ts4jam + hash: bnc3y2fwaac6u2mz36j2lkl57i path: patches/@spotify__web-api-ts-sdk.patch importers: @@ -18,7 +18,7 @@ importers: version: 9.3.1(astro@5.12.6(@types/node@24.1.0)(rollup@4.46.2)(typescript@5.8.3)) '@spotify/web-api-ts-sdk': specifier: ^1.2.0 - version: 1.2.0(patch_hash=ptw4jgazdhouuxg5ym53ts4jam) + version: 1.2.0(patch_hash=bnc3y2fwaac6u2mz36j2lkl57i) astro: specifier: ^5.12.6 version: 5.12.6(@types/node@24.1.0)(rollup@4.46.2)(typescript@5.8.3) @@ -1903,7 +1903,7 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@spotify/web-api-ts-sdk@1.2.0(patch_hash=ptw4jgazdhouuxg5ym53ts4jam)': {} + '@spotify/web-api-ts-sdk@1.2.0(patch_hash=bnc3y2fwaac6u2mz36j2lkl57i)': {} '@swc/helpers@0.5.17': dependencies: diff --git a/src/components/home/playing/spotify/index.ts b/src/components/home/playing/spotify/index.ts index 38a033a..0292696 100644 --- a/src/components/home/playing/spotify/index.ts +++ b/src/components/home/playing/spotify/index.ts @@ -3,13 +3,14 @@ */ import { SpotifyApi, type AccessToken } from "@spotify/web-api-ts-sdk"; +import { ProvidedAccessTokenStrategy } from "@spotify/web-api-ts-sdk"; import { SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET } from "astro:env/server"; import fs from "node:fs/promises"; -import { isObj } from "/utils"; +import { isObj, throws } from "/utils"; /** - * the refresh_token field is not checked as + * the refresh_token field is not checked as it might not be returned from the api */ const isSpotifyAccessToken = (token: any): token is AccessToken => isObj(token) && @@ -20,6 +21,44 @@ const isSpotifyAccessToken = (token: any): token is AccessToken => "expires_in" in token && typeof token.expires_in === "number"; +const reloadAccessToken = async (refresh_token: string) => + fetch("https://accounts.spotify.com/api/token", { + method: "post", + headers: { + "content-type": "application/x-www-form-urlencoded", + Authorization: + "Basic " + + Buffer.from(SPOTIFY_CLIENT_ID + ":" + SPOTIFY_CLIENT_SECRET).toString( + "base64", + ), + }, + body: new URLSearchParams({ + grant_type: "refresh_token", + refresh_token: refresh_token, + }).toString(), + }) + .then((res) => res.json()) + .then((token) => + isSpotifyAccessToken(token) + ? { + ...token, + // if no refresh_token is provided then insert it + ...(token.refresh_token ? {} : { refresh_token: refresh_token }), + } + : console.error("Response was not a valid access token:", token), + ) + .catch((err) => console.error(err)) + .then((token) => + !!token + ? token + : throws( + new Error( + "Could not generate a new access token from the refresh token", + ), + ), + ); + +/** MAIN LOGIC HERE */ // try load last known refresh token from file const refreshToken = await fs .readFile("./.refreshToken", { encoding: "utf-8" }) @@ -30,50 +69,24 @@ const refreshToken = await fs // if refreshToken is undefined then we dont have a valid one saved, and can request the user obtain one // (this could be corruption, failed save, or missing file) if (!refreshToken) - throw new Error( - "No access token is stored in `./.refreshToken`. Please generate one using the `/callback` endpoint in a dev server.", - ); - -const accessToken = await fetch("https://accounts.spotify.com/api/token", { - method: "post", + throw "No access token is stored in `./.refreshToken`. Please generate one using the `/callback` endpoint in a dev server."; - headers: { - "content-type": "application/x-www-form-urlencoded", - Authorization: - "Basic " + - Buffer.from(SPOTIFY_CLIENT_ID + ":" + SPOTIFY_CLIENT_SECRET).toString( - "base64", - ), - }, - - body: new URLSearchParams({ - grant_type: "refresh_token", - refresh_token: refreshToken, - }).toString(), -}) - .then((res) => res.json()) - .then((token) => - isSpotifyAccessToken(token) - ? { - ...token, - // if no refresh_token is provided then insert it - ...(token.refresh_token ? {} : { refresh_token: refreshToken }), - } - : console.error("Response was not a valid access token:", token), - ) - .catch((err) => console.error(err)); +const accessToken = await reloadAccessToken(refreshToken); if (!accessToken) - throw new Error( - "Could not generate a new access token from the refresh token", - ); + throw "Could not generate a new access token from the refresh token"; -export const sdk = SpotifyApi.withAccessToken(SPOTIFY_CLIENT_ID, accessToken, { - async afterRequest() { - const token = await sdk.getAccessToken(); - if (!token) return; - fs.writeFile("./.refreshToken", token.refresh_token, { - encoding: "utf-8", - }); +export const sdk = new SpotifyApi( + new ProvidedAccessTokenStrategy(SPOTIFY_CLIENT_ID, accessToken, (_, token) => + reloadAccessToken(token.refresh_token), + ), + { + async afterRequest() { + const token = await sdk.getAccessToken(); + if (!token) return; + fs.writeFile("./.refreshToken", token.refresh_token, { + encoding: "utf-8", + }); + }, }, -}); +);