steamworks-ffi-node 0.4.0 → 0.4.1

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/steam.d.ts CHANGED
@@ -1,366 +1,149 @@
1
- import { SteamAchievement, SteamInitOptions, SteamStatus, AchievementProgressLimits, UserAchievement, AchievementGlobalStats, AchievementWithIcon, SteamStat, GlobalStat, GlobalStatHistory, UserStat, LeaderboardSortMethod, LeaderboardDisplayType, LeaderboardDataRequest, LeaderboardEntry, LeaderboardInfo, LeaderboardScoreUploadResult } from './types';
1
+ import { SteamInitOptions, SteamStatus } from './types';
2
+ import { SteamAchievementManager } from './internal/SteamAchievementManager';
3
+ import { SteamStatsManager } from './internal/SteamStatsManager';
4
+ import { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
2
5
  /**
3
6
  * Real Steamworks SDK implementation using Koffi FFI
4
7
  * This connects directly to the actual Steam client and Steamworks SDK
5
8
  *
6
- * Uses composition pattern with specialized modules:
7
- * - SteamLibraryLoader: Handles FFI library loading and function binding
8
- * - SteamAPICore: Manages Steam API lifecycle (init, shutdown, callbacks)
9
- * - SteamAchievementManager: Handles all achievement operations
10
- * - SteamStatsManager: Handles all stats operations
11
- * - SteamLeaderboardManager: Handles all leaderboard operations
9
+ * Uses composition pattern with specialized managers:
10
+ * - achievements: SteamAchievementManager - All achievement operations
11
+ * - stats: SteamStatsManager - All stats operations
12
+ * - leaderboards: SteamLeaderboardManager - All leaderboard operations
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const steam = Steam.getInstance();
17
+ * steam.init({ appId: 480 });
18
+ *
19
+ * // Use managers directly
20
+ * await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
21
+ * await steam.stats.setStatInt('NumGames', 1);
22
+ * await steam.leaderboards.uploadScore(handle, 1000, KeepBest);
23
+ * ```
12
24
  */
13
25
  declare class SteamworksSDK {
14
26
  private static instance;
15
27
  private libraryLoader;
16
28
  private apiCore;
17
- private achievementManager;
18
- private statsManager;
19
- private leaderboardManager;
20
- private constructor();
21
- static getInstance(): SteamworksSDK;
22
- /**
23
- * Initialize Steam API with real Steamworks SDK
24
- */
25
- init(options: SteamInitOptions): boolean;
26
- /**
27
- * Shutdown Steam API
28
- */
29
- shutdown(): void;
30
- /**
31
- * Get current Steam status
32
- */
33
- getStatus(): SteamStatus;
34
- /**
35
- * Get all achievements from Steam
36
- */
37
- getAllAchievements(): Promise<SteamAchievement[]>;
38
- /**
39
- * Unlock achievement in Steam
40
- */
41
- unlockAchievement(achievementName: string): Promise<boolean>;
42
29
  /**
43
- * Clear achievement in Steam (for testing)
44
- */
45
- clearAchievement(achievementName: string): Promise<boolean>;
46
- /**
47
- * Check if achievement is unlocked
48
- */
49
- isAchievementUnlocked(achievementName: string): Promise<boolean>;
50
- /**
51
- * Get achievement by API name
52
- */
53
- getAchievementByName(achievementName: string): Promise<SteamAchievement | null>;
54
- /**
55
- * Get total number of achievements
56
- */
57
- getTotalAchievementCount(): Promise<number>;
58
- /**
59
- * Get number of unlocked achievements
60
- */
61
- getUnlockedAchievementCount(): Promise<number>;
62
- /**
63
- * Run Steam callbacks to process pending events
64
- */
65
- runCallbacks(): void;
66
- /**
67
- * Check if Steam client is running
68
- */
69
- isSteamRunning(): boolean;
70
- /**
71
- * Get achievement icon handle for use with ISteamUtils::GetImageRGBA()
72
- */
73
- getAchievementIcon(achievementName: string): Promise<number>;
74
- /**
75
- * Show achievement progress notification in Steam overlay
76
- */
77
- indicateAchievementProgress(achievementName: string, currentProgress: number, maxProgress: number): Promise<boolean>;
78
- /**
79
- * Get all achievements with icon handles
80
- */
81
- getAllAchievementsWithIcons(): Promise<AchievementWithIcon[]>;
82
- /**
83
- * Get achievement progress limits (integer-based)
84
- */
85
- getAchievementProgressLimitsInt(achievementName: string): Promise<AchievementProgressLimits | null>;
86
- /**
87
- * Get achievement progress limits (float-based)
88
- */
89
- getAchievementProgressLimitsFloat(achievementName: string): Promise<AchievementProgressLimits | null>;
90
- /**
91
- * Request achievement stats for another user (friend)
92
- * This is async - wait for callback before calling getUserAchievement()
93
- */
94
- requestUserStats(steamId: string): Promise<boolean>;
95
- /**
96
- * Get achievement status for another user (friend)
97
- * Must call requestUserStats() first and wait for callback
98
- */
99
- getUserAchievement(steamId: string, achievementName: string): Promise<UserAchievement | null>;
100
- /**
101
- * Request global achievement percentages from Steam
102
- * This is async - wait for callback before calling other global stats methods
103
- */
104
- requestGlobalAchievementPercentages(): Promise<boolean>;
105
- /**
106
- * Get percentage of users who unlocked a specific achievement
107
- * Must call requestGlobalAchievementPercentages() first
108
- */
109
- getAchievementAchievedPercent(achievementName: string): Promise<number | null>;
110
- /**
111
- * Get all achievements with global unlock percentages
112
- * Must call requestGlobalAchievementPercentages() first
113
- */
114
- getAllAchievementsWithGlobalStats(): Promise<AchievementGlobalStats[]>;
115
- /**
116
- * Get most achieved achievement
117
- */
118
- getMostAchievedAchievementInfo(): Promise<{
119
- apiName: string;
120
- percent: number;
121
- unlocked: boolean;
122
- iterator: number;
123
- } | null>;
124
- /**
125
- * Get next most achieved achievement (iterate by popularity)
126
- */
127
- getNextMostAchievedAchievementInfo(previousIterator: number): Promise<{
128
- apiName: string;
129
- percent: number;
130
- unlocked: boolean;
131
- iterator: number;
132
- } | null>;
133
- /**
134
- * Get all achievements sorted by global popularity (most achieved first)
135
- * Must call requestGlobalAchievementPercentages() first
136
- */
137
- getAllAchievementsSortedByPopularity(): Promise<AchievementGlobalStats[]>;
138
- /**
139
- * Reset all stats and optionally achievements
140
- * WARNING: This clears ALL user stats and achievements!
141
- */
142
- resetAllStats(includeAchievements?: boolean): Promise<boolean>;
143
- /**
144
- * Get an integer stat value
145
- */
146
- getStatInt(statName: string): Promise<SteamStat | null>;
147
- /**
148
- * Get a float stat value
149
- */
150
- getStatFloat(statName: string): Promise<SteamStat | null>;
151
- /**
152
- * Set an integer stat value
153
- */
154
- setStatInt(statName: string, value: number): Promise<boolean>;
155
- /**
156
- * Set a float stat value
157
- */
158
- setStatFloat(statName: string, value: number): Promise<boolean>;
159
- /**
160
- * Update an average rate stat (e.g., kills per hour, average speed)
161
- */
162
- updateAvgRateStat(statName: string, countThisSession: number, sessionLength: number): Promise<boolean>;
163
- /**
164
- * Request stats for another user (friend)
165
- * Must be called before getting user stats
166
- */
167
- requestUserStatsForStats(steamId: string | bigint): Promise<boolean>;
168
- /**
169
- * Get an integer stat value for another user (friend)
170
- * Must call requestUserStatsForStats() first and wait for callback
171
- */
172
- getUserStatInt(steamId: string | bigint, statName: string): Promise<UserStat | null>;
173
- /**
174
- * Get a float stat value for another user (friend)
175
- * Must call requestUserStatsForStats() first and wait for callback
176
- */
177
- getUserStatFloat(steamId: string | bigint, statName: string): Promise<UserStat | null>;
178
- /**
179
- * Request global stats data from Steam
180
- * Must be called before getting global stats
181
- * @param historyDays - Number of days of history to retrieve (0-60)
182
- */
183
- requestGlobalStats(historyDays?: number): Promise<boolean>;
184
- /**
185
- * Get a global stat value (int64)
186
- * Must call requestGlobalStats() first and wait for callback
187
- */
188
- getGlobalStatInt(statName: string): Promise<GlobalStat | null>;
189
- /**
190
- * Get a global stat value (double)
191
- * Must call requestGlobalStats() first and wait for callback
192
- */
193
- getGlobalStatDouble(statName: string): Promise<GlobalStat | null>;
194
- /**
195
- * Get global stat history (int64)
196
- * Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
197
- * @param days - Number of days of history to retrieve (max 60)
198
- */
199
- getGlobalStatHistoryInt(statName: string, days?: number): Promise<GlobalStatHistory | null>;
200
- /**
201
- * Get global stat history (double)
202
- * Returns daily values for the stat, with [0] being today, [1] yesterday, etc.
203
- * @param days - Number of days of history to retrieve (max 60)
204
- */
205
- getGlobalStatHistoryDouble(statName: string, days?: number): Promise<GlobalStatHistory | null>;
206
- /**
207
- * Find or create a leaderboard with specified sort and display settings
30
+ * Achievement Manager - Handle all Steam achievement operations
208
31
  *
209
- * If the leaderboard doesn't exist, it will be created with the specified settings.
210
- * If it exists, returns the info for the existing leaderboard.
211
- *
212
- * @param leaderboardName - Unique name for the leaderboard (set in Steamworks dashboard)
213
- * @param sortMethod - How to sort scores (Ascending/Descending)
214
- * @param displayType - How to display scores (Numeric/TimeSeconds/TimeMilliseconds)
215
- * @returns Promise resolving to leaderboard info object, or null on failure
32
+ * Provides comprehensive achievement functionality including:
33
+ * - Unlock/clear achievements
34
+ * - Query achievement status and metadata
35
+ * - Display progress notifications
36
+ * - Retrieve global unlock percentages
37
+ * - Get friend/user achievement data
38
+ * - Achievement icons and visual elements
216
39
  *
217
40
  * @example
218
41
  * ```typescript
219
- * const leaderboard = await steam.findOrCreateLeaderboard(
220
- * 'HighScores',
221
- * LeaderboardSortMethod.Descending,
222
- * LeaderboardDisplayType.Numeric
223
- * );
224
- * if (leaderboard) {
225
- * console.log(`Leaderboard handle: ${leaderboard.handle}`);
226
- * }
227
- * ```
228
- */
229
- findOrCreateLeaderboard(leaderboardName: string, sortMethod: LeaderboardSortMethod, displayType: LeaderboardDisplayType): Promise<LeaderboardInfo | null>;
230
- /**
231
- * Find an existing leaderboard (does not create if missing)
42
+ * // Basic operations
43
+ * await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
44
+ * const achievements = await steam.achievements.getAllAchievements();
45
+ * const unlocked = await steam.achievements.isAchievementUnlocked('ACH_1');
232
46
  *
233
- * @param leaderboardName - Unique name for the leaderboard
234
- * @returns Promise resolving to leaderboard info object, or null if not found
47
+ * // Progress tracking
48
+ * await steam.achievements.indicateAchievementProgress('ACH_COLLECTOR', 50, 100);
235
49
  *
236
- * @example
237
- * ```typescript
238
- * const leaderboard = await steam.findLeaderboard('HighScores');
239
- * if (!leaderboard) {
240
- * console.log('Leaderboard not found');
241
- * }
50
+ * // Global statistics
51
+ * await steam.achievements.requestGlobalAchievementPercentages();
52
+ * const percent = await steam.achievements.getAchievementAchievedPercent('ACH_1');
242
53
  * ```
243
- */
244
- findLeaderboard(leaderboardName: string): Promise<LeaderboardInfo | null>;
245
- /**
246
- * Get leaderboard metadata (name, entry count, sort method, display type)
247
54
  *
248
- * @param leaderboardHandle - Handle to the leaderboard
249
- * @returns Leaderboard info object, or null on failure
250
- *
251
- * @example
252
- * ```typescript
253
- * const handle = await steam.findLeaderboard('HighScores');
254
- * const info = await steam.getLeaderboardInfo(handle);
255
- * console.log(`${info.name}: ${info.entryCount} entries`);
256
- * ```
55
+ * @see {@link SteamAchievementManager} for complete API documentation
257
56
  */
258
- getLeaderboardInfo(leaderboardHandle: bigint): Promise<LeaderboardInfo | null>;
57
+ readonly achievements: SteamAchievementManager;
259
58
  /**
260
- * Upload a score to a leaderboard
59
+ * Stats Manager - Handle all Steam stats operations
261
60
  *
262
- * @param leaderboardHandle - Handle to the leaderboard
263
- * @param score - The score value to upload
264
- * @param uploadMethod - KeepBest (only updates if better) or ForceUpdate (always update)
265
- * @param scoreDetails - Optional array of up to 64 int32 values for additional data
266
- * @returns Promise resolving to upload result object, or null on failure
61
+ * Provides comprehensive stats functionality including:
62
+ * - Get/set user stats (int and float)
63
+ * - Update average rate stats
64
+ * - Query global stats and history
65
+ * - Retrieve friend/user stats
66
+ * - Track player progress and metrics
267
67
  *
268
68
  * @example
269
69
  * ```typescript
270
- * // Simple score upload
271
- * const result = await steam.uploadLeaderboardScore(
272
- * leaderboard.handle,
273
- * 1000,
274
- * LeaderboardUploadScoreMethod.KeepBest
275
- * );
70
+ * // User stats
71
+ * await steam.stats.setStatInt('NumGames', 10);
72
+ * await steam.stats.setStatFloat('Accuracy', 0.95);
73
+ * const stat = await steam.stats.getStatInt('NumGames');
276
74
  *
277
- * // With details (e.g., time, deaths, collectibles)
278
- * const result = await steam.uploadLeaderboardScore(
279
- * leaderboard.handle,
280
- * 1000,
281
- * LeaderboardUploadScoreMethod.KeepBest,
282
- * [120, 5, 15] // time in seconds, deaths, collectibles
283
- * );
75
+ * // Average rate stats
76
+ * await steam.stats.updateAvgRateStat('KillsPerHour', sessionKills, sessionTime);
284
77
  *
285
- * if (result?.scoreChanged) {
286
- * console.log(`New rank: ${result.globalRankNew}`);
287
- * }
78
+ * // Global stats
79
+ * await steam.stats.requestGlobalStats(7); // 7 days of history
80
+ * const globalStat = await steam.stats.getGlobalStatInt('TotalPlayers');
288
81
  * ```
82
+ *
83
+ * @see {@link SteamStatsManager} for complete API documentation
289
84
  */
290
- uploadLeaderboardScore(leaderboardHandle: bigint, score: number, uploadMethod: number, scoreDetails?: number[]): Promise<LeaderboardScoreUploadResult | null>;
85
+ readonly stats: SteamStatsManager;
291
86
  /**
292
- * Download leaderboard entries
87
+ * Leaderboards Manager - Handle all Steam leaderboard operations
293
88
  *
294
- * @param leaderboardHandle - Handle to the leaderboard
295
- * @param dataRequest - Type of data to download (Global/AroundUser/Friends)
296
- * @param rangeStart - Starting index (for Global) or offset from user (for AroundUser)
297
- * @param rangeEnd - Ending index (for Global) or offset from user (for AroundUser)
298
- * @returns Promise resolving to array of leaderboard entries
89
+ * Provides comprehensive leaderboard functionality including:
90
+ * - Find/create leaderboards
91
+ * - Upload scores with optional details
92
+ * - Download entries (global, friends, around user)
93
+ * - Attach UGC to leaderboard entries
94
+ * - Query leaderboard metadata
299
95
  *
300
96
  * @example
301
97
  * ```typescript
302
- * // Get top 10 global scores
303
- * const top10 = await steam.downloadLeaderboardEntries(
304
- * leaderboard,
305
- * LeaderboardDataRequest.Global,
306
- * 0,
307
- * 9
98
+ * // Find or create leaderboard
99
+ * const lb = await steam.leaderboards.findOrCreateLeaderboard(
100
+ * 'HighScores',
101
+ * LeaderboardSortMethod.Descending,
102
+ * LeaderboardDisplayType.Numeric
308
103
  * );
309
104
  *
310
- * // Get 5 above and 5 below current user
311
- * const aroundUser = await steam.downloadLeaderboardEntries(
312
- * leaderboard,
313
- * LeaderboardDataRequest.GlobalAroundUser,
314
- * -5,
315
- * 5
105
+ * // Upload score with details
106
+ * const result = await steam.leaderboards.uploadScore(
107
+ * lb.handle,
108
+ * 1000,
109
+ * LeaderboardUploadScoreMethod.KeepBest,
110
+ * [120, 5, 15] // time, deaths, collectibles
316
111
  * );
317
112
  *
318
- * // Get all friends' scores
319
- * const friends = await steam.downloadLeaderboardEntries(
320
- * leaderboard,
321
- * LeaderboardDataRequest.Friends,
322
- * 0,
323
- * 0
113
+ * // Download top 10 scores
114
+ * const entries = await steam.leaderboards.downloadLeaderboardEntries(
115
+ * lb.handle,
116
+ * LeaderboardDataRequest.Global,
117
+ * 1,
118
+ * 10
324
119
  * );
325
120
  * ```
121
+ *
122
+ * @see {@link SteamLeaderboardManager} for complete API documentation
326
123
  */
327
- downloadLeaderboardEntries(leaderboardHandle: bigint, dataRequest: LeaderboardDataRequest, rangeStart: number, rangeEnd: number): Promise<LeaderboardEntry[]>;
124
+ readonly leaderboards: SteamLeaderboardManager;
125
+ private constructor();
126
+ static getInstance(): SteamworksSDK;
328
127
  /**
329
- * Download leaderboard entries for specific Steam users
330
- *
331
- * @param leaderboardHandle - Handle to the leaderboard
332
- * @param steamIds - Array of Steam ID strings (max 100)
333
- * @returns Promise resolving to array of leaderboard entries
334
- *
335
- * @example
336
- * ```typescript
337
- * const entries = await steam.downloadLeaderboardEntriesForUsers(
338
- * leaderboard.handle,
339
- * ['76561198000000000', '76561198000000001']
340
- * );
341
- * ```
128
+ * Initialize Steam API with real Steamworks SDK
342
129
  */
343
- downloadLeaderboardEntriesForUsers(leaderboardHandle: bigint, steamIds: string[]): Promise<LeaderboardEntry[]>;
130
+ init(options: SteamInitOptions): boolean;
344
131
  /**
345
- * Attach user-generated content to a leaderboard entry
346
- *
347
- * Associates a piece of UGC (like a replay file, screenshot, or level)
348
- * with the current user's leaderboard entry.
349
- *
350
- * @param leaderboardHandle - Handle to the leaderboard
351
- * @param ugcHandle - Handle to the shared UGC content (from ISteamRemoteStorage::FileShare())
352
- * @returns Promise resolving to true if successful
353
- *
354
- * @example
355
- * ```typescript
356
- * // First share a file to get UGC handle
357
- * // const ugcHandle = await steamRemoteStorage.fileShare('replay.dat');
358
- *
359
- * const ugcHandle = BigInt('123456789');
360
- * await steam.attachLeaderboardUGC(leaderboard, ugcHandle);
361
- * ```
132
+ * Shutdown Steam API
133
+ */
134
+ shutdown(): void;
135
+ /**
136
+ * Get current Steam status
362
137
  */
363
- attachLeaderboardUGC(leaderboardHandle: bigint, ugcHandle: bigint): Promise<boolean>;
138
+ getStatus(): SteamStatus;
139
+ /**
140
+ * Run Steam callbacks to process pending events
141
+ */
142
+ runCallbacks(): void;
143
+ /**
144
+ * Check if Steam client is running
145
+ */
146
+ isSteamRunning(): boolean;
364
147
  }
365
148
  export default SteamworksSDK;
366
149
  //# sourceMappingURL=steam.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"steam.d.ts","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steam.d.ts","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAGvC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAe;IAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAgB,YAAY,EAAE,uBAAuB,CAAC;IAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,SAAgB,YAAY,EAAE,uBAAuB,CAAC;IAEtD,OAAO;IAWP,MAAM,CAAC,WAAW,IAAI,aAAa;IAWnC;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;IAIxC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B;AAED,eAAe,aAAa,CAAC"}