@ansango/lastfm-api 3.1.3

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 (204) hide show
  1. package/CHANGELOG.md +323 -0
  2. package/LICENSE +21 -0
  3. package/README.md +470 -0
  4. package/dist/__tests__/utils.test.d.ts +2 -0
  5. package/dist/__tests__/utils.test.d.ts.map +1 -0
  6. package/dist/__tests__/utils.test.js +86 -0
  7. package/dist/__tests__/utils.test.js.map +1 -0
  8. package/dist/client.d.ts +52 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +68 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/config.d.ts +23 -0
  13. package/dist/config.d.ts.map +1 -0
  14. package/dist/config.js +59 -0
  15. package/dist/config.js.map +1 -0
  16. package/dist/entrypoints/album.d.ts +4 -0
  17. package/dist/entrypoints/album.d.ts.map +1 -0
  18. package/dist/entrypoints/album.js +3 -0
  19. package/dist/entrypoints/album.js.map +1 -0
  20. package/dist/entrypoints/album.schemas.d.ts +2 -0
  21. package/dist/entrypoints/album.schemas.d.ts.map +1 -0
  22. package/dist/entrypoints/album.schemas.js +3 -0
  23. package/dist/entrypoints/album.schemas.js.map +1 -0
  24. package/dist/entrypoints/artist.d.ts +4 -0
  25. package/dist/entrypoints/artist.d.ts.map +1 -0
  26. package/dist/entrypoints/artist.js +3 -0
  27. package/dist/entrypoints/artist.js.map +1 -0
  28. package/dist/entrypoints/artist.schemas.d.ts +2 -0
  29. package/dist/entrypoints/artist.schemas.d.ts.map +1 -0
  30. package/dist/entrypoints/artist.schemas.js +3 -0
  31. package/dist/entrypoints/artist.schemas.js.map +1 -0
  32. package/dist/entrypoints/auth.d.ts +4 -0
  33. package/dist/entrypoints/auth.d.ts.map +1 -0
  34. package/dist/entrypoints/auth.js +3 -0
  35. package/dist/entrypoints/auth.js.map +1 -0
  36. package/dist/entrypoints/auth.schemas.d.ts +2 -0
  37. package/dist/entrypoints/auth.schemas.d.ts.map +1 -0
  38. package/dist/entrypoints/auth.schemas.js +3 -0
  39. package/dist/entrypoints/auth.schemas.js.map +1 -0
  40. package/dist/entrypoints/base.schemas.d.ts +2 -0
  41. package/dist/entrypoints/base.schemas.d.ts.map +1 -0
  42. package/dist/entrypoints/base.schemas.js +3 -0
  43. package/dist/entrypoints/base.schemas.js.map +1 -0
  44. package/dist/entrypoints/chart.d.ts +4 -0
  45. package/dist/entrypoints/chart.d.ts.map +1 -0
  46. package/dist/entrypoints/chart.js +3 -0
  47. package/dist/entrypoints/chart.js.map +1 -0
  48. package/dist/entrypoints/chart.schemas.d.ts +2 -0
  49. package/dist/entrypoints/chart.schemas.d.ts.map +1 -0
  50. package/dist/entrypoints/chart.schemas.js +3 -0
  51. package/dist/entrypoints/chart.schemas.js.map +1 -0
  52. package/dist/entrypoints/geo.d.ts +4 -0
  53. package/dist/entrypoints/geo.d.ts.map +1 -0
  54. package/dist/entrypoints/geo.js +3 -0
  55. package/dist/entrypoints/geo.js.map +1 -0
  56. package/dist/entrypoints/geo.schemas.d.ts +2 -0
  57. package/dist/entrypoints/geo.schemas.d.ts.map +1 -0
  58. package/dist/entrypoints/geo.schemas.js +3 -0
  59. package/dist/entrypoints/geo.schemas.js.map +1 -0
  60. package/dist/entrypoints/library.d.ts +4 -0
  61. package/dist/entrypoints/library.d.ts.map +1 -0
  62. package/dist/entrypoints/library.js +3 -0
  63. package/dist/entrypoints/library.js.map +1 -0
  64. package/dist/entrypoints/library.schemas.d.ts +2 -0
  65. package/dist/entrypoints/library.schemas.d.ts.map +1 -0
  66. package/dist/entrypoints/library.schemas.js +3 -0
  67. package/dist/entrypoints/library.schemas.js.map +1 -0
  68. package/dist/entrypoints/tag.d.ts +4 -0
  69. package/dist/entrypoints/tag.d.ts.map +1 -0
  70. package/dist/entrypoints/tag.js +3 -0
  71. package/dist/entrypoints/tag.js.map +1 -0
  72. package/dist/entrypoints/tag.schemas.d.ts +2 -0
  73. package/dist/entrypoints/tag.schemas.d.ts.map +1 -0
  74. package/dist/entrypoints/tag.schemas.js +3 -0
  75. package/dist/entrypoints/tag.schemas.js.map +1 -0
  76. package/dist/entrypoints/track.d.ts +4 -0
  77. package/dist/entrypoints/track.d.ts.map +1 -0
  78. package/dist/entrypoints/track.js +3 -0
  79. package/dist/entrypoints/track.js.map +1 -0
  80. package/dist/entrypoints/track.schemas.d.ts +2 -0
  81. package/dist/entrypoints/track.schemas.d.ts.map +1 -0
  82. package/dist/entrypoints/track.schemas.js +3 -0
  83. package/dist/entrypoints/track.schemas.js.map +1 -0
  84. package/dist/entrypoints/user.d.ts +4 -0
  85. package/dist/entrypoints/user.d.ts.map +1 -0
  86. package/dist/entrypoints/user.js +3 -0
  87. package/dist/entrypoints/user.js.map +1 -0
  88. package/dist/entrypoints/user.schemas.d.ts +2 -0
  89. package/dist/entrypoints/user.schemas.d.ts.map +1 -0
  90. package/dist/entrypoints/user.schemas.js +3 -0
  91. package/dist/entrypoints/user.schemas.js.map +1 -0
  92. package/dist/index.d.ts +26 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.js +20 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/services/album.d.ts +38 -0
  97. package/dist/services/album.d.ts.map +1 -0
  98. package/dist/services/album.js +10 -0
  99. package/dist/services/album.js.map +1 -0
  100. package/dist/services/album.schemas.d.ts +171 -0
  101. package/dist/services/album.schemas.d.ts.map +1 -0
  102. package/dist/services/album.schemas.js +128 -0
  103. package/dist/services/album.schemas.js.map +1 -0
  104. package/dist/services/artist.d.ts +62 -0
  105. package/dist/services/artist.d.ts.map +1 -0
  106. package/dist/services/artist.js +13 -0
  107. package/dist/services/artist.js.map +1 -0
  108. package/dist/services/artist.schemas.d.ts +306 -0
  109. package/dist/services/artist.schemas.d.ts.map +1 -0
  110. package/dist/services/artist.schemas.js +199 -0
  111. package/dist/services/artist.schemas.js.map +1 -0
  112. package/dist/services/auth.d.ts +14 -0
  113. package/dist/services/auth.d.ts.map +1 -0
  114. package/dist/services/auth.js +7 -0
  115. package/dist/services/auth.js.map +1 -0
  116. package/dist/services/auth.schemas.d.ts +20 -0
  117. package/dist/services/auth.schemas.d.ts.map +1 -0
  118. package/dist/services/auth.schemas.js +16 -0
  119. package/dist/services/auth.schemas.js.map +1 -0
  120. package/dist/services/chart.d.ts +30 -0
  121. package/dist/services/chart.d.ts.map +1 -0
  122. package/dist/services/chart.js +9 -0
  123. package/dist/services/chart.js.map +1 -0
  124. package/dist/services/chart.schemas.d.ts +84 -0
  125. package/dist/services/chart.schemas.d.ts.map +1 -0
  126. package/dist/services/chart.schemas.js +73 -0
  127. package/dist/services/chart.schemas.js.map +1 -0
  128. package/dist/services/geo.d.ts +22 -0
  129. package/dist/services/geo.d.ts.map +1 -0
  130. package/dist/services/geo.js +8 -0
  131. package/dist/services/geo.js.map +1 -0
  132. package/dist/services/geo.schemas.d.ts +68 -0
  133. package/dist/services/geo.schemas.d.ts.map +1 -0
  134. package/dist/services/geo.schemas.js +59 -0
  135. package/dist/services/geo.schemas.js.map +1 -0
  136. package/dist/services/index.d.ts +20 -0
  137. package/dist/services/index.d.ts.map +1 -0
  138. package/dist/services/index.js +21 -0
  139. package/dist/services/index.js.map +1 -0
  140. package/dist/services/library.d.ts +14 -0
  141. package/dist/services/library.d.ts.map +1 -0
  142. package/dist/services/library.js +7 -0
  143. package/dist/services/library.js.map +1 -0
  144. package/dist/services/library.schemas.d.ts +31 -0
  145. package/dist/services/library.schemas.d.ts.map +1 -0
  146. package/dist/services/library.schemas.js +27 -0
  147. package/dist/services/library.schemas.js.map +1 -0
  148. package/dist/services/schemas/base.entities.schemas.d.ts +12 -0
  149. package/dist/services/schemas/base.entities.schemas.d.ts.map +1 -0
  150. package/dist/services/schemas/base.entities.schemas.js +18 -0
  151. package/dist/services/schemas/base.entities.schemas.js.map +1 -0
  152. package/dist/services/schemas/base.entity-names.schemas.d.ts +12 -0
  153. package/dist/services/schemas/base.entity-names.schemas.d.ts.map +1 -0
  154. package/dist/services/schemas/base.entity-names.schemas.js +8 -0
  155. package/dist/services/schemas/base.entity-names.schemas.js.map +1 -0
  156. package/dist/services/schemas/base.metadata.schemas.d.ts +26 -0
  157. package/dist/services/schemas/base.metadata.schemas.d.ts.map +1 -0
  158. package/dist/services/schemas/base.metadata.schemas.js +17 -0
  159. package/dist/services/schemas/base.metadata.schemas.js.map +1 -0
  160. package/dist/services/schemas/base.pagination.schemas.d.ts +18 -0
  161. package/dist/services/schemas/base.pagination.schemas.d.ts.map +1 -0
  162. package/dist/services/schemas/base.pagination.schemas.js +12 -0
  163. package/dist/services/schemas/base.pagination.schemas.js.map +1 -0
  164. package/dist/services/schemas/base.primitives.schemas.d.ts +50 -0
  165. package/dist/services/schemas/base.primitives.schemas.d.ts.map +1 -0
  166. package/dist/services/schemas/base.primitives.schemas.js +36 -0
  167. package/dist/services/schemas/base.primitives.schemas.js.map +1 -0
  168. package/dist/services/schemas/index.d.ts +6 -0
  169. package/dist/services/schemas/index.d.ts.map +1 -0
  170. package/dist/services/schemas/index.js +7 -0
  171. package/dist/services/schemas/index.js.map +1 -0
  172. package/dist/services/tag.d.ts +62 -0
  173. package/dist/services/tag.d.ts.map +1 -0
  174. package/dist/services/tag.js +13 -0
  175. package/dist/services/tag.js.map +1 -0
  176. package/dist/services/tag.schemas.d.ts +192 -0
  177. package/dist/services/tag.schemas.d.ts.map +1 -0
  178. package/dist/services/tag.schemas.js +156 -0
  179. package/dist/services/tag.schemas.js.map +1 -0
  180. package/dist/services/track.d.ts +74 -0
  181. package/dist/services/track.d.ts.map +1 -0
  182. package/dist/services/track.js +25 -0
  183. package/dist/services/track.js.map +1 -0
  184. package/dist/services/track.schemas.d.ts +284 -0
  185. package/dist/services/track.schemas.d.ts.map +1 -0
  186. package/dist/services/track.schemas.js +191 -0
  187. package/dist/services/track.schemas.js.map +1 -0
  188. package/dist/services/track.utils.d.ts +10 -0
  189. package/dist/services/track.utils.d.ts.map +1 -0
  190. package/dist/services/track.utils.js +56 -0
  191. package/dist/services/track.utils.js.map +1 -0
  192. package/dist/services/user.d.ts +102 -0
  193. package/dist/services/user.d.ts.map +1 -0
  194. package/dist/services/user.js +18 -0
  195. package/dist/services/user.js.map +1 -0
  196. package/dist/services/user.schemas.d.ts +609 -0
  197. package/dist/services/user.schemas.d.ts.map +1 -0
  198. package/dist/services/user.schemas.js +321 -0
  199. package/dist/services/user.schemas.js.map +1 -0
  200. package/dist/utils.d.ts +39 -0
  201. package/dist/utils.d.ts.map +1 -0
  202. package/dist/utils.js +125 -0
  203. package/dist/utils.js.map +1 -0
  204. package/package.json +156 -0
