lastfm-nodejs-client 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +140 -74
  2. package/dist/@types/album/addTags.d.ts +11 -0
  3. package/dist/@types/album/getInfo.d.ts +11 -0
  4. package/dist/@types/album/getTags.d.ts +11 -0
  5. package/dist/@types/album/getTopTags.d.ts +10 -0
  6. package/dist/@types/album/removeTag.d.ts +11 -0
  7. package/dist/@types/album/search.d.ts +10 -0
  8. package/dist/@types/artist/addTags.d.ts +10 -0
  9. package/dist/@types/artist/getCorrection.d.ts +9 -0
  10. package/dist/@types/artist/getInfo.d.ts +10 -0
  11. package/dist/@types/artist/getSimilar.d.ts +10 -0
  12. package/dist/@types/artist/getTags.d.ts +10 -0
  13. package/dist/@types/artist/getTopAlbums.d.ts +11 -0
  14. package/dist/@types/artist/getTopTags.d.ts +9 -0
  15. package/dist/@types/artist/getTopTracks.d.ts +11 -0
  16. package/dist/@types/artist/removeTag.d.ts +10 -0
  17. package/dist/@types/artist/search.d.ts +10 -0
  18. package/dist/@types/auth/getMobileSession.d.ts +11 -0
  19. package/dist/@types/auth/getSession.d.ts +10 -0
  20. package/dist/@types/auth.d.ts +9 -6
  21. package/dist/@types/chart/topArtists.d.ts +11 -0
  22. package/dist/@types/chart/topTags.d.ts +8 -0
  23. package/dist/@types/chart/topTracks.d.ts +8 -0
  24. package/dist/@types/config.d.ts +13 -11
  25. package/dist/@types/createOptions.d.ts +23 -0
  26. package/dist/@types/geo/getTopArtists.d.ts +10 -0
  27. package/dist/@types/geo/getTopTracks.d.ts +10 -0
  28. package/dist/@types/getFriends.d.ts +6 -3
  29. package/dist/@types/getInfo.d.ts +5 -3
  30. package/dist/@types/getLovedTracks.d.ts +7 -3
  31. package/dist/@types/getRecentTracks.d.ts +7 -3
  32. package/dist/@types/getTopAlbums.d.ts +7 -3
  33. package/dist/@types/getTopArtists.d.ts +7 -3
  34. package/dist/@types/getTopTracks.d.ts +7 -3
  35. package/dist/@types/getUserTopTags.d.ts +6 -3
  36. package/dist/@types/getWeeklyAlbumChart.d.ts +7 -3
  37. package/dist/@types/getWeeklyArtistChart.d.ts +7 -3
  38. package/dist/@types/getWeeklyChartList.d.ts +8 -3
  39. package/dist/@types/getWeeklyTrackChart.d.ts +7 -3
  40. package/dist/@types/index.d.ts +31 -89
  41. package/dist/@types/library/getArtists.d.ts +10 -0
  42. package/dist/@types/method.d.ts +25 -77
  43. package/dist/@types/request.d.ts +23 -0
  44. package/dist/@types/tag/getInfo.d.ts +9 -0
  45. package/dist/@types/tag/getSimilar.d.ts +8 -0
  46. package/dist/@types/tag/getTopAlbums.d.ts +10 -0
  47. package/dist/@types/tag/getTopArtists.d.ts +10 -0
  48. package/dist/@types/tag/getTopTags.d.ts +7 -0
  49. package/dist/@types/tag/getWeeklyChartList.d.ts +9 -0
  50. package/dist/@types/tag/topTracks.d.ts +6 -3
  51. package/dist/@types/track/addTags.d.ts +11 -0
  52. package/dist/@types/track/getCorrection.d.ts +10 -0
  53. package/dist/@types/track/getInfo.d.ts +11 -0
  54. package/dist/@types/track/getSimilar.d.ts +11 -0
  55. package/dist/@types/track/getTags.d.ts +11 -0
  56. package/dist/@types/track/getTopTags.d.ts +10 -0
  57. package/dist/@types/track/love.d.ts +10 -0
  58. package/dist/@types/track/removeTag.d.ts +11 -0
  59. package/dist/@types/track/scrobble.d.ts +12 -0
  60. package/dist/@types/track/search.d.ts +11 -0
  61. package/dist/@types/track/unlove.d.ts +10 -0
  62. package/dist/@types/track/updateNowPlaying.d.ts +11 -0
  63. package/dist/@types/user/getPersonalTags.d.ts +12 -0
  64. package/dist/album/addTags.js +11 -0
  65. package/dist/album/addTags.js.map +1 -1
  66. package/dist/album/getInfo.js +11 -0
  67. package/dist/album/getInfo.js.map +1 -1
  68. package/dist/album/getTags.js +11 -0
  69. package/dist/album/getTags.js.map +1 -1
  70. package/dist/album/getTopTags.js +10 -0
  71. package/dist/album/getTopTags.js.map +1 -1
  72. package/dist/album/removeTag.js +11 -0
  73. package/dist/album/removeTag.js.map +1 -1
  74. package/dist/album/search.js +10 -0
  75. package/dist/album/search.js.map +1 -1
  76. package/dist/artist/addTags.js +10 -0
  77. package/dist/artist/addTags.js.map +1 -1
  78. package/dist/artist/getCorrection.js +9 -0
  79. package/dist/artist/getCorrection.js.map +1 -1
  80. package/dist/artist/getInfo.js +10 -0
  81. package/dist/artist/getInfo.js.map +1 -1
  82. package/dist/artist/getSimilar.js +10 -0
  83. package/dist/artist/getSimilar.js.map +1 -1
  84. package/dist/artist/getTags.js +10 -0
  85. package/dist/artist/getTags.js.map +1 -1
  86. package/dist/artist/getTopAlbums.js +11 -0
  87. package/dist/artist/getTopAlbums.js.map +1 -1
  88. package/dist/artist/getTopTags.js +9 -0
  89. package/dist/artist/getTopTags.js.map +1 -1
  90. package/dist/artist/getTopTracks.js +11 -0
  91. package/dist/artist/getTopTracks.js.map +1 -1
  92. package/dist/artist/removeTag.js +10 -0
  93. package/dist/artist/removeTag.js.map +1 -1
  94. package/dist/artist/search.js +10 -0
  95. package/dist/artist/search.js.map +1 -1
  96. package/dist/auth/getMobileSession.js +11 -0
  97. package/dist/auth/getMobileSession.js.map +1 -1
  98. package/dist/auth/getSession.js +10 -0
  99. package/dist/auth/getSession.js.map +1 -1
  100. package/dist/auth.js +9 -6
  101. package/dist/auth.js.map +1 -1
  102. package/dist/chart/topArtists.js +11 -0
  103. package/dist/chart/topArtists.js.map +1 -1
  104. package/dist/chart/topTags.js +8 -0
  105. package/dist/chart/topTags.js.map +1 -1
  106. package/dist/chart/topTracks.js +8 -0
  107. package/dist/chart/topTracks.js.map +1 -1
  108. package/dist/cjs/album/addTags.js +11 -0
  109. package/dist/cjs/album/addTags.js.map +1 -1
  110. package/dist/cjs/album/getInfo.js +11 -0
  111. package/dist/cjs/album/getInfo.js.map +1 -1
  112. package/dist/cjs/album/getTags.js +11 -0
  113. package/dist/cjs/album/getTags.js.map +1 -1
  114. package/dist/cjs/album/getTopTags.js +10 -0
  115. package/dist/cjs/album/getTopTags.js.map +1 -1
  116. package/dist/cjs/album/removeTag.js +11 -0
  117. package/dist/cjs/album/removeTag.js.map +1 -1
  118. package/dist/cjs/album/search.js +10 -0
  119. package/dist/cjs/album/search.js.map +1 -1
  120. package/dist/cjs/artist/addTags.js +10 -0
  121. package/dist/cjs/artist/addTags.js.map +1 -1
  122. package/dist/cjs/artist/getCorrection.js +9 -0
  123. package/dist/cjs/artist/getCorrection.js.map +1 -1
  124. package/dist/cjs/artist/getInfo.js +10 -0
  125. package/dist/cjs/artist/getInfo.js.map +1 -1
  126. package/dist/cjs/artist/getSimilar.js +10 -0
  127. package/dist/cjs/artist/getSimilar.js.map +1 -1
  128. package/dist/cjs/artist/getTags.js +10 -0
  129. package/dist/cjs/artist/getTags.js.map +1 -1
  130. package/dist/cjs/artist/getTopAlbums.js +11 -0
  131. package/dist/cjs/artist/getTopAlbums.js.map +1 -1
  132. package/dist/cjs/artist/getTopTags.js +9 -0
  133. package/dist/cjs/artist/getTopTags.js.map +1 -1
  134. package/dist/cjs/artist/getTopTracks.js +11 -0
  135. package/dist/cjs/artist/getTopTracks.js.map +1 -1
  136. package/dist/cjs/artist/removeTag.js +10 -0
  137. package/dist/cjs/artist/removeTag.js.map +1 -1
  138. package/dist/cjs/artist/search.js +10 -0
  139. package/dist/cjs/artist/search.js.map +1 -1
  140. package/dist/cjs/auth/getMobileSession.js +11 -0
  141. package/dist/cjs/auth/getMobileSession.js.map +1 -1
  142. package/dist/cjs/auth/getSession.js +10 -0
  143. package/dist/cjs/auth/getSession.js.map +1 -1
  144. package/dist/cjs/auth.js +9 -6
  145. package/dist/cjs/auth.js.map +1 -1
  146. package/dist/cjs/chart/topArtists.js +11 -0
  147. package/dist/cjs/chart/topArtists.js.map +1 -1
  148. package/dist/cjs/chart/topTags.js +8 -0
  149. package/dist/cjs/chart/topTags.js.map +1 -1
  150. package/dist/cjs/chart/topTracks.js +8 -0
  151. package/dist/cjs/chart/topTracks.js.map +1 -1
  152. package/dist/cjs/config.js.map +1 -1
  153. package/dist/cjs/createOptions.js +23 -0
  154. package/dist/cjs/createOptions.js.map +1 -1
  155. package/dist/cjs/geo/getTopArtists.js +10 -0
  156. package/dist/cjs/geo/getTopArtists.js.map +1 -1
  157. package/dist/cjs/geo/getTopTracks.js +10 -0
  158. package/dist/cjs/geo/getTopTracks.js.map +1 -1
  159. package/dist/cjs/getFriends.js +6 -3
  160. package/dist/cjs/getFriends.js.map +1 -1
  161. package/dist/cjs/getInfo.js +5 -3
  162. package/dist/cjs/getInfo.js.map +1 -1
  163. package/dist/cjs/getLovedTracks.js +7 -3
  164. package/dist/cjs/getLovedTracks.js.map +1 -1
  165. package/dist/cjs/getRecentTracks.js +7 -3
  166. package/dist/cjs/getRecentTracks.js.map +1 -1
  167. package/dist/cjs/getTopAlbums.js +7 -3
  168. package/dist/cjs/getTopAlbums.js.map +1 -1
  169. package/dist/cjs/getTopArtists.js +7 -3
  170. package/dist/cjs/getTopArtists.js.map +1 -1
  171. package/dist/cjs/getTopTracks.js +7 -3
  172. package/dist/cjs/getTopTracks.js.map +1 -1
  173. package/dist/cjs/getUserTopTags.js +6 -3
  174. package/dist/cjs/getUserTopTags.js.map +1 -1
  175. package/dist/cjs/getWeeklyAlbumChart.js +7 -3
  176. package/dist/cjs/getWeeklyAlbumChart.js.map +1 -1
  177. package/dist/cjs/getWeeklyArtistChart.js +7 -3
  178. package/dist/cjs/getWeeklyArtistChart.js.map +1 -1
  179. package/dist/cjs/getWeeklyChartList.js +8 -3
  180. package/dist/cjs/getWeeklyChartList.js.map +1 -1
  181. package/dist/cjs/getWeeklyTrackChart.js +7 -3
  182. package/dist/cjs/getWeeklyTrackChart.js.map +1 -1
  183. package/dist/cjs/index.js +21 -0
  184. package/dist/cjs/index.js.map +1 -1
  185. package/dist/cjs/library/getArtists.js +10 -0
  186. package/dist/cjs/library/getArtists.js.map +1 -1
  187. package/dist/cjs/method.js +11 -0
  188. package/dist/cjs/method.js.map +1 -1
  189. package/dist/cjs/request.js +30 -0
  190. package/dist/cjs/request.js.map +1 -1
  191. package/dist/cjs/tag/getInfo.js +9 -0
  192. package/dist/cjs/tag/getInfo.js.map +1 -1
  193. package/dist/cjs/tag/getSimilar.js +8 -0
  194. package/dist/cjs/tag/getSimilar.js.map +1 -1
  195. package/dist/cjs/tag/getTopAlbums.js +10 -0
  196. package/dist/cjs/tag/getTopAlbums.js.map +1 -1
  197. package/dist/cjs/tag/getTopArtists.js +10 -0
  198. package/dist/cjs/tag/getTopArtists.js.map +1 -1
  199. package/dist/cjs/tag/getTopTags.js +7 -0
  200. package/dist/cjs/tag/getTopTags.js.map +1 -1
  201. package/dist/cjs/tag/getWeeklyChartList.js +9 -0
  202. package/dist/cjs/tag/getWeeklyChartList.js.map +1 -1
  203. package/dist/cjs/tag/topTracks.js +6 -3
  204. package/dist/cjs/tag/topTracks.js.map +1 -1
  205. package/dist/cjs/track/addTags.js +11 -0
  206. package/dist/cjs/track/addTags.js.map +1 -1
  207. package/dist/cjs/track/getCorrection.js +10 -0
  208. package/dist/cjs/track/getCorrection.js.map +1 -1
  209. package/dist/cjs/track/getInfo.js +11 -0
  210. package/dist/cjs/track/getInfo.js.map +1 -1
  211. package/dist/cjs/track/getSimilar.js +11 -0
  212. package/dist/cjs/track/getSimilar.js.map +1 -1
  213. package/dist/cjs/track/getTags.js +11 -0
  214. package/dist/cjs/track/getTags.js.map +1 -1
  215. package/dist/cjs/track/getTopTags.js +10 -0
  216. package/dist/cjs/track/getTopTags.js.map +1 -1
  217. package/dist/cjs/track/love.js +10 -0
  218. package/dist/cjs/track/love.js.map +1 -1
  219. package/dist/cjs/track/removeTag.js +11 -0
  220. package/dist/cjs/track/removeTag.js.map +1 -1
  221. package/dist/cjs/track/scrobble.js +12 -0
  222. package/dist/cjs/track/scrobble.js.map +1 -1
  223. package/dist/cjs/track/search.js +11 -0
  224. package/dist/cjs/track/search.js.map +1 -1
  225. package/dist/cjs/track/unlove.js +10 -0
  226. package/dist/cjs/track/unlove.js.map +1 -1
  227. package/dist/cjs/track/updateNowPlaying.js +11 -0
  228. package/dist/cjs/track/updateNowPlaying.js.map +1 -1
  229. package/dist/cjs/user/getPersonalTags.js +12 -0
  230. package/dist/cjs/user/getPersonalTags.js.map +1 -1
  231. package/dist/config.js.map +1 -1
  232. package/dist/createOptions.js +23 -0
  233. package/dist/createOptions.js.map +1 -1
  234. package/dist/geo/getTopArtists.js +10 -0
  235. package/dist/geo/getTopArtists.js.map +1 -1
  236. package/dist/geo/getTopTracks.js +10 -0
  237. package/dist/geo/getTopTracks.js.map +1 -1
  238. package/dist/getFriends.js +6 -3
  239. package/dist/getFriends.js.map +1 -1
  240. package/dist/getInfo.js +5 -3
  241. package/dist/getInfo.js.map +1 -1
  242. package/dist/getLovedTracks.js +7 -3
  243. package/dist/getLovedTracks.js.map +1 -1
  244. package/dist/getRecentTracks.js +7 -3
  245. package/dist/getRecentTracks.js.map +1 -1
  246. package/dist/getTopAlbums.js +7 -3
  247. package/dist/getTopAlbums.js.map +1 -1
  248. package/dist/getTopArtists.js +7 -3
  249. package/dist/getTopArtists.js.map +1 -1
  250. package/dist/getTopTracks.js +7 -3
  251. package/dist/getTopTracks.js.map +1 -1
  252. package/dist/getUserTopTags.js +6 -3
  253. package/dist/getUserTopTags.js.map +1 -1
  254. package/dist/getWeeklyAlbumChart.js +7 -3
  255. package/dist/getWeeklyAlbumChart.js.map +1 -1
  256. package/dist/getWeeklyArtistChart.js +7 -3
  257. package/dist/getWeeklyArtistChart.js.map +1 -1
  258. package/dist/getWeeklyChartList.js +8 -3
  259. package/dist/getWeeklyChartList.js.map +1 -1
  260. package/dist/getWeeklyTrackChart.js +7 -3
  261. package/dist/getWeeklyTrackChart.js.map +1 -1
  262. package/dist/index.js +21 -0
  263. package/dist/index.js.map +1 -1
  264. package/dist/library/getArtists.js +10 -0
  265. package/dist/library/getArtists.js.map +1 -1
  266. package/dist/method.js +11 -0
  267. package/dist/method.js.map +1 -1
  268. package/dist/request.js +30 -0
  269. package/dist/request.js.map +1 -1
  270. package/dist/tag/getInfo.js +9 -0
  271. package/dist/tag/getInfo.js.map +1 -1
  272. package/dist/tag/getSimilar.js +8 -0
  273. package/dist/tag/getSimilar.js.map +1 -1
  274. package/dist/tag/getTopAlbums.js +10 -0
  275. package/dist/tag/getTopAlbums.js.map +1 -1
  276. package/dist/tag/getTopArtists.js +10 -0
  277. package/dist/tag/getTopArtists.js.map +1 -1
  278. package/dist/tag/getTopTags.js +7 -0
  279. package/dist/tag/getTopTags.js.map +1 -1
  280. package/dist/tag/getWeeklyChartList.js +9 -0
  281. package/dist/tag/getWeeklyChartList.js.map +1 -1
  282. package/dist/tag/topTracks.js +6 -3
  283. package/dist/tag/topTracks.js.map +1 -1
  284. package/dist/track/addTags.js +11 -0
  285. package/dist/track/addTags.js.map +1 -1
  286. package/dist/track/getCorrection.js +10 -0
  287. package/dist/track/getCorrection.js.map +1 -1
  288. package/dist/track/getInfo.js +11 -0
  289. package/dist/track/getInfo.js.map +1 -1
  290. package/dist/track/getSimilar.js +11 -0
  291. package/dist/track/getSimilar.js.map +1 -1
  292. package/dist/track/getTags.js +11 -0
  293. package/dist/track/getTags.js.map +1 -1
  294. package/dist/track/getTopTags.js +10 -0
  295. package/dist/track/getTopTags.js.map +1 -1
  296. package/dist/track/love.js +10 -0
  297. package/dist/track/love.js.map +1 -1
  298. package/dist/track/removeTag.js +11 -0
  299. package/dist/track/removeTag.js.map +1 -1
  300. package/dist/track/scrobble.js +12 -0
  301. package/dist/track/scrobble.js.map +1 -1
  302. package/dist/track/search.js +11 -0
  303. package/dist/track/search.js.map +1 -1
  304. package/dist/track/unlove.js +10 -0
  305. package/dist/track/unlove.js.map +1 -1
  306. package/dist/track/updateNowPlaying.js +11 -0
  307. package/dist/track/updateNowPlaying.js.map +1 -1
  308. package/dist/user/getPersonalTags.js +12 -0
  309. package/dist/user/getPersonalTags.js.map +1 -1
  310. package/package.json +7 -10
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Love Tracks - LastFM
4
+ * Get the last 50 tracks loved by a user on Last.fm.
5
5
  *
