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.
Files changed (57) hide show
  1. package/README.md +53 -20
  2. package/dist/index.d.ts +4 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +24 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/SteamAPICore.d.ts +32 -9
  7. package/dist/internal/SteamAPICore.d.ts.map +1 -1
  8. package/dist/internal/SteamAPICore.js +46 -15
  9. package/dist/internal/SteamAPICore.js.map +1 -1
  10. package/dist/internal/SteamAchievementManager.d.ts +25 -25
  11. package/dist/internal/SteamAchievementManager.js +26 -26
  12. package/dist/internal/SteamAchievementManager.js.map +1 -1
  13. package/dist/internal/SteamCallbackPoller.d.ts +68 -0
  14. package/dist/internal/SteamCallbackPoller.d.ts.map +1 -0
  15. package/dist/internal/SteamCallbackPoller.js +134 -0
  16. package/dist/internal/SteamCallbackPoller.js.map +1 -0
  17. package/dist/internal/SteamLeaderboardManager.d.ts +338 -0
  18. package/dist/internal/SteamLeaderboardManager.d.ts.map +1 -0
  19. package/dist/internal/SteamLeaderboardManager.js +734 -0
  20. package/dist/internal/SteamLeaderboardManager.js.map +1 -0
  21. package/dist/internal/SteamLibraryLoader.d.ts +15 -0
  22. package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
  23. package/dist/internal/SteamLibraryLoader.js +26 -0
  24. package/dist/internal/SteamLibraryLoader.js.map +1 -1
  25. package/dist/internal/SteamStatsManager.d.ts +57 -45
  26. package/dist/internal/SteamStatsManager.d.ts.map +1 -1
  27. package/dist/internal/SteamStatsManager.js +146 -101
  28. package/dist/internal/SteamStatsManager.js.map +1 -1
  29. package/dist/steam.d.ts +115 -172
  30. package/dist/steam.d.ts.map +1 -1
  31. package/dist/steam.js +24 -241
  32. package/dist/steam.js.map +1 -1
  33. package/dist/{types.d.ts → types/achievements.d.ts} +19 -30
  34. package/dist/types/achievements.d.ts.map +1 -0
  35. package/dist/types/achievements.js +6 -0
  36. package/dist/types/achievements.js.map +1 -0
  37. package/dist/types/core.d.ts +18 -0
  38. package/dist/types/core.d.ts.map +1 -0
  39. package/dist/types/core.js +6 -0
  40. package/dist/types/core.js.map +1 -0
  41. package/dist/types/index.d.ts +14 -0
  42. package/dist/types/index.d.ts.map +1 -0
  43. package/dist/types/index.js +34 -0
  44. package/dist/types/index.js.map +1 -0
  45. package/dist/types/leaderboards.d.ts +121 -0
  46. package/dist/types/leaderboards.d.ts.map +1 -0
  47. package/dist/types/leaderboards.js +45 -0
  48. package/dist/types/leaderboards.js.map +1 -0
  49. package/dist/types/stats.d.ts +37 -0
  50. package/dist/types/stats.d.ts.map +1 -0
  51. package/dist/types/stats.js +6 -0
  52. package/dist/types/stats.js.map +1 -0
  53. package/package.json +4 -3
  54. package/dist/types.d.ts.map +0 -1
  55. package/dist/types.js +0 -3
  56. package/dist/types.js.map +0 -1
  57. 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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Stats-related types for the SteamStatsManager
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=stats.js.map
@@ -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.1",
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": {
@@ -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
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -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