@retroachievements/api 0.0.0-development

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 (225) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +103 -0
  3. package/dist/__playground.d.ts +7 -0
  4. package/dist/achievement/getAchievementUnlocks.d.ts +45 -0
  5. package/dist/achievement/index.d.ts +2 -0
  6. package/dist/achievement/models/achievement-unlock-entity.model.d.ts +6 -0
  7. package/dist/achievement/models/get-achievement-unlocks-response.model.d.ts +8 -0
  8. package/dist/achievement/models/index.d.ts +2 -0
  9. package/dist/api.cjs.development.js +2363 -0
  10. package/dist/api.cjs.development.js.map +1 -0
  11. package/dist/api.cjs.production.min.js +2 -0
  12. package/dist/api.cjs.production.min.js.map +1 -0
  13. package/dist/api.esm.js +2333 -0
  14. package/dist/api.esm.js.map +1 -0
  15. package/dist/console/getConsoleIds.d.ts +22 -0
  16. package/dist/console/getGameList.d.ts +52 -0
  17. package/dist/console/index.d.ts +3 -0
  18. package/dist/console/models/console-id.model.d.ts +4 -0
  19. package/dist/console/models/game-list.model.d.ts +15 -0
  20. package/dist/console/models/get-console-ids-response.model.d.ts +4 -0
  21. package/dist/console/models/get-game-list-response.model.d.ts +15 -0
  22. package/dist/console/models/index.d.ts +4 -0
  23. package/dist/feed/getAchievementOfTheWeek.d.ts +48 -0
  24. package/dist/feed/getActiveClaims.d.ts +38 -0
  25. package/dist/feed/getTicketData.d.ts +158 -0
  26. package/dist/feed/getTopTenUsers.d.ts +24 -0
  27. package/dist/feed/index.d.ts +5 -0
  28. package/dist/feed/models/achievement-of-the-week.model.d.ts +32 -0
  29. package/dist/feed/models/achievement-ticket-stats-response.model.d.ts +7 -0
  30. package/dist/feed/models/achievement-ticket-stats.model.d.ts +7 -0
  31. package/dist/feed/models/active-claim.model.d.ts +49 -0
  32. package/dist/feed/models/game-ticket-stats.model.d.ts +9 -0
  33. package/dist/feed/models/game-tickets-response.model.d.ts +7 -0
  34. package/dist/feed/models/get-achievement-of-the-week-response.model.d.ts +32 -0
  35. package/dist/feed/models/get-active-claims-response.model.d.ts +19 -0
  36. package/dist/feed/models/get-top-ten-users-response.model.d.ts +10 -0
  37. package/dist/feed/models/index.d.ts +19 -0
  38. package/dist/feed/models/most-ticketed-games-response.model.d.ts +12 -0
  39. package/dist/feed/models/most-ticketed-games.model.d.ts +12 -0
  40. package/dist/feed/models/recent-tickets-response.model.d.ts +6 -0
  41. package/dist/feed/models/recent-tickets.model.d.ts +6 -0
  42. package/dist/feed/models/response-ticket-entity.model.d.ts +24 -0
  43. package/dist/feed/models/ticket-entity.model.d.ts +24 -0
  44. package/dist/feed/models/tickets-by-user-response.model.d.ts +8 -0
  45. package/dist/feed/models/top-ten-users-entity.model.d.ts +5 -0
  46. package/dist/feed/models/top-ten-users.model.d.ts +2 -0
  47. package/dist/feed/models/user-ticket-stats.model.d.ts +8 -0
  48. package/dist/game/getAchievementCount.d.ts +31 -0
  49. package/dist/game/getAchievementDistribution.d.ts +57 -0
  50. package/dist/game/getGame.d.ts +48 -0
  51. package/dist/game/getGameExtended.d.ts +68 -0
  52. package/dist/game/getGameRankAndScore.d.ts +38 -0
  53. package/dist/game/getGameRating.d.ts +38 -0
  54. package/dist/game/index.d.ts +7 -0
  55. package/dist/game/models/achievement-count.model.d.ts +4 -0
  56. package/dist/game/models/achievement-distribution-flags.model.d.ts +4 -0
  57. package/dist/game/models/game-extended-achievement-entity.model.d.ts +15 -0
  58. package/dist/game/models/game-extended-claim-entity.model.d.ts +7 -0
  59. package/dist/game/models/game-extended.model.d.ts +25 -0
  60. package/dist/game/models/game-rank-and-score-entity.model.d.ts +6 -0
  61. package/dist/game/models/game-rating.model.d.ts +9 -0
  62. package/dist/game/models/game.model.d.ts +19 -0
  63. package/dist/game/models/get-achievement-count-response.model.d.ts +4 -0
  64. package/dist/game/models/get-achievement-distribution-response.model.d.ts +1 -0
  65. package/dist/game/models/get-game-extended-response.model.d.ts +50 -0
  66. package/dist/game/models/get-game-rank-and-score-response.model.d.ts +8 -0
  67. package/dist/game/models/get-game-rating-response.model.d.ts +9 -0
  68. package/dist/game/models/get-game-response.model.d.ts +19 -0
  69. package/dist/game/models/index.d.ts +14 -0
  70. package/dist/index.d.ts +6 -0
  71. package/dist/index.js +8 -0
  72. package/dist/user/getAchievementsEarnedBetween.d.ts +59 -0
  73. package/dist/user/getAchievementsEarnedOnDay.d.ts +57 -0
  74. package/dist/user/getGameInfoAndUserProgress.d.ts +80 -0
  75. package/dist/user/getUserGameRankAndScore.d.ts +44 -0
  76. package/dist/user/getUserPoints.d.ts +30 -0
  77. package/dist/user/getUserProgress.d.ts +49 -0
  78. package/dist/user/getUserRecentlyPlayedGames.d.ts +50 -0
  79. package/dist/user/getUserSummary.d.ts +32 -0
  80. package/dist/user/index.d.ts +9 -0
  81. package/dist/user/models/dated-user-achievement.model.d.ts +17 -0
  82. package/dist/user/models/dated-user-achievements-response.model.d.ts +19 -0
  83. package/dist/user/models/game-info-and-user-progress.model.d.ts +12 -0
  84. package/dist/user/models/get-game-info-and-user-progress-response.model.d.ts +14 -0
  85. package/dist/user/models/get-user-game-rank-and-score-response.model.d.ts +8 -0
  86. package/dist/user/models/get-user-points-response.model.d.ts +4 -0
  87. package/dist/user/models/get-user-progress-response.model.d.ts +10 -0
  88. package/dist/user/models/get-user-recently-played-games-response.model.d.ts +16 -0
  89. package/dist/user/models/get-user-summary-response.model.d.ts +82 -0
  90. package/dist/user/models/index.d.ts +14 -0
  91. package/dist/user/models/user-game-rank-and-score.model.d.ts +8 -0
  92. package/dist/user/models/user-points.model.d.ts +4 -0
  93. package/dist/user/models/user-progress.model.d.ts +10 -0
  94. package/dist/user/models/user-recently-played-games.model.d.ts +16 -0
  95. package/dist/user/models/user-summary.model.d.ts +83 -0
  96. package/dist/utils/internal/apiBaseUrl.d.ts +1 -0
  97. package/dist/utils/internal/buildRequestUrl.d.ts +2 -0
  98. package/dist/utils/internal/call.d.ts +20 -0
  99. package/dist/utils/internal/index.d.ts +4 -0
  100. package/dist/utils/internal/serializeProperties.d.ts +4 -0
  101. package/dist/utils/public/buildAuthorization.d.ts +22 -0
  102. package/dist/utils/public/index.d.ts +3 -0
  103. package/dist/utils/public/models/auth-object.model.d.ts +19 -0
  104. package/dist/utils/public/models/index.d.ts +1 -0
  105. package/package.json +117 -0
  106. package/src/__playground.ts +27 -0
  107. package/src/achievement/getAchievementUnlocks.test.ts +71 -0
  108. package/src/achievement/getAchievementUnlocks.ts +80 -0
  109. package/src/achievement/index.ts +2 -0
  110. package/src/achievement/models/achievement-unlock-entity.model.ts +6 -0
  111. package/src/achievement/models/get-achievement-unlocks-response.model.ts +8 -0
  112. package/src/achievement/models/index.ts +2 -0
  113. package/src/console/getConsoleIds.test.ts +53 -0
  114. package/src/console/getConsoleIds.ts +43 -0
  115. package/src/console/getGameList.test.ts +82 -0
  116. package/src/console/getGameList.ts +94 -0
  117. package/src/console/index.ts +3 -0
  118. package/src/console/models/console-id.model.ts +4 -0
  119. package/src/console/models/game-list.model.ts +16 -0
  120. package/src/console/models/get-console-ids-response.model.ts +1 -0
  121. package/src/console/models/get-game-list-response.model.ts +16 -0
  122. package/src/console/models/index.ts +4 -0
  123. package/src/feed/getAchievementOfTheWeek.test.ts +167 -0
  124. package/src/feed/getAchievementOfTheWeek.ts +80 -0
  125. package/src/feed/getActiveClaims.test.ts +81 -0
  126. package/src/feed/getActiveClaims.ts +68 -0
  127. package/src/feed/getTicketData.test.ts +349 -0
  128. package/src/feed/getTicketData.ts +286 -0
  129. package/src/feed/getTopTenUsers.test.ts +101 -0
  130. package/src/feed/getTopTenUsers.ts +51 -0
  131. package/src/feed/index.ts +5 -0
  132. package/src/feed/models/achievement-of-the-week.model.ts +27 -0
  133. package/src/feed/models/achievement-ticket-stats-response.model.ts +7 -0
  134. package/src/feed/models/achievement-ticket-stats.model.ts +7 -0
  135. package/src/feed/models/active-claim.model.ts +66 -0
  136. package/src/feed/models/game-ticket-stats.model.ts +11 -0
  137. package/src/feed/models/game-tickets-response.model.ts +7 -0
  138. package/src/feed/models/get-achievement-of-the-week-response.model.ts +27 -0
  139. package/src/feed/models/get-active-claims-response.model.ts +19 -0
  140. package/src/feed/models/get-top-ten-users-response.model.ts +12 -0
  141. package/src/feed/models/index.ts +19 -0
  142. package/src/feed/models/most-ticketed-games-response.model.ts +12 -0
  143. package/src/feed/models/most-ticketed-games.model.ts +12 -0
  144. package/src/feed/models/recent-tickets-response.model.ts +7 -0
  145. package/src/feed/models/recent-tickets.model.ts +7 -0
  146. package/src/feed/models/response-ticket-entity.model.ts +25 -0
  147. package/src/feed/models/ticket-entity.model.ts +24 -0
  148. package/src/feed/models/tickets-by-user-response.model.ts +8 -0
  149. package/src/feed/models/top-ten-users-entity.model.ts +5 -0
  150. package/src/feed/models/top-ten-users.model.ts +3 -0
  151. package/src/feed/models/user-ticket-stats.model.ts +8 -0
  152. package/src/game/getAchievementCount.test.ts +49 -0
  153. package/src/game/getAchievementCount.ts +52 -0
  154. package/src/game/getAchievementDistribution.test.ts +187 -0
  155. package/src/game/getAchievementDistribution.ts +88 -0
  156. package/src/game/getGame.test.ts +81 -0
  157. package/src/game/getGame.ts +74 -0
  158. package/src/game/getGameExtended.test.ts +121 -0
  159. package/src/game/getGameExtended.ts +103 -0
  160. package/src/game/getGameRankAndScore.test.ts +62 -0
  161. package/src/game/getGameRankAndScore.ts +66 -0
  162. package/src/game/getGameRating.test.ts +59 -0
  163. package/src/game/getGameRating.ts +59 -0
  164. package/src/game/index.ts +7 -0
  165. package/src/game/models/achievement-count.model.ts +4 -0
  166. package/src/game/models/achievement-distribution-flags.model.ts +4 -0
  167. package/src/game/models/game-extended-achievement-entity.model.ts +15 -0
  168. package/src/game/models/game-extended-claim-entity.model.ts +7 -0
  169. package/src/game/models/game-extended.model.ts +26 -0
  170. package/src/game/models/game-rank-and-score-entity.model.ts +6 -0
  171. package/src/game/models/game-rating.model.ts +9 -0
  172. package/src/game/models/game.model.ts +19 -0
  173. package/src/game/models/get-achievement-count-response.model.ts +4 -0
  174. package/src/game/models/get-achievement-distribution-response.model.ts +1 -0
  175. package/src/game/models/get-game-extended-response.model.ts +56 -0
  176. package/src/game/models/get-game-rank-and-score-response.model.ts +8 -0
  177. package/src/game/models/get-game-rating-response.model.ts +9 -0
  178. package/src/game/models/get-game-response.model.ts +19 -0
  179. package/src/game/models/index.ts +14 -0
  180. package/src/index.ts +8 -0
  181. package/src/user/getAchievementsEarnedBetween.test.ts +84 -0
  182. package/src/user/getAchievementsEarnedBetween.ts +88 -0
  183. package/src/user/getAchievementsEarnedOnDay.test.ts +83 -0
  184. package/src/user/getAchievementsEarnedOnDay.ts +87 -0
  185. package/src/user/getGameInfoAndUserProgress.test.ts +135 -0
  186. package/src/user/getGameInfoAndUserProgress.ts +118 -0
  187. package/src/user/getUserGameRankAndScore.test.ts +60 -0
  188. package/src/user/getUserGameRankAndScore.ts +69 -0
  189. package/src/user/getUserPoints.test.ts +49 -0
  190. package/src/user/getUserPoints.ts +51 -0
  191. package/src/user/getUserProgress.test.ts +80 -0
  192. package/src/user/getUserProgress.ts +78 -0
  193. package/src/user/getUserRecentlyPlayedGames.test.ts +76 -0
  194. package/src/user/getUserRecentlyPlayedGames.ts +93 -0
  195. package/src/user/getUserSummary.test.ts +251 -0
  196. package/src/user/getUserSummary.ts +96 -0
  197. package/src/user/index.ts +9 -0
  198. package/src/user/models/dated-user-achievement.model.ts +17 -0
  199. package/src/user/models/dated-user-achievements-response.model.ts +20 -0
  200. package/src/user/models/game-info-and-user-progress.model.ts +19 -0
  201. package/src/user/models/get-game-info-and-user-progress-response.model.ts +28 -0
  202. package/src/user/models/get-user-game-rank-and-score-response.model.ts +9 -0
  203. package/src/user/models/get-user-points-response.model.ts +4 -0
  204. package/src/user/models/get-user-progress-response.model.ts +13 -0
  205. package/src/user/models/get-user-recently-played-games-response.model.ts +17 -0
  206. package/src/user/models/get-user-summary-response.model.ts +92 -0
  207. package/src/user/models/index.ts +14 -0
  208. package/src/user/models/user-game-rank-and-score.model.ts +8 -0
  209. package/src/user/models/user-points.model.ts +4 -0
  210. package/src/user/models/user-progress.model.ts +10 -0
  211. package/src/user/models/user-recently-played-games.model.ts +16 -0
  212. package/src/user/models/user-summary.model.ts +92 -0
  213. package/src/utils/internal/apiBaseUrl.ts +1 -0
  214. package/src/utils/internal/buildRequestUrl.test.ts +51 -0
  215. package/src/utils/internal/buildRequestUrl.ts +32 -0
  216. package/src/utils/internal/call.test.ts +39 -0
  217. package/src/utils/internal/call.ts +29 -0
  218. package/src/utils/internal/index.ts +4 -0
  219. package/src/utils/internal/serializeProperties.test.ts +141 -0
  220. package/src/utils/internal/serializeProperties.ts +75 -0
  221. package/src/utils/public/buildAuthorization.test.ts +36 -0
  222. package/src/utils/public/buildAuthorization.ts +40 -0
  223. package/src/utils/public/index.ts +3 -0
  224. package/src/utils/public/models/auth-object.model.ts +20 -0
  225. package/src/utils/public/models/index.ts +1 -0
