steamworks-ffi-node 0.4.2 → 0.5.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.
Files changed (46) hide show
  1. package/README.md +59 -1
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/SteamAPICore.d.ts +23 -0
  7. package/dist/internal/SteamAPICore.d.ts.map +1 -1
  8. package/dist/internal/SteamAPICore.js +30 -0
  9. package/dist/internal/SteamAPICore.js.map +1 -1
  10. package/dist/internal/SteamFriendsManager.d.ts +365 -0
  11. package/dist/internal/SteamFriendsManager.d.ts.map +1 -0
  12. package/dist/internal/SteamFriendsManager.js +602 -0
  13. package/dist/internal/SteamFriendsManager.js.map +1 -0
  14. package/dist/internal/SteamLibraryLoader.d.ts +23 -0
  15. package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
  16. package/dist/internal/SteamLibraryLoader.js +32 -0
  17. package/dist/internal/SteamLibraryLoader.js.map +1 -1
  18. package/dist/internal/SteamOverlayManager.d.ts +407 -0
  19. package/dist/internal/SteamOverlayManager.d.ts.map +1 -0
  20. package/dist/internal/SteamOverlayManager.js +523 -0
  21. package/dist/internal/SteamOverlayManager.js.map +1 -0
  22. package/dist/internal/SteamRichPresenceManager.d.ts +265 -0
  23. package/dist/internal/SteamRichPresenceManager.d.ts.map +1 -0
  24. package/dist/internal/SteamRichPresenceManager.js +374 -0
  25. package/dist/internal/SteamRichPresenceManager.js.map +1 -0
  26. package/dist/steam.d.ts +98 -0
  27. package/dist/steam.d.ts.map +1 -1
  28. package/dist/steam.js +12 -0
  29. package/dist/steam.js.map +1 -1
  30. package/dist/types/friends.d.ts +68 -0
  31. package/dist/types/friends.d.ts.map +1 -0
  32. package/dist/types/friends.js +55 -0
  33. package/dist/types/friends.js.map +1 -0
  34. package/dist/types/index.d.ts +6 -0
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/index.js +9 -0
  37. package/dist/types/index.js.map +1 -1
  38. package/dist/types/overlay.d.ts +72 -0
  39. package/dist/types/overlay.d.ts.map +1 -0
  40. package/dist/types/overlay.js +79 -0
  41. package/dist/types/overlay.js.map +1 -0
  42. package/dist/types/richpresence.d.ts +43 -0
  43. package/dist/types/richpresence.d.ts.map +1 -0
  44. package/dist/types/richpresence.js +33 -0
  45. package/dist/types/richpresence.js.map +1 -0
  46. package/package.json +14 -6
package/dist/steam.d.ts CHANGED
@@ -2,6 +2,9 @@ import { SteamInitOptions, SteamStatus } from './types';
2
2
  import { SteamAchievementManager } from './internal/SteamAchievementManager';
3
3
  import { SteamStatsManager } from './internal/SteamStatsManager';
