steamworks-ffi-node 0.6.0 → 0.6.2

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 (54) hide show
  1. package/README.md +74 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +5 -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/SteamCallbackPoller.d.ts +72 -0
  11. package/dist/internal/SteamCallbackPoller.d.ts.map +1 -1
  12. package/dist/internal/SteamCallbackPoller.js +144 -2
  13. package/dist/internal/SteamCallbackPoller.js.map +1 -1
  14. package/dist/internal/SteamCloudManager.d.ts.map +1 -1
  15. package/dist/internal/SteamCloudManager.js +18 -18
  16. package/dist/internal/SteamCloudManager.js.map +1 -1
  17. package/dist/internal/SteamLibraryLoader.d.ts +27 -0
  18. package/dist/internal/SteamLibraryLoader.d.ts.map +1 -1
  19. package/dist/internal/SteamLibraryLoader.js +43 -2
  20. package/dist/internal/SteamLibraryLoader.js.map +1 -1
  21. package/dist/internal/SteamOverlayManager.js +21 -21
  22. package/dist/internal/SteamOverlayManager.js.map +1 -1
  23. package/dist/internal/SteamRichPresenceManager.js +18 -18
  24. package/dist/internal/SteamRichPresenceManager.js.map +1 -1
  25. package/dist/internal/SteamWorkshopManager.d.ts +602 -0
  26. package/dist/internal/SteamWorkshopManager.d.ts.map +1 -0
  27. package/dist/internal/SteamWorkshopManager.js +1426 -0
  28. package/dist/internal/SteamWorkshopManager.js.map +1 -0
  29. package/dist/internal/callbackTypes/SteamCallbackIds.d.ts +26 -0
  30. package/dist/internal/callbackTypes/SteamCallbackIds.d.ts.map +1 -0
  31. package/dist/internal/callbackTypes/SteamCallbackIds.js +35 -0
  32. package/dist/internal/callbackTypes/SteamCallbackIds.js.map +1 -0
  33. package/dist/internal/callbackTypes/SteamCallbackTypes.d.ts +89 -0
  34. package/dist/internal/callbackTypes/SteamCallbackTypes.d.ts.map +1 -0
  35. package/dist/internal/callbackTypes/SteamCallbackTypes.js +9 -0
  36. package/dist/internal/callbackTypes/SteamCallbackTypes.js.map +1 -0
  37. package/dist/internal/callbackTypes/index.d.ts +6 -0
  38. package/dist/internal/callbackTypes/index.d.ts.map +1 -0
  39. package/dist/internal/callbackTypes/index.js +22 -0
  40. package/dist/internal/callbackTypes/index.js.map +1 -0
  41. package/dist/steam.d.ts +42 -0
  42. package/dist/steam.d.ts.map +1 -1
  43. package/dist/steam.js +4 -0
  44. package/dist/steam.js.map +1 -1
  45. package/dist/types/index.d.ts +2 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/index.js +3 -0
  48. package/dist/types/index.js.map +1 -1
  49. package/dist/types/workshop.d.ts +302 -0
  50. package/dist/types/workshop.d.ts.map +1 -0
  51. package/dist/types/workshop.js +203 -0
  52. package/dist/types/workshop.js.map +1 -0
  53. package/docs/README.md +12 -0
  54. package/package.json +3 -1
package/README.md CHANGED
@@ -23,6 +23,8 @@ A TypeScript/JavaScript wrapper for the Steamworks SDK using Koffi FFI, designed
23
23
 
24
24
  > 🎉 **NEW: Cloud Storage API** - 14 functions for complete Steam Cloud (Remote Storage) integration! [See Documentation](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/CLOUD_MANAGER.md)
25
25
 
26
+ > 🎉 **NEW: Workshop API** - 25+ functions for complete Steam Workshop/UGC integration! [See Documentation](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/WORKSHOP_MANAGER.md)
27
+
26
28
  ## 🎯 Features
27
29
 
28
30
  - **Complete Achievement API**: 100% coverage of Steam Achievement functionality (20/20 functions)
@@ -66,6 +68,12 @@ A TypeScript/JavaScript wrapper for the Steamworks SDK using Koffi FFI, designed
66
68
  - ✅ File listing (count, iterate, get all with details)
67
69
  - ✅ Quota management (track storage usage and limits)
68
70
  - ✅ Cloud settings (check/toggle cloud sync for account and app)
