lastfm-nodejs-client 1.5.6 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -74
- package/dist/@types/album/addTags.d.ts +11 -0
- package/dist/@types/album/getInfo.d.ts +11 -0
- package/dist/@types/album/getTags.d.ts +11 -0
- package/dist/@types/album/getTopTags.d.ts +10 -0
- package/dist/@types/album/removeTag.d.ts +11 -0
- package/dist/@types/album/search.d.ts +10 -0
- package/dist/@types/artist/addTags.d.ts +10 -0
- package/dist/@types/artist/getCorrection.d.ts +9 -0
- package/dist/@types/artist/getInfo.d.ts +10 -0
- package/dist/@types/artist/getSimilar.d.ts +10 -0
- package/dist/@types/artist/getTags.d.ts +10 -0
- package/dist/@types/artist/getTopAlbums.d.ts +11 -0
- package/dist/@types/artist/getTopTags.d.ts +9 -0
- package/dist/@types/artist/getTopTracks.d.ts +11 -0
- package/dist/@types/artist/removeTag.d.ts +10 -0
- package/dist/@types/artist/search.d.ts +10 -0
- package/dist/@types/auth/getMobileSession.d.ts +11 -0
- package/dist/@types/auth/getSession.d.ts +10 -0
- package/dist/@types/auth.d.ts +9 -6
- package/dist/@types/chart/topArtists.d.ts +11 -0
- package/dist/@types/chart/topTags.d.ts +8 -0
- package/dist/@types/chart/topTracks.d.ts +8 -0
- package/dist/@types/config.d.ts +13 -11
- package/dist/@types/createOptions.d.ts +23 -0
- package/dist/@types/geo/getTopArtists.d.ts +10 -0
- package/dist/@types/geo/getTopTracks.d.ts +10 -0
- package/dist/@types/getFriends.d.ts +6 -3
- package/dist/@types/getInfo.d.ts +5 -3
- package/dist/@types/getLovedTracks.d.ts +7 -3
- package/dist/@types/getRecentTracks.d.ts +7 -3
- package/dist/@types/getTopAlbums.d.ts +7 -3
- package/dist/@types/getTopArtists.d.ts +7 -3
- package/dist/@types/getTopTracks.d.ts +7 -3
- package/dist/@types/getUserTopTags.d.ts +6 -3
- package/dist/@types/getWeeklyAlbumChart.d.ts +7 -3
- package/dist/@types/getWeeklyArtistChart.d.ts +7 -3
- package/dist/@types/getWeeklyChartList.d.ts +8 -3
- package/dist/@types/getWeeklyTrackChart.d.ts +7 -3
- package/dist/@types/index.d.ts +31 -89
- package/dist/@types/lastfm.types.d.ts +1 -2
- package/dist/@types/library/getArtists.d.ts +10 -0
- package/dist/@types/md5.d.ts +7 -0
- package/dist/@types/method.d.ts +25 -77
- package/dist/@types/request.d.ts +23 -0
- package/dist/@types/tag/getInfo.d.ts +9 -0
- package/dist/@types/tag/getSimilar.d.ts +8 -0
- package/dist/@types/tag/getTopAlbums.d.ts +10 -0
- package/dist/@types/tag/getTopArtists.d.ts +10 -0
- package/dist/@types/tag/getTopTags.d.ts +7 -0
- package/dist/@types/tag/getWeeklyChartList.d.ts +9 -0
- package/dist/@types/tag/topTracks.d.ts +6 -3
- package/dist/@types/track/addTags.d.ts +11 -0
- package/dist/@types/track/getCorrection.d.ts +10 -0
- package/dist/@types/track/getInfo.d.ts +11 -0
- package/dist/@types/track/getSimilar.d.ts +11 -0
- package/dist/@types/track/getTags.d.ts +11 -0
- package/dist/@types/track/getTopTags.d.ts +10 -0
- package/dist/@types/track/love.d.ts +10 -0
- package/dist/@types/track/removeTag.d.ts +11 -0
- package/dist/@types/track/scrobble.d.ts +12 -0
- package/dist/@types/track/search.d.ts +11 -0
- package/dist/@types/track/unlove.d.ts +10 -0
- package/dist/@types/track/updateNowPlaying.d.ts +11 -0
- package/dist/@types/user/getPersonalTags.d.ts +12 -0
- package/dist/album/addTags.js +11 -0
- package/dist/album/addTags.js.map +1 -1
- package/dist/album/getInfo.js +11 -0
- package/dist/album/getInfo.js.map +1 -1
- package/dist/album/getTags.js +11 -0
- package/dist/album/getTags.js.map +1 -1
- package/dist/album/getTopTags.js +10 -0
- package/dist/album/getTopTags.js.map +1 -1
- package/dist/album/removeTag.js +11 -0
- package/dist/album/removeTag.js.map +1 -1
- package/dist/album/search.js +10 -0
- package/dist/album/search.js.map +1 -1
- package/dist/artist/addTags.js +10 -0
- package/dist/artist/addTags.js.map +1 -1
- package/dist/artist/getCorrection.js +9 -0
- package/dist/artist/getCorrection.js.map +1 -1
- package/dist/artist/getInfo.js +10 -0
- package/dist/artist/getInfo.js.map +1 -1
- package/dist/artist/getSimilar.js +10 -0
- package/dist/artist/getSimilar.js.map +1 -1
- package/dist/artist/getTags.js +10 -0
- package/dist/artist/getTags.js.map +1 -1
- package/dist/artist/getTopAlbums.js +11 -0
- package/dist/artist/getTopAlbums.js.map +1 -1
- package/dist/artist/getTopTags.js +9 -0
- package/dist/artist/getTopTags.js.map +1 -1
- package/dist/artist/getTopTracks.js +11 -0
- package/dist/artist/getTopTracks.js.map +1 -1
- package/dist/artist/removeTag.js +10 -0
- package/dist/artist/removeTag.js.map +1 -1
- package/dist/artist/search.js +10 -0
- package/dist/artist/search.js.map +1 -1
- package/dist/auth/getMobileSession.js +11 -0
- package/dist/auth/getMobileSession.js.map +1 -1
- package/dist/auth/getSession.js +10 -0
- package/dist/auth/getSession.js.map +1 -1
- package/dist/auth.js +9 -6
- package/dist/auth.js.map +1 -1
- package/dist/chart/topArtists.js +11 -0
- package/dist/chart/topArtists.js.map +1 -1
- package/dist/chart/topTags.js +8 -0
- package/dist/chart/topTags.js.map +1 -1
- package/dist/chart/topTracks.js +8 -0
- package/dist/chart/topTracks.js.map +1 -1
- package/dist/cjs/album/addTags.js +11 -0
- package/dist/cjs/album/addTags.js.map +1 -1
- package/dist/cjs/album/getInfo.js +11 -0
- package/dist/cjs/album/getInfo.js.map +1 -1
- package/dist/cjs/album/getTags.js +11 -0
- package/dist/cjs/album/getTags.js.map +1 -1
- package/dist/cjs/album/getTopTags.js +10 -0
- package/dist/cjs/album/getTopTags.js.map +1 -1
- package/dist/cjs/album/removeTag.js +11 -0
- package/dist/cjs/album/removeTag.js.map +1 -1
- package/dist/cjs/album/search.js +10 -0
- package/dist/cjs/album/search.js.map +1 -1
- package/dist/cjs/artist/addTags.js +10 -0
- package/dist/cjs/artist/addTags.js.map +1 -1
- package/dist/cjs/artist/getCorrection.js +9 -0
- package/dist/cjs/artist/getCorrection.js.map +1 -1
- package/dist/cjs/artist/getInfo.js +10 -0
- package/dist/cjs/artist/getInfo.js.map +1 -1
- package/dist/cjs/artist/getSimilar.js +10 -0
- package/dist/cjs/artist/getSimilar.js.map +1 -1
- package/dist/cjs/artist/getTags.js +10 -0
- package/dist/cjs/artist/getTags.js.map +1 -1
- package/dist/cjs/artist/getTopAlbums.js +11 -0
- package/dist/cjs/artist/getTopAlbums.js.map +1 -1
- package/dist/cjs/artist/getTopTags.js +9 -0
- package/dist/cjs/artist/getTopTags.js.map +1 -1
- package/dist/cjs/artist/getTopTracks.js +11 -0
- package/dist/cjs/artist/getTopTracks.js.map +1 -1
- package/dist/cjs/artist/removeTag.js +10 -0
- package/dist/cjs/artist/removeTag.js.map +1 -1
- package/dist/cjs/artist/search.js +10 -0
- package/dist/cjs/artist/search.js.map +1 -1
- package/dist/cjs/auth/getMobileSession.js +11 -0
- package/dist/cjs/auth/getMobileSession.js.map +1 -1
- package/dist/cjs/auth/getSession.js +10 -0
- package/dist/cjs/auth/getSession.js.map +1 -1
- package/dist/cjs/auth.js +9 -6
- package/dist/cjs/auth.js.map +1 -1
- package/dist/cjs/chart/topArtists.js +11 -0
- package/dist/cjs/chart/topArtists.js.map +1 -1
- package/dist/cjs/chart/topTags.js +8 -0
- package/dist/cjs/chart/topTags.js.map +1 -1
- package/dist/cjs/chart/topTracks.js +8 -0
- package/dist/cjs/chart/topTracks.js.map +1 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/createOptions.js +23 -0
- package/dist/cjs/createOptions.js.map +1 -1
- package/dist/cjs/geo/getTopArtists.js +10 -0
- package/dist/cjs/geo/getTopArtists.js.map +1 -1
- package/dist/cjs/geo/getTopTracks.js +10 -0
- package/dist/cjs/geo/getTopTracks.js.map +1 -1
- package/dist/cjs/getFriends.js +6 -3
- package/dist/cjs/getFriends.js.map +1 -1
- package/dist/cjs/getInfo.js +5 -3
- package/dist/cjs/getInfo.js.map +1 -1
- package/dist/cjs/getLovedTracks.js +7 -3
- package/dist/cjs/getLovedTracks.js.map +1 -1
- package/dist/cjs/getRecentTracks.js +7 -3
- package/dist/cjs/getRecentTracks.js.map +1 -1
- package/dist/cjs/getTopAlbums.js +7 -3
- package/dist/cjs/getTopAlbums.js.map +1 -1
- package/dist/cjs/getTopArtists.js +7 -3
- package/dist/cjs/getTopArtists.js.map +1 -1
- package/dist/cjs/getTopTracks.js +7 -3
- package/dist/cjs/getTopTracks.js.map +1 -1
- package/dist/cjs/getUserTopTags.js +6 -3
- package/dist/cjs/getUserTopTags.js.map +1 -1
- package/dist/cjs/getWeeklyAlbumChart.js +7 -3
- package/dist/cjs/getWeeklyAlbumChart.js.map +1 -1
- package/dist/cjs/getWeeklyArtistChart.js +7 -3
- package/dist/cjs/getWeeklyArtistChart.js.map +1 -1
- package/dist/cjs/getWeeklyChartList.js +8 -3
- package/dist/cjs/getWeeklyChartList.js.map +1 -1
- package/dist/cjs/getWeeklyTrackChart.js +7 -3
- package/dist/cjs/getWeeklyTrackChart.js.map +1 -1
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/library/getArtists.js +10 -0
- package/dist/cjs/library/getArtists.js.map +1 -1
- package/dist/cjs/md5.js +80 -0
- package/dist/cjs/md5.js.map +1 -0
- package/dist/cjs/method.js +11 -0
- package/dist/cjs/method.js.map +1 -1
- package/dist/cjs/request.js +32 -2
- package/dist/cjs/request.js.map +1 -1
- package/dist/cjs/tag/getInfo.js +9 -0
- package/dist/cjs/tag/getInfo.js.map +1 -1
- package/dist/cjs/tag/getSimilar.js +8 -0
- package/dist/cjs/tag/getSimilar.js.map +1 -1
- package/dist/cjs/tag/getTopAlbums.js +10 -0
- package/dist/cjs/tag/getTopAlbums.js.map +1 -1
- package/dist/cjs/tag/getTopArtists.js +10 -0
- package/dist/cjs/tag/getTopArtists.js.map +1 -1
- package/dist/cjs/tag/getTopTags.js +7 -0
- package/dist/cjs/tag/getTopTags.js.map +1 -1
- package/dist/cjs/tag/getWeeklyChartList.js +9 -0
- package/dist/cjs/tag/getWeeklyChartList.js.map +1 -1
- package/dist/cjs/tag/topTracks.js +6 -3
- package/dist/cjs/tag/topTracks.js.map +1 -1
- package/dist/cjs/track/addTags.js +11 -0
- package/dist/cjs/track/addTags.js.map +1 -1
- package/dist/cjs/track/getCorrection.js +10 -0
- package/dist/cjs/track/getCorrection.js.map +1 -1
- package/dist/cjs/track/getInfo.js +11 -0
- package/dist/cjs/track/getInfo.js.map +1 -1
- package/dist/cjs/track/getSimilar.js +11 -0
- package/dist/cjs/track/getSimilar.js.map +1 -1
- package/dist/cjs/track/getTags.js +11 -0
- package/dist/cjs/track/getTags.js.map +1 -1
- package/dist/cjs/track/getTopTags.js +10 -0
- package/dist/cjs/track/getTopTags.js.map +1 -1
- package/dist/cjs/track/love.js +10 -0
- package/dist/cjs/track/love.js.map +1 -1
- package/dist/cjs/track/removeTag.js +11 -0
- package/dist/cjs/track/removeTag.js.map +1 -1
- package/dist/cjs/track/scrobble.js +12 -0
- package/dist/cjs/track/scrobble.js.map +1 -1
- package/dist/cjs/track/search.js +11 -0
- package/dist/cjs/track/search.js.map +1 -1
- package/dist/cjs/track/unlove.js +10 -0
- package/dist/cjs/track/unlove.js.map +1 -1
- package/dist/cjs/track/updateNowPlaying.js +11 -0
- package/dist/cjs/track/updateNowPlaying.js.map +1 -1
- package/dist/cjs/user/getPersonalTags.js +12 -0
- package/dist/cjs/user/getPersonalTags.js.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/createOptions.js +23 -0
- package/dist/createOptions.js.map +1 -1
- package/dist/geo/getTopArtists.js +10 -0
- package/dist/geo/getTopArtists.js.map +1 -1
- package/dist/geo/getTopTracks.js +10 -0
- package/dist/geo/getTopTracks.js.map +1 -1
- package/dist/getFriends.js +6 -3
- package/dist/getFriends.js.map +1 -1
- package/dist/getInfo.js +5 -3
- package/dist/getInfo.js.map +1 -1
- package/dist/getLovedTracks.js +7 -3
- package/dist/getLovedTracks.js.map +1 -1
- package/dist/getRecentTracks.js +7 -3
- package/dist/getRecentTracks.js.map +1 -1
- package/dist/getTopAlbums.js +7 -3
- package/dist/getTopAlbums.js.map +1 -1
- package/dist/getTopArtists.js +7 -3
- package/dist/getTopArtists.js.map +1 -1
- package/dist/getTopTracks.js +7 -3
- package/dist/getTopTracks.js.map +1 -1
- package/dist/getUserTopTags.js +6 -3
- package/dist/getUserTopTags.js.map +1 -1
- package/dist/getWeeklyAlbumChart.js +7 -3
- package/dist/getWeeklyAlbumChart.js.map +1 -1
- package/dist/getWeeklyArtistChart.js +7 -3
- package/dist/getWeeklyArtistChart.js.map +1 -1
- package/dist/getWeeklyChartList.js +8 -3
- package/dist/getWeeklyChartList.js.map +1 -1
- package/dist/getWeeklyTrackChart.js +7 -3
- package/dist/getWeeklyTrackChart.js.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/library/getArtists.js +10 -0
- package/dist/library/getArtists.js.map +1 -1
- package/dist/md5.js +77 -0
- package/dist/md5.js.map +1 -0
- package/dist/method.js +11 -0
- package/dist/method.js.map +1 -1
- package/dist/request.js +32 -2
- package/dist/request.js.map +1 -1
- package/dist/tag/getInfo.js +9 -0
- package/dist/tag/getInfo.js.map +1 -1
- package/dist/tag/getSimilar.js +8 -0
- package/dist/tag/getSimilar.js.map +1 -1
- package/dist/tag/getTopAlbums.js +10 -0
- package/dist/tag/getTopAlbums.js.map +1 -1
- package/dist/tag/getTopArtists.js +10 -0
- package/dist/tag/getTopArtists.js.map +1 -1
- package/dist/tag/getTopTags.js +7 -0
- package/dist/tag/getTopTags.js.map +1 -1
- package/dist/tag/getWeeklyChartList.js +9 -0
- package/dist/tag/getWeeklyChartList.js.map +1 -1
- package/dist/tag/topTracks.js +6 -3
- package/dist/tag/topTracks.js.map +1 -1
- package/dist/track/addTags.js +11 -0
- package/dist/track/addTags.js.map +1 -1
- package/dist/track/getCorrection.js +10 -0
- package/dist/track/getCorrection.js.map +1 -1
- package/dist/track/getInfo.js +11 -0
- package/dist/track/getInfo.js.map +1 -1
- package/dist/track/getSimilar.js +11 -0
- package/dist/track/getSimilar.js.map +1 -1
- package/dist/track/getTags.js +11 -0
- package/dist/track/getTags.js.map +1 -1
- package/dist/track/getTopTags.js +10 -0
- package/dist/track/getTopTags.js.map +1 -1
- package/dist/track/love.js +10 -0
- package/dist/track/love.js.map +1 -1
- package/dist/track/removeTag.js +11 -0
- package/dist/track/removeTag.js.map +1 -1
- package/dist/track/scrobble.js +12 -0
- package/dist/track/scrobble.js.map +1 -1
- package/dist/track/search.js +11 -0
- package/dist/track/search.js.map +1 -1
- package/dist/track/unlove.js +10 -0
- package/dist/track/unlove.js.map +1 -1
- package/dist/track/updateNowPlaying.js +11 -0
- package/dist/track/updateNowPlaying.js.map +1 -1
- package/dist/user/getPersonalTags.js +12 -0
- package/dist/user/getPersonalTags.js.map +1 -1
- package/package.json +13 -10
package/dist/cjs/method.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/method.ts"],"names":[],"mappings":";;;AA6GA;;;;;;;;;;GAUG;AACU,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,kBAAkB;QAC9B,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,gBAAgB;QACzB,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,mBAAmB;QAC/B,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,qBAAqB;QACnC,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,qBAAqB;QACnC,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,eAAe;KACxB;IACD,IAAI,EAAE;QACJ,gBAAgB,EAAE,uBAAuB;QACzC,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,eAAe;KAC1B;IACD,KAAK,EAAE;QACL,YAAY,EAAE,oBAAoB;QAClC,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,qBAAqB;KACrC;IACD,GAAG,EAAE;QACH,aAAa,EAAE,mBAAmB;QAClC,YAAY,EAAE,kBAAkB;KACjC;IACD,OAAO,EAAE;QACP,UAAU,EAAE,oBAAoB;KACjC;IACD,GAAG,EAAE;QACH,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,kBAAkB;QAChC,aAAa,EAAE,mBAAmB;QAClC,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,kBAAkB;QAChC,kBAAkB,EAAE,wBAAwB;KAC7C;IACD,KAAK,EAAE;QACL,OAAO,EAAE,eAAe;QACxB,aAAa,EAAE,qBAAqB;QACpC,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,gBAAgB;QAC1B,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,cAAc;QACtB,gBAAgB,EAAE,wBAAwB;KAC3C;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,cAAc;QACvB,cAAc,EAAE,qBAAqB;QACrC,eAAe,EAAE,sBAAsB;QACvC,eAAe,EAAE,sBAAsB;QACvC,YAAY,EAAE,mBAAmB;QACjC,aAAa,EAAE,oBAAoB;QACnC,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,mBAAmB;QACjC,mBAAmB,EAAE,0BAA0B;QAC/C,oBAAoB,EAAE,2BAA2B;QACjD,kBAAkB,EAAE,yBAAyB;QAC7C,mBAAmB,EAAE,0BAA0B;KAChD;CACF,CAAC"}
|
package/dist/cjs/request.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.signedRequest = void 0;
|
|
4
|
-
const node_crypto_1 = require("node:crypto");
|
|
5
4
|
const config_js_1 = require("./config.js");
|
|
5
|
+
const md5_js_1 = require("./md5.js");
|
|
6
|
+
/**
|
|
7
|
+
* Last.fm API error codes.
|
|
8
|
+
* @see https://www.last.fm/api/errorcodes
|
|
9
|
+
*/
|
|
6
10
|
var ErrorResponse;
|
|
7
11
|
(function (ErrorResponse) {
|
|
8
12
|
ErrorResponse[ErrorResponse["InvalidService"] = 2] = "InvalidService";
|
|
@@ -20,6 +24,13 @@ var ErrorResponse;
|
|
|
20
24
|
ErrorResponse[ErrorResponse["SuspendedAPIKey"] = 26] = "SuspendedAPIKey";
|
|
21
25
|
ErrorResponse[ErrorResponse["RateLimitExceeded"] = 29] = "RateLimitExceeded";
|
|
22
26
|
})(ErrorResponse || (ErrorResponse = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Assembles the full Last.fm API request URL from the given options,
|
|
29
|
+
* appending the API key and JSON format automatically.
|
|
30
|
+
*
|
|
31
|
+
* @param options - Request options containing the method and any query parameters
|
|
32
|
+
* @returns The fully-formed URL string
|
|
33
|
+
*/
|
|
23
34
|
const buildUrl = (options) => {
|
|
24
35
|
const params = new URLSearchParams();
|
|
25
36
|
params.append('method', options.method);
|
|
@@ -81,6 +92,14 @@ const ErrorMessages = {
|
|
|
81
92
|
[ErrorResponse.SuspendedAPIKey]: 'Suspended API key',
|
|
82
93
|
[ErrorResponse.RateLimitExceeded]: 'Rate limit exceeded',
|
|
83
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* Performs a GET request to the Last.fm API.
|
|
97
|
+
*
|
|
98
|
+
* Throws an `Error` on HTTP failure or if the Last.fm response body contains an error code.
|
|
99
|
+
*
|
|
100
|
+
* @param options - Request options specifying the method and query parameters
|
|
101
|
+
* @returns The parsed JSON response typed as `Response`
|
|
102
|
+
*/
|
|
84
103
|
const request = async (options) => {
|
|
85
104
|
const url = buildUrl(options);
|
|
86
105
|
const res = await fetch(url, {
|
|
@@ -98,6 +117,17 @@ const request = async (options) => {
|
|
|
98
117
|
}
|
|
99
118
|
return body;
|
|
100
119
|
};
|
|
120
|
+
/**
|
|
121
|
+
* Performs an MD5-signed POST request to the Last.fm API.
|
|
122
|
+
*
|
|
123
|
+
* Used for write operations (scrobble, love, addTags, auth sessions).
|
|
124
|
+
* Generates an `api_sig` by sorting all parameters alphabetically, concatenating
|
|
125
|
+
* `key+value` pairs, appending the shared secret, and MD5-hashing the result.
|
|
126
|
+
*
|
|
127
|
+
* @param options - Request options specifying the method and POST body parameters
|
|
128
|
+
* @param secret - The Last.fm shared secret used to generate the API signature
|
|
129
|
+
* @returns The parsed JSON response typed as `Response`
|
|
130
|
+
*/
|
|
101
131
|
const signedRequest = async (options, secret) => {
|
|
102
132
|
const params = new URLSearchParams();
|
|
103
133
|
// Collect all params (excluding format/callback)
|
|
@@ -145,7 +175,7 @@ const signedRequest = async (options, secret) => {
|
|
|
145
175
|
// Generate signature: sort keys alphabetically, concatenate key+value, append secret, MD5
|
|
146
176
|
const sortedKeys = Object.keys(sigParams).sort();
|
|
147
177
|
const sigString = sortedKeys.map(k => `${k}${sigParams[k]}`).join('') + secret;
|
|
148
|
-
const apiSig = (0,
|
|
178
|
+
const apiSig = (0, md5_js_1.md5)(sigString);
|
|
149
179
|
// Build POST body
|
|
150
180
|
for (const [k, v] of Object.entries(sigParams)) {
|
|
151
181
|
params.append(k, v);
|
package/dist/cjs/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/tag/getInfo.js
CHANGED
|
@@ -5,6 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetInfo = tagGetInfo;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the metadata for a tag on Last.fm. Includes a short wiki summary.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getInfo
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getInfo`)
|
|
13
|
+
* @param tag - The tag name
|
|
14
|
+
* @param lang - ISO 639 alpha-2 language code for the wiki text (default `'en'`)
|
|
15
|
+
* @returns Tag metadata including wiki text and reach
|
|
16
|
+
*/
|
|
8
17
|
async function tagGetInfo(method, tag, lang = 'en') {
|
|
9
18
|
return await (0, request_js_1.default)({ method, tag, lang });
|
|
10
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../../src/tag/getInfo.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../../src/tag/getInfo.ts"],"names":[],"mappings":";;;;;AAYA,gCAEC;AAbD,+DAAoC;AAEpC;;;;;;;;GAQG;AACI,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,IAAI,GAAG,IAAI;IACvE,OAAO,MAAM,IAAA,oBAAO,EAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -5,6 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetSimilar = tagGetSimilar;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Search for tags similar to this one on Last.fm. Returns tags ranked by similarity.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getSimilar
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getSimilar`)
|
|
13
|
+
* @param tag - The tag name to find similar tags for
|
|
14
|
+
* @returns A list of similar tags
|
|
15
|
+
*/
|
|
8
16
|
async function tagGetSimilar(method, tag) {
|
|
9
17
|
return await (0, request_js_1.default)({ method, tag });
|
|
10
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../../src/tag/getSimilar.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../../src/tag/getSimilar.ts"],"names":[],"mappings":";;;;;AAWA,sCAEC;AAZD,+DAAoC;AAEpC;;;;;;;GAOG;AACI,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,GAAW;IAC7D,OAAO,MAAM,IAAA,oBAAO,EAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -5,6 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetTopAlbums = tagGetTopAlbums;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the top albums tagged with a given tag on Last.fm, ordered by tag count.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getTopAlbums
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getTopAlbums`)
|
|
13
|
+
* @param tag - The tag name
|
|
14
|
+
* @param limit - Number of results per page (default `'50'`)
|
|
15
|
+
* @param page - Page number to fetch (default `'1'`)
|
|
16
|
+
* @returns Paginated list of top albums for the given tag
|
|
17
|
+
*/
|
|
8
18
|
async function tagGetTopAlbums(method, tag, limit = '50', page = '1') {
|
|
9
19
|
return await (0, request_js_1.default)({ method, tag, limit, page });
|
|
10
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../../../src/tag/getTopAlbums.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../../../src/tag/getTopAlbums.ts"],"names":[],"mappings":";;;;;AAaA,0CAEC;AAdD,+DAAoC;AAEpC;;;;;;;;;GASG;AACI,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IACzF,OAAO,MAAM,IAAA,oBAAO,EAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -5,6 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetTopArtists = tagGetTopArtists;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the top artists tagged with a given tag on Last.fm, ordered by tag count.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getTopArtists
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getTopArtists`)
|
|
13
|
+
* @param tag - The tag name
|
|
14
|
+
* @param limit - Number of results per page (default `'50'`)
|
|
15
|
+
* @param page - Page number to fetch (default `'1'`)
|
|
16
|
+
* @returns Paginated list of top artists for the given tag
|
|
17
|
+
*/
|
|
8
18
|
async function tagGetTopArtists(method, tag, limit = '50', page = '1') {
|
|
9
19
|
return await (0, request_js_1.default)({ method, tag, limit, page });
|
|
10
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../../../src/tag/getTopArtists.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../../../src/tag/getTopArtists.ts"],"names":[],"mappings":";;;;;AAaA,4CAEC;AAdD,+DAAoC;AAEpC;;;;;;;;;GASG;AACI,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAC1F,OAAO,MAAM,IAAA,oBAAO,EAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -5,6 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetTopTags = tagGetTopTags;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Fetches the top global tags on Last.fm, sorted by popularity (number of times used).
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getTopTags
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getTopTags`)
|
|
13
|
+
* @returns The top tags on Last.fm ordered by usage count
|
|
14
|
+
*/
|
|
8
15
|
async function tagGetTopTags(method) {
|
|
9
16
|
return await (0, request_js_1.default)({ method });
|
|
10
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../../src/tag/getTopTags.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../../src/tag/getTopTags.ts"],"names":[],"mappings":";;;;;AAUA,sCAEC;AAXD,+DAAoC;AAEpC;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,OAAO,MAAM,IAAA,oBAAO,EAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -5,6 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.tagGetWeeklyChartList = tagGetWeeklyChartList;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get a list of available charts for this tag, expressed as date ranges which can be
|
|
10
|
+
* sent to the chart services.
|
|
11
|
+
*
|
|
12
|
+
* @see https://www.last.fm/api/show/tag.getWeeklyChartList
|
|
13
|
+
* @param method - The Last.fm API method string (`method.tag.getWeeklyChartList`)
|
|
14
|
+
* @param tag - The tag name
|
|
15
|
+
* @returns A list of date ranges representing available weekly charts for this tag
|
|
16
|
+
*/
|
|
8
17
|
async function tagGetWeeklyChartList(method, tag) {
|
|
9
18
|
return await (0, request_js_1.default)({ method, tag });
|
|
10
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../../../src/tag/getWeeklyChartList.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../../../src/tag/getWeeklyChartList.ts"],"names":[],"mappings":";;;;;AAYA,sDAEC;AAbD,+DAAoC;AAEpC;;;;;;;;GAQG;AACI,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,GAAW;IACrE,OAAO,MAAM,IAAA,oBAAO,EAA6B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.tagTopTracks = tagTopTracks;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Get the top tracks tagged with a given tag on Last.fm, ordered by tag count.
|
|
10
10
|
*
|
|
11
|
-
* https://www.last.fm/api/show/tag.getTopTracks
|
|
12
|
-
* @
|
|
11
|
+
* @see https://www.last.fm/api/show/tag.getTopTracks
|
|
12
|
+
* @param method - The Last.fm API method string (`method.tag.getTopTracks`)
|
|
13
|
+
* @param tag - The tag name
|
|
14
|
+
* @param limit - Number of results to return
|
|
15
|
+
* @returns Top tracks for the given tag ordered by tag count
|
|
13
16
|
*/
|
|
14
17
|
async function tagTopTracks(method, tag, limit) {
|
|
15
18
|
return await (0, request_js_1.default)({ method, tag, limit });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topTracks.js","sourceRoot":"","sources":["../../../src/tag/topTracks.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"topTracks.js","sourceRoot":"","sources":["../../../src/tag/topTracks.ts"],"names":[],"mappings":";;;;;AAYA,oCAMC;AAjBD,+DAAoC;AAEpC;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,GAAW,EACX,KAAa;IAEb,OAAO,MAAM,IAAA,oBAAO,EAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -3,6 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackAddTags = trackAddTags;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* Tag a track using a list of user-supplied tags. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.addTags
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.addTags`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param tags - A comma-separated list of tags to apply (max 10)
|
|
14
|
+
* @param sk - A session key obtained via the auth flow
|
|
15
|
+
* @returns Authentication response confirming the operation
|
|
16
|
+
*/
|
|
6
17
|
async function trackAddTags(method, artist, track, tags, sk) {
|
|
7
18
|
return await (0, request_js_1.signedRequest)({ method, artist, track, tags, sk }, config_js_1.config.share_secret);
|
|
8
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addTags.js","sourceRoot":"","sources":["../../../src/track/addTags.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"addTags.js","sourceRoot":"","sources":["../../../src/track/addTags.ts"],"names":[],"mappings":";;AAeA,oCAEC;AAhBD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,EAAU;IACxG,OAAO,MAAM,IAAA,0BAAa,EAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -5,6 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackGetCorrection = trackGetCorrection;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Use the Last.fm corrections data to check whether the supplied track has a correction
|
|
10
|
+
* to a canonical track and artist name.
|
|
11
|
+
*
|
|
12
|
+
* @see https://www.last.fm/api/show/track.getCorrection
|
|
13
|
+
* @param method - The Last.fm API method string (`method.track.getCorrection`)
|
|
14
|
+
* @param artist - The artist name
|
|
15
|
+
* @param track - The track name to check for a correction
|
|
16
|
+
* @returns The corrected canonical track and artist name if one exists
|
|
17
|
+
*/
|
|
8
18
|
async function trackGetCorrection(method, artist, track) {
|
|
9
19
|
return await (0, request_js_1.default)({ method, artist, track });
|
|
10
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCorrection.js","sourceRoot":"","sources":["../../../src/track/getCorrection.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getCorrection.js","sourceRoot":"","sources":["../../../src/track/getCorrection.ts"],"names":[],"mappings":";;;;;AAaA,gDAEC;AAdD,+DAAoC;AAEpC;;;;;;;;;GASG;AACI,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;IACpF,OAAO,MAAM,IAAA,oBAAO,EAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -5,6 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackGetInfo = trackGetInfo;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the metadata for a track on Last.fm. Includes wiki text, tags, and similar tracks.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/track.getInfo
|
|
12
|
+
* @param method - The Last.fm API method string (`method.track.getInfo`)
|
|
13
|
+
* @param artist - The artist name
|
|
14
|
+
* @param track - The track name
|
|
15
|
+
* @param autocorrect - Set to `'1'` to auto-correct misspelled names (default `'1'`)
|
|
16
|
+
* @param lang - ISO 639 alpha-2 language code for the wiki text (default `'en'`)
|
|
17
|
+
* @returns Track metadata including duration, play count, wiki, and top tags
|
|
18
|
+
*/
|
|
8
19
|
async function trackGetInfo(method, artist, track, autocorrect = '1', lang = 'en') {
|
|
9
20
|
return await (0, request_js_1.default)({ method, artist, track, autocorrect, lang });
|
|
10
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../../src/track/getInfo.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../../src/track/getInfo.ts"],"names":[],"mappings":";;;;;AAcA,oCAEC;AAfD,+DAAoC;AAEpC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI;IAC9G,OAAO,MAAM,IAAA,oBAAO,EAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -5,6 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackGetSimilar = trackGetSimilar;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the similar tracks for this track on Last.fm, based on listening data.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/track.getSimilar
|
|
12
|
+
* @param method - The Last.fm API method string (`method.track.getSimilar`)
|
|
13
|
+
* @param artist - The artist name
|
|
14
|
+
* @param track - The track name
|
|
15
|
+
* @param limit - Maximum number of similar tracks to return (default `'30'`)
|
|
16
|
+
* @param autocorrect - Set to `'1'` to auto-correct misspelled names (default `'1'`)
|
|
17
|
+
* @returns A list of similar tracks with match scores
|
|
18
|
+
*/
|
|
8
19
|
async function trackGetSimilar(method, artist, track, limit = '30', autocorrect = '1') {
|
|
9
20
|
return await (0, request_js_1.default)({ method, artist, track, limit, autocorrect });
|
|
10
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../../src/track/getSimilar.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../../src/track/getSimilar.ts"],"names":[],"mappings":";;;;;AAcA,0CAEC;AAfD,+DAAoC;AAEpC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAK,GAAG,IAAI,EAAE,WAAW,GAAG,GAAG;IAClH,OAAO,MAAM,IAAA,oBAAO,EAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -5,6 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackGetTags = trackGetTags;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the tags applied by an individual user to a track on Last.fm.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/track.getTags
|
|
12
|
+
* @param method - The Last.fm API method string (`method.track.getTags`)
|
|
13
|
+
* @param artist - The artist name
|
|
14
|
+
* @param track - The track name
|
|
15
|
+
* @param user - The Last.fm username whose tags to retrieve
|
|
16
|
+
* @param autocorrect - Set to `'1'` to auto-correct misspelled names (default `'1'`)
|
|
17
|
+
* @returns Tags applied by the user to this track
|
|
18
|
+
*/
|
|
8
19
|
async function trackGetTags(method, artist, track, user, autocorrect = '1') {
|
|
9
20
|
return await (0, request_js_1.default)({ method, artist, track, user, autocorrect });
|
|
10
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTags.js","sourceRoot":"","sources":["../../../src/track/getTags.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getTags.js","sourceRoot":"","sources":["../../../src/track/getTags.ts"],"names":[],"mappings":";;;;;AAcA,oCAEC;AAfD,+DAAoC;AAEpC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,WAAW,GAAG,GAAG;IAC/G,OAAO,MAAM,IAAA,oBAAO,EAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -5,6 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackGetTopTags = trackGetTopTags;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the top tags for a track on Last.fm, ordered by popularity.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/track.getTopTags
|
|
12
|
+
* @param method - The Last.fm API method string (`method.track.getTopTags`)
|
|
13
|
+
* @param artist - The artist name
|
|
14
|
+
* @param track - The track name
|
|
15
|
+
* @param autocorrect - Set to `'1'` to auto-correct misspelled names (default `'1'`)
|
|
16
|
+
* @returns Top tags for the track ordered by tag count
|
|
17
|
+
*/
|
|
8
18
|
async function trackGetTopTags(method, artist, track, autocorrect = '1') {
|
|
9
19
|
return await (0, request_js_1.default)({ method, artist, track, autocorrect });
|
|
10
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../../src/track/getTopTags.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../../src/track/getTopTags.ts"],"names":[],"mappings":";;;;;AAaA,0CAEC;AAdD,+DAAoC;AAEpC;;;;;;;;;GASG;AACI,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,WAAW,GAAG,GAAG;IACpG,OAAO,MAAM,IAAA,oBAAO,EAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AACrF,CAAC"}
|
package/dist/cjs/track/love.js
CHANGED
|
@@ -3,6 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackLove = trackLove;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* Love a track for the authenticated user. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.love
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.love`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param sk - A session key obtained via the auth flow
|
|
14
|
+
* @returns Authentication response confirming the operation
|
|
15
|
+
*/
|
|
6
16
|
async function trackLove(method, artist, track, sk) {
|
|
7
17
|
return await (0, request_js_1.signedRequest)({ method, artist, track, sk }, config_js_1.config.share_secret);
|
|
8
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"love.js","sourceRoot":"","sources":["../../../src/track/love.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"love.js","sourceRoot":"","sources":["../../../src/track/love.ts"],"names":[],"mappings":";;AAcA,8BAEC;AAfD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;GASG;AACI,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,EAAU;IACvF,OAAO,MAAM,IAAA,0BAAa,EAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -3,6 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackRemoveTag = trackRemoveTag;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* Remove a user-applied tag from a track. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.removeTag
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.removeTag`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param tag - A single tag to remove from the track
|
|
14
|
+
* @param sk - A session key obtained via the auth flow
|
|
15
|
+
* @returns Authentication response confirming the operation
|
|
16
|
+
*/
|
|
6
17
|
async function trackRemoveTag(method, artist, track, tag, sk) {
|
|
7
18
|
return await (0, request_js_1.signedRequest)({ method, artist, track, tag, sk }, config_js_1.config.share_secret);
|
|
8
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeTag.js","sourceRoot":"","sources":["../../../src/track/removeTag.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"removeTag.js","sourceRoot":"","sources":["../../../src/track/removeTag.ts"],"names":[],"mappings":";;AAeA,wCAEC;AAhBD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,GAAW,EAAE,EAAU;IACzG,OAAO,MAAM,IAAA,0BAAa,EAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AACpG,CAAC"}
|
|
@@ -3,6 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackScrobble = trackScrobble;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* Add a track-play to a user's scrobble history. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.scrobble
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.scrobble`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param timestamp - Unix timestamp of when the track was listened to
|
|
14
|
+
* @param album - The album name
|
|
15
|
+
* @param sk - A session key obtained via the auth flow
|
|
16
|
+
* @returns The accepted and ignored scrobble counts
|
|
17
|
+
*/
|
|
6
18
|
async function trackScrobble(method, artist, track, timestamp, album, sk) {
|
|
7
19
|
return await (0, request_js_1.signedRequest)({ method, artist, track, timestamp, album, sk }, config_js_1.config.share_secret);
|
|
8
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrobble.js","sourceRoot":"","sources":["../../../src/track/scrobble.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"scrobble.js","sourceRoot":"","sources":["../../../src/track/scrobble.ts"],"names":[],"mappings":";;AAgBA,sCAEC;AAjBD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,EAAU;IAC7H,OAAO,MAAM,IAAA,0BAAa,EAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AACrH,CAAC"}
|
package/dist/cjs/track/search.js
CHANGED
|
@@ -5,6 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.trackSearch = trackSearch;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Search for a track by track name, optionally filtered by artist. Returns paginated results.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/track.search
|
|
12
|
+
* @param method - The Last.fm API method string (`method.track.search`)
|
|
13
|
+
* @param track - The track name to search for
|
|
14
|
+
* @param artist - Optionally narrow results to tracks by this artist
|
|
15
|
+
* @param limit - Number of results per page (default `'30'`)
|
|
16
|
+
* @param page - Page number to fetch (default `'1'`)
|
|
17
|
+
* @returns Paginated track search results
|
|
18
|
+
*/
|
|
8
19
|
async function trackSearch(method, track, artist, limit = '30', page = '1') {
|
|
9
20
|
return await (0, request_js_1.default)({ method, track, artist, limit, page });
|
|
10
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/track/search.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/track/search.ts"],"names":[],"mappings":";;;;;AAcA,kCAEC;AAfD,+DAAoC;AAEpC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,KAAa,EAAE,MAAe,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IACxG,OAAO,MAAM,IAAA,oBAAO,EAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC"}
|
package/dist/cjs/track/unlove.js
CHANGED
|
@@ -3,6 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackUnlove = trackUnlove;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* UnLove a track for the authenticated user. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.unlove
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.unlove`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param sk - A session key obtained via the auth flow
|
|
14
|
+
* @returns Authentication response confirming the operation
|
|
15
|
+
*/
|
|
6
16
|
async function trackUnlove(method, artist, track, sk) {
|
|
7
17
|
return await (0, request_js_1.signedRequest)({ method, artist, track, sk }, config_js_1.config.share_secret);
|
|
8
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlove.js","sourceRoot":"","sources":["../../../src/track/unlove.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"unlove.js","sourceRoot":"","sources":["../../../src/track/unlove.ts"],"names":[],"mappings":";;AAcA,kCAEC;AAfD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;GASG;AACI,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,EAAU;IACzF,OAAO,MAAM,IAAA,0BAAa,EAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -3,6 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.trackUpdateNowPlaying = trackUpdateNowPlaying;
|
|
4
4
|
const request_js_1 = require("../request.js");
|
|
5
5
|
const config_js_1 = require("../config.js");
|
|
6
|
+
/**
|
|
7
|
+
* Notify Last.fm that a user has started listening to a track. Requires authentication.
|
|
8
|
+
*
|
|
9
|
+
* @see https://www.last.fm/api/show/track.updateNowPlaying
|
|
10
|
+
* @param method - The Last.fm API method string (`method.track.updateNowPlaying`)
|
|
11
|
+
* @param artist - The artist name
|
|
12
|
+
* @param track - The track name
|
|
13
|
+
* @param album - The album name
|
|
14
|
+
* @param sk - A session key obtained via the auth flow
|
|
15
|
+
* @returns Authentication response confirming the now-playing update
|
|
16
|
+
*/
|
|
6
17
|
async function trackUpdateNowPlaying(method, artist, track, album, sk) {
|
|
7
18
|
return await (0, request_js_1.signedRequest)({ method, artist, track, album, sk }, config_js_1.config.share_secret);
|
|
8
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateNowPlaying.js","sourceRoot":"","sources":["../../../src/track/updateNowPlaying.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"updateNowPlaying.js","sourceRoot":"","sources":["../../../src/track/updateNowPlaying.ts"],"names":[],"mappings":";;AAeA,sDAEC;AAhBD,8CAA8C;AAC9C,4CAAsC;AAEtC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,KAAa,EAAE,EAAU;IAClH,OAAO,MAAM,IAAA,0BAAa,EAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAM,CAAC,YAAY,CAAC,CAAC;AACtG,CAAC"}
|
|
@@ -5,6 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.userGetPersonalTags = userGetPersonalTags;
|
|
7
7
|
const request_js_1 = __importDefault(require("../request.js"));
|
|
8
|
+
/**
|
|
9
|
+
* Get the items tagged by a user, of the type specified, filtered by tag.
|
|
10
|
+
*
|
|
11
|
+
* @see https://www.last.fm/api/show/user.getPersonalTags
|
|
12
|
+
* @param method - The Last.fm API method string (`method.user.getPersonalTags`)
|
|
13
|
+
* @param user - The Last.fm username
|
|
14
|
+
* @param tag - The tag to filter by
|
|
15
|
+
* @param taggingtype - The type of items tagged (`artist`, `album`, or `track`)
|
|
16
|
+
* @param limit - Number of results per page (default `'50'`)
|
|
17
|
+
* @param page - Page number to fetch (default `'1'`)
|
|
18
|
+
* @returns Paginated list of items tagged by the user with the given tag
|
|
19
|
+
*/
|
|
8
20
|
async function userGetPersonalTags(method, user, tag, taggingtype, limit = '50', page = '1') {
|
|
9
21
|
return await (0, request_js_1.default)({ method, user, tag, limit, page });
|
|
10
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPersonalTags.js","sourceRoot":"","sources":["../../../src/user/getPersonalTags.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getPersonalTags.js","sourceRoot":"","sources":["../../../src/user/getPersonalTags.ts"],"names":[],"mappings":";;;;;AAeA,kDAEC;AAhBD,+DAAoC;AAEpC;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAY,EAAE,GAAW,EAAE,WAAmB,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAChI,OAAO,MAAM,IAAA,oBAAO,EAA2B,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrF,CAAC"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;IACxC,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;IACzC,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;IAC9C,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;KACX;IACD,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;IACnD,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;CACvC,CAAC"}
|