@@ -0,0 +1,171 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Album
4
+ * @see https://www.last.fm/api/show/album.getInfo
5
+ */
6
+ export declare const albumSchema: z.ZodObject<{
7
+ artist: z.ZodString;
8
+ mbid: z.ZodString;
9
+ tags: z.ZodObject<{
10
+ tag: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
11
+ name: z.ZodString;
12
+ url: z.ZodString;
13
+ }, z.core.$strip>>, z.ZodObject<{
14
+ name: z.ZodString;
15
+ url: z.ZodString;
16
+ }, z.core.$strip>]>>;
17
+ }, z.core.$strip>;
18
+ playcount: z.ZodString;
19
+ image: z.ZodArray<z.ZodObject<{
20
+ "#text": z.ZodString;
21
+ size: z.ZodUnion<readonly [z.ZodLiteral<"small">, z.ZodLiteral<"medium">, z.ZodLiteral<"large">, z.ZodLiteral<"extralarge">, z.ZodLiteral<"mega">]>;
22
+ }, z.core.$strip>>;
23
+ tracks: z.ZodOptional<z.ZodObject<{
24
+ track: z.ZodArray<z.ZodObject<{
25
+ duration: z.ZodString;
26
+ name: z.ZodString;
27
+ url: z.ZodString;
28
+ artist: z.ZodObject<{
29
+ name: z.ZodString;
30
+ mbid: z.ZodString;
31
+ url: z.ZodString;
32
+ }, z.core.$strip>;
33
+ }, z.core.$strip>>;
34
+ }, z.core.$strip>>;
35
+ url: z.ZodString;
36
+ name: z.ZodString;
37
+ listeners: z.ZodString;
38
+ wiki: z.ZodObject<{
39
+ published: z.ZodString;
40
+ summary: z.ZodString;
41
+ content: z.ZodString;
42
+ }, z.core.$strip>;
43
+ userplaycount: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip>;
45
+ export declare const albumGetInfoRequestSchema: z.ZodObject<{
46
+ artist: z.ZodString;
47
+ album: z.ZodString;
48
+ mbid: z.ZodOptional<z.ZodString>;
49
+ username: z.ZodOptional<z.ZodString>;
50
+ lang: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ export declare const albumGetInfoResponseSchema: z.ZodObject<{
53
+ album: z.ZodObject<{
54
+ artist: z.ZodString;
55
+ mbid: z.ZodString;
56
+ tags: z.ZodObject<{
57
+ tag: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
58
+ name: z.ZodString;
59
+ url: z.ZodString;
60
+ }, z.core.$strip>>, z.ZodObject<{
61
+ name: z.ZodString;
62
+ url: z.ZodString;
63
+ }, z.core.$strip>]>>;
64
+ }, z.core.$strip>;
65
+ playcount: z.ZodString;
66
+ image: z.ZodArray<z.ZodObject<{
67
+ "#text": z.ZodString;
68
+ size: z.ZodUnion<readonly [z.ZodLiteral<"small">, z.ZodLiteral<"medium">, z.ZodLiteral<"large">, z.ZodLiteral<"extralarge">, z.ZodLiteral<"mega">]>;
69
+ }, z.core.$strip>>;
70
+ tracks: z.ZodOptional<z.ZodObject<{
71
+ track: z.ZodArray<z.ZodObject<{
72
+ duration: z.ZodString;
73
+ name: z.ZodString;
74
+ url: z.ZodString;
75
+ artist: z.ZodObject<{
76
+ name: z.ZodString;
77
+ mbid: z.ZodString;
78
+ url: z.ZodString;
79
+ }, z.core.$strip>;
80
+ }, z.core.$strip>>;
81
+ }, z.core.$strip>>;
82
+ url: z.ZodString;
83
+ name: z.ZodString;
84
+ listeners: z.ZodString;
85
+ wiki: z.ZodObject<{
86
+ published: z.ZodString;
87
+ summary: z.ZodString;
88
+ content: z.ZodString;
89
+ }, z.core.$strip>;
90
+ userplaycount: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>;
92
+ }, z.core.$strip>;
93
+ export declare const albumGetTagsRequestSchema: z.ZodObject<{
94
+ artist: z.ZodString;
95
+ album: z.ZodString;
96
+ mbid: z.ZodOptional<z.ZodString>;
97
+ user: z.ZodString;
98
+ }, z.core.$strip>;
99
+ export declare const albumGetTagsResponseSchema: z.ZodObject<{
100
+ tags: z.ZodObject<{
101
+ tag: z.ZodArray<z.ZodObject<{
102
+ name: z.ZodString;
103
+ url: z.ZodString;
104
+ }, z.core.$strip>>;
105
+ }, z.core.$strip>;
106
+ "@attr": z.ZodObject<{
107
+ album: z.ZodString;
108
+ artist: z.ZodString;
109
+ }, z.core.$strip>;
110
+ }, z.core.$strip>;
111
+ export declare const albumGetTopTagsRequestSchema: z.ZodObject<{
112
+ artist: z.ZodString;
113
+ album: z.ZodString;
114
+ mbid: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$strip>;
116
+ export declare const albumGetTopTagsResponseSchema: z.ZodObject<{
117
+ tags: z.ZodObject<{
118
+ tag: z.ZodArray<z.ZodObject<{
119
+ name: z.ZodString;
120
+ url: z.ZodString;
121
+ count: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
122
+ }, z.core.$strip>>;
123
+ }, z.core.$strip>;
124
+ "@attr": z.ZodObject<{
125
+ album: z.ZodString;
126
+ artist: z.ZodString;
127
+ }, z.core.$strip>;
128
+ }, z.core.$strip>;
129
+ export declare const albumSearchRequestSchema: z.ZodObject<{
130
+ album: z.ZodString;
131
+ limit: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
132
+ page: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
133
+ }, z.core.$strip>;
134
+ export declare const albumSearchResponseSchema: z.ZodObject<{
135
+ results: z.ZodObject<{
136
+ "opensearch:Query": z.ZodObject<{
137
+ "#text": z.ZodString;
138
+ role: z.ZodString;
139
+ searchTerms: z.ZodString;
140
+ startPage: z.ZodString;
141
+ }, z.core.$strip>;
142
+ "opensearch:totalResults": z.ZodString;
143
+ "opensearch:startIndex": z.ZodString;
144
+ "opensearch:itemsPerPage": z.ZodString;
145
+ albummatches: z.ZodObject<{
146
+ album: z.ZodArray<z.ZodObject<{
147
+ name: z.ZodString;
148
+ artist: z.ZodString;
149
+ url: z.ZodString;
150
+ image: z.ZodArray<z.ZodObject<{
151
+ "#text": z.ZodString;
152
+ size: z.ZodUnion<readonly [z.ZodLiteral<"small">, z.ZodLiteral<"medium">, z.ZodLiteral<"large">, z.ZodLiteral<"extralarge">, z.ZodLiteral<"mega">]>;
153
+ }, z.core.$strip>>;
154
+ mbid: z.ZodString;
155
+ }, z.core.$strip>>;
156
+ }, z.core.$strip>;
157
+ "@attr": z.ZodObject<{
158
+ for: z.ZodString;
159
+ }, z.core.$strip>;
160
+ }, z.core.$strip>;
161
+ }, z.core.$strip>;
162
+ export type Album = z.infer<typeof albumSchema>;
163
+ export type AlbumGetInfoRequest = z.infer<typeof albumGetInfoRequestSchema>;
164
+ export type AlbumGetInfoResponse = z.infer<typeof albumGetInfoResponseSchema>;
165
+ export type AlbumGetTagsRequest = z.infer<typeof albumGetTagsRequestSchema>;
166
+ export type AlbumGetTagsResponse = z.infer<typeof albumGetTagsResponseSchema>;
167
+ export type AlbumGetTopTagsRequest = z.infer<typeof albumGetTopTagsRequestSchema>;
168
+ export type AlbumGetTopTagsResponse = z.infer<typeof albumGetTopTagsResponseSchema>;
169
+ export type AlbumSearchRequest = z.infer<typeof albumSearchRequestSchema>;
170
+ export type AlbumSearchResponse = z.infer<typeof albumSearchResponseSchema>;
171
+ //# sourceMappingURL=album.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"album.schemas.d.ts","sourceRoot":"","sources":["../../src/services/album.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsExB;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYtB,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAarC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAcxC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BpC,CAAC;AAGH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,128 @@
1
+ import { z } from "zod";
2
+ import { tagNameSchema, urlSchema, artistNameSchema, mbidSchema, durationSchema, nameSchema, publishedSchema, summarySchema, contentSchema, playcountSchema, imageSchema, albumNameSchema, listenersSchema, userNameSchema, langSchema, countSchema, limitSchema, pageSchema, textSchema, roleSchema, searchTermsSchema, startPageSchema, totalResultsSchema, startIndexSchema, itemsPerPageSchema, forSchema, } from "./schemas/index.js";
3
+ const albumTagSchema = z.object({
4
+ tag: z
5
+ .union([
6
+ z.array(z.object({
7
+ name: tagNameSchema,
8
+ url: urlSchema,
9
+ })),
10
+ z.object({
11
+ name: tagNameSchema,
12
+ url: urlSchema,
13
+ }),
14
+ ])
15
+ .optional(),
16
+ });
17
+ const albumTrackArtistSchema = z.object({
18
+ name: artistNameSchema,
19
+ mbid: mbidSchema,
20
+ url: urlSchema,
21
+ });
22
+ const albumTrackSchema = z.object({
23
+ track: z.array(z.object({
24
+ duration: durationSchema,
25
+ name: nameSchema,
26
+ url: urlSchema,
27
+ artist: albumTrackArtistSchema,
28
+ })),
29
+ });
30
+ const albumWikiSchema = z.object({
31
+ published: publishedSchema,
32
+ summary: summarySchema,
33
+ content: contentSchema,
34
+ });
35
+ /**
36
+ * Album
37
+ * @see https://www.last.fm/api/show/album.getInfo
38
+ */
39
+ export const albumSchema = z.object({
40
+ artist: artistNameSchema,
41
+ mbid: mbidSchema,
42
+ tags: albumTagSchema,
43
+ playcount: playcountSchema,
44
+ image: z.array(imageSchema),
45
+ tracks: albumTrackSchema.optional(),
46
+ url: urlSchema,
47
+ name: albumNameSchema,
48
+ listeners: listenersSchema,
49
+ wiki: albumWikiSchema,
50
+ userplaycount: playcountSchema.optional(),
51
+ });
52
+ export const albumGetInfoRequestSchema = z.object({
53
+ artist: artistNameSchema,
54
+ album: albumNameSchema,
55
+ mbid: mbidSchema.optional(),
56
+ username: userNameSchema.optional(),
57
+ lang: langSchema.optional(),
58
+ });
59
+ export const albumGetInfoResponseSchema = z.object({
60
+ album: albumSchema,
61
+ });
62
+ export const albumGetTagsRequestSchema = z.object({
63
+ artist: artistNameSchema,
64
+ album: albumNameSchema,
65
+ mbid: mbidSchema.optional(),
66
+ user: userNameSchema,
67
+ });
68
+ export const albumGetTagsResponseSchema = z.object({
69
+ tags: z.object({
70
+ tag: z.array(z.object({
71
+ name: tagNameSchema,
72
+ url: urlSchema,
73
+ })),
74
+ }),
75
+ "@attr": z.object({
76
+ album: albumNameSchema,
77
+ artist: artistNameSchema,
78
+ }),
79
+ });
80
+ export const albumGetTopTagsRequestSchema = z.object({
81
+ artist: artistNameSchema,
82
+ album: albumNameSchema,
83
+ mbid: mbidSchema.optional(),
84
+ });
85
+ export const albumGetTopTagsResponseSchema = z.object({
86
+ tags: z.object({
87
+ tag: z.array(z.object({
88
+ name: tagNameSchema,
89
+ url: urlSchema,
90
+ count: countSchema,
91
+ })),
92
+ }),
93
+ "@attr": z.object({
94
+ album: albumNameSchema,
95
+ artist: artistNameSchema,
96
+ }),
97
+ });
98
+ export const albumSearchRequestSchema = z.object({
99
+ album: albumNameSchema,
100
+ limit: limitSchema.optional(),
101
+ page: pageSchema.optional(),
102
+ });
103
+ export const albumSearchResponseSchema = z.object({
104
+ results: z.object({
105
+ "opensearch:Query": z.object({
106
+ "#text": textSchema,
107
+ role: roleSchema,
108
+ searchTerms: searchTermsSchema,
109
+ startPage: startPageSchema,
110
+ }),
111
+ "opensearch:totalResults": totalResultsSchema,
112
+ "opensearch:startIndex": startIndexSchema,
113
+ "opensearch:itemsPerPage": itemsPerPageSchema,
114
+ albummatches: z.object({
115
+ album: z.array(z.object({
116
+ name: albumNameSchema,
117
+ artist: artistNameSchema,
118
+ url: urlSchema,
119
+ image: z.array(imageSchema),
120
+ mbid: mbidSchema,
121
+ })),
122
+ }),
123
+ "@attr": z.object({
124
+ for: forSchema,
125
+ }),
126
+ }),
127
+ });
128
+ //# sourceMappingURL=album.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"album.schemas.js","sourceRoot":"","sources":["../../src/services/album.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { ArtistGetInfoRequest, ArtistGetInfoResponse, ArtistGetTagsRequest, ArtistGetTagsResponse, ArtistGetTopAlbumsRequest, ArtistGetTopAlbumsResponse, ArtistGetTopTagsRequest, ArtistGetTopTagsResponse, ArtistGetTopTracksRequest, ArtistGetTopTracksResponse, ArtistSearchRequest, ArtistSearchResponse, ArtistGetSimilarRequest, ArtistGetSimilarResponse } from './artist.schemas.js';
2
+ import type { LastFmConfig } from '../config.js';
3
+ export interface ArtistService {
4
+ /**
5
+ * Get the metadata for an artist. Includes biography.
6
+ * @param {ArtistGetInfoRequest} params
7
+ * @param {RequestInit} init
8
+ * @returns {Promise<ArtistGetInfoResponse>}
9
+ * https://www.last.fm/api/show/artist.getInfo
10
+ */
11
+ getInfo: (params: ArtistGetInfoRequest, init?: RequestInit) => Promise<ArtistGetInfoResponse>;
12
+ /**
13
+ * Get the tags applied by an individual user to an artist on Last.fm.
14
+ * @param {ArtistGetTagsRequest} params
15
+ * @param {RequestInit} init
16
+ * @returns {Promise<ArtistGetTagsResponse>}
17
+ * https://www.last.fm/api/show/artist.getTags
18
+ * */
19
+ getTags: (params: ArtistGetTagsRequest, init?: RequestInit) => Promise<ArtistGetTagsResponse>;
20
+ /**
21
+ * Get the similar artists for this artist on Last.fm, based on listening data.
22
+ * @param {ArtistGetSimilarRequest} params
23
+ * @param {RequestInit} init
24
+ * @returns {Promise<ArtistGetSimilarResponse>}
25
+ * https://www.last.fm/api/show/artist.getSimilar
26
+ * */
27
+ getSimilar: (params: ArtistGetSimilarRequest, init?: RequestInit) => Promise<ArtistGetSimilarResponse>;
28
+ /**
29
+ * Get the top tags for an artist on Last.fm, ordered by popularity.
30
+ * @param {ArtistGetTopTagsRequest} params
31
+ * @param {RequestInit} init
32
+ * @returns {Promise<ArtistGetTopTagsResponse>}
33
+ * https://www.last.fm/api/show/artist.getTopTags
34
+ * */
35
+ getTopTags: (params: ArtistGetTopTagsRequest, init?: RequestInit) => Promise<ArtistGetTopTagsResponse>;
36
+ /**
37
+ * Get the top albums for an artist on Last.fm, ordered by popularity.
38
+ * @param {ArtistGetTopAlbumsRequest} params
39
+ * @param {RequestInit} init
40
+ * @returns {Promise<ArtistGetTopAlbumsResponse>}
41
+ * https://www.last.fm/api/show/artist.getTopAlbums
42
+ * */
43
+ getTopAlbums: (params: ArtistGetTopAlbumsRequest, init?: RequestInit) => Promise<ArtistGetTopAlbumsResponse>;
44
+ /**
45
+ * Get the top tracks by an artist on Last.fm, ordered by popularity.
46
+ * @param {ArtistGetTopTracksRequest} params
47
+ * @param {RequestInit} init
48
+ * @returns {Promise<ArtistGetTopTracksResponse>}
49
+ * https://www.last.fm/api/show/artist.getTopTracks
50
+ * */
51
+ getTopTracks: (params: ArtistGetTopTracksRequest, init?: RequestInit) => Promise<ArtistGetTopTracksResponse>;
52
+ /**
53
+ * Search for an artist by name. Returns artist matches sorted by relevance.
54
+ * @param {ArtistSearchRequest} params
55
+ * @param {RequestInit} init
56
+ * @returns {Promise<ArtistSearchResponse>}
57
+ * https://www.last.fm/api/show/artist.search
58
+ * */
59
+ search: (params: ArtistSearchRequest, init?: RequestInit) => Promise<ArtistSearchResponse>;
60
+ }
61
+ export declare function createArtistService(config: LastFmConfig): ArtistService;
62
+ //# sourceMappingURL=artist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artist.d.ts","sourceRoot":"","sources":["../../src/services/artist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC7B;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9F;;;;;;SAMK;IACL,OAAO,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9F;;;;;;SAMK;IACL,UAAU,EAAE,CACX,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC;;;;;;SAMK;IACL,UAAU,EAAE,CACX,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC;;;;;;SAMK;IACL,YAAY,EAAE,CACb,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzC;;;;;;SAMK;IACL,YAAY,EAAE,CACb,MAAM,EAAE,yBAAyB,EACjC,IAAI,CAAC,EAAE,WAAW,KACd,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzC;;;;;;SAMK;IACL,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC3F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAiBvE"}
@@ -0,0 +1,13 @@
1
+ import { fetcher, buildUrl } from '../utils.js';
2
+ export function createArtistService(config) {
3
+ return {
4
+ getInfo: (params, init) => fetcher(buildUrl(config, 'artist.getInfo', params), init),
5
+ getTags: (params, init) => fetcher(buildUrl(config, 'artist.getTags', params), init),
6
+ getSimilar: (params, init) => fetcher(buildUrl(config, 'artist.getSimilar', params), init),
7
+ getTopTags: (params, init) => fetcher(buildUrl(config, 'artist.getTopTags', params), init),
8
+ getTopAlbums: (params, init) => fetcher(buildUrl(config, 'artist.getTopAlbums', params), init),
9
+ getTopTracks: (params, init) => fetcher(buildUrl(config, 'artist.getTopTracks', params), init),
10
+ search: (params, init) => fetcher(buildUrl(config, 'artist.search', params), init)
11
+ };
12
+ }
13
+ //# sourceMappingURL=artist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artist.js","sourceRoot":"","sources":["../../src/services/artist.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA0EhD,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACvD,OAAO;QACN,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACzB,OAAO,CAAwB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACjF,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACzB,OAAO,CAAwB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACjF,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC5B,OAAO,CAA2B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACvF,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC5B,OAAO,CAA2B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QACvF,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC9B,OAAO,CAA6B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAC3F,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAC9B,OAAO,CAA6B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;QAC3F,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CACxB,OAAO,CAAuB,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;KAC/E,CAAC;AACH,CAAC"}