6
- * https://www.last.fm/api/show/user.getLovedTracks
7
- * @returns Loved Tracks;
6
+ * @see https://www.last.fm/api/show/user.getLovedTracks
7
+ * @param method - The Last.fm API method string (`method.user.getLovedTracks`)
8
+ * @param user - The Last.fm username
9
+ * @param period - The time period to retrieve loved tracks for
10
+ * @param limit - Number of results per page
11
+ * @returns The user's loved tracks
8
12
  */
9
13
  export async function getLovedTracks(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getLovedTracks.js","sourceRoot":"","sources":["../src/getLovedTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAsB,OAAO,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"getLovedTracks.js","sourceRoot":"","sources":["../src/getLovedTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAsB,OAAO,CAAC,CAAC;AACrD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Recent Tracks - LastFM
4
+ * Get a list of the recent tracks listened to by a user on Last.fm.
5
5
  *
6
- * https://www.last.fm/api/show/user.getRecentTracks
7
- * @returns Recent Tracks
6
+ * @see https://www.last.fm/api/show/user.getRecentTracks
7
+ * @param method - The Last.fm API method string (`method.user.getRecentTracks`)
8
+ * @param user - The Last.fm username
9
+ * @param limit - Number of results per page
10
+ * @param from - Unix timestamp; only return tracks scrobbled after this time
11
+ * @returns The user's recent tracks including any currently playing track
8
12
  */
9
13
  export async function getRecentTracks(method, user, limit, from) {
10
14
  const options = createOptions(method, user, undefined, limit, undefined, from);
@@ -1 +1 @@
1
- {"version":3,"file":"getRecentTracks.js","sourceRoot":"","sources":["../src/getRecentTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,IAAY,EACZ,KAAa,EACb,IAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/E,OAAO,MAAM,OAAO,CAAuB,OAAO,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"getRecentTracks.js","sourceRoot":"","sources":["../src/getRecentTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,IAAY,EACZ,KAAa,EACb,IAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/E,OAAO,MAAM,OAAO,CAAuB,OAAO,CAAC,CAAC;AACtD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import request from './request.js';
2
2
  import { createOptions } from './createOptions.js';
3
3
  /**
4
- * GET: Top Albums - LastFM
4
+ * Get the top albums listened to by a user on Last.fm, over a given time period.
5
5
  *
6
- * https://www.last.fm/api/show/user.getTopAlbums
7
- * @returns Top Albums
6
+ * @see https://www.last.fm/api/show/user.getTopAlbums
7
+ * @param method - The Last.fm API method string (`method.user.getTopAlbums`)
8
+ * @param user - The Last.fm username
9
+ * @param period - Time period (`overall`, `7day`, `1month`, `3month`, `6month`, `12month`)
10
+ * @param limit - Number of results per page
11
+ * @returns The user's top albums for the given period
8
12
  */
9
13
  export async function getTopAlbums(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../src/getTopAlbums.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAoB,OAAO,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../src/getTopAlbums.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAoB,OAAO,CAAC,CAAC;AACnD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Top Artist - LastFM
4
+ * Get the top artists listened to by a user on Last.fm, over a given time period.
5
5
  *
6
- * https://www.last.fm/api/show/user.getTopArtists
7
- * @returns Top Artists
6
+ * @see https://www.last.fm/api/show/user.getTopArtists
7
+ * @param method - The Last.fm API method string (`method.user.getTopArtists`)
8
+ * @param user - The Last.fm username
9
+ * @param period - Time period (`overall`, `7day`, `1month`, `3month`, `6month`, `12month`)
10
+ * @param limit - Number of results per page
11
+ * @returns The user's top artists for the given period
8
12
  */
9
13
  export async function getTopArtists(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../src/getTopArtists.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAqB,OAAO,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../src/getTopArtists.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAqB,OAAO,CAAC,CAAC;AACpD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Top Tracks - LastFM
4
+ * Get the top tracks listened to by a user on Last.fm, over a given time period.
5
5
  *
6
- * https://www.last.fm/api/show/user.getTopTracks
7
- * @returns Top Tracks
6
+ * @see https://www.last.fm/api/show/user.getTopTracks
7
+ * @param method - The Last.fm API method string (`method.user.getTopTracks`)
8
+ * @param user - The Last.fm username
9
+ * @param period - Time period (`overall`, `7day`, `1month`, `3month`, `6month`, `12month`)
10
+ * @param limit - Number of results per page
11
+ * @returns The user's top tracks for the given period
8
12
  */
9
13
  export async function getTopTracks(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getTopTracks.js","sourceRoot":"","sources":["../src/getTopTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAmB,OAAO,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"getTopTracks.js","sourceRoot":"","sources":["../src/getTopTracks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAAmB,OAAO,CAAC,CAAC;AAClD,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: User Top Tags - LastFM
4
+ * Get the top tags used by a user on Last.fm, ordered by tag count.
5
5
  *
6
- * https://www.last.fm/api/show/user.getTopTags
7
- * @returns Top Tags for a user
6
+ * @see https://www.last.fm/api/show/user.getTopTags
7
+ * @param method - The Last.fm API method string (`method.user.getTopTags`)
8
+ * @param user - The Last.fm username
9
+ * @param limit - Maximum number of tags to return
10
+ * @returns The user's most-used tags ordered by count
8
11
  */
9
12
  export async function getUserTopTags(method, user, limit) {
10
13
  const options = createOptions(method, user, undefined, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getUserTopTags.js","sourceRoot":"","sources":["../src/getUserTopTags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,IAAY,EACZ,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,OAAO,CAAsB,OAAO,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"getUserTopTags.js","sourceRoot":"","sources":["../src/getUserTopTags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,IAAY,EACZ,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,OAAO,CAAsB,OAAO,CAAC,CAAC;AACrD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Weekly album chart - LastFM
4
+ * Get a list of the albums in a user's weekly album chart on Last.fm.
5
5
  *
6
- * https://www.last.fm/api/show/user.getWeeklyAlbumChart
7
- * @returns Weekly album chart
6
+ * @see https://www.last.fm/api/show/user.getWeeklyAlbumChart
7
+ * @param method - The Last.fm API method string (`method.user.getWeeklyAlbumChart`)
8
+ * @param user - The Last.fm username
9
+ * @param period - The time period for the chart
10
+ * @param limit - Number of results per page
11
+ * @returns The user's weekly album chart
8
12
  */
9
13
  export async function getWeeklyAlbumChart(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getWeeklyAlbumChart.js","sourceRoot":"","sources":["../src/getWeeklyAlbumChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA2B,OAAO,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"getWeeklyAlbumChart.js","sourceRoot":"","sources":["../src/getWeeklyAlbumChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA2B,OAAO,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Weekly artist chart - LastFM
4
+ * Get a list of the artists in a user's weekly artist chart on Last.fm.
5
5
  *
6
- * https://www.last.fm/api/show/user.getWeeklyArtistChart
7
- * @returns Weekly artist chart
6
+ * @see https://www.last.fm/api/show/user.getWeeklyArtistChart
7
+ * @param method - The Last.fm API method string (`method.user.getWeeklyArtistChart`)
8
+ * @param user - The Last.fm username
9
+ * @param period - The time period for the chart
10
+ * @param limit - Number of results per page
11
+ * @returns The user's weekly artist chart
8
12
  */
9
13
  export async function getWeeklyArtistChart(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getWeeklyArtistChart.js","sourceRoot":"","sources":["../src/getWeeklyArtistChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA4B,OAAO,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"getWeeklyArtistChart.js","sourceRoot":"","sources":["../src/getWeeklyArtistChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA4B,OAAO,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,10 +1,15 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Weekly chart list - LastFM
4
+ * Get a list of available charts for a user on Last.fm, expressed as date ranges
5
+ * which can be sent to the chart services.
5
6
  *
6
- * https://www.last.fm/api/show/user.getWeeklyChartList
7
- * @returns Weekly chart list
7
+ * @see https://www.last.fm/api/show/user.getWeeklyChartList
8
+ * @param method - The Last.fm API method string (`method.user.getWeeklyChartList`)
9
+ * @param user - The Last.fm username
10
+ * @param period - The time period for the chart list
11
+ * @param limit - Number of results per page
12
+ * @returns A list of date ranges representing available weekly charts for this user
8
13
  */
9
14
  export async function getWeeklyChartList(method, user, period, limit) {
10
15
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../src/getWeeklyChartList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA0B,OAAO,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../src/getWeeklyChartList.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA0B,OAAO,CAAC,CAAC;AACzD,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { createOptions } from './createOptions.js';
2
2
  import request from './request.js';
3
3
  /**
4
- * GET: Weekly track chart - LastFM
4
+ * Get a list of the tracks in a user's weekly track chart on Last.fm.
5
5
  *
6
- * https://www.last.fm/api/show/user.getWeeklyTrackChart
7
- * @returns Weekly track chart
6
+ * @see https://www.last.fm/api/show/user.getWeeklyTrackChart
7
+ * @param method - The Last.fm API method string (`method.user.getWeeklyTrackChart`)
8
+ * @param user - The Last.fm username
9
+ * @param period - The time period for the chart
10
+ * @param limit - Number of results per page
11
+ * @returns The user's weekly track chart
8
12
  */
9
13
  export async function getWeeklyTrackChart(method, user, period, limit) {
10
14
  const options = createOptions(method, user, period, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"getWeeklyTrackChart.js","sourceRoot":"","sources":["../src/getWeeklyTrackChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA2B,OAAO,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"getWeeklyTrackChart.js","sourceRoot":"","sources":["../src/getWeeklyTrackChart.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,OAAO,CAA2B,OAAO,CAAC,CAAC;AAC1D,CAAC"}
package/dist/index.js CHANGED
@@ -65,6 +65,27 @@ import { trackScrobble } from './track/scrobble.js';
65
65
  import { trackUpdateNowPlaying } from './track/updateNowPlaying.js';
66
66
  // User
67
67
  import { userGetPersonalTags } from './user/getPersonalTags.js';
68
+ /**
69
+ * Creates a Last.fm API client with all supported methods organised by namespace.
70
+ *
71
+ * Use the {@link method} constant (exposed as `api.method`) to pass the correct
72
+ * method string to each API function.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * import LastFmApi from 'lastfm-nodejs-client';
77
+ *
78
+ * const api = LastFmApi();
79
+ *
80
+ * // Read-only: get a user's top artists
81
+ * const topArtists = await api.getTopArtists(api.method.user.getTopArtists, 'username', '7day', '10');
82
+ *
83
+ * // Write: scrobble a track (requires session key)
84
+ * await api.track.trackScrobble(api.method.track.scrobble, 'Artist', 'Track', String(Date.now() / 1000 | 0), 'Album', sk);
85
+ * ```
86
+ *
87
+ * @returns An object containing all Last.fm API methods organised by namespace.
88
+ */
68
89
  const LastFmApi = () => {
69
90
  return {
70
91
  auth,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,14 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * A paginated list of all the artists in a user's library, with playcounts and tag counts.
4
+ *
5
+ * @see https://www.last.fm/api/show/library.getArtists
6
+ * @param method - The Last.fm API method string (`method.library.getArtists`)
7
+ * @param user - The Last.fm username whose library to fetch
8
+ * @param limit - Number of results per page (default `'50'`)
9
+ * @param page - Page number to fetch (default `'1'`)
10
+ * @returns Paginated list of artists from the user's library
11
+ */
2
12
  export async function libraryGetArtists(method, user, limit = '50', page = '1') {
3
13
  return await request({ method, user, limit, page });
4
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getArtists.js","sourceRoot":"","sources":["../../src/library/getArtists.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,IAAY,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAC5F,OAAO,MAAM,OAAO,CAAyB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"getArtists.js","sourceRoot":"","sources":["../../src/library/getArtists.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,IAAY,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAC5F,OAAO,MAAM,OAAO,CAAyB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC"}
package/dist/method.js CHANGED
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Constant map of all Last.fm API method name strings, organised by namespace.
3
+ *
4
+ * Pass the appropriate value to API functions as the `method` parameter.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const api = LastFmApi();
9
+ * const info = await api.getInfo(api.method.user.getInfo, 'username');
10
+ * ```
11
+ */
1
12
  export const method = {
2
13
  album: {
3
14
  addTags: 'album.addTags',
@@ -1 +1 @@
1
- {"version":3,"file":"method.js","sourceRoot":"","sources":["../src/method.ts"],"names":[],"mappings":"AAgGA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,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;CACe,CAAC"}
1
+ {"version":3,"file":"method.js","sourceRoot":"","sources":["../src/method.ts"],"names":[],"mappings":"AA6GA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,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/request.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { config } from './config.js';
2
2
  import { md5 } from './md5.js';
3
+ /**
4
+ * Last.fm API error codes.
5
+ * @see https://www.last.fm/api/errorcodes
6
+ */
3
7
  var ErrorResponse;
4
8
  (function (ErrorResponse) {
5
9
  ErrorResponse[ErrorResponse["InvalidService"] = 2] = "InvalidService";
@@ -17,6 +21,13 @@ var ErrorResponse;
17
21
  ErrorResponse[ErrorResponse["SuspendedAPIKey"] = 26] = "SuspendedAPIKey";
18
22
  ErrorResponse[ErrorResponse["RateLimitExceeded"] = 29] = "RateLimitExceeded";
19
23
  })(ErrorResponse || (ErrorResponse = {}));
24
+ /**
25
+ * Assembles the full Last.fm API request URL from the given options,
26
+ * appending the API key and JSON format automatically.
27
+ *
28
+ * @param options - Request options containing the method and any query parameters
29
+ * @returns The fully-formed URL string
30
+ */
20
31
  const buildUrl = (options) => {
21
32
  const params = new URLSearchParams();
22
33
  params.append('method', options.method);
@@ -78,6 +89,14 @@ const ErrorMessages = {
78
89
  [ErrorResponse.SuspendedAPIKey]: 'Suspended API key',
79
90
  [ErrorResponse.RateLimitExceeded]: 'Rate limit exceeded',
80
91
  };
92
+ /**
93
+ * Performs a GET request to the Last.fm API.
94
+ *
95
+ * Throws an `Error` on HTTP failure or if the Last.fm response body contains an error code.
96
+ *
97
+ * @param options - Request options specifying the method and query parameters
98
+ * @returns The parsed JSON response typed as `Response`
99
+ */
81
100
  const request = async (options) => {
82
101
  const url = buildUrl(options);
83
102
  const res = await fetch(url, {
@@ -95,6 +114,17 @@ const request = async (options) => {
95
114
  }
96
115
  return body;
97
116
  };
117
+ /**
118
+ * Performs an MD5-signed POST request to the Last.fm API.
119
+ *
120
+ * Used for write operations (scrobble, love, addTags, auth sessions).
121
+ * Generates an `api_sig` by sorting all parameters alphabetically, concatenating
122
+ * `key+value` pairs, appending the shared secret, and MD5-hashing the result.
123
+ *
124
+ * @param options - Request options specifying the method and POST body parameters
125
+ * @param secret - The Last.fm shared secret used to generate the API signature
126
+ * @returns The parsed JSON response typed as `Response`
127
+ */
98
128
  export const signedRequest = async (options, secret) => {
99
129
  const params = new URLSearchParams();
100
130
  // Collect all params (excluding format/callback)
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Get the metadata for a tag on Last.fm. Includes a short wiki summary.
4
+ *
5
+ * @see https://www.last.fm/api/show/tag.getInfo
6
+ * @param method - The Last.fm API method string (`method.tag.getInfo`)
7
+ * @param tag - The tag name
8
+ * @param lang - ISO 639 alpha-2 language code for the wiki text (default `'en'`)
9
+ * @returns Tag metadata including wiki text and reach
10
+ */
2
11
  export async function tagGetInfo(method, tag, lang = 'en') {
3
12
  return await request({ method, tag, lang });
4
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../src/tag/getInfo.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,IAAI,GAAG,IAAI;IACvE,OAAO,MAAM,OAAO,CAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"getInfo.js","sourceRoot":"","sources":["../../src/tag/getInfo.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,GAAW,EAAE,IAAI,GAAG,IAAI;IACvE,OAAO,MAAM,OAAO,CAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,4 +1,12 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Search for tags similar to this one on Last.fm. Returns tags ranked by similarity.
4
+ *
5
+ * @see https://www.last.fm/api/show/tag.getSimilar
6
+ * @param method - The Last.fm API method string (`method.tag.getSimilar`)
7
+ * @param tag - The tag name to find similar tags for
8
+ * @returns A list of similar tags
9
+ */
2
10
  export async function tagGetSimilar(method, tag) {
3
11
  return await request({ method, tag });
4
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../src/tag/getSimilar.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,GAAW;IAC7D,OAAO,MAAM,OAAO,CAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"getSimilar.js","sourceRoot":"","sources":["../../src/tag/getSimilar.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,GAAW;IAC7D,OAAO,MAAM,OAAO,CAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,4 +1,14 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Get the top albums tagged with a given tag on Last.fm, ordered by tag count.
4
+ *
5
+ * @see https://www.last.fm/api/show/tag.getTopAlbums
6
+ * @param method - The Last.fm API method string (`method.tag.getTopAlbums`)
7
+ * @param tag - The tag name
8
+ * @param limit - Number of results per page (default `'50'`)
9
+ * @param page - Page number to fetch (default `'1'`)
10
+ * @returns Paginated list of top albums for the given tag
11
+ */
2
12
  export async function tagGetTopAlbums(method, tag, limit = '50', page = '1') {
3
13
  return await request({ method, tag, limit, page });
4
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../../src/tag/getTopAlbums.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IACzF,OAAO,MAAM,OAAO,CAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"getTopAlbums.js","sourceRoot":"","sources":["../../src/tag/getTopAlbums.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IACzF,OAAO,MAAM,OAAO,CAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -1,4 +1,14 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Get the top artists tagged with a given tag on Last.fm, ordered by tag count.
4
+ *
5
+ * @see https://www.last.fm/api/show/tag.getTopArtists
6
+ * @param method - The Last.fm API method string (`method.tag.getTopArtists`)
7
+ * @param tag - The tag name
8
+ * @param limit - Number of results per page (default `'50'`)
9
+ * @param page - Page number to fetch (default `'1'`)
10
+ * @returns Paginated list of top artists for the given tag
11
+ */
2
12
  export async function tagGetTopArtists(method, tag, limit = '50', page = '1') {
3
13
  return await request({ method, tag, limit, page });
4
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../../src/tag/getTopArtists.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAC1F,OAAO,MAAM,OAAO,CAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"getTopArtists.js","sourceRoot":"","sources":["../../src/tag/getTopArtists.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG;IAC1F,OAAO,MAAM,OAAO,CAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,4 +1,11 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Fetches the top global tags on Last.fm, sorted by popularity (number of times used).
4
+ *
5
+ * @see https://www.last.fm/api/show/tag.getTopTags
6
+ * @param method - The Last.fm API method string (`method.tag.getTopTags`)
7
+ * @returns The top tags on Last.fm ordered by usage count
8
+ */
2
9
  export async function tagGetTopTags(method) {
3
10
  return await request({ method });
4
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../src/tag/getTopTags.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,OAAO,MAAM,OAAO,CAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"getTopTags.js","sourceRoot":"","sources":["../../src/tag/getTopTags.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,OAAO,MAAM,OAAO,CAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import request from '../request.js';
2
+ /**
3
+ * Get a list of available charts for this tag, expressed as date ranges which can be
4
+ * sent to the chart services.
5
+ *
6
+ * @see https://www.last.fm/api/show/tag.getWeeklyChartList
7
+ * @param method - The Last.fm API method string (`method.tag.getWeeklyChartList`)
8
+ * @param tag - The tag name
9
+ * @returns A list of date ranges representing available weekly charts for this tag
10
+ */
2
11
  export async function tagGetWeeklyChartList(method, tag) {
3
12
  return await request({ method, tag });
4
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../../src/tag/getWeeklyChartList.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,GAAW;IACrE,OAAO,MAAM,OAAO,CAA6B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"getWeeklyChartList.js","sourceRoot":"","sources":["../../src/tag/getWeeklyChartList.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,GAAW;IACrE,OAAO,MAAM,OAAO,CAA6B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import request from '../request.js';
2
2
  /**
3
- * GET: Tag Top Tracks - LastFM
3
+ * Get the top tracks tagged with a given tag on Last.fm, ordered by tag count.
4
4
  *
5
- * https://www.last.fm/api/show/tag.getTopTracks
6
- * @returns Top Tracks for a tag
5
+ * @see https://www.last.fm/api/show/tag.getTopTracks
6
+ * @param method - The Last.fm API method string (`method.tag.getTopTracks`)
7
+ * @param tag - The tag name
8
+ * @param limit - Number of results to return
9
+ * @returns Top tracks for the given tag ordered by tag count
7
10
  */
8
11
  export async function tagTopTracks(method, tag, limit) {
9
12
  return await request({ method, tag, limit });
@@ -1 +1 @@
1
- {"version":3,"file":"topTracks.js","sourceRoot":"","sources":["../../src/tag/topTracks.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,GAAW,EACX,KAAa;IAEb,OAAO,MAAM,OAAO,CAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"topTracks.js","sourceRoot":"","sources":["../../src/tag/topTracks.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,GAAW,EACX,KAAa;IAEb,OAAO,MAAM,OAAO,CAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -1,5 +1,16 @@
1
1
  import { signedRequest } from '../request.js';
2
2
  import { config } from '../config.js';
3
+ /**
4
+ * Tag a track using a list of user-supplied tags. Requires authentication.
5
+ *
6
+ * @see https://www.last.fm/api/show/track.addTags
7
+ * @param method - The Last.fm API method string (`method.track.addTags`)
8
+ * @param artist - The artist name
9
+ * @param track - The track name
10
+ * @param tags - A comma-separated list of tags to apply (max 10)
11
+ * @param sk - A session key obtained via the auth flow
12
+ * @returns Authentication response confirming the operation
13
+ */
3
14
  export async function trackAddTags(method, artist, track, tags, sk) {
4
15
  return await signedRequest({ method, artist, track, tags, sk }, config.share_secret);
5
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addTags.js","sourceRoot":"","sources":["../../src/track/addTags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,EAAU;IACxG,OAAO,MAAM,aAAa,CAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"addTags.js","sourceRoot":"","sources":["../../src/track/addTags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,EAAU;IACxG,OAAO,MAAM,aAAa,CAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACrG,CAAC"}