steamworks-ffi-node 0.5.0 → 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.
- package/README.md +25 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/SteamLibraryLoader.d.ts +13 -0
- package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
- package/dist/internal/SteamLibraryLoader.js +15 -0
- package/dist/internal/SteamLibraryLoader.js.map +1 -1
- package/dist/internal/SteamOverlayManager.d.ts +407 -0
- package/dist/internal/SteamOverlayManager.d.ts.map +1 -0
- package/dist/internal/SteamOverlayManager.js +523 -0
- package/dist/internal/SteamOverlayManager.js.map +1 -0
- package/dist/internal/SteamRichPresenceManager.d.ts +265 -0
- package/dist/internal/SteamRichPresenceManager.d.ts.map +1 -0
- package/dist/internal/SteamRichPresenceManager.js +374 -0
- package/dist/internal/SteamRichPresenceManager.js.map +1 -0
- package/dist/steam.d.ts +63 -0
- package/dist/steam.d.ts.map +1 -1
- package/dist/steam.js +10 -0
- package/dist/steam.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/overlay.d.ts +72 -0
- package/dist/types/overlay.d.ts.map +1 -0
- package/dist/types/overlay.js +79 -0
- package/dist/types/overlay.js.map +1 -0
- package/dist/types/richpresence.d.ts +43 -0
- package/dist/types/richpresence.d.ts.map +1 -0
- package/dist/types/richpresence.js +33 -0
- package/dist/types/richpresence.js.map +1 -0
- package/package.json +5 -3
package/dist/steam.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { SteamAchievementManager } from './internal/SteamAchievementManager';
|
|
|
3
3
|
import { SteamStatsManager } from './internal/SteamStatsManager';
|
|
4
4
|
import { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
|
|
5
5
|
import { SteamFriendsManager } from './internal/SteamFriendsManager';
|
|
6
|
+
import { SteamRichPresenceManager } from './internal/SteamRichPresenceManager';
|
|
7
|
+
import { SteamOverlayManager } from './internal/SteamOverlayManager';
|
|
6
8
|
/**
|
|
7
9
|
* Real Steamworks SDK implementation using Koffi FFI
|
|
8
10
|
* This connects directly to the actual Steam client and Steamworks SDK
|
|
@@ -11,6 +13,9 @@ import { SteamFriendsManager } from './internal/SteamFriendsManager';
|
|
|
11
13
|
* - achievements: SteamAchievementManager - All achievement operations
|
|
12
14
|
* - stats: SteamStatsManager - All stats operations
|
|
13
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
|
|
14
19
|
*
|
|
15
20
|
* @example
|
|
16
21
|
* ```typescript
|
|
@@ -21,6 +26,9 @@ import { SteamFriendsManager } from './internal/SteamFriendsManager';
|
|
|
21
26
|
* await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
|
|
22
27
|
* await steam.stats.setStatInt('NumGames', 1);
|
|
23
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');
|
|
24
32
|
* ```
|
|
25
33
|
*/
|
|
26
34
|
declare class SteamworksSDK {
|
|
@@ -157,6 +165,61 @@ declare class SteamworksSDK {
|
|
|
157
165
|
* @see {@link SteamFriendsManager} for complete API documentation
|
|
158
166
|
*/
|
|
159
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;
|
|
160
223
|
private constructor();
|
|
161
224
|
static getInstance(): SteamworksSDK;
|
|
162
225
|
/**
|
package/dist/steam.d.ts.map
CHANGED
|
@@ -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;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE
|
|
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
|
@@ -6,6 +6,8 @@ const SteamAchievementManager_1 = require("./internal/SteamAchievementManager");
|
|
|
6
6
|
const SteamStatsManager_1 = require("./internal/SteamStatsManager");
|
|
7
7
|
const SteamLeaderboardManager_1 = require("./internal/SteamLeaderboardManager");
|
|
8
8
|
const SteamFriendsManager_1 = require("./internal/SteamFriendsManager");
|
|
9
|
+
const SteamRichPresenceManager_1 = require("./internal/SteamRichPresenceManager");
|
|
10
|
+
const SteamOverlayManager_1 = require("./internal/SteamOverlayManager");
|
|
9
11
|
/**
|
|
10
12
|
* Real Steamworks SDK implementation using Koffi FFI
|
|
11
13
|
* This connects directly to the actual Steam client and Steamworks SDK
|
|
@@ -14,6 +16,9 @@ const SteamFriendsManager_1 = require("./internal/SteamFriendsManager");
|
|
|
14
16
|
* - achievements: SteamAchievementManager - All achievement operations
|
|
15
17
|
* - stats: SteamStatsManager - All stats operations
|
|
16
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
|
|
17
22
|
*
|
|
18
23
|
* @example
|
|
19
24
|
* ```typescript
|
|
@@ -24,6 +29,9 @@ const SteamFriendsManager_1 = require("./internal/SteamFriendsManager");
|
|
|
24
29
|
* await steam.achievements.unlockAchievement('ACH_WIN_ONE_GAME');
|
|
25
30
|
* await steam.stats.setStatInt('NumGames', 1);
|
|
26
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');
|
|
27
35
|
* ```
|
|
28
36
|
*/
|
|
29
37
|
class SteamworksSDK {
|
|
@@ -36,6 +44,8 @@ class SteamworksSDK {
|
|
|
36
44
|
this.stats = new SteamStatsManager_1.SteamStatsManager(this.libraryLoader, this.apiCore);
|
|
37
45
|
this.leaderboards = new SteamLeaderboardManager_1.SteamLeaderboardManager(this.libraryLoader, this.apiCore);
|
|
38
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);
|
|
39
49
|
}
|
|
40
50
|
static getInstance() {
|
|
41
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;AAC7E,wEAAqE;AAErE
|
|
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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,10 +7,14 @@
|
|
|
7
7
|
* - stats.ts - Stats-related types
|
|
8
8
|
* - leaderboards.ts - Leaderboard-related types
|
|
9
9
|
* - friends.ts - Friends-related types
|
|
10
|
+
* - richpresence.ts - Rich Presence-related types
|
|
11
|
+
* - overlay.ts - Overlay-related types
|
|
10
12
|
*/
|
|
11
13
|
export * from './core';
|
|
12
14
|
export * from './achievements';
|
|
13
15
|
export * from './stats';
|
|
14
16
|
export * from './leaderboards';
|
|
15
17
|
export * from './friends';
|
|
18
|
+
export * from './richpresence';
|
|
19
|
+
export * from './overlay';
|
|
16
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/types/index.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* - stats.ts - Stats-related types
|
|
9
9
|
* - leaderboards.ts - Leaderboard-related types
|
|
10
10
|
* - friends.ts - Friends-related types
|
|
11
|
+
* - richpresence.ts - Rich Presence-related types
|
|
12
|
+
* - overlay.ts - Overlay-related types
|
|
11
13
|
*/
|
|
12
14
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
15
|
if (k2 === undefined) k2 = k;
|
|
@@ -34,4 +36,8 @@ __exportStar(require("./stats"), exports);
|
|
|
34
36
|
__exportStar(require("./leaderboards"), exports);
|
|
35
37
|
// Friends types
|
|
36
38
|
__exportStar(require("./friends"), exports);
|
|
39
|
+
// Rich Presence types
|
|
40
|
+
__exportStar(require("./richpresence"), exports);
|
|
41
|
+
// Overlay types
|
|
42
|
+
__exportStar(require("./overlay"), exports);
|
|
37
43
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA
|
|
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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "steamworks-ffi-node",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "
|
|
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": {
|
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
"test:stats:js": "node tests/js/test-complete-stats.js",
|
|
11
11
|
"test:leaderboards:js": "node tests/js/test-complete-leaderboards.js",
|
|
12
12
|
"test:friends:js": "node tests/js/test-complete-friends.js",
|
|
13
|
+
"test:richpresence-overlay:js": "node tests/js/test-richpresence-overlay.js",
|
|
13
14
|
"test:achievements:ts": "ts-node tests/ts/test-complete-achievements.ts",
|
|
14
15
|
"test:stats:ts": "ts-node tests/ts/test-complete-stats.ts",
|
|
15
16
|
"test:leaderboards:ts": "ts-node tests/ts/test-complete-leaderboards.ts",
|
|
16
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",
|
|
17
19
|
"prepublishOnly": "npm run build"
|
|
18
20
|
},
|
|
19
21
|
"dependencies": {
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
"bugs": {
|
|
49
51
|
"url": "https://github.com/ArtyProf/steamworks-ffi-node/issues"
|
|
50
52
|
},
|
|
51
|
-
"homepage": "https://github.com/ArtyProf/steamworks-ffi-node
|
|
53
|
+
"homepage": "https://github.com/ArtyProf/steamworks-ffi-node",
|
|
52
54
|
"author": "ArtyProf",
|
|
53
55
|
"license": "MIT",
|
|
54
56
|
"engines": {
|