steamworks-ffi-node 0.3.1 → 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/README.md +53 -20
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/SteamAPICore.d.ts +32 -9
- package/dist/internal/SteamAPICore.d.ts.map +1 -1
- package/dist/internal/SteamAPICore.js +46 -15
- package/dist/internal/SteamAPICore.js.map +1 -1
- package/dist/internal/SteamAchievementManager.d.ts +25 -25
- package/dist/internal/SteamAchievementManager.js +26 -26
- package/dist/internal/SteamAchievementManager.js.map +1 -1
- package/dist/internal/SteamCallbackPoller.d.ts +68 -0
- package/dist/internal/SteamCallbackPoller.d.ts.map +1 -0
- package/dist/internal/SteamCallbackPoller.js +134 -0
- package/dist/internal/SteamCallbackPoller.js.map +1 -0
- package/dist/internal/SteamLeaderboardManager.d.ts +338 -0
- package/dist/internal/SteamLeaderboardManager.d.ts.map +1 -0
- package/dist/internal/SteamLeaderboardManager.js +734 -0
- package/dist/internal/SteamLeaderboardManager.js.map +1 -0
- package/dist/internal/SteamLibraryLoader.d.ts +15 -0
- package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
- package/dist/internal/SteamLibraryLoader.js +26 -0
- package/dist/internal/SteamLibraryLoader.js.map +1 -1
- package/dist/internal/SteamStatsManager.d.ts +57 -45
- package/dist/internal/SteamStatsManager.d.ts.map +1 -1
- package/dist/internal/SteamStatsManager.js +146 -101
- package/dist/internal/SteamStatsManager.js.map +1 -1
- package/dist/steam.d.ts +115 -172
- package/dist/steam.d.ts.map +1 -1
- package/dist/steam.js +24 -241
- package/dist/steam.js.map +1 -1
- package/dist/{types.d.ts → types/achievements.d.ts} +19 -30
- package/dist/types/achievements.d.ts.map +1 -0
- package/dist/types/achievements.js +6 -0
- package/dist/types/achievements.js.map +1 -0
- package/dist/types/core.d.ts +18 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +6 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +34 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/leaderboards.d.ts +121 -0
- package/dist/types/leaderboards.d.ts.map +1 -0
- package/dist/types/leaderboards.js +45 -0
- package/dist/types/leaderboards.js.map +1 -0
- package/dist/types/stats.d.ts +37 -0
- package/dist/types/stats.d.ts.map +1 -0
- package/dist/types/stats.js +6 -0
- package/dist/types/stats.js.map +1 -0
- package/package.json +4 -3
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/steamworks_sdk/README.md +0 -82
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaderboards.js","sourceRoot":"","sources":["../../src/types/leaderboards.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,iEAAQ,CAAA;IACR,2EAAa,CAAA;IACb,6EAAc,CAAA,CAAG,8BAA8B;AACjD,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC;AAED;;GAEG;AACH,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,mEAAQ,CAAA;IACR,yEAAW,CAAA;IACX,iFAAe,CAAA;IACf,2FAAoB,CAAA,CAAG,wCAAwC;AACjE,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC;AAED;;GAEG;AACH,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uEAAU,CAAA;IACV,2FAAoB,CAAA;IACpB,yEAAW,CAAA;IACX,qEAAS,CAAA,CAAc,6BAA6B;AACtD,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC;AAED;;GAEG;AACH,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACtC,+EAAQ,CAAA;IACR,uFAAY,CAAA;IACZ,6FAAe,CAAA,CAAI,gCAAgC;AACrD,CAAC,EAJW,4BAA4B,4CAA5B,4BAA4B,QAIvC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stats-related types for the SteamStatsManager
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* User stat value (can be int or float)
|
|
6
|
+
*/
|
|
7
|
+
export interface SteamStat {
|
|
8
|
+
name: string;
|
|
9
|
+
value: number;
|
|
10
|
+
type: 'int' | 'float';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Global stat value from Steam servers
|
|
14
|
+
*/
|
|
15
|
+
export interface GlobalStat {
|
|
16
|
+
name: string;
|
|
17
|
+
value: number;
|
|
18
|
+
type: 'int64' | 'double';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Global stat with historical data
|
|
22
|
+
*/
|
|
23
|
+
export interface GlobalStatHistory {
|
|
24
|
+
name: string;
|
|
25
|
+
history: number[];
|
|
26
|
+
type: 'int64' | 'double';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* User stat for another user (friend)
|
|
30
|
+
*/
|
|
31
|
+
export interface UserStat {
|
|
32
|
+
steamId: string;
|
|
33
|
+
name: string;
|
|
34
|
+
value: number;
|
|
35
|
+
type: 'int' | 'float';
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/types/stats.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/types/stats.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "steamworks-ffi-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Real 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 test-complete-achievements.js",
|
|
10
|
-
"test:stats": "node test-complete-stats.js",
|
|
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",
|
|
11
12
|
"prepublishOnly": "npm run build"
|
|
12
13
|
},
|
|
13
14
|
"dependencies": {
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAGD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B;AAGD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACvB"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/steamworks_sdk/README.md
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Steamworks SDK Setup
|
|
2
|
-
|
|
3
|
-
This directory should contain the Steamworks SDK files for real Steam integration.
|
|
4
|
-
|
|
5
|
-
## 📥 How to Get Steamworks SDK
|
|
6
|
-
|
|
7
|
-
1. **Register as Steam Partner**: Go to https://partner.steamgames.com/
|
|
8
|
-
2. **Download Steamworks SDK**: Available in the partner portal after registration
|
|
9
|
-
3. **Extract SDK**: Place the extracted files in this directory
|
|
10
|
-
|
|
11
|
-
## 📁 Required Directory Structure
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
steamworks_sdk/
|
|
15
|
-
├── public/
|
|
16
|
-
│ └── steam/
|
|
17
|
-
│ ├── steam_api.h
|
|
18
|
-
│ ├── isteamuserstate.h
|
|
19
|
-
│ └── ... (other header files)
|
|
20
|
-
└── redistributable_bin/
|
|
21
|
-
├── win64/
|
|
22
|
-
│ └── steam_api64.dll # Windows 64-bit
|
|
23
|
-
├── steam_api.dll # Windows 32-bit
|
|
24
|
-
├── osx/
|
|
25
|
-
│ └── libsteam_api.dylib # macOS
|
|
26
|
-
└── linux64/
|
|
27
|
-
└── libsteam_api.so # Linux 64-bit
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## 🔑 Steam App ID
|
|
31
|
-
|
|
32
|
-
You'll also need a valid Steam App ID:
|
|
33
|
-
|
|
34
|
-
1. **Get App ID**: Register your application on Steamworks
|
|
35
|
-
2. **Create steam_appid.txt**: Place your App ID in this file in the project root
|
|
36
|
-
3. **Environment Variable**: The wrapper will set `SteamAppId` automatically
|
|
37
|
-
|
|
38
|
-
## 🎮 Testing Without Real App ID
|
|
39
|
-
|
|
40
|
-
For testing purposes, you can use Steam's test App ID `480` (Spacewar), but this requires:
|
|
41
|
-
- Steam client running
|
|
42
|
-
- Being logged into Steam
|
|
43
|
-
- Having Spacewar in your library (it's free)
|
|
44
|
-
|
|
45
|
-
## ⚡ Quick Setup
|
|
46
|
-
|
|
47
|
-
1. Download Steamworks SDK from Steam Partner portal
|
|
48
|
-
2. Extract to this directory maintaining the structure above
|
|
49
|
-
3. Run: `npm run setup` to verify everything is configured
|
|
50
|
-
4. Run: `npm install` to build FFI dependencies
|
|
51
|
-
5. Run: `npm start` to test with real Steam integration
|
|
52
|
-
|
|
53
|
-
## 🚨 Important Notes
|
|
54
|
-
|
|
55
|
-
- **Keep SDK Private**: Steamworks SDK is under NDA - don't commit it to public repos
|
|
56
|
-
- **Platform Specific**: Make sure to include binaries for all target platforms
|
|
57
|
-
- **Steam Client Required**: Real integration requires Steam client to be running
|
|
58
|
-
- **Valid App ID**: Production use requires a registered Steam application
|
|
59
|
-
|
|
60
|
-
## 🔧 Troubleshooting
|
|
61
|
-
|
|
62
|
-
**"Library not found" Error**:
|
|
63
|
-
- Verify SDK files are in correct locations
|
|
64
|
-
- Check file permissions
|
|
65
|
-
- Ensure Visual Studio C++ Redistributable is installed
|
|
66
|
-
|
|
67
|
-
**"SteamAPI_Init failed" Error**:
|
|
68
|
-
- Make sure Steam client is running
|
|
69
|
-
- Verify you're logged into Steam
|
|
70
|
-
- Check that steam_appid.txt contains valid App ID
|
|
71
|
-
- For App ID 480, make sure Spacewar is in your Steam library
|
|
72
|
-
|
|
73
|
-
**Build Errors**:
|
|
74
|
-
- Install Visual Studio Build Tools with C++ workload
|
|
75
|
-
- Make sure Python is installed
|
|
76
|
-
- Try running as Administrator
|
|
77
|
-
|
|
78
|
-
## 📚 Documentation
|
|
79
|
-
|
|
80
|
-
- **Steamworks API Reference**: https://partner.steamgames.com/doc/api
|
|
81
|
-
- **Steam Partner Documentation**: Available after partner registration
|
|
82
|
-
- **Integration Guides**: Check the official Steamworks documentation
|