@ansango/lastfm-api 3.1.3 → 3.3.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 (168) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +150 -15
  3. package/dist/client.d.ts +1 -1
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +2 -2
  6. package/dist/client.js.map +1 -1
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +2 -2
  9. package/dist/config.js.map +1 -1
  10. package/dist/entrypoints/album.d.ts +1 -1
  11. package/dist/entrypoints/album.d.ts.map +1 -1
  12. package/dist/entrypoints/album.js.map +1 -1
  13. package/dist/entrypoints/album.schemas.d.ts.map +1 -1
  14. package/dist/entrypoints/album.schemas.js.map +1 -1
  15. package/dist/entrypoints/artist.d.ts +1 -1
  16. package/dist/entrypoints/artist.d.ts.map +1 -1
  17. package/dist/entrypoints/artist.js.map +1 -1
  18. package/dist/entrypoints/artist.schemas.d.ts.map +1 -1
  19. package/dist/entrypoints/artist.schemas.js.map +1 -1
  20. package/dist/entrypoints/auth.d.ts +1 -1
  21. package/dist/entrypoints/auth.d.ts.map +1 -1
  22. package/dist/entrypoints/auth.js.map +1 -1
  23. package/dist/entrypoints/auth.schemas.d.ts.map +1 -1
  24. package/dist/entrypoints/auth.schemas.js.map +1 -1
  25. package/dist/entrypoints/base.schemas.d.ts.map +1 -1
  26. package/dist/entrypoints/base.schemas.js.map +1 -1
  27. package/dist/entrypoints/chart.d.ts +1 -1
  28. package/dist/entrypoints/chart.d.ts.map +1 -1
  29. package/dist/entrypoints/chart.js.map +1 -1
  30. package/dist/entrypoints/chart.schemas.d.ts.map +1 -1
  31. package/dist/entrypoints/chart.schemas.js.map +1 -1
  32. package/dist/entrypoints/geo.d.ts.map +1 -1
  33. package/dist/entrypoints/geo.js.map +1 -1
  34. package/dist/entrypoints/geo.schemas.d.ts.map +1 -1
  35. package/dist/entrypoints/geo.schemas.js.map +1 -1
  36. package/dist/entrypoints/library.d.ts.map +1 -1
  37. package/dist/entrypoints/library.js.map +1 -1
  38. package/dist/entrypoints/library.schemas.d.ts.map +1 -1
  39. package/dist/entrypoints/library.schemas.js.map +1 -1
  40. package/dist/entrypoints/tag.d.ts.map +1 -1
  41. package/dist/entrypoints/tag.js.map +1 -1
  42. package/dist/entrypoints/tag.schemas.d.ts.map +1 -1
  43. package/dist/entrypoints/tag.schemas.js.map +1 -1
  44. package/dist/entrypoints/track.d.ts.map +1 -1
  45. package/dist/entrypoints/track.js.map +1 -1
  46. package/dist/entrypoints/track.schemas.d.ts.map +1 -1
  47. package/dist/entrypoints/track.schemas.js.map +1 -1
  48. package/dist/entrypoints/user.d.ts.map +1 -1
  49. package/dist/entrypoints/user.js.map +1 -1
  50. package/dist/entrypoints/user.schemas.d.ts.map +1 -1
  51. package/dist/entrypoints/user.schemas.js.map +1 -1
  52. package/dist/index.d.ts +18 -18
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +10 -10
  55. package/dist/index.js.map +1 -1
  56. package/dist/services/album.d.ts +41 -1
  57. package/dist/services/album.d.ts.map +1 -1
  58. package/dist/services/album.js +35 -2
  59. package/dist/services/album.js.map +1 -1
  60. package/dist/services/album.schemas.d.ts +51 -12
  61. package/dist/services/album.schemas.d.ts.map +1 -1
  62. package/dist/services/album.schemas.js +48 -10
  63. package/dist/services/album.schemas.js.map +1 -1
  64. package/dist/services/artist.d.ts +48 -1
  65. package/dist/services/artist.d.ts.map +1 -1
  66. package/dist/services/artist.js +34 -2
  67. package/dist/services/artist.js.map +1 -1
  68. package/dist/services/artist.schemas.d.ts +99 -25
  69. package/dist/services/artist.schemas.d.ts.map +1 -1
  70. package/dist/services/artist.schemas.js +125 -60
  71. package/dist/services/artist.schemas.js.map +1 -1
  72. package/dist/services/auth.d.ts +35 -1
  73. package/dist/services/auth.d.ts.map +1 -1
  74. package/dist/services/auth.js +19 -2
  75. package/dist/services/auth.js.map +1 -1
  76. package/dist/services/auth.schemas.d.ts +10 -1
  77. package/dist/services/auth.schemas.d.ts.map +1 -1
  78. package/dist/services/auth.schemas.js +13 -2
  79. package/dist/services/auth.schemas.js.map +1 -1
  80. package/dist/services/chart.d.ts +1 -1
  81. package/dist/services/chart.d.ts.map +1 -1
  82. package/dist/services/chart.js +2 -2
  83. package/dist/services/chart.js.map +1 -1
  84. package/dist/services/chart.schemas.d.ts +6 -6
  85. package/dist/services/chart.schemas.d.ts.map +1 -1
  86. package/dist/services/chart.schemas.js +21 -21
  87. package/dist/services/chart.schemas.js.map +1 -1
  88. package/dist/services/geo.d.ts +1 -1
  89. package/dist/services/geo.d.ts.map +1 -1
  90. package/dist/services/geo.js +2 -2
  91. package/dist/services/geo.js.map +1 -1
  92. package/dist/services/geo.schemas.d.ts +6 -6
  93. package/dist/services/geo.schemas.d.ts.map +1 -1
  94. package/dist/services/geo.schemas.js +17 -17
  95. package/dist/services/geo.schemas.js.map +1 -1
  96. package/dist/services/index.d.ts +12 -12
  97. package/dist/services/index.d.ts.map +1 -1
  98. package/dist/services/index.js +13 -13
  99. package/dist/services/index.js.map +1 -1
  100. package/dist/services/library.d.ts +1 -1
  101. package/dist/services/library.d.ts.map +1 -1
  102. package/dist/services/library.js +2 -2
  103. package/dist/services/library.js.map +1 -1
  104. package/dist/services/library.schemas.d.ts +3 -3
  105. package/dist/services/library.schemas.d.ts.map +1 -1
  106. package/dist/services/library.schemas.js +8 -8
  107. package/dist/services/library.schemas.js.map +1 -1
  108. package/dist/services/schemas/base.entities.schemas.d.ts +3 -3
  109. package/dist/services/schemas/base.entities.schemas.d.ts.map +1 -1
  110. package/dist/services/schemas/base.entities.schemas.js +9 -9
  111. package/dist/services/schemas/base.entities.schemas.js.map +1 -1
  112. package/dist/services/schemas/base.entity-names.schemas.d.ts +1 -1
  113. package/dist/services/schemas/base.entity-names.schemas.d.ts.map +1 -1
  114. package/dist/services/schemas/base.entity-names.schemas.js +1 -1
  115. package/dist/services/schemas/base.entity-names.schemas.js.map +1 -1
  116. package/dist/services/schemas/base.metadata.schemas.d.ts +1 -1
  117. package/dist/services/schemas/base.metadata.schemas.d.ts.map +1 -1
  118. package/dist/services/schemas/base.metadata.schemas.js +1 -1
  119. package/dist/services/schemas/base.metadata.schemas.js.map +1 -1
  120. package/dist/services/schemas/base.pagination.schemas.d.ts +1 -1
  121. package/dist/services/schemas/base.pagination.schemas.d.ts.map +1 -1
  122. package/dist/services/schemas/base.pagination.schemas.js +1 -1
  123. package/dist/services/schemas/base.pagination.schemas.js.map +1 -1
  124. package/dist/services/schemas/base.primitives.schemas.d.ts +3 -1
  125. package/dist/services/schemas/base.primitives.schemas.d.ts.map +1 -1
  126. package/dist/services/schemas/base.primitives.schemas.js +8 -7
  127. package/dist/services/schemas/base.primitives.schemas.js.map +1 -1
  128. package/dist/services/schemas/index.d.ts +5 -5
  129. package/dist/services/schemas/index.d.ts.map +1 -1
  130. package/dist/services/schemas/index.js +5 -5
  131. package/dist/services/schemas/index.js.map +1 -1
  132. package/dist/services/tag.d.ts +1 -1
  133. package/dist/services/tag.d.ts.map +1 -1
  134. package/dist/services/tag.js +2 -2
  135. package/dist/services/tag.js.map +1 -1
  136. package/dist/services/tag.schemas.d.ts +13 -13
  137. package/dist/services/tag.schemas.d.ts.map +1 -1
  138. package/dist/services/tag.schemas.js +50 -50
  139. package/dist/services/tag.schemas.js.map +1 -1
  140. package/dist/services/track.d.ts +122 -4
  141. package/dist/services/track.d.ts.map +1 -1
  142. package/dist/services/track.js +79 -10
  143. package/dist/services/track.js.map +1 -1
  144. package/dist/services/track.schemas.d.ts +213 -25
  145. package/dist/services/track.schemas.d.ts.map +1 -1
  146. package/dist/services/track.schemas.js +206 -57
  147. package/dist/services/track.schemas.js.map +1 -1
  148. package/dist/services/track.utils.d.ts +16 -7
  149. package/dist/services/track.utils.d.ts.map +1 -1
  150. package/dist/services/track.utils.js +49 -48
  151. package/dist/services/track.utils.js.map +1 -1
  152. package/dist/services/user.d.ts +19 -1
  153. package/dist/services/user.d.ts.map +1 -1
  154. package/dist/services/user.js +3 -2
  155. package/dist/services/user.js.map +1 -1
  156. package/dist/services/user.schemas.d.ts +321 -63
  157. package/dist/services/user.schemas.d.ts.map +1 -1
  158. package/dist/services/user.schemas.js +197 -88
  159. package/dist/services/user.schemas.js.map +1 -1
  160. package/dist/utils.d.ts +37 -2
  161. package/dist/utils.d.ts.map +1 -1
  162. package/dist/utils.js +105 -20
  163. package/dist/utils.js.map +1 -1
  164. package/package.json +167 -154
  165. package/dist/__tests__/utils.test.d.ts +0 -2
  166. package/dist/__tests__/utils.test.d.ts.map +0 -1
  167. package/dist/__tests__/utils.test.js +0 -86
  168. package/dist/__tests__/utils.test.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { z } from "zod";