4
4
  import { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
5
+ import { SteamFriendsManager } from './internal/SteamFriendsManager';
6
+ import { SteamRichPresenceManager } from './internal/SteamRichPresenceManager';
7
+ import { SteamOverlayManager } from './internal/SteamOverlayManager';
5
8
  /**
6
9
  * Real Steamworks SDK implementation using Koffi FFI
7
10
  * This connects directly to the actual Steam client and Steamworks SDK
@@ -10,6 +13,9 @@ import { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
10
13
  * - achievements: SteamAchievementManager - All achievement operations
11
14
  * - stats: SteamStatsManager - All stats operations
12
15
  * - leaderboards: SteamLeaderboardManager - All leaderboard operations
16
+ * - friends: SteamFriendsManager - All friends and social operations
17
+ * - richPresence: SteamRichPresenceManager - Rich presence operations
18
+ * - overlay: SteamOverlayManager - Overlay control operations
13
19
  *
14
20
  * @example
15
21
  * ```typescript
@@ -20,6 +26,9 @@ import { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
20
26
  * await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
21
27
  * await steam.stats.setStatInt('NumGames', 1);
22
28
  * await steam.leaderboards.uploadScore(handle, 1000, KeepBest);
29
+ * const friends = steam.friends.getAllFriends();
30
+ * steam.richPresence.setRichPresence('status', 'In Menu');
31
+ * steam.overlay.activateGameOverlay('Friends');
23
32
  * ```
24
33
  */
25
34
  declare class SteamworksSDK {
@@ -122,6 +131,95 @@ declare class SteamworksSDK {
122
131
  * @see {@link SteamLeaderboardManager} for complete API documentation
123
132
  */
124
133
  readonly leaderboards: SteamLeaderboardManager;
134
+ /**
135
+ * Friends Manager - Handle all Steam friends and social operations
136
+ *
137
+ * Provides friends functionality including:
138
+ * - Get current user info (name, status)
139
+ * - Query friends list and details
140
+ * - Check friend online status
141
+ * - Get friend relationship status
142
+ * - Check what games friends are playing
143
+ * - Get Steam levels
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * // Current user info
148
+ * const myName = steam.friends.getPersonaName();
149
+ * const myStatus = steam.friends.getPersonaState();
150
+ *
151
+ * // Friends list
152
+ * const friendCount = steam.friends.getFriendCount();
153
+ * const friends = steam.friends.getAllFriends();
154
+ *
155
+ * // Friend details
156
+ * friends.forEach(friend => {
157
+ * console.log(`${friend.personaName} is ${friend.personaState}`);
158
+ * const gameInfo = steam.friends.getFriendGamePlayed(friend.steamId);
159
+ * if (gameInfo) {
160
+ * console.log(`Playing game: ${gameInfo.gameId}`);
161
+ * }
162
+ * });
163
+ * ```
164
+ *
165
+ * @see {@link SteamFriendsManager} for complete API documentation
166
+ */
167
+ readonly friends: SteamFriendsManager;
168
+ /**
169
+ * Rich Presence Manager - Handle Steam Rich Presence operations
170
+ *
171
+ * Provides Rich Presence functionality including:
172
+ * - Set/clear rich presence key/value pairs
173
+ * - Query friend rich presence data
174
+ * - Display custom status in Steam friends list
175
+ * - Enable friend join functionality
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * // Set rich presence
180
+ * steam.richPresence.setRichPresence('status', 'In Deathmatch');
181
+ * steam.richPresence.setRichPresence('connect', '+connect 192.168.1.100');
182
+ *
183
+ * // Read friend's rich presence
184
+ * steam.richPresence.requestFriendRichPresence(friendId);
185
+ * const status = steam.richPresence.getFriendRichPresence(friendId, 'status');
186
+ *
187
+ * // Clear all
188
+ * steam.richPresence.clearRichPresence();
189
+ * ```
190
+ *
191
+ * @see {@link SteamRichPresenceManager} for complete API documentation
192
+ */
193
+ readonly richPresence: SteamRichPresenceManager;
194
+ /**
195
+ * Overlay Manager - Handle Steam Overlay operations
196
+ *
197
+ * Provides overlay functionality including:
198
+ * - Open overlay to various dialogs (friends, achievements, etc.)
199
+ * - Open overlay to user profiles
200
+ * - Open overlay browser to URLs
201
+ * - Open store pages
202
+ * - Show invite dialogs
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * // Open overlay dialogs
207
+ * steam.overlay.activateGameOverlay('Friends');
208
+ * steam.overlay.activateGameOverlay('Achievements');
209
+ *
210
+ * // Open user profile
211
+ * steam.overlay.activateGameOverlayToUser('steamid', friendId);
212
+ *
213
+ * // Open web page
214
+ * steam.overlay.activateGameOverlayToWebPage('https://example.com');
215
+ *
216
+ * // Open store page
217
+ * steam.overlay.activateGameOverlayToStore(480);
218
+ * ```
219
+ *
220
+ * @see {@link SteamOverlayManager} for complete API documentation
221
+ */
222
+ readonly overlay: SteamOverlayManager;
125
223
  private constructor();
126
224
  static getInstance(): SteamworksSDK;
127
225
  /**
@@ -1 +1 @@
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"}
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;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,SAAgB,OAAO,EAAG,mBAAmB,CAAC;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAgB,YAAY,EAAG,wBAAwB,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAgB,OAAO,EAAG,mBAAmB,CAAC;IAE9C,OAAO;IAcP,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"}
package/dist/steam.js CHANGED
@@ -5,6 +5,9 @@ const SteamAPICore_1 = require("./internal/SteamAPICore");
5
5
  const SteamAchievementManager_1 = require("./internal/SteamAchievementManager");
6
6
  const SteamStatsManager_1 = require("./internal/SteamStatsManager");
7
7
  const SteamLeaderboardManager_1 = require("./internal/SteamLeaderboardManager");
8
+ const SteamFriendsManager_1 = require("./internal/SteamFriendsManager");
9
+ const SteamRichPresenceManager_1 = require("./internal/SteamRichPresenceManager");
10
+ const SteamOverlayManager_1 = require("./internal/SteamOverlayManager");
8
11
  /**
9
12
  * Real Steamworks SDK implementation using Koffi FFI
10
13
  * This connects directly to the actual Steam client and Steamworks SDK
@@ -13,6 +16,9 @@ const SteamLeaderboardManager_1 = require("./internal/SteamLeaderboardManager");
13
16
  * - achievements: SteamAchievementManager - All achievement operations
14
17
  * - stats: SteamStatsManager - All stats operations
15
18
  * - leaderboards: SteamLeaderboardManager - All leaderboard operations
19
+ * - friends: SteamFriendsManager - All friends and social operations
20
+ * - richPresence: SteamRichPresenceManager - Rich presence operations
21
+ * - overlay: SteamOverlayManager - Overlay control operations
16
22
  *
17
23
  * @example
18
24
  * ```typescript
@@ -23,6 +29,9 @@ const SteamLeaderboardManager_1 = require("./internal/SteamLeaderboardManager");
23
29
  * await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
24
30
  * await steam.stats.setStatInt('NumGames', 1);
25
31
  * await steam.leaderboards.uploadScore(handle, 1000, KeepBest);
32
+ * const friends = steam.friends.getAllFriends();
33
+ * steam.richPresence.setRichPresence('status', 'In Menu');
34
+ * steam.overlay.activateGameOverlay('Friends');
26
35
  * ```
27
36
  */
28
37
  class SteamworksSDK {
@@ -34,6 +43,9 @@ class SteamworksSDK {
34
43
  this.achievements = new SteamAchievementManager_1.SteamAchievementManager(this.libraryLoader, this.apiCore);
35
44
  this.stats = new SteamStatsManager_1.SteamStatsManager(this.libraryLoader, this.apiCore);
36
45
  this.leaderboards = new SteamLeaderboardManager_1.SteamLeaderboardManager(this.libraryLoader, this.apiCore);
46
+ this.friends = new SteamFriendsManager_1.SteamFriendsManager(this.libraryLoader, this.apiCore);
47
+ this.richPresence = new SteamRichPresenceManager_1.SteamRichPresenceManager(this.libraryLoader, this.apiCore);
48
+ this.overlay = new SteamOverlayManager_1.SteamOverlayManager(this.libraryLoader, this.apiCore);
37
49
  }
38
50
  static getInstance() {
39
51
  if (!SteamworksSDK.instance) {
package/dist/steam.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"steam.js","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":";;AAIA,sEAAmE;AACnE,0DAAuD;AACvD,gFAA6E;AAC7E,oEAAiE;AACjE,gFAA6E;AAE7E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,aAAa;IA0GjB;QACE,8BAA8B;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C;;OAEG;IACH,IAAI,CAAC,OAAyB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"steam.js","sourceRoot":"","sources":["../src/steam.ts"],"names":[],"mappings":";;AAIA,sEAAmE;AACnE,0DAAuD;AACvD,gFAA6E;AAC7E,oEAAiE;AACjE,gFAA6E;AAC7E,wEAAqE;AACrE,kFAA+E;AAC/E,wEAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,aAAa;IAsMjB;QACE,8BAA8B;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,uCAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,IAAI,iDAAuB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,OAAO,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,YAAY,GAAG,IAAI,mDAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,IAAI,yCAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C;;OAEG;IACH,IAAI,CAAC,OAAyB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Types for Steam Friends API
3
+ */
4
+ /**
5
+ * Friend relationship states
6
+ */
7
+ export declare enum EFriendRelationship {
8
+ None = 0,
9
+ Blocked = 1,
10
+ RequestRecipient = 2,
11
+ Friend = 3,
12
+ RequestInitiator = 4,
13
+ Ignored = 5,
14
+ IgnoredFriend = 6,
15
+ Suggested_DEPRECATED = 7,
16
+ Max = 8
17
+ }
18
+ /**
19
+ * User online states
20
+ */
21
+ export declare enum EPersonaState {
22
+ Offline = 0,// Friend is not currently logged on
23
+ Online = 1,// Friend is logged on
24
+ Busy = 2,// User is on, but busy
25
+ Away = 3,// Auto-away feature
26
+ Snooze = 4,// Auto-away for a long time
27
+ LookingToTrade = 5,// Online, trading
28
+ LookingToPlay = 6,// Online, wanting to play
29
+ Invisible = 7,// Online, but appears offline to friends
30
+ Max = 8
31
+ }
32
+ /**
33
+ * Flags for enumerating friends list
34
+ */
35
+ export declare enum EFriendFlags {
36
+ None = 0,
37
+ Blocked = 1,
38
+ FriendshipRequested = 2,
39
+ Immediate = 4,// "regular" friend
40
+ ClanMember = 8,
41
+ OnGameServer = 16,
42
+ RequestingFriendship = 128,
43
+ RequestingInfo = 256,
44
+ Ignored = 512,
45
+ IgnoredFriend = 1024,
46
+ ChatMember = 4096,
47
+ All = 65535
48
+ }
49
+ /**
50
+ * Friend information
51
+ */
52
+ export interface FriendInfo {
53
+ steamId: string;
54
+ personaName: string;
55
+ personaState: EPersonaState;
56
+ relationship: EFriendRelationship;
57
+ }
58
+ /**
59
+ * Friend game information
60
+ */
61
+ export interface FriendGameInfo {
62
+ gameId: string;
63
+ gameIP: number;
64
+ gamePort: number;
65
+ queryPort: number;
66
+ steamIDLobby: string;
67
+ }
68
+ //# sourceMappingURL=friends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../../src/types/friends.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,IAAI,IAAI;IACR,OAAO,IAAI;IACX,gBAAgB,IAAI;IACpB,MAAM,IAAI;IACV,gBAAgB,IAAI;IACpB,OAAO,IAAI;IACX,aAAa,IAAI;IACjB,oBAAoB,IAAI;IACxB,GAAG,IAAI;CACR;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,IAAI,CAAS,oCAAoC;IACxD,MAAM,IAAI,CAAU,sBAAsB;IAC1C,IAAI,IAAI,CAAY,uBAAuB;IAC3C,IAAI,IAAI,CAAY,oBAAoB;IACxC,MAAM,IAAI,CAAU,4BAA4B;IAChD,cAAc,IAAI,CAAE,kBAAkB;IACtC,aAAa,IAAI,CAAG,0BAA0B;IAC9C,SAAS,IAAI,CAAO,yCAAyC;IAC7D,GAAG,IAAI;CACR;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,IAAI,IAAO;IACX,OAAO,IAAO;IACd,mBAAmB,IAAO;IAC1B,SAAS,IAAO,CAAe,mBAAmB;IAClD,UAAU,IAAO;IACjB,YAAY,KAAO;IACnB,oBAAoB,MAAO;IAC3B,cAAc,MAAQ;IACtB,OAAO,MAAQ;IACf,aAAa,OAAQ;IACrB,UAAU,OAAS;IACnB,GAAG,QAAS;CACb;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * Types for Steam Friends API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EFriendFlags = exports.EPersonaState = exports.EFriendRelationship = void 0;
7
+ /**
8
+ * Friend relationship states
9
+ */
10
+ var EFriendRelationship;
11
+ (function (EFriendRelationship) {
12
+ EFriendRelationship[EFriendRelationship["None"] = 0] = "None";
13
+ EFriendRelationship[EFriendRelationship["Blocked"] = 1] = "Blocked";
14
+ EFriendRelationship[EFriendRelationship["RequestRecipient"] = 2] = "RequestRecipient";
15
+ EFriendRelationship[EFriendRelationship["Friend"] = 3] = "Friend";
16
+ EFriendRelationship[EFriendRelationship["RequestInitiator"] = 4] = "RequestInitiator";
17
+ EFriendRelationship[EFriendRelationship["Ignored"] = 5] = "Ignored";
18
+ EFriendRelationship[EFriendRelationship["IgnoredFriend"] = 6] = "IgnoredFriend";
19
+ EFriendRelationship[EFriendRelationship["Suggested_DEPRECATED"] = 7] = "Suggested_DEPRECATED";
20
+ EFriendRelationship[EFriendRelationship["Max"] = 8] = "Max";
21
+ })(EFriendRelationship || (exports.EFriendRelationship = EFriendRelationship = {}));
22
+ /**
23
+ * User online states
24
+ */
25
+ var EPersonaState;
26
+ (function (EPersonaState) {
27
+ EPersonaState[EPersonaState["Offline"] = 0] = "Offline";
28
+ EPersonaState[EPersonaState["Online"] = 1] = "Online";
29
+ EPersonaState[EPersonaState["Busy"] = 2] = "Busy";
30
+ EPersonaState[EPersonaState["Away"] = 3] = "Away";
31
+ EPersonaState[EPersonaState["Snooze"] = 4] = "Snooze";
32
+ EPersonaState[EPersonaState["LookingToTrade"] = 5] = "LookingToTrade";
33
+ EPersonaState[EPersonaState["LookingToPlay"] = 6] = "LookingToPlay";
34
+ EPersonaState[EPersonaState["Invisible"] = 7] = "Invisible";
35
+ EPersonaState[EPersonaState["Max"] = 8] = "Max";
36
+ })(EPersonaState || (exports.EPersonaState = EPersonaState = {}));
37
+ /**
38
+ * Flags for enumerating friends list
39
+ */
40
+ var EFriendFlags;
41
+ (function (EFriendFlags) {
42
+ EFriendFlags[EFriendFlags["None"] = 0] = "None";
43
+ EFriendFlags[EFriendFlags["Blocked"] = 1] = "Blocked";
44
+ EFriendFlags[EFriendFlags["FriendshipRequested"] = 2] = "FriendshipRequested";
45
+ EFriendFlags[EFriendFlags["Immediate"] = 4] = "Immediate";
46
+ EFriendFlags[EFriendFlags["ClanMember"] = 8] = "ClanMember";
47
+ EFriendFlags[EFriendFlags["OnGameServer"] = 16] = "OnGameServer";
48
+ EFriendFlags[EFriendFlags["RequestingFriendship"] = 128] = "RequestingFriendship";
49
+ EFriendFlags[EFriendFlags["RequestingInfo"] = 256] = "RequestingInfo";
50
+ EFriendFlags[EFriendFlags["Ignored"] = 512] = "Ignored";
51
+ EFriendFlags[EFriendFlags["IgnoredFriend"] = 1024] = "IgnoredFriend";
52
+ EFriendFlags[EFriendFlags["ChatMember"] = 4096] = "ChatMember";
53
+ EFriendFlags[EFriendFlags["All"] = 65535] = "All";
54
+ })(EFriendFlags || (exports.EFriendFlags = EFriendFlags = {}));
55
+ //# sourceMappingURL=friends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"friends.js","sourceRoot":"","sources":["../../src/types/friends.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,6DAAQ,CAAA;IACR,mEAAW,CAAA;IACX,qFAAoB,CAAA;IACpB,iEAAU,CAAA;IACV,qFAAoB,CAAA;IACpB,mEAAW,CAAA;IACX,+EAAiB,CAAA;IACjB,6FAAwB,CAAA;IACxB,2DAAO,CAAA;AACT,CAAC,EAVW,mBAAmB,mCAAnB,mBAAmB,QAU9B;AAED;;GAEG;AACH,IAAY,aAUX;AAVD,WAAY,aAAa;IACvB,uDAAW,CAAA;IACX,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,iDAAQ,CAAA;IACR,qDAAU,CAAA;IACV,qEAAkB,CAAA;IAClB,mEAAiB,CAAA;IACjB,2DAAa,CAAA;IACb,+CAAO,CAAA;AACT,CAAC,EAVW,aAAa,6BAAb,aAAa,QAUxB;AAED;;GAEG;AACH,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB,+CAAW,CAAA;IACX,qDAAc,CAAA;IACd,6EAA0B,CAAA;IAC1B,yDAAgB,CAAA;IAChB,2DAAiB,CAAA;IACjB,gEAAmB,CAAA;IACnB,iFAA2B,CAAA;IAC3B,qEAAsB,CAAA;IACtB,uDAAe,CAAA;IACf,oEAAqB,CAAA;IACrB,8DAAmB,CAAA;IACnB,iDAAY,CAAA;AACd,CAAC,EAbW,YAAY,4BAAZ,YAAY,QAavB"}
@@ -6,9 +6,15 @@
6
6
  * - achievements.ts - Achievement-related types
7
7
  * - stats.ts - Stats-related types
8
8
  * - leaderboards.ts - Leaderboard-related types
9
+ * - friends.ts - Friends-related types
10
+ * - richpresence.ts - Rich Presence-related types
11
+ * - overlay.ts - Overlay-related types
9
12
  */
10
13
  export * from './core';
11
14
  export * from './achievements';
12
15
  export * from './stats';
13
16
  export * from './leaderboards';
17
+ export * from './friends';
18
+ export * from './richpresence';
19
+ export * from './overlay';
14
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,WAAW,CAAC"}
@@ -7,6 +7,9 @@
7
7
  * - achievements.ts - Achievement-related types
8
8
  * - stats.ts - Stats-related types
9
9
  * - leaderboards.ts - Leaderboard-related types
10
+ * - friends.ts - Friends-related types
11
+ * - richpresence.ts - Rich Presence-related types
12
+ * - overlay.ts - Overlay-related types
10
13
  */
11
14
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
15
  if (k2 === undefined) k2 = k;
@@ -31,4 +34,10 @@ __exportStar(require("./achievements"), exports);
31
34
  __exportStar(require("./stats"), exports);
32
35
  // Leaderboard types
33
36
  __exportStar(require("./leaderboards"), exports);
37
+ // Friends types
38
+ __exportStar(require("./friends"), exports);
39
+ // Rich Presence types
40
+ __exportStar(require("./richpresence"), exports);
41
+ // Overlay types
42
+ __exportStar(require("./overlay"), exports);
34
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;AAEH,aAAa;AACb,yCAAuB;AAEvB,oBAAoB;AACpB,iDAA+B;AAE/B,cAAc;AACd,0CAAwB;AAExB,oBAAoB;AACpB,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;AAEH,aAAa;AACb,yCAAuB;AAEvB,oBAAoB;AACpB,iDAA+B;AAE/B,cAAc;AACd,0CAAwB;AAExB,oBAAoB;AACpB,iDAA+B;AAE/B,gBAAgB;AAChB,4CAA0B;AAE1B,sBAAsB;AACtB,iDAA+B;AAE/B,gBAAgB;AAChB,4CAA0B"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Types for Steam Overlay API
3
+ */
4
+ /**
5
+ * Overlay dialog types for ActivateGameOverlay
6
+ */
7
+ export declare enum EOverlayDialog {
8
+ /** Opens the friends list */
9
+ FRIENDS = "Friends",
10
+ /** Opens the Steam community hub */
11
+ COMMUNITY = "Community",
12
+ /** Opens the players list (for in-game) */
13
+ PLAYERS = "Players",
14
+ /** Opens Steam settings */
15
+ SETTINGS = "Settings",
16
+ /** Opens official game group */
17
+ OFFICIAL_GAME_GROUP = "OfficialGameGroup",
18
+ /** Opens stats page */
19
+ STATS = "Stats",
20
+ /** Opens achievements page */
21
+ ACHIEVEMENTS = "Achievements"
22
+ }
23
+ /**
24
+ * Overlay user dialog types for ActivateGameOverlayToUser
25
+ */
26
+ export declare enum EOverlayToUserDialog {
27
+ /** Opens overlay web browser to user's Steam profile */
28
+ STEAM_ID = "steamid",
29
+ /** Opens chat window to the user or joins group chat */
30
+ CHAT = "chat",
31
+ /** Opens window to Steam Trading session (requires ISteamEconomy/StartTrade Web API) */
32
+ JOIN_TRADE = "jointrade",
33
+ /** Opens overlay web browser to user's stats */
34
+ STATS = "stats",
35
+ /** Opens overlay web browser to user's achievements */
36
+ ACHIEVEMENTS = "achievements",
37
+ /** Opens overlay prompting to add user as friend */
38
+ FRIEND_ADD = "friendadd",
39
+ /** Opens overlay prompting to remove user as friend */
40
+ FRIEND_REMOVE = "friendremove",
41
+ /** Opens overlay prompting to accept incoming friend invite */
42
+ FRIEND_REQUEST_ACCEPT = "friendrequestaccept",
43
+ /** Opens overlay prompting to ignore incoming friend invite */
44
+ FRIEND_REQUEST_IGNORE = "friendrequestignore"
45
+ }
46
+ /**
47
+ * Overlay to store flags
48
+ */
49
+ export declare enum EOverlayToStoreFlag {
50
+ /** No special behavior */
51
+ None = 0,
52
+ /** Add item to cart */
53
+ AddToCart = 1,
54
+ /** Add to cart and show the cart */
55
+ AddToCartAndShow = 2
56
+ }
57
+ /**
58
+ * Web page overlay modes
59
+ */
60
+ export declare enum EActivateGameOverlayToWebPageMode {
61
+ /**
62
+ * Browser opens next to other overlay windows.
63
+ * Window remains open even if overlay is closed and reopened.
64
+ */
65
+ Default = 0,
66
+ /**
67
+ * Browser opens in modal configuration hiding other overlay windows.
68
+ * Browser and overlay close together.
69
+ */
70
+ Modal = 1
71
+ }
72
+ //# sourceMappingURL=overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/types/overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,oBAAY,cAAc;IACxB,6BAA6B;IAC7B,OAAO,YAAY;IACnB,oCAAoC;IACpC,SAAS,cAAc;IACvB,2CAA2C;IAC3C,OAAO,YAAY;IACnB,2BAA2B;IAC3B,QAAQ,aAAa;IACrB,gCAAgC;IAChC,mBAAmB,sBAAsB;IACzC,uBAAuB;IACvB,KAAK,UAAU;IACf,8BAA8B;IAC9B,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,wDAAwD;IACxD,QAAQ,YAAY;IACpB,wDAAwD;IACxD,IAAI,SAAS;IACb,wFAAwF;IACxF,UAAU,cAAc;IACxB,gDAAgD;IAChD,KAAK,UAAU;IACf,uDAAuD;IACvD,YAAY,iBAAiB;IAC7B,oDAAoD;IACpD,UAAU,cAAc;IACxB,uDAAuD;IACvD,aAAa,iBAAiB;IAC9B,+DAA+D;IAC/D,qBAAqB,wBAAwB;IAC7C,+DAA+D;IAC/D,qBAAqB,wBAAwB;CAC9C;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,0BAA0B;IAC1B,IAAI,IAAI;IACR,uBAAuB;IACvB,SAAS,IAAI;IACb,oCAAoC;IACpC,gBAAgB,IAAI;CACrB;AAED;;GAEG;AACH,oBAAY,iCAAiC;IAC3C;;;OAGG;IACH,OAAO,IAAI;IACX;;;OAGG;IACH,KAAK,IAAI;CACV"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Types for Steam Overlay API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EActivateGameOverlayToWebPageMode = exports.EOverlayToStoreFlag = exports.EOverlayToUserDialog = exports.EOverlayDialog = void 0;
7
+ /**
8
+ * Overlay dialog types for ActivateGameOverlay
9
+ */
10
+ var EOverlayDialog;
11
+ (function (EOverlayDialog) {
12
+ /** Opens the friends list */
13
+ EOverlayDialog["FRIENDS"] = "Friends";
14
+ /** Opens the Steam community hub */
15
+ EOverlayDialog["COMMUNITY"] = "Community";
16
+ /** Opens the players list (for in-game) */
17
+ EOverlayDialog["PLAYERS"] = "Players";
18
+ /** Opens Steam settings */
19
+ EOverlayDialog["SETTINGS"] = "Settings";
20
+ /** Opens official game group */
21
+ EOverlayDialog["OFFICIAL_GAME_GROUP"] = "OfficialGameGroup";
22
+ /** Opens stats page */
23
+ EOverlayDialog["STATS"] = "Stats";
24
+ /** Opens achievements page */
25
+ EOverlayDialog["ACHIEVEMENTS"] = "Achievements";
26
+ })(EOverlayDialog || (exports.EOverlayDialog = EOverlayDialog = {}));
27
+ /**
28
+ * Overlay user dialog types for ActivateGameOverlayToUser
29
+ */
30
+ var EOverlayToUserDialog;
31
+ (function (EOverlayToUserDialog) {
32
+ /** Opens overlay web browser to user's Steam profile */
33
+ EOverlayToUserDialog["STEAM_ID"] = "steamid";
34
+ /** Opens chat window to the user or joins group chat */
35
+ EOverlayToUserDialog["CHAT"] = "chat";
36
+ /** Opens window to Steam Trading session (requires ISteamEconomy/StartTrade Web API) */
37
+ EOverlayToUserDialog["JOIN_TRADE"] = "jointrade";
38
+ /** Opens overlay web browser to user's stats */
39
+ EOverlayToUserDialog["STATS"] = "stats";
40
+ /** Opens overlay web browser to user's achievements */
41
+ EOverlayToUserDialog["ACHIEVEMENTS"] = "achievements";
42
+ /** Opens overlay prompting to add user as friend */
43
+ EOverlayToUserDialog["FRIEND_ADD"] = "friendadd";
44
+ /** Opens overlay prompting to remove user as friend */
45
+ EOverlayToUserDialog["FRIEND_REMOVE"] = "friendremove";
46
+ /** Opens overlay prompting to accept incoming friend invite */
47
+ EOverlayToUserDialog["FRIEND_REQUEST_ACCEPT"] = "friendrequestaccept";
48
+ /** Opens overlay prompting to ignore incoming friend invite */
49
+ EOverlayToUserDialog["FRIEND_REQUEST_IGNORE"] = "friendrequestignore";
50
+ })(EOverlayToUserDialog || (exports.EOverlayToUserDialog = EOverlayToUserDialog = {}));
51
+ /**
52
+ * Overlay to store flags
53
+ */
54
+ var EOverlayToStoreFlag;
55
+ (function (EOverlayToStoreFlag) {
56
+ /** No special behavior */
57
+ EOverlayToStoreFlag[EOverlayToStoreFlag["None"] = 0] = "None";
58
+ /** Add item to cart */
59
+ EOverlayToStoreFlag[EOverlayToStoreFlag["AddToCart"] = 1] = "AddToCart";
60
+ /** Add to cart and show the cart */
61
+ EOverlayToStoreFlag[EOverlayToStoreFlag["AddToCartAndShow"] = 2] = "AddToCartAndShow";
62
+ })(EOverlayToStoreFlag || (exports.EOverlayToStoreFlag = EOverlayToStoreFlag = {}));
63
+ /**
64
+ * Web page overlay modes
65
+ */
66
+ var EActivateGameOverlayToWebPageMode;
67
+ (function (EActivateGameOverlayToWebPageMode) {
68
+ /**
69
+ * Browser opens next to other overlay windows.
70
+ * Window remains open even if overlay is closed and reopened.
71
+ */
72
+ EActivateGameOverlayToWebPageMode[EActivateGameOverlayToWebPageMode["Default"] = 0] = "Default";
73
+ /**
74
+ * Browser opens in modal configuration hiding other overlay windows.
75
+ * Browser and overlay close together.
76
+ */
77
+ EActivateGameOverlayToWebPageMode[EActivateGameOverlayToWebPageMode["Modal"] = 1] = "Modal";
78
+ })(EActivateGameOverlayToWebPageMode || (exports.EActivateGameOverlayToWebPageMode = EActivateGameOverlayToWebPageMode = {}));
79
+ //# sourceMappingURL=overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/types/overlay.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,IAAY,cAeX;AAfD,WAAY,cAAc;IACxB,6BAA6B;IAC7B,qCAAmB,CAAA;IACnB,oCAAoC;IACpC,yCAAuB,CAAA;IACvB,2CAA2C;IAC3C,qCAAmB,CAAA;IACnB,2BAA2B;IAC3B,uCAAqB,CAAA;IACrB,gCAAgC;IAChC,2DAAyC,CAAA;IACzC,uBAAuB;IACvB,iCAAe,CAAA;IACf,8BAA8B;IAC9B,+CAA6B,CAAA;AAC/B,CAAC,EAfW,cAAc,8BAAd,cAAc,QAezB;AAED;;GAEG;AACH,IAAY,oBAmBX;AAnBD,WAAY,oBAAoB;IAC9B,wDAAwD;IACxD,4CAAoB,CAAA;IACpB,wDAAwD;IACxD,qCAAa,CAAA;IACb,wFAAwF;IACxF,gDAAwB,CAAA;IACxB,gDAAgD;IAChD,uCAAe,CAAA;IACf,uDAAuD;IACvD,qDAA6B,CAAA;IAC7B,oDAAoD;IACpD,gDAAwB,CAAA;IACxB,uDAAuD;IACvD,sDAA8B,CAAA;IAC9B,+DAA+D;IAC/D,qEAA6C,CAAA;IAC7C,+DAA+D;IAC/D,qEAA6C,CAAA;AAC/C,CAAC,EAnBW,oBAAoB,oCAApB,oBAAoB,QAmB/B;AAED;;GAEG;AACH,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,0BAA0B;IAC1B,6DAAQ,CAAA;IACR,uBAAuB;IACvB,uEAAa,CAAA;IACb,oCAAoC;IACpC,qFAAoB,CAAA;AACtB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED;;GAEG;AACH,IAAY,iCAWX;AAXD,WAAY,iCAAiC;IAC3C;;;OAGG;IACH,+FAAW,CAAA;IACX;;;OAGG;IACH,2FAAS,CAAA;AACX,CAAC,EAXW,iCAAiC,iDAAjC,iCAAiC,QAW5C"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Types for Steam Rich Presence API
3
+ */
4
+ /**
5
+ * Rich presence data for displaying user activity
6
+ *
7
+ * @remarks
8
+ * Rich Presence allows games to display custom status information
9
+ * that appears in the Steam friends list and chat.
10
+ */
11
+ export interface RichPresenceData {
12
+ /** The rich presence key */
13
+ key: string;
14
+ /** The rich presence value */
15
+ value: string;
16
+ }
17
+ /**
18
+ * Special Rich Presence keys recognized by Steam
19
+ */
20
+ export declare const RichPresenceKeys: {
21
+ /** UTF-8 string shown in 'view game info' dialog */
22
+ readonly STATUS: "status";
23
+ /** Command-line string for how friends can connect to your game */
24
+ readonly CONNECT: "connect";
25
+ /** Rich presence localization token for display in user's language */
26
+ readonly STEAM_DISPLAY: "steam_display";
27
+ /** Group identifier for organizing players together in Steam UI */
28
+ readonly STEAM_PLAYER_GROUP: "steam_player_group";
29
+ /** Total number of players in the steam_player_group */
30
+ readonly STEAM_PLAYER_GROUP_SIZE: "steam_player_group_size";
31
+ };
32
+ /**
33
+ * Maximum limits for Rich Presence
34
+ */
35
+ export declare const RichPresenceLimits: {
36
+ /** Maximum number of rich presence keys per user */
37
+ readonly MAX_KEYS: 30;
38
+ /** Maximum length of a rich presence key */
39
+ readonly MAX_KEY_LENGTH: 64;
40
+ /** Maximum length of a rich presence value */
41
+ readonly MAX_VALUE_LENGTH: 256;
42
+ };
43
+ //# sourceMappingURL=richpresence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richpresence.d.ts","sourceRoot":"","sources":["../../src/types/richpresence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,oDAAoD;;IAEpD,mEAAmE;;IAEnE,sEAAsE;;IAEtE,mEAAmE;;IAEnE,wDAAwD;;CAEhD,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,oDAAoD;;IAEpD,4CAA4C;;IAE5C,8CAA8C;;CAEtC,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * Types for Steam Rich Presence API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RichPresenceLimits = exports.RichPresenceKeys = void 0;
7
+ /**
8
+ * Special Rich Presence keys recognized by Steam
9
+ */
10
+ exports.RichPresenceKeys = {
11
+ /** UTF-8 string shown in 'view game info' dialog */
12
+ STATUS: 'status',
13
+ /** Command-line string for how friends can connect to your game */
14
+ CONNECT: 'connect',
15
+ /** Rich presence localization token for display in user's language */
16
+ STEAM_DISPLAY: 'steam_display',
17
+ /** Group identifier for organizing players together in Steam UI */
18
+ STEAM_PLAYER_GROUP: 'steam_player_group',
19
+ /** Total number of players in the steam_player_group */
20
+ STEAM_PLAYER_GROUP_SIZE: 'steam_player_group_size',
21
+ };
22
+ /**
23
+ * Maximum limits for Rich Presence
24
+ */
25
+ exports.RichPresenceLimits = {
26
+ /** Maximum number of rich presence keys per user */
27
+ MAX_KEYS: 30,
28
+ /** Maximum length of a rich presence key */
29
+ MAX_KEY_LENGTH: 64,
30
+ /** Maximum length of a rich presence value */
31
+ MAX_VALUE_LENGTH: 256,
32
+ };
33
+ //# sourceMappingURL=richpresence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richpresence.js","sourceRoot":"","sources":["../../src/types/richpresence.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgBH;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,oDAAoD;IACpD,MAAM,EAAE,QAAQ;IAChB,mEAAmE;IACnE,OAAO,EAAE,SAAS;IAClB,sEAAsE;IACtE,aAAa,EAAE,eAAe;IAC9B,mEAAmE;IACnE,kBAAkB,EAAE,oBAAoB;IACxC,wDAAwD;IACxD,uBAAuB,EAAE,yBAAyB;CAC1C,CAAC;AAEX;;GAEG;AACU,QAAA,kBAAkB,GAAG;IAChC,oDAAoD;IACpD,QAAQ,EAAE,EAAE;IACZ,4CAA4C;IAC5C,cAAc,EAAE,EAAE;IAClB,8CAA8C;IAC9C,gBAAgB,EAAE,GAAG;CACb,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,21 @@
1
1
  {
2
2
  "name": "steamworks-ffi-node",
3
- "version": "0.4.2",
4
- "description": "Real Steamworks SDK wrapper using FFI for Node.js/Electron - Full Steam Integration",
3
+ "version": "0.5.1",
4
+ "description": "Steamworks SDK wrapper using FFI for Node.js/Electron - Full Steam Integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
- "test:achievements": "node tests/test-complete-achievements.js",
10
- "test:stats": "node tests/test-complete-stats.js",
11
- "test:leaderboards": "node tests/test-complete-leaderboards.js",
9
+ "test:achievements:js": "node tests/js/test-complete-achievements.js",
10
+ "test:stats:js": "node tests/js/test-complete-stats.js",
11
+ "test:leaderboards:js": "node tests/js/test-complete-leaderboards.js",
12
+ "test:friends:js": "node tests/js/test-complete-friends.js",
13
+ "test:richpresence-overlay:js": "node tests/js/test-richpresence-overlay.js",
14
+ "test:achievements:ts": "ts-node tests/ts/test-complete-achievements.ts",
15
+ "test:stats:ts": "ts-node tests/ts/test-complete-stats.ts",
16
+ "test:leaderboards:ts": "ts-node tests/ts/test-complete-leaderboards.ts",
17
+ "test:friends:ts": "ts-node tests/ts/test-complete-friends.ts",
18
+ "test:richpresence-overlay:ts": "ts-node tests/ts/test-richpresence-overlay.ts",
12
19
  "prepublishOnly": "npm run build"
13
20
  },
14
21
  "dependencies": {
@@ -16,6 +23,7 @@
16
23
  },
17
24
  "devDependencies": {
18
25
  "@types/node": "^20.19.20",
26
+ "ts-node": "^10.9.2",
19
27
  "typescript": "^5.0.0"
20
28
  },
21
29
  "files": [
@@ -42,7 +50,7 @@
42
50
  "bugs": {
43
51
  "url": "https://github.com/ArtyProf/steamworks-ffi-node/issues"
44
52
  },
45
- "homepage": "https://github.com/ArtyProf/steamworks-ffi-node#readme",
53
+ "homepage": "https://github.com/ArtyProf/steamworks-ffi-node",
46
54
  "author": "ArtyProf",
47
55
  "license": "MIT",
48
56
  "engines": {