@retroachievements/api 1.2.1 → 1.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 (190) hide show
  1. package/README.md +37 -37
  2. package/dist/__playground.d.ts +8 -8
  3. package/dist/achievement/getAchievementUnlocks.d.ts +46 -46
  4. package/dist/achievement/getAchievementUnlocks.test.d.ts +1 -1
  5. package/dist/achievement/index.d.ts +2 -2
  6. package/dist/achievement/models/achievement-unlock-entity.model.d.ts +29 -29
  7. package/dist/achievement/models/get-achievement-unlocks-response.model.d.ts +30 -30
  8. package/dist/achievement/models/index.d.ts +2 -2
  9. package/dist/api.cjs +1 -1
  10. package/dist/api.cjs.map +1 -1
  11. package/dist/api.modern.js +1 -1
  12. package/dist/api.modern.js.map +1 -1
  13. package/dist/api.module.js +1 -1
  14. package/dist/api.module.js.map +1 -1
  15. package/dist/api.umd.js +1 -1
  16. package/dist/api.umd.js.map +1 -1
  17. package/dist/console/getConsoleIds.d.ts +22 -22
  18. package/dist/console/getConsoleIds.test.d.ts +1 -1
  19. package/dist/console/getGameList.d.ts +53 -53
  20. package/dist/console/getGameList.test.d.ts +1 -1
  21. package/dist/console/index.d.ts +3 -3
  22. package/dist/console/models/console-id.model.d.ts +4 -4
  23. package/dist/console/models/game-list.model.d.ts +15 -15
  24. package/dist/console/models/get-console-ids-response.model.d.ts +4 -4
  25. package/dist/console/models/get-game-list-response.model.d.ts +15 -15
  26. package/dist/console/models/index.d.ts +4 -4
  27. package/dist/feed/getAchievementOfTheWeek.d.ts +48 -48
  28. package/dist/feed/getAchievementOfTheWeek.test.d.ts +1 -1
  29. package/dist/feed/getActiveClaims.d.ts +40 -40
  30. package/dist/feed/getActiveClaims.test.d.ts +1 -1
  31. package/dist/feed/getClaims.d.ts +7 -7
  32. package/dist/feed/getClaims.test.d.ts +1 -1
  33. package/dist/feed/getTopTenUsers.d.ts +24 -24
  34. package/dist/feed/getTopTenUsers.test.d.ts +1 -1
  35. package/dist/feed/index.d.ts +5 -5
  36. package/dist/feed/models/achievement-of-the-week.model.d.ts +32 -32
  37. package/dist/feed/models/claim-set-type.enum.d.ts +4 -4
  38. package/dist/feed/models/claim-status.enum.d.ts +5 -5
  39. package/dist/feed/models/claim-type.enum.d.ts +4 -4
  40. package/dist/feed/models/get-achievement-of-the-week-response.model.d.ts +32 -32
  41. package/dist/feed/models/get-set-claims-response.model.d.ts +21 -21
  42. package/dist/feed/models/get-top-ten-users-response.model.d.ts +10 -10
  43. package/dist/feed/models/index.d.ts +10 -10
  44. package/dist/feed/models/set-claim.model.d.ts +43 -43
  45. package/dist/feed/models/top-ten-users-entity.model.d.ts +5 -5
  46. package/dist/feed/models/top-ten-users.model.d.ts +2 -2
  47. package/dist/game/getAchievementCount.d.ts +32 -32
  48. package/dist/game/getAchievementCount.test.d.ts +1 -1
  49. package/dist/game/getAchievementDistribution.d.ts +58 -58
  50. package/dist/game/getAchievementDistribution.test.d.ts +1 -1
  51. package/dist/game/getGame.d.ts +49 -49
  52. package/dist/game/getGame.test.d.ts +1 -1
  53. package/dist/game/getGameExtended.d.ts +69 -69
  54. package/dist/game/getGameExtended.test.d.ts +1 -1
  55. package/dist/game/getGameRankAndScore.d.ts +39 -39
  56. package/dist/game/getGameRankAndScore.test.d.ts +1 -1
  57. package/dist/game/getGameRating.d.ts +39 -39
  58. package/dist/game/getGameRating.test.d.ts +1 -1
  59. package/dist/game/index.d.ts +7 -7
  60. package/dist/game/models/achievement-count.model.d.ts +4 -4
  61. package/dist/game/models/achievement-distribution-flags.enum.d.ts +4 -4
  62. package/dist/game/models/game-extended-achievement-entity.model.d.ts +15 -15
  63. package/dist/game/models/game-extended-claim-entity.model.d.ts +7 -7
  64. package/dist/game/models/game-extended.model.d.ts +25 -25
  65. package/dist/game/models/game-rank-and-score-entity.model.d.ts +6 -6
  66. package/dist/game/models/game-rating.model.d.ts +9 -9
  67. package/dist/game/models/game.model.d.ts +19 -19
  68. package/dist/game/models/get-achievement-count-response.model.d.ts +4 -4
  69. package/dist/game/models/get-achievement-distribution-response.model.d.ts +1 -1
  70. package/dist/game/models/get-game-extended-response.model.d.ts +50 -50
  71. package/dist/game/models/get-game-rank-and-score-response.model.d.ts +8 -8
  72. package/dist/game/models/get-game-rating-response.model.d.ts +9 -9
  73. package/dist/game/models/get-game-response.model.d.ts +19 -19
  74. package/dist/game/models/index.d.ts +14 -14
  75. package/dist/index.d.ts +7 -7
  76. package/dist/ticket/getTicketData.d.ts +159 -159
  77. package/dist/ticket/getTicketData.test.d.ts +1 -1
  78. package/dist/ticket/index.d.ts +2 -2
  79. package/dist/ticket/models/achievement-ticket-stats-response.model.d.ts +7 -7
  80. package/dist/ticket/models/achievement-ticket-stats.model.d.ts +7 -7
  81. package/dist/ticket/models/game-ticket-stats.model.d.ts +9 -9
  82. package/dist/ticket/models/game-tickets-response.model.d.ts +7 -7
  83. package/dist/ticket/models/index.d.ts +12 -12
  84. package/dist/ticket/models/most-ticketed-games-response.model.d.ts +12 -12
  85. package/dist/ticket/models/most-ticketed-games.model.d.ts +11 -11
  86. package/dist/ticket/models/recent-tickets-response.model.d.ts +6 -6
  87. package/dist/ticket/models/recent-tickets.model.d.ts +6 -6
  88. package/dist/ticket/models/response-ticket-entity.model.d.ts +24 -24
  89. package/dist/ticket/models/ticket-entity.model.d.ts +24 -24
  90. package/dist/ticket/models/tickets-by-user-response.model.d.ts +8 -8
  91. package/dist/ticket/models/user-ticket-stats.model.d.ts +8 -8
  92. package/dist/user/getAchievementsEarnedBetween.d.ts +59 -59
  93. package/dist/user/getAchievementsEarnedBetween.test.d.ts +1 -1
  94. package/dist/user/getAchievementsEarnedOnDay.d.ts +57 -57
  95. package/dist/user/getAchievementsEarnedOnDay.test.d.ts +1 -1
  96. package/dist/user/getGameInfoAndUserProgress.d.ts +81 -81
  97. package/dist/user/getGameInfoAndUserProgress.test.d.ts +1 -1
  98. package/dist/user/getUserAwards.d.ts +49 -47
  99. package/dist/user/getUserAwards.test.d.ts +1 -1
  100. package/dist/user/getUserClaims.d.ts +27 -27
  101. package/dist/user/getUserClaims.test.d.ts +1 -1
  102. package/dist/user/getUserCompletedGames.d.ts +56 -56
  103. package/dist/user/getUserCompletedGames.test.d.ts +1 -1
  104. package/dist/user/getUserGameRankAndScore.d.ts +45 -45
  105. package/dist/user/getUserGameRankAndScore.test.d.ts +1 -1
  106. package/dist/user/getUserPoints.d.ts +30 -30
  107. package/dist/user/getUserPoints.test.d.ts +1 -1
  108. package/dist/user/getUserProgress.d.ts +50 -50
  109. package/dist/user/getUserProgress.test.d.ts +1 -1
  110. package/dist/user/getUserRecentAchievements.d.ts +49 -49
  111. package/dist/user/getUserRecentAchievements.test.d.ts +1 -1
  112. package/dist/user/getUserRecentlyPlayedGames.d.ts +50 -50
  113. package/dist/user/getUserRecentlyPlayedGames.test.d.ts +1 -1
  114. package/dist/user/getUserSummary.d.ts +32 -32
  115. package/dist/user/getUserSummary.test.d.ts +1 -1
  116. package/dist/user/index.d.ts +13 -13
  117. package/dist/user/models/award-type.model.d.ts +1 -1
  118. package/dist/user/models/dated-user-achievement.model.d.ts +17 -17
  119. package/dist/user/models/dated-user-achievements-response.model.d.ts +19 -19
  120. package/dist/user/models/game-info-and-user-progress.model.d.ts +12 -12
  121. package/dist/user/models/get-game-info-and-user-progress-response.model.d.ts +14 -14
  122. package/dist/user/models/get-user-awards-response.model.d.ts +24 -22
  123. package/dist/user/models/get-user-completed-games-response.model.d.ts +13 -13
  124. package/dist/user/models/get-user-game-rank-and-score-response.model.d.ts +8 -8
  125. package/dist/user/models/get-user-points-response.model.d.ts +4 -4
  126. package/dist/user/models/get-user-progress-response.model.d.ts +10 -10
  127. package/dist/user/models/get-user-recent-achievements-response.model.d.ts +18 -18
  128. package/dist/user/models/get-user-recently-played-games-response.model.d.ts +17 -17
  129. package/dist/user/models/get-user-summary-response.model.d.ts +82 -82
  130. package/dist/user/models/index.d.ts +23 -23
  131. package/dist/user/models/user-awards.model.d.ts +24 -22
  132. package/dist/user/models/user-claims-response.model.d.ts +19 -19
  133. package/dist/user/models/user-claims.model.d.ts +19 -19
  134. package/dist/user/models/user-completed-games.model.d.ts +12 -12
  135. package/dist/user/models/user-game-rank-and-score.model.d.ts +7 -7
  136. package/dist/user/models/user-points.model.d.ts +4 -4
  137. package/dist/user/models/user-progress.model.d.ts +9 -9
  138. package/dist/user/models/user-recent-achievement.model.d.ts +16 -16
  139. package/dist/user/models/user-recently-played-games.model.d.ts +16 -16
  140. package/dist/user/models/user-summary.model.d.ts +82 -82
  141. package/dist/utils/internal/apiBaseUrl.d.ts +1 -1
  142. package/dist/utils/internal/buildRequestUrl.d.ts +2 -2
  143. package/dist/utils/internal/buildRequestUrl.test.d.ts +1 -1
  144. package/dist/utils/internal/call.d.ts +11 -20
  145. package/dist/utils/internal/call.test.d.ts +1 -1
  146. package/dist/utils/internal/id.model.d.ts +1 -1
  147. package/dist/utils/internal/index.d.ts +5 -5
  148. package/dist/utils/internal/serializeProperties.d.ts +4 -4
  149. package/dist/utils/internal/serializeProperties.test.d.ts +1 -1
  150. package/dist/utils/public/buildAuthorization.d.ts +22 -22
  151. package/dist/utils/public/buildAuthorization.test.d.ts +1 -1
  152. package/dist/utils/public/index.d.ts +3 -3
  153. package/dist/utils/public/models/auth-object.model.d.ts +19 -19
  154. package/dist/utils/public/models/index.d.ts +1 -1
  155. package/package.json +24 -31
  156. package/src/achievement/getAchievementUnlocks.test.ts +9 -12
  157. package/src/console/getConsoleIds.test.ts +3 -3
  158. package/src/console/getGameList.test.ts +3 -3
  159. package/src/feed/getAchievementOfTheWeek.test.ts +5 -5
  160. package/src/feed/getActiveClaims.test.ts +3 -3
  161. package/src/feed/getClaims.test.ts +3 -3
  162. package/src/feed/getTopTenUsers.test.ts +3 -3
  163. package/src/game/getAchievementCount.test.ts +3 -3
  164. package/src/game/getAchievementDistribution.test.ts +33 -44
  165. package/src/game/getGame.test.ts +3 -3
  166. package/src/game/getGameExtended.test.ts +3 -3
  167. package/src/game/getGameRankAndScore.test.ts +3 -3
  168. package/src/game/getGameRating.test.ts +3 -3
  169. package/src/ticket/getTicketData.test.ts +13 -13
  170. package/src/user/getAchievementsEarnedBetween.test.ts +3 -4
  171. package/src/user/getAchievementsEarnedOnDay.test.ts +3 -4
  172. package/src/user/getGameInfoAndUserProgress.test.ts +3 -4
  173. package/src/user/getUserAwards.test.ts +7 -3
  174. package/src/user/getUserAwards.ts +2 -0
  175. package/src/user/getUserClaims.test.ts +3 -3
  176. package/src/user/getUserCompletedGames.test.ts +3 -3
  177. package/src/user/getUserGameRankAndScore.test.ts +3 -3
  178. package/src/user/getUserPoints.test.ts +3 -3
  179. package/src/user/getUserProgress.test.ts +3 -3
  180. package/src/user/getUserRecentAchievements.test.ts +3 -4
  181. package/src/user/getUserRecentlyPlayedGames.test.ts +3 -4
  182. package/src/user/getUserSummary.test.ts +5 -5
  183. package/src/user/getUserSummary.ts +1 -3
  184. package/src/user/models/award-type.model.ts +5 -4
  185. package/src/user/models/get-user-awards-response.model.ts +2 -0
  186. package/src/user/models/user-awards.model.ts +2 -0
  187. package/src/utils/internal/buildRequestUrl.ts +1 -1
  188. package/src/utils/internal/call.test.ts +9 -10
  189. package/src/utils/internal/call.ts +1 -12
  190. package/src/utils/internal/serializeProperties.ts +4 -4