2
- import { albumNameSchema, artistNameSchema, contentSchema, countSchema, durationSchema, fromSchema, imageSchema, itemsPerPageSchema, langSchema, limitSchema, mbidSchema, pageSchema, rankSchema, reachSchema, summarySchema, tagNameSchema, toSchema, totalPagesSchema, totalSchema, trackNameSchema, urlSchema } from "./schemas/index.js";
1
+ import { z } from 'zod';
2
+ import { albumNameSchema, artistNameSchema, contentSchema, countSchema, durationSchema, fromSchema, imageSchema, itemsPerPageSchema, langSchema, limitSchema, mbidSchema, pageSchema, rankSchema, reachSchema, summarySchema, tagNameSchema, toSchema, totalPagesSchema, totalSchema, trackNameSchema, urlSchema, } from './schemas/index.js';
3
3
  export const tagWikiSchema = z.object({
4
4
  summary: summarySchema,
5
- content: contentSchema
5
+ content: contentSchema,
6
6
  });
7
7
  /**
8
8
  * Tag
@@ -13,33 +13,33 @@ export const tagSchema = z.object({
13
13
  url: urlSchema,
14
14
  total: totalSchema,
15
15
  reach: reachSchema,
16
- wiki: tagWikiSchema
16
+ wiki: tagWikiSchema,
17
17
  });
18
18
  export const tagGetInfoRequestSchema = z.object({
19
19
  tag: tagNameSchema,
20
- lang: langSchema.optional()
20
+ lang: langSchema.optional(),
21
21
  });
22
22
  export const tagGetInfoResponseSchema = z.object({
23
- tag: tagSchema
23
+ tag: tagSchema,
24
24
  });
25
25
  export const tagGetSimilarRequestSchema = z.object({
26
- tag: tagNameSchema
26
+ tag: tagNameSchema,
27
27
  });
28
28
  export const tagGetSimilarResponseSchema = z.object({
29
29
  similar: z.object({
30
30
  tag: z.array(z.object({
31
31
  name: tagNameSchema,
32
- url: urlSchema
32
+ url: urlSchema,
33
33
  })),
34
- "@attr": z.object({
35
- tag: tagNameSchema
36
- })
37
- })
34
+ '@attr': z.object({
35
+ tag: tagNameSchema,
36
+ }),
37
+ }),
38
38
  });
39
39
  export const tagGetTopAlbumsRequestSchema = z.object({
40
40
  tag: tagNameSchema,
41
41
  limit: limitSchema.optional(),
42
- page: pageSchema.optional()
42
+ page: pageSchema.optional(),
43
43
  });
44
44
  export const tagGetTopAlbumsResponseSchema = z.object({
45
45
  albums: z.object({
@@ -50,26 +50,26 @@ export const tagGetTopAlbumsResponseSchema = z.object({
50
50
  artist: z.object({
51
51
  name: artistNameSchema,
52
52
  mbid: mbidSchema,
53
- url: urlSchema
53
+ url: urlSchema,
54
54
  }),
55
55
  image: z.array(imageSchema),
56
- "@attr": z.object({
57
- rank: rankSchema
58
- })
56
+ '@attr': z.object({
57
+ rank: rankSchema,
58
+ }),
59
59
  })),
60
- "@attr": z.object({
60
+ '@attr': z.object({
61
61
  tag: tagNameSchema,
62
62
  page: pageSchema,
63
63
  perPage: itemsPerPageSchema,
64
64
  totalPages: totalPagesSchema,
65
- total: totalSchema
66
- })
67
- })
65
+ total: totalSchema,
66
+ }),
67
+ }),
68
68
  });
69
69
  export const tagGetTopArtistsRequestSchema = z.object({
70
70
  tag: tagNameSchema,
71
71
  limit: limitSchema.optional(),
72
- page: pageSchema.optional()
72
+ page: pageSchema.optional(),
73
73
  });
74
74
  export const tagGetTopArtistsResponseSchema = z.object({
75
75
  topartists: z.object({
@@ -78,40 +78,40 @@ export const tagGetTopArtistsResponseSchema = z.object({
78
78
  mbid: mbidSchema,
79
79
  url: urlSchema,
80
80
  image: z.array(imageSchema),
81
- "@attr": z.object({
82
- rank: rankSchema
83
- })
81
+ '@attr': z.object({
82
+ rank: rankSchema,
83
+ }),
84
84
  })),
85
- "@attr": z.object({
85
+ '@attr': z.object({
86
86
  tag: tagNameSchema,
87
87
  page: pageSchema,
88
88
  perPage: itemsPerPageSchema,
89
89
  totalPages: totalPagesSchema,
90
- total: totalSchema
91
- })
92
- })
90
+ total: totalSchema,
91
+ }),
92
+ }),
93
93
  });
94
94
  export const tagGetTopTagsRequestSchema = z.object({
95
- limit: limitSchema.optional()
95
+ limit: limitSchema.optional(),
96
96
  });
97
97
  export const tagGetTopTagsResponseSchema = z.object({
98
98
  toptags: z.object({
99
99
  tag: z.array(z.object({
100
100
  name: tagNameSchema,
101
101
  reach: reachSchema,
102
- count: countSchema
102
+ count: countSchema,
103
103
  })),
104
- "@attr": z.object({
104
+ '@attr': z.object({
105
105
  offset: z.number(),
106
106
  num_res: z.number(),
107
- total: totalSchema
108
- })
109
- })
107
+ total: totalSchema,
108
+ }),
109
+ }),
110
110
  });
111
111
  export const tagGetTopTracksRequestSchema = z.object({
112
112
  tag: tagNameSchema,
113
113
  limit: limitSchema.optional(),
114
- page: pageSchema.optional()
114
+ page: pageSchema.optional(),
115
115
  });
116
116
  export const tagGetTopTracksResponseSchema = z.object({
117
117
  toptracks: z.object({
@@ -123,34 +123,34 @@ export const tagGetTopTracksResponseSchema = z.object({
123
123
  artist: z.object({
124
124
  name: artistNameSchema,
125
125
  mbid: mbidSchema,
126
- url: urlSchema
126
+ url: urlSchema,
127
127
  }),
128
128
  image: z.array(imageSchema),
129
- "@attr": z.object({
130
- rank: rankSchema
131
- })
129
+ '@attr': z.object({
130
+ rank: rankSchema,
131
+ }),
132
132
  })),
133
- "@attr": z.object({
133
+ '@attr': z.object({
134
134
  tag: tagNameSchema,
135
135
  page: pageSchema,
136
136
  perPage: itemsPerPageSchema,
137
137
  totalPages: totalPagesSchema,
138
- total: totalSchema
139
- })
140
- })
138
+ total: totalSchema,
139
+ }),
140
+ }),
141
141
  });
142
142
  export const tagGetWeeklyChartListRequestSchema = z.object({
143
- tag: tagNameSchema
143
+ tag: tagNameSchema,
144
144
  });
145
145
  export const tagGetWeeklyChartListResponseSchema = z.object({
146
146
  weeklychartlist: z.object({
147
147
  chart: z.array(z.object({
148
148
  from: fromSchema,
149
- to: toSchema
149
+ to: toSchema,
150
150
  })),
151
- "@attr": z.object({
152
- tag: tagNameSchema
153
- })
154
- })
151
+ '@attr': z.object({
152
+ tag: tagNameSchema,
153
+ }),
154
+ }),
155
155
  });
156
156
  //# sourceMappingURL=tag.schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag.schemas.js","sourceRoot":"","sources":["../../src/services/tag.schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag.schemas.js","sourceRoot":"","sources":["../../src/services/tag.schemas.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BatchTracksScrobbleRequest, TrackGetInfoRequest, TrackGetInfoResponse, TrackGetSimilarRequest, TrackGetSimilarResponse, TrackGetTagsRequest, TrackGetTagsResponse, TrackGetTopTagsRequest, TrackGetTopTagsResponse, TrackScrobbleRequest, TrackScrobbleResponse, TrackSearchRequest, TrackSearchResponse } from './track.schemas.js';
2
1
  import type { LastFmConfig } from '../config.js';
2
+ import type { BatchTracksScrobbleRequest, TrackAddTagsRequest, TrackGetCorrectionRequest, TrackGetCorrectionResponse, TrackGetInfoRequest, TrackGetInfoResponse, TrackGetSimilarRequest, TrackGetSimilarResponse, TrackGetTagsRequest, TrackGetTagsResponse, TrackGetTopTagsRequest, TrackGetTopTagsResponse, TrackLoveRequest, TrackRemoveTagRequest, TrackScrobbleRequest, TrackScrobbleResponse, TrackSearchRequest, TrackSearchResponse, TrackUpdateNowPlayingRequest, TrackUpdateNowPlayingResponse } from './track.schemas.js';
3
3
  export interface TrackService {
4
4
  /**
5
5
  * Get the metadata for a track on Last.fm using the artist/track name or a musicbrainz id.
@@ -33,6 +33,19 @@ export interface TrackService {
33
33
  * https://www.last.fm/api/show/track.getTopTags
34
34
  * */
