@yaelouuu/fortnite-api 4.0.0 → 4.1.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.
package/dist/client.d.ts CHANGED
@@ -7,6 +7,7 @@ import { OauthResource } from "./resources/oauth";
7
7
  import { ParsingResource } from "./resources/parsing";
8
8
  import { WeaponsResource } from "./resources/weapons";
9
9
  import { BattlePassResource } from "./resources/battlepass";
10
+ import { QuestsResource } from "./resources/quests";
10
11
  export interface ClientOptions {
11
12
  apiKey: string;
12
13
  baseUrl?: string;
@@ -22,7 +23,8 @@ export declare class FortniteAPI {
22
23
  oauth: OauthResource;
23
24
  parsing: ParsingResource;
24
25
  weapons: WeaponsResource;
25
- batttlepass: BattlePassResource;
26
+ battlepass: BattlePassResource;
27
+ quests: QuestsResource;
26
28
  constructor(options: ClientOptions);
27
29
  /**
28
30
  * Internal method to make HTTP requests
package/dist/client.js CHANGED
@@ -11,6 +11,7 @@ const oauth_1 = require("./resources/oauth");
11
11
  const parsing_1 = require("./resources/parsing");
12
12
  const weapons_1 = require("./resources/weapons");
13
13
  const battlepass_1 = require("./resources/battlepass");
14
+ const quests_1 = require("./resources/quests");
14
15
  class FortniteAPI {
15
16
  constructor(options) {
16
17
  this.apiKey = options.apiKey;
@@ -25,7 +26,8 @@ class FortniteAPI {
25
26
  this.oauth = new oauth_1.OauthResource(this);
26
27
  this.parsing = new parsing_1.ParsingResource(this);
27
28
  this.weapons = new weapons_1.WeaponsResource(this);
28
- this.batttlepass = new battlepass_1.BattlePassResource(this);
29
+ this.battlepass = new battlepass_1.BattlePassResource(this);
30
+ this.quests = new quests_1.QuestsResource(this);
29
31
  }
30
32
  /**
31
33
  * Internal method to make HTTP requests
@@ -0,0 +1,14 @@
1
+ import { FortniteAPI } from "../client";
2
+ import { QuestsResponse } from "../types";
3
+ export declare class QuestsResource {
4
+ private client;
5
+ constructor(client: FortniteAPI);
6
+ /**
7
+ * Get account quests and level information
8
+ * Requires user's own Fortnite token
9
+ * @param accountId - Epic Games Account ID
10
+ * @param fortniteToken - User's Fortnite access token (from OAuth flow)
11
+ * @returns Quest progress, XP, playtime, and account level data
12
+ */
13
+ getQuests(accountId: string, fortniteToken: string): Promise<QuestsResponse>;
14
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QuestsResource = void 0;
4
+ class QuestsResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ /**
9
+ * Get account quests and level information
10
+ * Requires user's own Fortnite token
11
+ * @param accountId - Epic Games Account ID
12
+ * @param fortniteToken - User's Fortnite access token (from OAuth flow)
13
+ * @returns Quest progress, XP, playtime, and account level data
14
+ */
15
+ async getQuests(accountId, fortniteToken) {
16
+ return this.client.request(`/quests/${accountId}`, {
17
+ headers: {
18
+ "x-fortnite-token": fortniteToken,
19
+ },
20
+ }, "v3");
21
+ }
22
+ }
23
+ exports.QuestsResource = QuestsResource;
@@ -66,4 +66,17 @@ export declare class TournamentsResource {
66
66
  days?: number;
67
67
  requiredTournaments?: number;
68
68
  }): Promise<TournamentEligibilityResponse>;
69
+ /**
70
+ * Get tournament leaderboard using V2 endpoint (POST with teams body)
71
+ * @param params.eventId - Event ID
72
+ * @param params.eventWindowId - Event window ID
73
+ * @param params.leaderboardDef - Optional leaderboard definition (required for Ranked Cups)
74
+ * @param teams - Array of team member account ID arrays (e.g., [["accountId1"], ["accountId2"]])
75
+ * @param fortniteToken - Optional user's Fortnite token for personalized view
76
+ */
77
+ getLeaderboardV2(params: {
78
+ eventId: string;
79
+ eventWindowId: string;
80
+ leaderboardDef?: string;
81
+ }, teams: string[][], fortniteToken?: string): Promise<Leaderboard>;
69
82
  }
@@ -112,5 +112,32 @@ class TournamentsResource {
112
112
  },
113
113
  });
114
114
  }
115
+ /**
116
+ * Get tournament leaderboard using V2 endpoint (POST with teams body)
117
+ * @param params.eventId - Event ID
118
+ * @param params.eventWindowId - Event window ID
119
+ * @param params.leaderboardDef - Optional leaderboard definition (required for Ranked Cups)
120
+ * @param teams - Array of team member account ID arrays (e.g., [["accountId1"], ["accountId2"]])
121
+ * @param fortniteToken - Optional user's Fortnite token for personalized view
122
+ */
123
+ async getLeaderboardV2(params, teams, fortniteToken) {
124
+ const query = new URLSearchParams({
125
+ eventId: params.eventId,
126
+ eventWindowId: params.eventWindowId,
127
+ });
128
+ if (params.leaderboardDef) {
129
+ query.append("leaderboardDef", params.leaderboardDef);
130
+ }
131
+ const options = {
132
+ method: "POST",
133
+ body: JSON.stringify({ teams }),
134
+ };
135
+ if (fortniteToken) {
136
+ options.headers = {
137
+ "x-fortnite-token": fortniteToken,
138
+ };
139
+ }
140
+ return this.client.request(`/events/leaderboard?${query.toString()}`, options, "v2");
141
+ }
115
142
  }
116
143
  exports.TournamentsResource = TournamentsResource;
@@ -289,3 +289,6 @@ export interface BattlePassOffers {
289
289
  offerVisual: string | null;
290
290
  tileSize: string;
291
291
  }
292
+ export interface QuestsResponse {
293
+ [key: string]: any;
294
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaelouuu/fortnite-api",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "SDK for Fortnite Tournaments API by Royal Arena - Author : Yael Brinkert",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",