71
+ - **Workshop API**: Complete Steam Workshop/UGC integration (25+ functions)
72
+ - ✅ Subscription management (subscribe, unsubscribe, list items)
73
+ - ✅ Item state & information (download progress, installation info)
74
+ - ✅ Query operations (search, browse, filter Workshop content)
75
+ - ✅ Item creation & update (create, upload, manage your Workshop items)
76
+ - ✅ Voting & favorites (vote on items, manage favorites)
69
77
  - **Steamworks Integration**: Direct FFI calls to Steamworks C++ SDK
70
78
  - **Cross-Platform**: Windows, macOS, and Linux support
71
79
  - **Easy Setup**: Simple installation with clear SDK setup guide
@@ -239,6 +247,70 @@ if (initialized) {
239
247
  const status = file.persisted ? '☁️' : '⏳';
240
248
  console.log(`${status} ${file.name} - ${kb} KB`);
241
249
  });
250
+
251
+ // Steam Workshop operations
252
+ // Subscribe to a Workshop item
253
+ const subscribeResult = await steam.workshop.subscribeItem(123456789n);
254
+ if (subscribeResult.success) {
255
+ console.log('✅ Subscribed to Workshop item');
256
+ }
257
+
258
+ // Get all subscribed items
259
+ const subscribedItems = steam.workshop.getSubscribedItems();
260
+ console.log(`Subscribed to ${subscribedItems.length} Workshop items`);
261
+
262
+ // Query Workshop items
263
+ const query = steam.workshop.createQueryAllUGCRequest(
264
+ 0, // Most popular
265
+ 1, // Items
266
+ 1, // Subscribed content
267
+ 1, // Subscribed items
268
+ 480 // App ID
269
+ );
270
+
271
+ if (query) {
272
+ const queryResult = await steam.workshop.sendQueryUGCRequest(query);
273
+ if (queryResult.success) {
274
+ console.log(`Found ${queryResult.numResults} Workshop items`);
275
+
276
+ // Get details for each item
277
+ for (let i = 0; i < queryResult.numResults; i++) {
278
+ const details = steam.workshop.getQueryUGCResult(query, i);
279
+ if (details) {
280
+ console.log(`📦 ${details.title} by ${details.steamIDOwner}`);
281
+ console.log(` Score: ${details.score}, Downloads: ${details.numUniqueSubscriptions}`);
282
+ }
283
+ }
284
+ }
285
+ steam.workshop.releaseQueryUGCRequest(query);
286
+ }
287
+
288
+ // Check download progress for subscribed items
289
+ subscribedItems.forEach(itemId => {
290
+ const state = steam.workshop.getItemState(itemId);
291
+ const stateFlags = [];
292
+ if (state & 1) stateFlags.push('Subscribed');
293
+ if (state & 4) stateFlags.push('Needs Update');
294
+ if (state & 8) stateFlags.push('Installed');
295
+ if (state & 16) stateFlags.push('Downloading');
296
+
297
+ console.log(`Item ${itemId}: ${stateFlags.join(', ')}`);
298
+
299
+ if (state & 16) { // If downloading
300
+ const progress = steam.workshop.getItemDownloadInfo(itemId);
301
+ if (progress) {
302
+ const percent = (progress.downloaded / progress.total * 100).toFixed(1);
303
+ console.log(` Download: ${percent}% (${progress.downloaded}/${progress.total} bytes)`);
304
+ }
305
+ }
306
+
307
+ if (state & 8) { // If installed
308
+ const info = steam.workshop.getItemInstallInfo(itemId);
309
+ if (info.success) {
310
+ console.log(` Installed at: ${info.folder}`);
311
+ }
312
+ }
313
+ });
242
314
  }
243
315
 
244
316
  // Cleanup