35
35
  getTopTags: (params: TrackGetTopTagsRequest, init?: RequestInit) => Promise<TrackGetTopTagsResponse>;
36
+ /**
37
+ * Get the canonical correction for a misspelled or noncanonical
38
+ * track (with its artist). Returns the list of corrections Last.fm
39
+ * would apply to the provided input, including the corrected track
40
+ * and artist identities plus per-field "corrected" flags and a
41
+ * positional `index` attribute. Unsigned GET — no `sk` or
42
+ * `api_sig` are sent.
43
+ * @param {TrackGetCorrectionRequest} params
44
+ * @param {RequestInit} init
45
+ * @returns {Promise<TrackGetCorrectionResponse>}
46
+ * https://www.last.fm/api/show/track.getCorrection
47
+ */
48
+ getCorrection: (params: TrackGetCorrectionRequest, init?: RequestInit) => Promise<TrackGetCorrectionResponse>;
36
49
  /**
37
50
  * Search for a track by track name. Returns track matches sorted by relevance.
38
51
  * @param {TrackSearchRequest} params
@@ -44,7 +57,14 @@ export interface TrackService {
44
57
  /**
45
58
  * Scrobble a track. Submits a track play to the Last.fm.
46
59
  * Canonical Last.fm method name: `track.scrobble`.
47
- * @param {TrackScrobbleRequest} params
60
+ *
61
+ * **Requires authentication.** Pass `sk` in `params.sk` (preferred for
62
+ * ad-hoc calls) or set `sessionKey` on the `LastFmConfig` when
63
+ * constructing the client (preferred for long-lived clients). Obtain a
64
+ * session key via `auth.getToken` + the browser-based `auth.getSession`
65
+ * flow (works for self-service API keys).
66
+ *
67
+ * @param {TrackScrobbleRequest} params - `artist`, `track`, `timestamp`, and optional `sk` and `album`
48
68
  * @param {RequestInit} init
49
69
  * @returns {Promise<TrackScrobbleResponse>}
50
70
  * https://www.last.fm/api/show/track.scrobble
@@ -59,16 +79,114 @@ export interface TrackService {
59
79
  * Scrobble a batch of tracks. Submits a batch of track plays to the Last.fm.
60
80
  * Canonical Last.fm method name: `track.scrobble`.
61
81
  * @param {BatchTracksScrobbleRequest} params
82
+ * @param {RequestInit} init
62
83
  * @returns {Promise<TrackScrobbleResponse>}
63
84
  * https://www.last.fm/api/show/track.scrobble
64
85
  * */
