@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.
- package/LICENSE.md +21 -0
- package/README.md +103 -0
- package/dist/__playground.d.ts +7 -0
- package/dist/achievement/getAchievementUnlocks.d.ts +45 -0
- package/dist/achievement/index.d.ts +2 -0
- package/dist/achievement/models/achievement-unlock-entity.model.d.ts +6 -0
- package/dist/achievement/models/get-achievement-unlocks-response.model.d.ts +8 -0
- package/dist/achievement/models/index.d.ts +2 -0
- package/dist/api.cjs.development.js +2363 -0
- package/dist/api.cjs.development.js.map +1 -0
- package/dist/api.cjs.production.min.js +2 -0
- package/dist/api.cjs.production.min.js.map +1 -0
- package/dist/api.esm.js +2333 -0
- package/dist/api.esm.js.map +1 -0
- package/dist/console/getConsoleIds.d.ts +22 -0
- package/dist/console/getGameList.d.ts +52 -0
- package/dist/console/index.d.ts +3 -0
- package/dist/console/models/console-id.model.d.ts +4 -0
- package/dist/console/models/game-list.model.d.ts +15 -0
- package/dist/console/models/get-console-ids-response.model.d.ts +4 -0
- package/dist/console/models/get-game-list-response.model.d.ts +15 -0
- package/dist/console/models/index.d.ts +4 -0
- package/dist/feed/getAchievementOfTheWeek.d.ts +48 -0
- package/dist/feed/getActiveClaims.d.ts +38 -0
- package/dist/feed/getTicketData.d.ts +158 -0
- package/dist/feed/getTopTenUsers.d.ts +24 -0
- package/dist/feed/index.d.ts +5 -0
- package/dist/feed/models/achievement-of-the-week.model.d.ts +32 -0
- package/dist/feed/models/achievement-ticket-stats-response.model.d.ts +7 -0
- package/dist/feed/models/achievement-ticket-stats.model.d.ts +7 -0
- package/dist/feed/models/active-claim.model.d.ts +49 -0
- package/dist/feed/models/game-ticket-stats.model.d.ts +9 -0
- package/dist/feed/models/game-tickets-response.model.d.ts +7 -0
- package/dist/feed/models/get-achievement-of-the-week-response.model.d.ts +32 -0
- package/dist/feed/models/get-active-claims-response.model.d.ts +19 -0
- package/dist/feed/models/get-top-ten-users-response.model.d.ts +10 -0
- package/dist/feed/models/index.d.ts +19 -0
- package/dist/feed/models/most-ticketed-games-response.model.d.ts +12 -0
- package/dist/feed/models/most-ticketed-games.model.d.ts +12 -0
- package/dist/feed/models/recent-tickets-response.model.d.ts +6 -0
- package/dist/feed/models/recent-tickets.model.d.ts +6 -0
- package/dist/feed/models/response-ticket-entity.model.d.ts +24 -0
- package/dist/feed/models/ticket-entity.model.d.ts +24 -0
- package/dist/feed/models/tickets-by-user-response.model.d.ts +8 -0
- package/dist/feed/models/top-ten-users-entity.model.d.ts +5 -0
- package/dist/feed/models/top-ten-users.model.d.ts +2 -0
- package/dist/feed/models/user-ticket-stats.model.d.ts +8 -0
- package/dist/game/getAchievementCount.d.ts +31 -0
- package/dist/game/getAchievementDistribution.d.ts +57 -0
- package/dist/game/getGame.d.ts +48 -0
- package/dist/game/getGameExtended.d.ts +68 -0
- package/dist/game/getGameRankAndScore.d.ts +38 -0
- package/dist/game/getGameRating.d.ts +38 -0
- package/dist/game/index.d.ts +7 -0
- package/dist/game/models/achievement-count.model.d.ts +4 -0
- package/dist/game/models/achievement-distribution-flags.model.d.ts +4 -0
- package/dist/game/models/game-extended-achievement-entity.model.d.ts +15 -0
- package/dist/game/models/game-extended-claim-entity.model.d.ts +7 -0
- package/dist/game/models/game-extended.model.d.ts +25 -0
- package/dist/game/models/game-rank-and-score-entity.model.d.ts +6 -0
- package/dist/game/models/game-rating.model.d.ts +9 -0
- package/dist/game/models/game.model.d.ts +19 -0
- package/dist/game/models/get-achievement-count-response.model.d.ts +4 -0
- package/dist/game/models/get-achievement-distribution-response.model.d.ts +1 -0
- package/dist/game/models/get-game-extended-response.model.d.ts +50 -0
- package/dist/game/models/get-game-rank-and-score-response.model.d.ts +8 -0
- package/dist/game/models/get-game-rating-response.model.d.ts +9 -0
- package/dist/game/models/get-game-response.model.d.ts +19 -0
- package/dist/game/models/index.d.ts +14 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +8 -0
- package/dist/user/getAchievementsEarnedBetween.d.ts +59 -0
- package/dist/user/getAchievementsEarnedOnDay.d.ts +57 -0
- package/dist/user/getGameInfoAndUserProgress.d.ts +80 -0
- package/dist/user/getUserGameRankAndScore.d.ts +44 -0
- package/dist/user/getUserPoints.d.ts +30 -0
- package/dist/user/getUserProgress.d.ts +49 -0
- package/dist/user/getUserRecentlyPlayedGames.d.ts +50 -0
- package/dist/user/getUserSummary.d.ts +32 -0
- package/dist/user/index.d.ts +9 -0
- package/dist/user/models/dated-user-achievement.model.d.ts +17 -0
- package/dist/user/models/dated-user-achievements-response.model.d.ts +19 -0
- package/dist/user/models/game-info-and-user-progress.model.d.ts +12 -0
- package/dist/user/models/get-game-info-and-user-progress-response.model.d.ts +14 -0
- package/dist/user/models/get-user-game-rank-and-score-response.model.d.ts +8 -0
- package/dist/user/models/get-user-points-response.model.d.ts +4 -0
- package/dist/user/models/get-user-progress-response.model.d.ts +10 -0
- package/dist/user/models/get-user-recently-played-games-response.model.d.ts +16 -0
- package/dist/user/models/get-user-summary-response.model.d.ts +82 -0
- package/dist/user/models/index.d.ts +14 -0
- package/dist/user/models/user-game-rank-and-score.model.d.ts +8 -0
- package/dist/user/models/user-points.model.d.ts +4 -0
- package/dist/user/models/user-progress.model.d.ts +10 -0
- package/dist/user/models/user-recently-played-games.model.d.ts +16 -0
- package/dist/user/models/user-summary.model.d.ts +83 -0
- package/dist/utils/internal/apiBaseUrl.d.ts +1 -0
- package/dist/utils/internal/buildRequestUrl.d.ts +2 -0
- package/dist/utils/internal/call.d.ts +20 -0
- package/dist/utils/internal/index.d.ts +4 -0
- package/dist/utils/internal/serializeProperties.d.ts +4 -0
- package/dist/utils/public/buildAuthorization.d.ts +22 -0
- package/dist/utils/public/index.d.ts +3 -0
- package/dist/utils/public/models/auth-object.model.d.ts +19 -0
- package/dist/utils/public/models/index.d.ts +1 -0
- package/package.json +117 -0
- package/src/__playground.ts +27 -0
- package/src/achievement/getAchievementUnlocks.test.ts +71 -0
- package/src/achievement/getAchievementUnlocks.ts +80 -0
- package/src/achievement/index.ts +2 -0
- package/src/achievement/models/achievement-unlock-entity.model.ts +6 -0
- package/src/achievement/models/get-achievement-unlocks-response.model.ts +8 -0
- package/src/achievement/models/index.ts +2 -0
- package/src/console/getConsoleIds.test.ts +53 -0
- package/src/console/getConsoleIds.ts +43 -0
- package/src/console/getGameList.test.ts +82 -0
- package/src/console/getGameList.ts +94 -0
- package/src/console/index.ts +3 -0
- package/src/console/models/console-id.model.ts +4 -0
- package/src/console/models/game-list.model.ts +16 -0
- package/src/console/models/get-console-ids-response.model.ts +1 -0
- package/src/console/models/get-game-list-response.model.ts +16 -0
- package/src/console/models/index.ts +4 -0
- package/src/feed/getAchievementOfTheWeek.test.ts +167 -0
- package/src/feed/getAchievementOfTheWeek.ts +80 -0
- package/src/feed/getActiveClaims.test.ts +81 -0
- package/src/feed/getActiveClaims.ts +68 -0
- package/src/feed/getTicketData.test.ts +349 -0
- package/src/feed/getTicketData.ts +286 -0
- package/src/feed/getTopTenUsers.test.ts +101 -0
- package/src/feed/getTopTenUsers.ts +51 -0
- package/src/feed/index.ts +5 -0
- package/src/feed/models/achievement-of-the-week.model.ts +27 -0
- package/src/feed/models/achievement-ticket-stats-response.model.ts +7 -0
- package/src/feed/models/achievement-ticket-stats.model.ts +7 -0
- package/src/feed/models/active-claim.model.ts +66 -0
- package/src/feed/models/game-ticket-stats.model.ts +11 -0
- package/src/feed/models/game-tickets-response.model.ts +7 -0
- package/src/feed/models/get-achievement-of-the-week-response.model.ts +27 -0
- package/src/feed/models/get-active-claims-response.model.ts +19 -0
- package/src/feed/models/get-top-ten-users-response.model.ts +12 -0
- package/src/feed/models/index.ts +19 -0
- package/src/feed/models/most-ticketed-games-response.model.ts +12 -0
- package/src/feed/models/most-ticketed-games.model.ts +12 -0
- package/src/feed/models/recent-tickets-response.model.ts +7 -0
- package/src/feed/models/recent-tickets.model.ts +7 -0
- package/src/feed/models/response-ticket-entity.model.ts +25 -0
- package/src/feed/models/ticket-entity.model.ts +24 -0
- package/src/feed/models/tickets-by-user-response.model.ts +8 -0
- package/src/feed/models/top-ten-users-entity.model.ts +5 -0
- package/src/feed/models/top-ten-users.model.ts +3 -0
- package/src/feed/models/user-ticket-stats.model.ts +8 -0
- package/src/game/getAchievementCount.test.ts +49 -0
- package/src/game/getAchievementCount.ts +52 -0
- package/src/game/getAchievementDistribution.test.ts +187 -0
- package/src/game/getAchievementDistribution.ts +88 -0
- package/src/game/getGame.test.ts +81 -0
- package/src/game/getGame.ts +74 -0
- package/src/game/getGameExtended.test.ts +121 -0
- package/src/game/getGameExtended.ts +103 -0
- package/src/game/getGameRankAndScore.test.ts +62 -0
- package/src/game/getGameRankAndScore.ts +66 -0
- package/src/game/getGameRating.test.ts +59 -0
- package/src/game/getGameRating.ts +59 -0
- package/src/game/index.ts +7 -0
- package/src/game/models/achievement-count.model.ts +4 -0
- package/src/game/models/achievement-distribution-flags.model.ts +4 -0
- package/src/game/models/game-extended-achievement-entity.model.ts +15 -0
- package/src/game/models/game-extended-claim-entity.model.ts +7 -0
- package/src/game/models/game-extended.model.ts +26 -0
- package/src/game/models/game-rank-and-score-entity.model.ts +6 -0
- package/src/game/models/game-rating.model.ts +9 -0
- package/src/game/models/game.model.ts +19 -0
- package/src/game/models/get-achievement-count-response.model.ts +4 -0
- package/src/game/models/get-achievement-distribution-response.model.ts +1 -0
- package/src/game/models/get-game-extended-response.model.ts +56 -0
- package/src/game/models/get-game-rank-and-score-response.model.ts +8 -0
- package/src/game/models/get-game-rating-response.model.ts +9 -0
- package/src/game/models/get-game-response.model.ts +19 -0
- package/src/game/models/index.ts +14 -0
- package/src/index.ts +8 -0
- package/src/user/getAchievementsEarnedBetween.test.ts +84 -0
- package/src/user/getAchievementsEarnedBetween.ts +88 -0
- package/src/user/getAchievementsEarnedOnDay.test.ts +83 -0
- package/src/user/getAchievementsEarnedOnDay.ts +87 -0
- package/src/user/getGameInfoAndUserProgress.test.ts +135 -0
- package/src/user/getGameInfoAndUserProgress.ts +118 -0
- package/src/user/getUserGameRankAndScore.test.ts +60 -0
- package/src/user/getUserGameRankAndScore.ts +69 -0
- package/src/user/getUserPoints.test.ts +49 -0
- package/src/user/getUserPoints.ts +51 -0
- package/src/user/getUserProgress.test.ts +80 -0
- package/src/user/getUserProgress.ts +78 -0
- package/src/user/getUserRecentlyPlayedGames.test.ts +76 -0
- package/src/user/getUserRecentlyPlayedGames.ts +93 -0
- package/src/user/getUserSummary.test.ts +251 -0
- package/src/user/getUserSummary.ts +96 -0
- package/src/user/index.ts +9 -0
- package/src/user/models/dated-user-achievement.model.ts +17 -0
- package/src/user/models/dated-user-achievements-response.model.ts +20 -0
- package/src/user/models/game-info-and-user-progress.model.ts +19 -0
- package/src/user/models/get-game-info-and-user-progress-response.model.ts +28 -0
- package/src/user/models/get-user-game-rank-and-score-response.model.ts +9 -0
- package/src/user/models/get-user-points-response.model.ts +4 -0
- package/src/user/models/get-user-progress-response.model.ts +13 -0
- package/src/user/models/get-user-recently-played-games-response.model.ts +17 -0
- package/src/user/models/get-user-summary-response.model.ts +92 -0
- package/src/user/models/index.ts +14 -0
- package/src/user/models/user-game-rank-and-score.model.ts +8 -0
- package/src/user/models/user-points.model.ts +4 -0
- package/src/user/models/user-progress.model.ts +10 -0
- package/src/user/models/user-recently-played-games.model.ts +16 -0
- package/src/user/models/user-summary.model.ts +92 -0
- package/src/utils/internal/apiBaseUrl.ts +1 -0
- package/src/utils/internal/buildRequestUrl.test.ts +51 -0
- package/src/utils/internal/buildRequestUrl.ts +32 -0
- package/src/utils/internal/call.test.ts +39 -0
- package/src/utils/internal/call.ts +29 -0
- package/src/utils/internal/index.ts +4 -0
- package/src/utils/internal/serializeProperties.test.ts +141 -0
- package/src/utils/internal/serializeProperties.ts +75 -0
- package/src/utils/public/buildAuthorization.test.ts +36 -0
- package/src/utils/public/buildAuthorization.ts +40 -0
- package/src/utils/public/index.ts +3 -0
- package/src/utils/public/models/auth-object.model.ts +20 -0
- 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,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 @@
|
|
|
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,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";
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -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
|
+
}
|