@@ -290,7 +362,8 @@ Complete documentation for all APIs is available in the [docs folder](https://gi
290
362
  - **[Friends Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/FRIENDS_MANAGER.md)** - Friends and social features (22 functions)
291
363
  - **[Rich Presence Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/RICH_PRESENCE_MANAGER.md)** - Custom status display and join functionality (6 functions)
292
364
  - **[Overlay Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/OVERLAY_MANAGER.md)** - Steam overlay control (7 functions)
293
- - **[Cloud Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/CLOUD_MANAGER.md)** - Steam Cloud storage operations (14 functions)
365
+ - **[Cloud Storage Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/CLOUD_STORAGE_MANAGER.md)** - Steam Cloud file operations (14 functions)
366
+ - **[Workshop Manager](https://github.com/ArtyProf/steamworks-ffi-node/blob/main/docs/WORKSHOP_MANAGER.md)** - Steam Workshop/UGC operations (25+ functions)
294
367
 
295
368
  ## 🎮 Steamworks Integration
296
369
 
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { SteamLeaderboardManager } from './internal/SteamLeaderboardManager';
5
5
  export { SteamFriendsManager } from './internal/SteamFriendsManager';
6
6
  export { SteamRichPresenceManager } from './internal/SteamRichPresenceManager';
7
7
  export { SteamOverlayManager } from './internal/SteamOverlayManager';
8
+ export { SteamCloudManager } from './internal/SteamCloudManager';
9
+ export { SteamWorkshopManager } from './internal/SteamWorkshopManager';
8
10
  export * from './types';
9
11
  export default SteamworksSDK;
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AAGpC,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;AAGrE,cAAc,SAAS,CAAC;AAGxB,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AAGpC,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;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,cAAc,SAAS,CAAC;AAGxB,eAAe,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.SteamOverlayManager = exports.SteamRichPresenceManager = exports.SteamFriendsManager = exports.SteamLeaderboardManager = exports.SteamStatsManager = exports.SteamAchievementManager = void 0;
20
+ exports.SteamWorkshopManager = exports.SteamCloudManager = exports.SteamOverlayManager = exports.SteamRichPresenceManager = exports.SteamFriendsManager = exports.SteamLeaderboardManager = exports.SteamStatsManager = exports.SteamAchievementManager = void 0;
21
21
  const steam_1 = __importDefault(require("./steam"));
22
22
  // Export manager classes for advanced usage
23
23
  var SteamAchievementManager_1 = require("./internal/SteamAchievementManager");
@@ -32,6 +32,10 @@ var SteamRichPresenceManager_1 = require("./internal/SteamRichPresenceManager");
32
32
  Object.defineProperty(exports, "SteamRichPresenceManager", { enumerable: true, get: function () { return SteamRichPresenceManager_1.SteamRichPresenceManager; } });
33
33
  var SteamOverlayManager_1 = require("./internal/SteamOverlayManager");
34
34
  Object.defineProperty(exports, "SteamOverlayManager", { enumerable: true, get: function () { return SteamOverlayManager_1.SteamOverlayManager; } });
35
+ var SteamCloudManager_1 = require("./internal/SteamCloudManager");
36
+ Object.defineProperty(exports, "SteamCloudManager", { enumerable: true, get: function () { return SteamCloudManager_1.SteamCloudManager; } });
37
+ var SteamWorkshopManager_1 = require("./internal/SteamWorkshopManager");
38
+ Object.defineProperty(exports, "SteamWorkshopManager", { enumerable: true, get: function () { return SteamWorkshopManager_1.SteamWorkshopManager; } });
35
39
  // Export all types from organized structure
36
40
  __exportStar(require("./types"), exports);
37
41
  // Export main Steam class
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oDAAoC;AAEpC,4CAA4C;AAC5C,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAChC,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAC1B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAChC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,gFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAE5B,4CAA4C;AAC5C,0CAAwB;AAExB,0BAA0B;AAC1B,kBAAe,eAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oDAAoC;AAEpC,4CAA4C;AAC5C,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAChC,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAC1B,8EAA6E;AAApE,kIAAA,uBAAuB,OAAA;AAChC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,gFAA+E;AAAtE,oIAAA,wBAAwB,OAAA;AACjC,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,kEAAiE;AAAxD,sHAAA,iBAAiB,OAAA;AAC1B,wEAAuE;AAA9D,4HAAA,oBAAoB,OAAA;AAE7B,4CAA4C;AAC5C,0CAAwB;AAExB,0BAA0B;AAC1B,kBAAe,eAAa,CAAC"}
@@ -42,6 +42,8 @@ export declare class SteamAPICore {
42
42
  private friendsInterface;
43
43
  /** Pointer to the ISteamRemoteStorage interface */
44
44
  private remoteStorageInterface;
45
+ /** Pointer to the ISteamUGC interface */
46
+ private ugcInterface;
45
47
  /**
46
48
  * Creates a new SteamAPICore instance
47
49
  *
@@ -301,5 +303,26 @@ export declare class SteamAPICore {
301
303
  * - This is a native pointer for use with FFI calls
302
304
  */
303
305
  getRemoteStorageInterface(): any;
306
+ /**
307
+ * Get the ISteamUGC interface pointer
308
+ *
309
+ * Provides access to the Workshop/UGC (User Generated Content) interface for managing
310
+ * Steam Workshop items.
311
+ *
312
+ * @returns Pointer to ISteamUGC interface, or null if not initialized
313
+ *
314
+ * @example
315
+ * ```typescript
316
+ * const ugc = apiCore.getUGCInterface();
317
+ * if (ugc) {
318
+ * // Use interface for Workshop operations
319
+ * }
320
+ * ```
321
+ *
322
+ * @remarks
323
+ * - Returns null if Steam API is not initialized
324
+ * - This is a native pointer for use with FFI calls
325
+ */
326
+ getUGCInterface(): any;
304
327
  }
305
328
  //# sourceMappingURL=SteamAPICore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamAPICore.d.ts","sourceRoot":"","sources":["../../src/internal/SteamAPICore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IACvB,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAqB;IAE1C,8DAA8D;IAC9D,OAAO,CAAC,WAAW,CAAkB;IAErC,4CAA4C;IAC5C,OAAO,CAAC,KAAK,CAAa;IAE1B,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAa;IAEvC,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAAa;IAElC,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAa;IAEnC,6CAA6C;IAC7C,OAAO,CAAC,gBAAgB,CAAa;IAErC,mDAAmD;IACnD,OAAO,CAAC,sBAAsB,CAAa;IAE3C;;;;OAIG;gBACS,aAAa,EAAE,kBAAkB;IAI7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;IAqFxC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,IAAI,IAAI;IAYhB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,IAAI,WAAW;IAmBxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,IAAI,IAAI;IAUpB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,IAAI,OAAO;IAYzB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,IAAI,GAAG;IAI5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,IAAI,GAAG;IAIvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBAAiB,IAAI,GAAG;IAIxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB,IAAI,GAAG;IAI1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,yBAAyB,IAAI,GAAG;CAGjC"}
1
+ {"version":3,"file":"SteamAPICore.d.ts","sourceRoot":"","sources":["../../src/internal/SteamAPICore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IACvB,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAqB;IAE1C,8DAA8D;IAC9D,OAAO,CAAC,WAAW,CAAkB;IAErC,4CAA4C;IAC5C,OAAO,CAAC,KAAK,CAAa;IAE1B,+CAA+C;IAC/C,OAAO,CAAC,kBAAkB,CAAa;IAEvC,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAAa;IAElC,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAa;IAEnC,6CAA6C;IAC7C,OAAO,CAAC,gBAAgB,CAAa;IAErC,mDAAmD;IACnD,OAAO,CAAC,sBAAsB,CAAa;IAE3C,yCAAyC;IACzC,OAAO,CAAC,YAAY,CAAa;IAEjC;;;;OAIG;gBACS,aAAa,EAAE,kBAAkB;IAI7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;IA2FxC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,IAAI,IAAI;IAYhB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,IAAI,WAAW;IAmBxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,IAAI,IAAI;IAUpB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,IAAI,OAAO;IAYzB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,IAAI,GAAG;IAI5B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,IAAI,GAAG;IAIvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBAAiB,IAAI,GAAG;IAIxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB,IAAI,GAAG;IAI1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,yBAAyB,IAAI,GAAG;IAIhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,IAAI,GAAG;CAGvB"}
@@ -82,6 +82,8 @@ class SteamAPICore {
82
82
  this.friendsInterface = null;
83
83
  /** Pointer to the ISteamRemoteStorage interface */
84
84
  this.remoteStorageInterface = null;
85
+ /** Pointer to the ISteamUGC interface */
86
+ this.ugcInterface = null;
85
87
  this.libraryLoader = libraryLoader;
86
88
  }
87
89
  /**
@@ -165,6 +167,11 @@ class SteamAPICore {
165
167
  if (!this.remoteStorageInterface || this.remoteStorageInterface === null) {
166
168
  console.warn('[Steamworks] WARNING: Failed to get SteamRemoteStorage interface');
167
169
  }
170
+ // Get UGC interface
171
+ this.ugcInterface = this.libraryLoader.SteamAPI_SteamUGC_v021();
172
+ if (!this.ugcInterface || this.ugcInterface === null) {
173
+ console.warn('[Steamworks] WARNING: Failed to get SteamUGC interface');
174
+ }
168
175
  // Request current stats from Steam servers
169
176
  console.log('[Steamworks] Requesting current stats from Steam...');
170
177
  const statsRequested = this.libraryLoader.SteamAPI_ISteamUserStats_RequestCurrentStats(this.userStatsInterface, 0);
@@ -460,6 +467,29 @@ class SteamAPICore {
460
467
  getRemoteStorageInterface() {
461
468
  return this.remoteStorageInterface;
462
469
  }
470
+ /**
471
+ * Get the ISteamUGC interface pointer
472
+ *
473
+ * Provides access to the Workshop/UGC (User Generated Content) interface for managing
474
+ * Steam Workshop items.
475
+ *
476
+ * @returns Pointer to ISteamUGC interface, or null if not initialized
477
+ *
478
+ * @example
479
+ * ```typescript
480
+ * const ugc = apiCore.getUGCInterface();
481
+ * if (ugc) {
482
+ * // Use interface for Workshop operations
483
+ * }
484
+ * ```
485
+ *
486
+ * @remarks
487
+ * - Returns null if Steam API is not initialized
488
+ * - This is a native pointer for use with FFI calls
489
+ */
490
+ getUGCInterface() {
491
+ return this.ugcInterface;
492
+ }
463
493
  }
464
494
  exports.SteamAPICore = SteamAPICore;
465
495
  //# sourceMappingURL=SteamAPICore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamAPICore.js","sourceRoot":"","sources":["../../src/internal/SteamAPICore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAI7B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,YAAY;IAyBvB;;;;OAIG;IACH,YAAY,aAAiC;QA1B7C,8DAA8D;QACtD,gBAAW,GAAY,KAAK,CAAC;QAErC,4CAA4C;QACpC,UAAK,GAAW,CAAC,CAAC;QAE1B,+CAA+C;QACvC,uBAAkB,GAAQ,IAAI,CAAC;QAEvC,0CAA0C;QAClC,kBAAa,GAAQ,IAAI,CAAC;QAElC,2CAA2C;QACnC,mBAAc,GAAQ,IAAI,CAAC;QAEnC,6CAA6C;QACrC,qBAAgB,GAAQ,IAAI,CAAC;QAErC,mDAAmD;QAC3C,2BAAsB,GAAQ,IAAI,CAAC;QAQzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CAAC,OAAyB;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAE3B,kCAAkC;YAClC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAE/C,uDAAuD;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAClE,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvD,OAAO,CAAC,GAAG,CAAC,mDAAmD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7E,mBAAmB;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAE1B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAEtD,uBAAuB;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YAEtD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;YACtG,CAAC;YAED,4BAA4B;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;YAClE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YACnF,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,4BAA4B,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YAED,qBAAqB;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;YAElE,sBAAsB;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC3E,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC7E,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,gCAAgC,EAAE,CAAC;YACpF,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YACnF,CAAC;YAED,2CAA2C;YAC3C,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAEnH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YAC3F,CAAC;YAED,oDAAoD;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAEzE,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAC/F,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;YACtF,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS;QACP,IAAI,OAAO,GAAG,GAAG,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzF,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;gBACpG,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;CACF;AArbD,oCAqbC"}
1
+ {"version":3,"file":"SteamAPICore.js","sourceRoot":"","sources":["../../src/internal/SteamAPICore.ts"],"names":[],"mappings":"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"}
@@ -64,5 +64,77 @@ export declare class SteamCallbackPoller {
64
64
  * - Logs failure reason using GetAPICallFailureReason()
65
65
  */
66
66
  poll<T>(callHandle: bigint, resultStruct: any, callbackId: number, maxRetries?: number, delayMs?: number): Promise<T | null>;
67
+ /**
68
+ * Decodes a callback result, using custom parsing for packed structs
69
+ *
70
+ * Steam SDK uses #pragma pack which causes tight struct packing without natural alignment.
71
+ * Koffi doesn't support custom pack alignment, so we manually parse bytes for affected callbacks.
72
+ *
73
+ * @param callbackId - The callback ID to identify the struct type
74
+ * @param result - Koffi-allocated result buffer
75
+ * @param resultStruct - Koffi struct type definition
76
+ * @returns Decoded result object
77
+ */
78
+ private decodeCallbackResult;
79
+ /**
80
+ * Manually parses CreateItemResult_t from raw bytes
81
+ *
82
+ * Layout: [int32:0-3][uint64:4-11][uint8:12] = 13 bytes, padded to 16
83
+ * Steam's packed struct has no padding between int32 and uint64
84
+ *
85
+ * @param result - Koffi-allocated result buffer
86
+ * @returns Parsed CreateItemResult_t object
87
+ */
88
+ private parseCreateItemResult;
89
+ /**
90
+ * Manually parses SubmitItemUpdateResult_t from raw bytes
91
+ *
92
+ * Layout: [int32:0-3][bool:4][padding:5-7][uint64:8-15] = 16 bytes
93
+ * Steam's packed struct has 3 bytes padding after bool to align uint64
94
+ *
95
+ * @param result - Koffi-allocated result buffer
96
+ * @returns Parsed SubmitItemUpdateResult_t object
97
+ */
98
+ private parseSubmitItemUpdateResult;
99
+ /**
100
+ * Manually parses RemoteStorageSubscribePublishedFileResult_t from raw bytes
101
+ *
102
+ * Layout: [int32:0-3][uint64:4-11] = 12 bytes (NO padding!)
103
+ * Steam's packed struct has no padding between int32 and uint64
104
+ *
105
+ * @param result - Koffi-allocated result buffer
106
+ * @returns Parsed RemoteStorageSubscribePublishedFileResult_t object
107
+ */
108
+ private parseSubscribeResult;
109
+ /**
110
+ * Manually parses RemoteStorageUnsubscribePublishedFileResult_t from raw bytes
111
+ *
112
+ * Layout: [int32:0-3][uint64:4-11] = 12 bytes (NO padding!)
113
+ * Steam's packed struct has no padding between int32 and uint64
114
+ *
115
+ * @param result - Koffi-allocated result buffer
116
+ * @returns Parsed RemoteStorageUnsubscribePublishedFileResult_t object
117
+ */
118
+ private parseUnsubscribeResult;
119
+ /**
120
+ * Manually parses SetUserItemVoteResult_t from raw bytes
121
+ *
122
+ * Layout: [uint64:0-7][int32:8-11][bool:12] = 13 bytes
123
+ * Steam's packed struct has no padding after bool
124
+ *
125
+ * @param result - Koffi-allocated result buffer
126
+ * @returns Parsed SetUserItemVoteResult_t object
127
+ */
128
+ private parseSetUserItemVoteResult;
129
+ /**
130
+ * Manually parses GetUserItemVoteResult_t from raw bytes
131
+ *
132
+ * Layout: [uint64:0-7][int32:8-11][bool×3:12-14] = 15 bytes
133
+ * Steam's packed struct has no padding after bools
134
+ *
135
+ * @param result - Koffi-allocated result buffer
136
+ * @returns Parsed GetUserItemVoteResult_t object
137
+ */
138
+ private parseGetUserItemVoteResult;
67
139
  }
68
140
  //# sourceMappingURL=SteamCallbackPoller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamCallbackPoller.d.ts","sourceRoot":"","sources":["../../src/internal/SteamCallbackPoller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAe;gBAElB,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IAKpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,IAAI,CAAC,CAAC,EACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,GAAG,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAW,EACvB,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;CAiDrB"}
1
+ {"version":3,"file":"SteamCallbackPoller.d.ts","sourceRoot":"","sources":["../../src/internal/SteamCallbackPoller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,OAAO,CAAe;gBAElB,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IAKpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACG,IAAI,CAAC,CAAC,EACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,GAAG,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAW,EACvB,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAoDpB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IAWnC;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;CAYnC"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SteamCallbackPoller = void 0;
37
37
  const koffi = __importStar(require("koffi"));
38
+ const callbackTypes_1 = require("./callbackTypes");
38
39
  /**
39
40
  * SteamCallbackPoller
40
41
  *
@@ -117,11 +118,13 @@ class SteamCallbackPoller {
117
118
  const failedResult = koffi.alloc('bool', 1);
118
119
  const success = this.libraryLoader.SteamAPI_ISteamUtils_GetAPICallResult(utilsInterface, callHandle, result, koffi.sizeof(resultStruct), callbackId, failedResult);
119
120
  if (success && !koffi.decode(failedResult, 'bool')) {
120
- return koffi.decode(result, resultStruct);
121
+ // Use custom parsing for packed structs, otherwise use standard Koffi decoding
122
+ const decoded = this.decodeCallbackResult(callbackId, result, resultStruct);
123
+ return decoded;
121
124
  }
122
125
  else {
123
126
  const failureReason = this.libraryLoader.SteamAPI_ISteamUtils_GetAPICallFailureReason(utilsInterface, callHandle);
124
- console.error(`[Steamworks] API call failed. Reason: ${failureReason}`);
127
+ console.error(`[Steamworks] API call failed. Callback ID: ${callbackId}, Struct size: ${koffi.sizeof(resultStruct)}, Reason: ${failureReason}`);
125
128
  return null;
126
129
  }
127
130
  }
@@ -129,6 +132,145 @@ class SteamCallbackPoller {
129
132
  console.warn(`[Steamworks] API call timed out after ${maxRetries * delayMs}ms`);
130
133
  return null;
131
134
  }
135
+ /**
136
+ * Decodes a callback result, using custom parsing for packed structs
137
+ *
138
+ * Steam SDK uses #pragma pack which causes tight struct packing without natural alignment.
139
+ * Koffi doesn't support custom pack alignment, so we manually parse bytes for affected callbacks.
140
+ *
141
+ * @param callbackId - The callback ID to identify the struct type
142
+ * @param result - Koffi-allocated result buffer
143
+ * @param resultStruct - Koffi struct type definition
144
+ * @returns Decoded result object
145
+ */
146
+ decodeCallbackResult(callbackId, result, resultStruct) {
147
+ // Special handling for packed structs - manual byte parsing
148
+ switch (callbackId) {
149
+ case callbackTypes_1.K_I_CREATE_ITEM_RESULT:
150
+ return this.parseCreateItemResult(result);
151
+ case callbackTypes_1.K_I_SUBMIT_ITEM_UPDATE_RESULT:
152
+ return this.parseSubmitItemUpdateResult(result);
153
+ case callbackTypes_1.K_I_REMOTE_STORAGE_SUBSCRIBE_PUBLISHED_FILE_RESULT:
154
+ return this.parseSubscribeResult(result);
155
+ case callbackTypes_1.K_I_REMOTE_STORAGE_UNSUBSCRIBE_PUBLISHED_FILE_RESULT:
156
+ return this.parseUnsubscribeResult(result);
157
+ case callbackTypes_1.K_I_SET_USER_ITEM_VOTE_RESULT:
158
+ return this.parseSetUserItemVoteResult(result);
159
+ case callbackTypes_1.K_I_GET_USER_ITEM_VOTE_RESULT:
160
+ return this.parseGetUserItemVoteResult(result);
161
+ default:
162
+ // Standard Koffi decoding for non-packed structs
163
+ return koffi.decode(result, resultStruct);
164
+ }
165
+ }
166
+ /**
167
+ * Manually parses CreateItemResult_t from raw bytes
168
+ *
169
+ * Layout: [int32:0-3][uint64:4-11][uint8:12] = 13 bytes, padded to 16
170
+ * Steam's packed struct has no padding between int32 and uint64
171
+ *
172
+ * @param result - Koffi-allocated result buffer
173
+ * @returns Parsed CreateItemResult_t object
174
+ */
175
+ parseCreateItemResult(result) {
176
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 16));
177
+ const buffer = Buffer.from(rawBytes);
178
+ return {
179
+ m_eResult: buffer.readInt32LE(0),
180
+ m_nPublishedFileId: buffer.readBigUInt64LE(4),
181
+ m_bUserNeedsToAcceptWorkshopLegalAgreement: buffer.readUInt8(12) !== 0
182
+ };
183
+ }
184
+ /**
185
+ * Manually parses SubmitItemUpdateResult_t from raw bytes
186
+ *
187
+ * Layout: [int32:0-3][bool:4][padding:5-7][uint64:8-15] = 16 bytes
188
+ * Steam's packed struct has 3 bytes padding after bool to align uint64
189
+ *
190
+ * @param result - Koffi-allocated result buffer
191
+ * @returns Parsed SubmitItemUpdateResult_t object
192
+ */
193
+ parseSubmitItemUpdateResult(result) {
194
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 16));
195
+ const buffer = Buffer.from(rawBytes);
196
+ return {
197
+ m_eResult: buffer.readInt32LE(0),
198
+ m_bUserNeedsToAcceptWorkshopLegalAgreement: buffer.readUInt8(4) !== 0,
199
+ m_nPublishedFileId: buffer.readBigUInt64LE(8)
200
+ };
201
+ }
202
+ /**
203
+ * Manually parses RemoteStorageSubscribePublishedFileResult_t from raw bytes
204
+ *
205
+ * Layout: [int32:0-3][uint64:4-11] = 12 bytes (NO padding!)
206
+ * Steam's packed struct has no padding between int32 and uint64
207
+ *
208
+ * @param result - Koffi-allocated result buffer
209
+ * @returns Parsed RemoteStorageSubscribePublishedFileResult_t object
210
+ */
211
+ parseSubscribeResult(result) {
212
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 12));
213
+ const buffer = Buffer.from(rawBytes);
214
+ return {
215
+ m_eResult: buffer.readInt32LE(0),
216
+ m_nPublishedFileId: buffer.readBigUInt64LE(4)
217
+ };
218
+ }
219
+ /**
220
+ * Manually parses RemoteStorageUnsubscribePublishedFileResult_t from raw bytes
221
+ *
222
+ * Layout: [int32:0-3][uint64:4-11] = 12 bytes (NO padding!)
223
+ * Steam's packed struct has no padding between int32 and uint64
224
+ *
225
+ * @param result - Koffi-allocated result buffer
226
+ * @returns Parsed RemoteStorageUnsubscribePublishedFileResult_t object
227
+ */
228
+ parseUnsubscribeResult(result) {
229
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 12));
230
+ const buffer = Buffer.from(rawBytes);
231
+ return {
232
+ m_eResult: buffer.readInt32LE(0),
233
+ m_nPublishedFileId: buffer.readBigUInt64LE(4)
234
+ };
235
+ }
236
+ /**
237
+ * Manually parses SetUserItemVoteResult_t from raw bytes
238
+ *
239
+ * Layout: [uint64:0-7][int32:8-11][bool:12] = 13 bytes
240
+ * Steam's packed struct has no padding after bool
241
+ *
242
+ * @param result - Koffi-allocated result buffer
243
+ * @returns Parsed SetUserItemVoteResult_t object
244
+ */
245
+ parseSetUserItemVoteResult(result) {
246
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 13));
247
+ const buffer = Buffer.from(rawBytes);
248
+ return {
249
+ m_nPublishedFileId: buffer.readBigUInt64LE(0),
250
+ m_eResult: buffer.readInt32LE(8),
251
+ m_bVoteUp: buffer.readUInt8(12) !== 0
252
+ };
253
+ }
254
+ /**
255
+ * Manually parses GetUserItemVoteResult_t from raw bytes
256
+ *
257
+ * Layout: [uint64:0-7][int32:8-11][bool×3:12-14] = 15 bytes
258
+ * Steam's packed struct has no padding after bools
259
+ *
260
+ * @param result - Koffi-allocated result buffer
261
+ * @returns Parsed GetUserItemVoteResult_t object
262
+ */
263
+ parseGetUserItemVoteResult(result) {
264
+ const rawBytes = koffi.decode(result, koffi.array('uint8', 15));
265
+ const buffer = Buffer.from(rawBytes);
266
+ return {
267
+ m_nPublishedFileId: buffer.readBigUInt64LE(0),
268
+ m_eResult: buffer.readInt32LE(8),
269
+ m_bVotedUp: buffer.readUInt8(12) !== 0,
270
+ m_bVotedDown: buffer.readUInt8(13) !== 0,
271
+ m_bVoteSkipped: buffer.readUInt8(14) !== 0
272
+ };
273
+ }
132
274
  }