65
- scrobbleMany: (params: BatchTracksScrobbleRequest) => Promise<TrackScrobbleResponse>;
86
+ scrobbleMany: (params: BatchTracksScrobbleRequest, init?: RequestInit) => Promise<TrackScrobbleResponse>;
66
87
  /**
67
88
  * @deprecated Use `scrobbleMany` instead. Renamed to match the canonical
68
89
  * Last.fm method name (`track.scrobble`). Kept as an alias for backwards
69
90
  * compatibility.
70
91
  */
71
- postBatchTrackScrobble: (params: BatchTracksScrobbleRequest) => Promise<TrackScrobbleResponse>;
92
+ postBatchTrackScrobble: (params: BatchTracksScrobbleRequest, init?: RequestInit) => Promise<TrackScrobbleResponse>;
93
+ /**
94
+ * Add one or more personal tags to a track. Requires an
95
+ * authenticated session.
96
+ *
97
+ * The `tags` array is sent on the wire as a comma-separated string
98
+ * (Last.fm convention). Returns when the call has been accepted by
99
+ * Last.fm.
100
+ *
101
+ * Idempotency is not guaranteed by Last.fm.
102
+ *
103
+ * **Authentication:** pass `sk` in `params.sk` (preferred for ad-hoc
104
+ * calls) or set `sessionKey` on the `LastFmConfig` when constructing
105
+ * the client (preferred for long-lived clients). Obtain a session key
106
+ * via `auth.getToken` + the browser-based `auth.getSession` flow.
107
+ *
108
+ * @param {TrackAddTagsRequest} params
109
+ * @param {RequestInit} init
110
+ * @returns {Promise<void>}
111
+ * https://www.last.fm/api/show/track.addTags
112
+ */
113
+ addTags: (params: TrackAddTagsRequest, init?: RequestInit) => Promise<void>;
114
+ /**
115
+ * Remove a single personal tag from a track. Requires an
116
+ * authenticated session.
117
+ *
118
+ * Last.fm does not document idempotency for `track.removeTag`.
119
+ *
120
+ * **Authentication:** pass `sk` in `params.sk` (preferred for ad-hoc
121
+ * calls) or set `sessionKey` on the `LastFmConfig` when constructing
122
+ * the client. Obtain a session key via `auth.getToken` + `auth.getSession`.
123
+ *
124
+ * @param {TrackRemoveTagRequest} params
125
+ * @param {RequestInit} init
126
+ * @returns {Promise<void>}
127
+ * https://www.last.fm/api/show/track.removeTag
128
+ */
129
+ removeTag: (params: TrackRemoveTagRequest, init?: RequestInit) => Promise<void>;
130
+ /**
131
+ * Mark a track as loved on the user's Last.fm account. Requires an
132
+ * authenticated session.
133
+ *
134
+ * Last.fm does not document idempotency for `track.love`; calling
135
+ * twice is a server-side concern.
136
+ *
137
+ * **Authentication:** pass `sk` in `params.sk` (preferred for ad-hoc
138
+ * calls) or set `sessionKey` on the `LastFmConfig` when constructing
139
+ * the client. Obtain a session key via `auth.getToken` + `auth.getSession`.
140
+ *
141
+ * @param {TrackLoveRequest} params
142
+ * @param {RequestInit} init
143
+ * @returns {Promise<void>}
144
+ * https://www.last.fm/api/show/track.love
145
+ */
146
+ love: (params: TrackLoveRequest, init?: RequestInit) => Promise<void>;
147
+ /**
148
+ * Remove a track from the user's loved list on Last.fm. Requires an
149
+ * authenticated session.
150
+ *
151
+ * Last.fm does not document idempotency for `track.unlove`.
152
+ *
153
+ * **Authentication:** pass `sk` in `params.sk` (preferred for ad-hoc
154
+ * calls) or set `sessionKey` on the `LastFmConfig` when constructing
155
+ * the client. Obtain a session key via `auth.getToken` + `auth.getSession`.
156
+ *
157
+ * @param {TrackUnloveRequest} params
158
+ * @param {RequestInit} init
159
+ * @returns {Promise<void>}
160
+ * https://www.last.fm/api/show/track.unlove
161
+ */
162
+ unlove: (params: TrackLoveRequest, init?: RequestInit) => Promise<void>;
163
+ /**
164
+ * Announce the track the user is currently listening to on Last.fm.
165
+ * Requires an authenticated session.
166
+ *
167
+ * Optional fields (`album`, `trackNumber`, `context`, `mbid`,
168
+ * `duration`, `albumArtist`) are only included in the body and
169
+ * signature when they are defined; the shared `signedPost`
170
+ * transport strips `undefined` values before signing. Note that
171
+ * `trackNumber` and `albumArtist` keep their exact wire casing.
172
+ *
173
+ * This endpoint does not accept a `timestamp` parameter — Last.fm
174
+ * derives now-playing state from server time. Use
175
+ * `track.scrobble` for completed plays.
176
+ *
177
+ * The `context` field is honoured only for API keys that Last.fm
178
+ * has whitelisted; other API keys receive an ignored-message code.
179
+ *
180
+ * **Authentication:** pass `sk` in `params.sk` (preferred for ad-hoc
181
+ * calls) or set `sessionKey` on the `LastFmConfig` when constructing
182
+ * the client. Obtain a session key via `auth.getToken` + `auth.getSession`.
183
+ *
184
+ * @param {TrackUpdateNowPlayingRequest} params
185
+ * @param {RequestInit} init
186
+ * @returns {Promise<TrackUpdateNowPlayingResponse>}
187
+ * https://www.last.fm/api/show/track.updateNowPlaying
188
+ */
189
+ updateNowPlaying: (params: TrackUpdateNowPlayingRequest, init?: RequestInit) => Promise<TrackUpdateNowPlayingResponse>;
72
190
  }