@@ -0,0 +1,25 @@
1
+ import type { GameExtendedAchievementEntity } from "./game-extended-achievement-entity.model";
2
+ import type { GameExtendedClaimEntity } from "./game-extended-claim-entity.model";
3
+ export interface GameExtended {
4
+ id: number;
5
+ title: string;
6
+ consoleId: number;
7
+ forumTopicId: number;
8
+ flags: number;
9
+ imageIcon: string;
10
+ imageTitle: string;
11
+ imageIngame: string;
12
+ imageBoxArt: string;
13
+ publisher: string;
14
+ developer: string;
15
+ genre: string;
16
+ released: number;
17
+ isFinal: boolean;
18
+ consoleName: string;
19
+ richPresencePatch: string;
20
+ numAchievements: number;
21
+ numDistinctPlayersCasual: number;
22
+ numDistinctPlayersHardcore: number;
23
+ claims: GameExtendedClaimEntity[];
24
+ achievements: Record<number, GameExtendedAchievementEntity>;
25
+ }
@@ -0,0 +1,6 @@
1
+ export interface GameRankAndScoreEntity {
2
+ user: string;
3
+ totalScore: number;
4
+ lastAward: string;
5
+ rank: number;
6
+ }
@@ -0,0 +1,9 @@
1
+ export interface GameRating {
2
+ gameId: number;
3
+ ratings: {
4
+ game: number;
5
+ achievements: number;
6
+ gameNumVotes: number;
7
+ achievementsNumVotes: number;
8
+ };
9
+ }
@@ -0,0 +1,19 @@
1
+ export interface Game {
2
+ id: number;
3
+ title: string;
4
+ forumTopicId: number;
5
+ consoleId: number;
6
+ consoleName: string;
7
+ flags: number;
8
+ imageIcon: string;
9
+ gameIcon: string;
10
+ imageTitle: string;
11
+ imageIngame: string;
12
+ imageBoxArt: string;
13
+ publisher: string;
14
+ developer: string;
15
+ genre: string;
16
+ released: number;
17
+ gameTitle: string;
18
+ console: string;
19
+ }
@@ -0,0 +1,4 @@
1
+ export interface GetAchievementCountResponse {
2
+ GameID: number;
3
+ AchievementIDs: number[];
4
+ }
@@ -0,0 +1 @@
1
+ export declare type GetAchievementDistributionResponse = Record<`${number}`, number>;
@@ -0,0 +1,50 @@
1
+ declare enum GameExtendedClaimType {
2
+ Primary = "0",
3
+ Collaboration = "1"
4
+ }
5
+ export interface GameExtendedRawAchievementEntity {
6
+ ID: string;
7
+ NumAwarded: string;
8
+ NumAwardedHardcore: string;
9
+ Title: string;
10
+ Description: string;
11
+ Points: string;
12
+ TrueRatio: string;
13
+ Author: string;
14
+ DateModified: string;
15
+ DateCreated: string;
16
+ BadgeName: string;
17
+ DisplayOrder: string;
18
+ MemAddr: string;
19
+ }
20
+ interface GameExtendedRawClaimEntity {
21
+ User: string;
22
+ SetType: string;
23
+ ClaimType: GameExtendedClaimType;
24
+ Created: string;
25
+ Expiration: string;
26
+ }
27
+ export interface GetGameExtendedResponse {
28
+ ID: number;
29
+ Title: string;
30
+ ConsoleID: number;
31
+ ForumTopicID: number;
32
+ Flags: number;
33
+ ImageIcon: string;
34
+ ImageTitle: string;
35
+ ImageIngame: string;
36
+ ImageBoxArt: string;
37
+ Publisher: string;
38
+ Developer: string;
39
+ Genre: string;
40
+ Released: string;
41
+ IsFinal: boolean;
42
+ ConsoleName: string;
43
+ RichPresencePatch: string;
44
+ NumAchievements: number;
45
+ NumDistinctPlayersCasual: string;
46
+ NumDistinctPlayersHardcore: string;
47
+ Claims: GameExtendedRawClaimEntity[];
48
+ Achievements: Record<number, GameExtendedRawAchievementEntity> | [];
49
+ }
50
+ export {};
@@ -0,0 +1,8 @@
1
+ interface RawGameRankAndScoreEntity {
2
+ User: string;
3
+ TotalScore: string;
4
+ LastAward: string;
5
+ Rank: number;
6
+ }
7
+ export declare type GetGameRankAndScoreResponse = RawGameRankAndScoreEntity[];
8
+ export {};
@@ -0,0 +1,9 @@
1
+ export interface GetGameRatingResponse {
2
+ GameID: number;
3
+ Ratings: {
4
+ Game: number;
5
+ Achievements: number;
6
+ GameNumVotes: number;
7
+ AchievementsNumVotes: number;
8
+ };
9
+ }
@@ -0,0 +1,19 @@
1
+ export interface GetGameResponse {
2
+ ID: string;
3
+ Title: string;
4
+ ForumTopicID: string;
5
+ ConsoleID: string;
6
+ ConsoleName: string;
7
+ Flags: string;
8
+ ImageIcon: string;
9
+ GameIcon: string;
10
+ ImageTitle: string;
11
+ ImageIngame: string;
12
+ ImageBoxArt: string;
13
+ Publisher: string;
14
+ Developer: string;
15
+ Genre: string;
16
+ Released: string;
17
+ GameTitle: string;
18
+ Console: string;
19
+ }
@@ -0,0 +1,14 @@
1
+ export * from "./achievement-count.model";
2
+ export * from "./achievement-distribution-flags.model";
3
+ export * from "./game.model";
4
+ export * from "./game-extended.model";
5
+ export * from "./game-extended-achievement-entity.model";
6
+ export * from "./game-extended-claim-entity.model";
7
+ export * from "./game-rank-and-score-entity.model";
8
+ export * from "./game-rating.model";
9
+ export * from "./get-achievement-count-response.model";
10
+ export * from "./get-achievement-distribution-response.model";
11
+ export * from "./get-game-extended-response.model";
12
+ export * from "./get-game-rank-and-score-response.model";
13
+ export * from "./get-game-rating-response.model";
14
+ export * from "./get-game-response.model";
@@ -0,0 +1,6 @@
1
+ export * from "./achievement";
2
+ export * from "./console";
3
+ export * from "./feed";
4
+ export * from "./game";
5
+ export * from "./user";
6
+ export * from "./utils/public";
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+
2
+ 'use strict'
3
+
4
+ if (process.env.NODE_ENV === 'production') {
5
+ module.exports = require('./api.cjs.production.min.js')
6
+ } else {
7
+ module.exports = require('./api.cjs.development.js')
8
+ }
@@ -0,0 +1,59 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { DatedUserAchievement } from "./models";
3
+ /**
4
+ * A call to this function will retrieve a list of achievements
5
+ * earned by a given user between two provided dates.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the
11
+ * list of achievements for.
12
+ *
13
+ * @param payload.fromDate A Date object specifying when
14
+ * the list itself should begin.
15
+ *
16
+ * @param payload.toDate A Date object specifying when
17
+ * the list itself should end.
18
+ *
19
+ * @example
20
+ * ```
21
+ * const achievementsEarnedBetween = await getAchievementsEarnedBetween(
22
+ * authorization,
23
+ * {
24
+ * userName: "xelnia",
25
+ * fromDate: new Date("2022-10-12"),
26
+ * toDate: new Date("2022-10-13")
27
+ * }
28
+ * );
29
+ * ```
30
+ *
31
+ * @returns An array containing metadata about the user
32
+ * achievements earned during the specified date range.
33
+ * ```
34
+ * [
35
+ * {
36
+ * date: '2022-10-12 07:58:05',
37
+ * hardcoreMode: true,
38
+ * achievementId: 173315,
39
+ * title: 'Your Puny Human Weapons',
40
+ * description: 'Collect all objects in the Weapons Category.',
41
+ * badgeName: '193756',
42
+ * points: 10,
43
+ * author: 'blendedsea',
44
+ * gameTitle: 'Me & My Katamari',
45
+ * gameIcon: '/Images/047357.png',
46
+ * gameId: 3571,
47
+ * consoleName: 'PlayStation Portable',
48
+ * cumulScore: 120,
49
+ * badgeUrl: '/Badge/193756.png',
50
+ * gameUrl: '/game/3571'
51
+ * }
52
+ * ]
53
+ * ```
54
+ */
55
+ export declare const getAchievementsEarnedBetween: (authorization: AuthObject, payload: {
56
+ userName: string;
57
+ fromDate: Date;
58
+ toDate: Date;
59
+ }) => Promise<DatedUserAchievement[]>;
@@ -0,0 +1,57 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { DatedUserAchievement } from "./models";
3
+ /**
4
+ * A call to this function will retrieve a list of achievements
5
+ * earned by a given user on a specified date.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the
11
+ * list of achievements for.
12
+ *
13
+ * @param payload.fromDate A Date object specifying when
14
+ * the list itself should begin.
15
+ *
16
+ * @param payload.onDate A Date object specifying the day
17
+ * to query for a user's earned achievements.
18
+ *
19
+ * @example
20
+ * ```
21
+ * const achievementsEarnedOnDay = await getAchievementsEarnedOnDay(
22
+ * authorization,
23
+ * {
24
+ * userName: "xelnia",
25
+ * onDate: new Date("2022-10-13")
26
+ * }
27
+ * );
28
+ * ```
29
+ *
30
+ * @returns An array containing metadata about the user
31
+ * achievements earned on the specified day.
32
+ * ```
33
+ * [
34
+ * {
35
+ * date: '2022-10-12 07:58:05',
36
+ * hardcoreMode: true,
37
+ * achievementId: 173315,
38
+ * title: 'Your Puny Human Weapons',
39
+ * description: 'Collect all objects in the Weapons Category.',
40
+ * badgeName: '193756',
41
+ * points: 10,
42
+ * author: 'blendedsea',
43
+ * gameTitle: 'Me & My Katamari',
44
+ * gameIcon: '/Images/047357.png',
45
+ * gameId: 3571,
46
+ * consoleName: 'PlayStation Portable',
47
+ * cumulScore: 120,
48
+ * badgeUrl: '/Badge/193756.png',
49
+ * gameUrl: '/game/3571'
50
+ * }
51
+ * ]
52
+ * ```
53
+ */
54
+ export declare const getAchievementsEarnedOnDay: (authorization: AuthObject, payload: {
55
+ userName: string;
56
+ onDate: Date;
57
+ }) => Promise<DatedUserAchievement[]>;
@@ -0,0 +1,80 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { GameInfoAndUserProgress } from "./models";
3
+ /**
4
+ * A call to this function will retrieve extended metadata
5
+ * about a game, in addition to a user's progress about a game.
6
+ * This is targeted via a game's unique ID and a given username.
7
+ *
8
+ * @param authorization An object containing your userName and webApiKey.
9
+ * This can be constructed with `buildAuthorization()`.
10
+ *
11
+ * @param payload.gameId The unique game ID. If you are unsure, open the
12
+ * game's page on the RetroAchievements.org website. For example, Dragster's
13
+ * URL is https://retroachievements.org/game/14402. We can see from the
14
+ * URL that the game ID is "14402".
15
+ *
16
+ * @param payload.userName The user for which to retrieve the
17
+ * game progress for.
18
+ *
19
+ * @example
20
+ * ```
21
+ * const gameInfoAndUserProgress = await getGameInfoAndUserProgress(
22
+ * authorization,
23
+ * { gameId: 14402, userName: "wv_pinball" }
24
+ * );
25
+ * ```
26
+ *
27
+ * @returns An object containing extended metadata about a target game,
28
+ * with attached progress for a target username.
29
+ * ```json
30
+ * {
31
+ * id: 14402,
32
+ * title: "Dragster",
33
+ * consoleId: 25,
34
+ * forumTopicId: 9145,
35
+ * flags: 0,
36
+ * imageIcon: "/Images/026368.png",
37
+ * imageTitle: "/Images/026366.png",
38
+ * imageIngame: "/Images/026367.png",
39
+ * imageBoxArt: "/Images/026365.png",
40
+ * publisher: "Activision",
41
+ * developer: "David Crane",
42
+ * genre: "Racing",
43
+ * released: 1980,
44
+ * isFinal: false,
45
+ * consoleName: "Atari 2600",
46
+ * richPresencePatch: "2b92fa1bf9635c303b3b7f8feea3ed3c",
47
+ * numAchievements: 12,
48
+ * numDistinctPlayersCasual: 454,
49
+ * numDistinctPlayersHardcore, 323
50
+ * claims: [],
51
+ * achievements: {
52
+ * '79434': {
53
+ * id: 79434,
54
+ * numAwarded: 338,
55
+ * numAwardedHardcore: 253,
56
+ * title: "Novice Dragster Driver 1",
57
+ * description: "Complete your very first race in game 1.",
58
+ * points: 1,
59
+ * trueRatio: 1,
60
+ * author: "Boldewin",
61
+ * dateModified: "2019-08-01 19:03:46",
62
+ * dateCreated: "2019-07-31 18:49:57",
63
+ * badgeName: "85541",
64
+ * displayOrder: 0,
65
+ * memAddr: "f5c41fa0b5fa0d5fbb8a74c598f18582",
66
+ * dateEarned: '2022-08-23 22:56:38',
67
+ * dateEarnedHardcore: '2022-08-23 22:56:38'
68
+ * }
69
+ * },
70
+ * numAwardedToUser: 12,
71
+ * numAwardedToUserHardcore: 12,
72
+ * userCompletion: "100.00%",
73
+ * userCompletionHardcore: "100.00%"
74
+ * }
75
+ * ```
76
+ */
77
+ export declare const getGameInfoAndUserProgress: (authorization: AuthObject, payload: {
78
+ gameId: number;
79
+ userName: string;
80
+ }) => Promise<GameInfoAndUserProgress>;
@@ -0,0 +1,44 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { UserGameRankAndScore } from "./models";
3
+ /**
4
+ * A call to this function will retrieve metadata about
5
+ * how a particular user has performed/ranked on a particular
6
+ * game, targeted by game ID.
7
+ *
8
+ * @param authorization An object containing your userName and webApiKey.
9
+ * This can be constructed with `buildAuthorization()`.
10
+ *
11
+ * @param payload.gameId The unique game ID. If you are unsure, open the
12
+ * game's page on the RetroAchievements.org website. For example, Dragster's
13
+ * URL is https://retroachievements.org/game/14402. We can see from the
14
+ * URL that the game ID is "14402".
15
+ *
16
+ * @param payload.userName The user for which to retrieve the
17
+ * game ranking metadata for.
18
+ *
19
+ * @example
20
+ * ```
21
+ * const userGameRankAndScore = await getUserGameRankAndScore(
22
+ * authorization,
23
+ * { gameId: 14402, userName: "xelnia" }
24
+ * );
25
+ * ```
26
+ *
27
+ * @returns An array containing metadata about the user's
28
+ * rank and score for the target game ID. If metadata
29
+ * cannot be found, the array is empty.
30
+ * ```
31
+ * [
32
+ * {
33
+ * user: "xelnia",
34
+ * totalScore: 378,
35
+ * lastAward: "2022-09-01 21:51:23",
36
+ * userRank: 3
37
+ * }
38
+ * ]
39
+ * ```
40
+ */
41
+ export declare const getUserGameRankAndScore: (authorization: AuthObject, payload: {
42
+ gameId: number;
43
+ userName: string;
44
+ }) => Promise<UserGameRankAndScore>;
@@ -0,0 +1,30 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { UserPoints } from "./models";
3
+ /**
4
+ * A call to this function will retrieve a given user's hardcore
5
+ * and softcore points.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the points for.
11
+ *
12
+ * @example
13
+ * ```
14
+ * const userPoints = await getUserPoints(
15
+ * authorization,
16
+ * { userName: "xelnia" }
17
+ * );
18
+ * ```
19
+ *
20
+ * @returns An object containing metadata about a target user's points.
21
+ * ```json
22
+ * {
23
+ * points: 7640,
24
+ * softcorePoints: 25
25
+ * }
26
+ * ```
27
+ */
28
+ export declare const getUserPoints: (authorization: AuthObject, payload: {
29
+ userName: string;
30
+ }) => Promise<UserPoints>;
@@ -0,0 +1,49 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { UserProgress } from "./models";
3
+ /**
4
+ * A call to this function will retrieve a given user's
5
+ * progress on a given set of games, targeted by game ID.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the progress for.
11
+ *
12
+ * @param payload.gameIds An array of RetroAchievements Game IDs. If you aren't
13
+ * sure of the game ID, visit the game's page on the website and copy the number
14
+ * at the end of the URL.
15
+ *
16
+ * @example
17
+ * ```
18
+ * const userProgress = await getUserProgress(
19
+ * authorization,
20
+ * { userName: "xelnia", gameIds: [14402, 1] }
21
+ * );
22
+ * ```
23
+ *
24
+ * @returns An object which is a map of summarized progress for games.
25
+ * ```json
26
+ * {
27
+ * "1": {
28
+ * numPossibleAchievements: 24,
29
+ * possibleScore: 255,
30
+ * numAchieved: 0,
31
+ * scoreAchieved: 0,
32
+ * numAchievedHardcore: 0,
33
+ * scoreAchievedHardcore: 0
34
+ * },
35
+ * "14402": {
36
+ * numPossibleAchievements: 24,
37
+ * possibleScore: 255,
38
+ * numAchieved: 0,
39
+ * scoreAchieved: 0,
40
+ * numAchievedHardcore: 0,
41
+ * scoreAchievedHardcore: 0
42
+ * }
43
+ * }
44
+ * ```
45
+ */
46
+ export declare const getUserProgress: (authorization: AuthObject, payload: {
47
+ userName: string;
48
+ gameIds: Array<number | string>;
49
+ }) => Promise<UserProgress>;
@@ -0,0 +1,50 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { UserRecentlyPlayedGames } from "./models";
3
+ /**
4
+ * A call to this function will retrieve a list of a target user's
5
+ * recently played games, targeted by username.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the summary for.
11
+ *
12
+ * @param payload.count Optional. Defaults to 10. Max is 50. How many
13
+ * recently played games for the user to retrieve.
14
+ *
15
+ * @param payload.offset Optional. Defaults to 0. Number of recently played
16
+ * game entries to skip. This can be used for pagination.
17
+ *
18
+ * @example
19
+ * ```
20
+ * const userRecentlyPlayedGames = await getUserRecentlyPlayedGames(
21
+ * authorization,
22
+ * { userName: "xelnia" }
23
+ * );
24
+ * ```
25
+ *
26
+ * @returns An array containing metadata about a user's recently played games.
27
+ * ```json
28
+ * [
29
+ * {
30
+ * gameId: 19010,
31
+ * consoleId: 21,
32
+ * consoleName: "PlayStation 2",
33
+ * title: "Simpsons, The: Hit & Run",
34
+ * imageIcon: "/Images/066024.png",
35
+ * lastPlayed: "2022-10-24 22:05:12",
36
+ * numPossibleAchievements: 131,
37
+ * possibleScore: 865,
38
+ * numAchieved: 23,
39
+ * scoreAchieved: 84,
40
+ * numAchievedHardcore: 23,
41
+ * scoreAchievedHardcore: 84
42
+ * }
43
+ * ]
44
+ * ```
45
+ */
46
+ export declare const getUserRecentlyPlayedGames: (authorization: AuthObject, payload: {
47
+ userName: string;
48
+ offset?: number;
49
+ count?: number;
50
+ }) => Promise<UserRecentlyPlayedGames>;
@@ -0,0 +1,32 @@
1
+ import type { AuthObject } from "../utils/public";
2
+ import type { UserSummary } from "./models";
3
+ /**
4
+ * A call to this function will retrieve summary information about
5
+ * a given user, targeted by username.
6
+ *
7
+ * @param authorization An object containing your userName and webApiKey.
8
+ * This can be constructed with `buildAuthorization()`.
9
+ *
10
+ * @param payload.userName The user for which to retrieve the summary for.
11
+ *
12
+ * @param payload.recentGamesCount Optional. The number of recent games to return.
13
+ * This defaults to 5.
14
+ *
15
+ * @param payload.recentAchievementsCount Optional. The number of recent achievements
16
+ * to return. This defaults to 5.
17
+ *
18
+ * @example
19
+ * ```
20
+ * const userSummary = await getUserSummary(
21
+ * authorization,
22
+ * { userName: "xelnia" }
23
+ * );
24
+ * ```
25
+ *
26
+ * @returns An object containing summary metadata about a target user.
27
+ */
28
+ export declare const getUserSummary: (authorization: AuthObject, payload: {
29
+ userName: string;
30
+ recentGamesCount?: number;
31
+ recentAchievementsCount?: number;
32
+ }) => Promise<UserSummary>;
@@ -0,0 +1,9 @@
1
+ export * from "./getAchievementsEarnedBetween";
2
+ export * from "./getAchievementsEarnedOnDay";
3
+ export * from "./getGameInfoAndUserProgress";
4
+ export * from "./getUserGameRankAndScore";
5
+ export * from "./getUserPoints";
6
+ export * from "./getUserProgress";
7
+ export * from "./getUserRecentlyPlayedGames";
8
+ export * from "./getUserSummary";
9
+ export * from "./models";
@@ -0,0 +1,17 @@
1
+ export declare type DatedUserAchievement = {
2
+ date: string;
3
+ hardcoreMode: boolean;
4
+ achievementId: number;
5
+ title: string;
6
+ description: string;
7
+ badgeName: string;
8
+ points: number;
9
+ author: string;
10
+ gameTitle: string;
11
+ gameIcon: string;
12
+ gameId: number;
13
+ consoleName: string;
14
+ cumulScore: number;
15
+ badgeUrl: string;
16
+ gameUrl: string;
17
+ }[];
@@ -0,0 +1,19 @@
1
+ interface DatedUserAchievementResponseEntity {
2
+ Date: string;
3
+ HardcoreMode: string;
4
+ AchievementID: string;
5
+ Title: string;
6
+ Description: string;
7
+ BadgeName: string;
8
+ Points: string;
9
+ Author: string;
10
+ GameTitle: string;
11
+ GameIcon: string;
12
+ GameID: string;
13
+ ConsoleName: string;
14
+ CumulScore: number;
15
+ BadgeURL: string;
16
+ GameURL: string;
17
+ }
18
+ export declare type DatedUserAchievementsResponse = DatedUserAchievementResponseEntity[];
19
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { GameExtended, GameExtendedAchievementEntity } from "../../game/models";
2
+ export declare type GameExtendedAchievementEntityWithUserProgress = GameExtendedAchievementEntity & {
3
+ dateEarned: string;
4
+ dateEarnedHardcore: string;
5
+ };
6
+ export interface GameInfoAndUserProgress extends GameExtended {
7
+ achievements: Record<number, GameExtendedAchievementEntityWithUserProgress>;
8
+ numAwardedToUser: number;
9
+ numAwardedToUserHardcore: number;
10
+ userCompletion: string;
11
+ userCompletionHardcore: string;
12
+ }