133
275
  exports.SteamCallbackPoller = SteamCallbackPoller;
134
276
  //# sourceMappingURL=SteamCallbackPoller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SteamCallbackPoller.js","sourceRoot":"","sources":["../../src/internal/SteamCallbackPoller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,mBAAmB;IAI9B,YAAY,aAAiC,EAAE,OAAqB;QAClE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,YAAiB,EACjB,UAAkB,EAClB,aAAqB,EAAE,EACvB,UAAkB,GAAG;QAErB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAE5B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,uCAAuC,CAC5E,cAAc,EACd,UAAU,EACV,MAAM,CACP,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,iBAAiB;gBACjB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,qCAAqC,CACtE,cAAc,EACd,UAAU,EACV,MAAM,EACN,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAC1B,UAAU,EACV,YAAY,CACb,CAAC;gBAEF,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;oBACnD,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAM,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CACnF,cAAc,EACd,UAAU,CACX,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,yCAAyC,aAAa,EAAE,CAAC,CAAC;oBACxE,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,yCAAyC,UAAU,GAAG,OAAO,IAAI,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAhGD,kDAgGC"}
1
+ {"version":3,"file":"SteamCallbackPoller.js","sourceRoot":"","sources":["../../src/internal/SteamCallbackPoller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SteamCloudManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamCloudManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,UAAU,EAEV,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,iBAAiB;IAC5B,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAqB;IAE1C,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAe;IAE9B;;;;;OAKG;gBACS,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IAKpE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IA2BlD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAiD/C;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBrC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAkBrC;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAkB1C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,MAAM;IAkBtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA0CxE;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,IAAI,aAAa,EAAE;IAuB9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBxC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,IAAI,UAAU;IA2CtB;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,OAAO;IAkBnC;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI,OAAO;IAkB/B;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAgB9C"}
1
+ {"version":3,"file":"SteamCloudManager.d.ts","sourceRoot":"","sources":["../../src/internal/SteamCloudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,UAAU,EAEV,mBAAmB,EAGpB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,iBAAiB;IAC5B,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAqB;IAE1C,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAe;IAE9B;;;;;OAKG;gBACS,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY;IAKpE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IA2BlD;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAiD/C;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBrC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAkBrC;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAkB1C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,MAAM;IAkBtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA0CxE;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,IAAI,aAAa,EAAE;IAuB9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAkBxC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,IAAI,UAAU;IA2CtB;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,OAAO;IAkBnC;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI,OAAO;IAkB/B;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAgB9C"}