73
191
  export declare function createTrackService(config: LastFmConfig): TrackService;
74
192
  //# sourceMappingURL=track.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,MAAM,WAAW,YAAY;IAC5B;;;;;;SAMK;IACL,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5F;;;;;;SAMK;IACL,UAAU,EAAE,CACX,MAAM,EAAE,sBAAsB,EAC9B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC;;;;;;SAMK;IACL,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5F;;;;;;SAMK;IACL,UAAU,EAAE,CACX,MAAM,EAAE,sBAAsB,EAC9B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC;;;;;;SAMK;IACL,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEzF;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/F;;;OAGG;IACH,iBAAiB,EAAE,CAClB,MAAM,EAAE,oBAAoB,EAC5B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpC;;;;;;SAMK;IACL,YAAY,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrF;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC/F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAoCrE"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,94 @@
1
- import { fetcher, buildUrl } from '../utils.js';
2
- import { batchFetcher, parsePostParamsBatchTrack, parsePostParamsTrack } from './track.utils.js';
1
+ import { buildUrl, fetcher, LastFmApiError, signedPost } from '../utils.js';
2
+ import { buildBatchScrobbleParams, buildScrobbleParams } from './track.utils.js';
3
+ function resolveSessionKeyForTrackMutation(config, requestSk, action) {
4
+ const sk = requestSk ?? config.sessionKey;
5
+ if (!sk) {
6
+ throw new LastFmApiError(`A session key (\`sk\`) is required to track.${action}. Pass \`sk\` in the request params or set \`sessionKey\` on the LastFmConfig.`, 0);
7
+ }
8
+ return sk;
9
+ }
10
+ function resolveSessionKeyForNowPlaying(config, requestSk) {
11
+ const sk = requestSk ?? config.sessionKey;
12
+ if (!sk) {
13
+ throw new LastFmApiError('A session key (`sk`) is required to track.updateNowPlaying. Pass `sk` in the request params or set `sessionKey` on the LastFmConfig.', 0);
14
+ }
15
+ return sk;
16
+ }
3
17
  export function createTrackService(config) {
4
- const scrobbleImpl = ({ artist, sk, timestamp, track, album }, init) => fetcher(buildUrl(config, 'track.scrobble', {
5
- ...parsePostParamsTrack(config, { artist, sk, timestamp, track, album })
6
- }), {
7
- ...init,
8
- method: 'POST'
18
+ const scrobbleImpl = (params, init) => signedPost(config, 'track.scrobble', {
19
+ params: buildScrobbleParams(config, params),
20
+ init,
9
21
  });
10
- const scrobbleManyImpl = ({ tracks, sk }) => batchFetcher(config, {
11
- body: parsePostParamsBatchTrack(config, { tracks, sk })
22
+ const scrobbleManyImpl = (params, init) => signedPost(config, 'track.scrobble', {
23
+ params: buildBatchScrobbleParams(config, params),
24
+ init,
12
25
  });
13
26
  return {
14
27
  getInfo: (params, init) => fetcher(buildUrl(config, 'track.getInfo', params), init),
15
28
  getSimilar: (params, init) => fetcher(buildUrl(config, 'track.getSimilar', params), init),
16
29
  getTags: (params, init) => fetcher(buildUrl(config, 'track.getTags', params), init),
17
30
  getTopTags: (params, init) => fetcher(buildUrl(config, 'track.getTopTags', params), init),
31
+ getCorrection: (params, init) => fetcher(buildUrl(config, 'track.getCorrection', params), init),
18
32
  search: (params, init) => fetcher(buildUrl(config, 'track.search', params), init),
19
33
  scrobble: scrobbleImpl,
20
34
  postTrackScrobble: scrobbleImpl,
21
35
  scrobbleMany: scrobbleManyImpl,
22
- postBatchTrackScrobble: scrobbleManyImpl
36
+ postBatchTrackScrobble: scrobbleManyImpl,
37
+ addTags: (params, init) => {
38
+ const sk = resolveSessionKeyForTrackMutation(config, params.sk, 'addTags');
39
+ return signedPost(config, 'track.addTags', {
40
+ params: {
41
+ artist: params.artist,
42
+ track: params.track,
43
+ tags: params.tags.join(','),
44
+ sk,
45
+ },
46
+ init,
47
+ }).then(() => undefined);
48
+ },
49
+ removeTag: (params, init) => {
50
+ const sk = resolveSessionKeyForTrackMutation(config, params.sk, 'removeTag');
51
+ return signedPost(config, 'track.removeTag', {
52
+ params: {
53
+ artist: params.artist,
54
+ track: params.track,
55
+ tag: params.tag,
56
+ sk,
57
+ },
58
+ init,
59
+ }).then(() => undefined);
60
+ },
61
+ love: (params, init) => {
62
+ const sk = resolveSessionKeyForTrackMutation(config, params.sk, 'love');
63
+ return signedPost(config, 'track.love', {
64
+ params: { artist: params.artist, track: params.track, sk },
65
+ init,
66
+ }).then(() => undefined);
67
+ },
68
+ unlove: (params, init) => {
69
+ const sk = resolveSessionKeyForTrackMutation(config, params.sk, 'unlove');
70
+ return signedPost(config, 'track.unlove', {
71
+ params: { artist: params.artist, track: params.track, sk },
72
+ init,
73
+ }).then(() => undefined);
74
+ },
75
+ updateNowPlaying: (params, init) => {
76
+ const sk = resolveSessionKeyForNowPlaying(config, params.sk);
77
+ return signedPost(config, 'track.updateNowPlaying', {
78
+ params: {
79
+ artist: params.artist,
80
+ track: params.track,
81
+ album: params.album,
82
+ trackNumber: params.trackNumber,
83
+ context: params.context,
84
+ mbid: params.mbid,
85
+ duration: params.duration,
86
+ albumArtist: params.albumArtist,
87
+ sk,
88
+ },
89
+ init,
90
+ });
91
+ },
23
92
  };
24
93
  }
25
94
  //# sourceMappingURL=track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAmFjG,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACtD,MAAM,YAAY,GAAG,CACpB,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAwB,EAC7D,IAAkB,EACjB,EAAE,CACH,OAAO,CACN,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE;QAClC,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACxE,CAAC,EACF;QACC,GAAG,IAAI;QACP,MAAM,EAAE,MAAM;KACd,CACD,CAAC;IAEH,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAA8B,EAAE,EAAE,CACvE,YAAY,CAAwB,MAAM,EAAE;QAC3C,IAAI,EAAE,yBAAyB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;KACvD,CAAC,CAAC;IAEJ,OAAO;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACzB,OAAO,CAAuB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC5B,OAAO,CAA0B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACrF,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACzB,OAAO,CAAuB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAC/E,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC5B,OAAO,CAA0B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACrF,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,OAAO,CAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAC7E,QAAQ,EAAE,YAAY;QACtB,iBAAiB,EAAE,YAAY;QAC/B,YAAY,EAAE,gBAAgB;QAC9B,sBAAsB,EAAE,gBAAgB;KACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/services/track.ts"],"names":[],"mappings":"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"}