@@ -1,4 +1,4 @@
1
- import { rest } from "msw";
1
+ import { http, HttpResponse } from "msw";
2
2
  import { setupServer } from "msw/node";
3
3
 
4
4
  import { apiBaseUrl } from "../utils/internal";
@@ -46,8 +46,8 @@ describe("Function: getUserProgress", () => {
46
46
  };
47
47
 
48
48
  server.use(
49
- rest.get(`${apiBaseUrl}/API_GetUserProgress.php`, (_, res, ctx) =>
50
- res(ctx.json(mockResponse))
49
+ http.get(`${apiBaseUrl}/API_GetUserProgress.php`, () =>
50
+ HttpResponse.json(mockResponse)
51
51
  )
52
52
  );
53
53
 
@@ -1,4 +1,4 @@
1
- import { rest } from "msw";
1
+ import { http, HttpResponse } from "msw";
2
2
  import { setupServer } from "msw/node";
3
3
 
4
4
  import { apiBaseUrl } from "../utils/internal";
@@ -47,9 +47,8 @@ describe("Function: getUserRecentAchievements", () => {
47
47
  ];
48
48
 
49
49
  server.use(
50
- rest.get(
51
- `${apiBaseUrl}/API_GetUserRecentAchievements.php`,
52
- (_, res, ctx) => res(ctx.json(mockResponse))
50
+ http.get(`${apiBaseUrl}/API_GetUserRecentAchievements.php`, () =>
51
+ HttpResponse.json(mockResponse)
53
52
  )
54
53
  );
55
54
 
@@ -1,4 +1,4 @@
1
- import { rest } from "msw";
1
+ import { http, HttpResponse } from "msw";
2
2
  import { setupServer } from "msw/node";
3
3
 
4
4
  import { apiBaseUrl } from "../utils/internal";
@@ -45,9 +45,8 @@ describe("Function: getUserRecentlyPlayedGames", () => {
45
45
  ];
46
46
 
47
47
  server.use(
48
- rest.get(
49
- `${apiBaseUrl}/API_GetUserRecentlyPlayedGames.php`,
50
- (_, res, ctx) => res(ctx.json(mockResponse))
48
+ http.get(`${apiBaseUrl}/API_GetUserRecentlyPlayedGames.php`, () =>
49
+ HttpResponse.json(mockResponse)
51
50
  )
52
51
  );
53
52
 
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable sonarjs/no-duplicate-string */
2
2
 
3
- import { rest } from "msw";
3
+ import { http, HttpResponse } from "msw";
4
4
  import { setupServer } from "msw/node";
5
5
 
6
6
  import { apiBaseUrl } from "../utils/internal";
@@ -31,8 +31,8 @@ describe("Function: getUserSummary", () => {
31
31
  const mockResponse = mockGetUserSummaryResponse;
32
32
 
33
33
  server.use(
34
- rest.get(`${apiBaseUrl}/API_GetUserSummary.php`, (_, res, ctx) =>
35
- res(ctx.json(mockResponse))
34
+ http.get(`${apiBaseUrl}/API_GetUserSummary.php`, () =>
35
+ HttpResponse.json(mockResponse)
36
36
  )
37
37
  );
38
38
 
@@ -55,8 +55,8 @@ describe("Function: getUserSummary", () => {
55
55
  const mockResponse = "<html><body>the api is down</body></html>";
56
56
 
57
57
  server.use(
58
- rest.get(`${apiBaseUrl}/API_GetUserSummary.php`, (_, res, ctx) =>
59
- res(ctx.status(503), ctx.body(mockResponse))
58
+ http.get(`${apiBaseUrl}/API_GetUserSummary.php`, () =>
59
+ HttpResponse.json(mockResponse, { status: 503 })
60
60
  )
61
61
  );
62
62
 
@@ -17,7 +17,7 @@ import type { GetUserSummaryResponse, UserSummary } from "./models";
17
17
  * @param payload.userName The user for which to retrieve the summary for.
18
18
  *
19
19
  * @param payload.recentGamesCount Optional. The number of recent games to return.
20
- * This defaults to 5.
20
+ * This defaults to 0.
21
21
  *
22
22
  * @param payload.recentAchievementsCount Optional. The number of recent achievements
23
23
  * to return. This defaults to 5.
@@ -92,5 +92,3 @@ export const getUserSummary = async (
92
92
  ]
93
93
  });
94
94
  };
95
-
96
- // TODO: add test for this
@@ -1,7 +1,8 @@
1
1
  export type AwardType =
2
- | "Mastery/Completion"
3
- | "Achievement Unlocks Yield"
4
2
  | "Achievement Points Yield"
5
- | "Patreon Supporter"
3
+ | "Achievement Unlocks Yield"
6
4
  | "Certified Legend"
7
- | "Invalid or deprecated award type";
5
+ | "Game Beaten"
6
+ | "Invalid or deprecated award type"
7
+ | "Mastery/Completion"
8
+ | "Patreon Supporter";
@@ -17,6 +17,8 @@ export interface GetUserAwardsResponse {
17
17
  HiddenAwardsCount: number;
18
18
  MasteryAwardsCount: number;
19
19
  CompletionAwardsCount: number;
20
+ BeatenHardcoreAwardsCount: number;
21
+ BeatenSoftcoreAwardsCount: number;
20
22
  EventAwardsCount: number;
21
23
  SiteAwardsCount: number;
22
24
  VisibleUserAwards: GetUserAwardsEntity[];
@@ -17,6 +17,8 @@ export interface UserAwards {
17
17
  hiddenAwardsCount: number;
18
18
  masteryAwardsCount: number;
19
19
  completionAwardsCount: number;
20
+ beatenHardcoreAwardsCount: number;
21
+ beatenSoftcoreAwardsCount: number;
20
22
  eventAwardsCount: number;
21
23
  siteAwardsCount: number;
22
24
  visibleUserAwards: UserAward[];
@@ -7,7 +7,7 @@ export const buildRequestUrl = (
7
7
  args: Record<string, string | number> = {}
8
8
  ) => {
9
9
  const concatenated = `${baseUrl}/${endpointUrl}`;
10
- const withoutDoubleSlashes = concatenated.replace(/([^:]\/)\/+/g, "$1");
10
+ const withoutDoubleSlashes = concatenated.replaceAll(/([^:]\/)\/+/g, "$1");
11
11
 
12
12
  let withArgs = withoutDoubleSlashes;
13
13
 
@@ -1,4 +1,4 @@
1
- import { rest } from "msw";
1
+ import { http, HttpResponse } from "msw";
2
2
  import { setupServer } from "msw/node";
3
3
 
4
4
  import { call } from "./call";
@@ -23,9 +23,9 @@ describe("Util: call", () => {
23
23
  const mockRequestUrl = "https://abc.xyz/v1/endpoint";
24
24
 
25
25
  server.use(
26
- rest.get(mockRequestUrl, (req, res, ctx) => {
27
- receivedMethod = req.method;
28
- return res(ctx.json({ foo: "bar" }));
26
+ http.get(mockRequestUrl, (info) => {
27
+ receivedMethod = info.request.method;
28
+ return HttpResponse.json({ foo: "bar" });
29
29
  })
30
30
  );
31
31
 
@@ -42,12 +42,11 @@ describe("Util: call", () => {
42
42
  const mockRequestUrl = "https://abc.xyz/v1/endpoint2";
43
43
 
44
44
  server.use(
45
- rest.get(mockRequestUrl, (req, res, ctx) => {
46
- return res(
47
- ctx.status(503),
48
- ctx.text("<HTML><BODY>something bad happened</BODY></HTML>")
49
- );
50
- })
45
+ http.get(mockRequestUrl, () =>
46
+ HttpResponse.text("<HTML><BODY>something bad happened</BODY></HTML>", {
47
+ status: 503
48
+ })
49
+ )
51
50
  );
52
51
 
53
52
  // ASSERT
@@ -1,5 +1,3 @@
1
- import unfetch from "isomorphic-unfetch";
2
-
3
1
  /**
4
2
  * Fetch an HTTP resource. This is publicly exposed in the
5
3
  * event you would like to access an endpoint that this
@@ -7,15 +5,6 @@ import unfetch from "isomorphic-unfetch";
7
5
  *
8
6
  * UNLESS YOU'RE SURE OF WHAT YOU'RE DOING, YOU PROBABLY
9
7
  * SHOULDN'T USE THIS FUNCTION.
10
- *
11
- * 2022-10-09: At the time of writing, Node.js LTS (16.x)
12
- * does not yet support fetch. As a result, we pull in
13
- * isomorphic-unfetch for Node.js compatibility. Our support
14
- * matrix includes 14.x and 16.x.
15
- *
16
- * @FIXME - When Node.js 20.x is released, remove the
17
- * isomorphic-unfetch dependency. At that point we will have
18
- * two major LTS versions that include a native fetch API.
19
8
  */
20
9
  export const call = async <
21
10
  T extends readonly any[] | Record<string, any>
@@ -24,7 +13,7 @@ export const call = async <
24
13
  }) => {
25
14
  const { url } = config;
26
15
 
27
- const rawResponse = await unfetch(url);
16
+ const rawResponse = await fetch(url);
28
17
 
29
18
  if (!rawResponse.ok) {
30
19
  throw new Error(
@@ -63,16 +63,16 @@ const naiveCamelCase = (originalValue: string) => {
63
63
  originalValue.charAt(0).toLowerCase() + originalValue.slice(1);
64
64
 
65
65
  // "gameID" -> "gameId"
66
- camelCased = camelCased.replace(/ID/g, "Id");
66
+ camelCased = camelCased.replaceAll("ID", "Id");
67
67
 
68
68
  // "badgeURL" --> "badgeUrl"
69
- camelCased = camelCased.replace(/URL/g, "Url");
69
+ camelCased = camelCased.replaceAll("URL", "Url");
70
70
 
71
71
  // "rAPoints" -> "raPoints"
72
- camelCased = camelCased.replace(/rA/g, "ra");
72
+ camelCased = camelCased.replaceAll("rA", "ra");
73
73
 
74
74
  // "visibleUserawards" -> "visibleUserAwards"
75
- camelCased = camelCased.replace(/visibleUserawards/g, "visibleUserAwards");
75
+ camelCased = camelCased.replaceAll("visibleUserawards", "visibleUserAwards");
76
76
 
77
77
  return camelCased;
78
78
  };