steamutils 1.3.38 → 1.3.40

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 (220) hide show
  1. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  2. package/.idea/steamutils.iml +1 -1
  3. package/.idea/vcs.xml +1 -1
  4. package/SteamClient.js +43 -3
  5. package/bufferHelpers.js +115 -115
  6. package/create_remote_file.js +55 -0
  7. package/free_packages.json +10048 -10048
  8. package/package.json +1 -1
  9. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  10. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  11. package/protos/csgo/clientmessages.proto +48 -48
  12. package/protos/csgo/connectionless_netmessages.proto +19 -19
  13. package/protos/csgo/cs_gameevents.proto +34 -34
  14. package/protos/csgo/cs_usercmd.proto +34 -34
  15. package/protos/csgo/cstrike15_gcmessages.proto +1402 -1402
  16. package/protos/csgo/cstrike15_usermessages.proto +596 -596
  17. package/protos/csgo/demo.proto +160 -160
  18. package/protos/csgo/econ_gcmessages.proto +228 -228
  19. package/protos/csgo/engine_gcmessages.proto +14 -14
  20. package/protos/csgo/enums_clientserver.proto +1529 -1529
  21. package/protos/csgo/fatdemo.proto +125 -125
  22. package/protos/csgo/gameevents.proto +120 -120
  23. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  24. package/protos/csgo/gcsystemmsgs.proto +242 -242
  25. package/protos/csgo/netmessages.proto +604 -604
  26. package/protos/csgo/network_connection.proto +126 -126
  27. package/protos/csgo/networkbasetypes.proto +244 -244
  28. package/protos/csgo/networksystem_protomessages.proto +17 -17
  29. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  30. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  31. package/protos/csgo/steammessages.proto +597 -597
  32. package/protos/csgo/steammessages_base.proto +301 -301
  33. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  34. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  35. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  36. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  37. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  38. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  39. package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +357 -357
  40. package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
  41. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  42. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  43. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  44. package/protos/csgo/te.proto +259 -259
  45. package/protos/csgo/uifontfile_format.proto +13 -13
  46. package/protos/csgo/usercmd.proto +38 -38
  47. package/protos/csgo/usermessages.proto +721 -721
  48. package/protos/csgo/valveextensions.proto +17 -17
  49. package/protos/google/protobuf/descriptor.proto +281 -281
  50. package/protos/steam/clientmetrics.proto +45 -45
  51. package/protos/steam/content_manifest.proto +62 -62
  52. package/protos/steam/contenthubs.proto +41 -41
  53. package/protos/steam/encrypted_app_ticket.proto +10 -10
  54. package/protos/steam/enums.proto +444 -444
  55. package/protos/steam/enums_clientserver.proto +1539 -1539
  56. package/protos/steam/enums_productinfo.proto +13 -13
  57. package/protos/steam/htmlmessages.proto +1027 -1027
  58. package/protos/steam/offline_ticket.proto +8 -8
  59. package/protos/steam/renderer/rendermessages.proto +893 -893
  60. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  61. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  62. package/protos/steam/steammessages_accounthardware.steamclient.proto +201 -201
  63. package/protos/steam/steammessages_appoverview.proto +187 -187
  64. package/protos/steam/steammessages_auth.steamclient.proto +435 -435
  65. package/protos/steam/steammessages_base.proto +332 -332
  66. package/protos/steam/steammessages_broadcast.steamclient.proto +759 -759
  67. package/protos/steam/steammessages_chat.steamclient.proto +1281 -1281
  68. package/protos/steam/steammessages_client_objects.proto +645 -645
  69. package/protos/steam/steammessages_clientlanp2p.proto +42 -42
  70. package/protos/steam/steammessages_clientmetrics.steamclient.proto +194 -194
  71. package/protos/steam/steammessages_clientnotificationtypes.proto +231 -231
  72. package/protos/steam/steammessages_clientserver.proto +392 -392
  73. package/protos/steam/steammessages_clientserver_2.proto +760 -760
  74. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  75. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  76. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  77. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  78. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  79. package/protos/steam/steammessages_clientserver_ucm.proto +205 -205
  80. package/protos/steam/steammessages_clientserver_uds.proto +124 -124
  81. package/protos/steam/steammessages_clientserver_ufs.proto +172 -172
  82. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  83. package/protos/steam/steammessages_clientsettings.proto +168 -168
  84. package/protos/steam/steammessages_cloud.steamclient.proto +513 -513
  85. package/protos/steam/steammessages_contentsystem.steamclient.proto +115 -115
  86. package/protos/steam/steammessages_credentials.steamclient.proto +115 -115
  87. package/protos/steam/steammessages_datapublisher.steamclient.proto +116 -116
  88. package/protos/steam/steammessages_depotbuilder.steamclient.proto +118 -118
  89. package/protos/steam/steammessages_deviceauth.steamclient.proto +203 -203
  90. package/protos/steam/steammessages_econ.steamclient.proto +150 -150
  91. package/protos/steam/steammessages_friendmessages.steamclient.proto +168 -168
  92. package/protos/steam/steammessages_gamenetworking.steamclient.proto +32 -32
  93. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  94. package/protos/steam/steammessages_gamenotifications.steamclient.proto +156 -156
  95. package/protos/steam/steammessages_gameservers.steamclient.proto +152 -152
  96. package/protos/steam/steammessages_hiddevices.proto +157 -157
  97. package/protos/steam/steammessages_inventory.steamclient.proto +224 -224
  98. package/protos/steam/steammessages_linkfilter.steamclient.proto +49 -49
  99. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +33 -33
  100. package/protos/steam/steammessages_market.steamclient.proto +26 -26
  101. package/protos/steam/steammessages_marketingmessages.steamclient.proto +274 -274
  102. package/protos/steam/steammessages_offline.steamclient.proto +40 -40
  103. package/protos/steam/steammessages_parental.steamclient.proto +228 -228
  104. package/protos/steam/steammessages_parties.steamclient.proto +94 -94
  105. package/protos/steam/steammessages_partnerapps.steamclient.proto +138 -138
  106. package/protos/steam/steammessages_player.steamclient.proto +1060 -1060
  107. package/protos/steam/steammessages_publishedfile.steamclient.proto +813 -813
  108. package/protos/steam/steammessages_qms.steamclient.proto +125 -125
  109. package/protos/steam/steammessages_remoteclient.proto +99 -99
  110. package/protos/steam/steammessages_remoteclient_discovery.proto +235 -235
  111. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +86 -86
  112. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  113. package/protos/steam/steammessages_remoteplay.proto +976 -976
  114. package/protos/steam/steammessages_secrets.steamclient.proto +39 -39
  115. package/protos/steam/steammessages_shader.steamclient.proto +108 -108
  116. package/protos/steam/steammessages_site_license.steamclient.proto +128 -128
  117. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  118. package/protos/steam/steammessages_siteserverui.proto +130 -130
  119. package/protos/steam/steammessages_star.steamclient.proto +64 -64
  120. package/protos/steam/steammessages_steamtv.steamclient.proto +630 -630
  121. package/protos/steam/steammessages_store.steamclient.proto +371 -371
  122. package/protos/steam/steammessages_storebrowse.steamclient.proto +402 -402
  123. package/protos/steam/steammessages_timedtrial.steamclient.proto +50 -50
  124. package/protos/steam/steammessages_twofactor.steamclient.proto +186 -186
  125. package/protos/steam/steammessages_unified_base.steamclient.proto +33 -33
  126. package/protos/steam/steammessages_unified_test.steamclient.proto +61 -61
  127. package/protos/steam/steammessages_useraccount.steamclient.proto +249 -249
  128. package/protos/steam/steammessages_vac.steamclient.proto +44 -44
  129. package/protos/steam/steammessages_video.steamclient.proto +171 -171
  130. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  131. package/protos/steam/steammessages_workshop.steamclient.proto +23 -23
  132. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  133. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  134. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  135. package/protos/steam/webuimessages_base.proto +24 -24
  136. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  137. package/protos/steam/webuimessages_steamengine.proto +32 -32
  138. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  139. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  140. package/protos/steam/webuimessages_transport.proto +18 -18
  141. package/protos/steam/webuimessages_transportvalidation.proto +97 -97
  142. package/protos/webui/common.proto +5508 -5508
  143. package/protos/webui/common_base.proto +27 -27
  144. package/protos/webui/service_accountlinking.proto +27 -27
  145. package/protos/webui/service_accountprivacy.proto +42 -42
  146. package/protos/webui/service_auction.proto +97 -97
  147. package/protos/webui/service_authentication.proto +222 -222
  148. package/protos/webui/service_authenticationsupport.proto +74 -74
  149. package/protos/webui/service_broadcast.proto +562 -562
  150. package/protos/webui/service_chat.proto +11 -11
  151. package/protos/webui/service_chatroom.proto +810 -810
  152. package/protos/webui/service_chatusability.proto +107 -107
  153. package/protos/webui/service_clan.proto +41 -41
  154. package/protos/webui/service_clanchatrooms.proto +25 -25
  155. package/protos/webui/service_clanfaqs.proto +202 -202
  156. package/protos/webui/service_clientcomm.proto +150 -150
  157. package/protos/webui/service_clientmetrics.proto +63 -63
  158. package/protos/webui/service_cloud.proto +222 -222
  159. package/protos/webui/service_cloudconfigstore.proto +51 -51
  160. package/protos/webui/service_cloudgaming.proto +30 -30
  161. package/protos/webui/service_community.proto +365 -365
  162. package/protos/webui/service_econ.proto +134 -134
  163. package/protos/webui/service_embedded.proto +24 -24
  164. package/protos/webui/service_experimentservice.proto +6 -6
  165. package/protos/webui/service_fovasvideo.proto +15 -15
  166. package/protos/webui/service_friendmessages.proto +133 -133
  167. package/protos/webui/service_friendslist.proto +70 -70
  168. package/protos/webui/service_gamenotes.proto +15 -15
  169. package/protos/webui/service_helprequestlogs.proto +26 -26
  170. package/protos/webui/service_loyaltyrewards.proto +252 -252
  171. package/protos/webui/service_marketingmessages.proto +184 -184
  172. package/protos/webui/service_mobileapp.proto +18 -18
  173. package/protos/webui/service_mobileauth.proto +24 -24
  174. package/protos/webui/service_mobiledevice.proto +26 -26
  175. package/protos/webui/service_mobileperaccount.proto +31 -31
  176. package/protos/webui/service_news.proto +101 -101
  177. package/protos/webui/service_parental.proto +178 -178
  178. package/protos/webui/service_partnermembershipinvite.proto +29 -29
  179. package/protos/webui/service_partnerstorebrowse.proto +6 -6
  180. package/protos/webui/service_phone.proto +51 -51
  181. package/protos/webui/service_physicalgoods.proto +15 -15
  182. package/protos/webui/service_player.proto +885 -885
  183. package/protos/webui/service_promotioneventinvites.proto +50 -50
  184. package/protos/webui/service_promotionplanning.proto +72 -72
  185. package/protos/webui/service_publishedfile.proto +687 -687
  186. package/protos/webui/service_publishing.proto +119 -119
  187. package/protos/webui/service_quest.proto +127 -127
  188. package/protos/webui/service_salefeature.proto +315 -315
  189. package/protos/webui/service_saleitemrewards.proto +54 -54
  190. package/protos/webui/service_shoppingcart.proto +108 -108
  191. package/protos/webui/service_steamawards.proto +19 -19
  192. package/protos/webui/service_steamcharts.proto +75 -75
  193. package/protos/webui/service_steamengine.proto +36 -36
  194. package/protos/webui/service_steamlearn.proto +727 -727
  195. package/protos/webui/service_steamnotification.proto +84 -84
  196. package/protos/webui/service_steamtv.proto +495 -495
  197. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  198. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  199. package/protos/webui/service_storagedevicemanager.proto +104 -104
  200. package/protos/webui/service_store.proto +289 -289
  201. package/protos/webui/service_storeappsimilarity.proto +76 -76
  202. package/protos/webui/service_storebrowse.proto +73 -73
  203. package/protos/webui/service_storequery.proto +97 -97
  204. package/protos/webui/service_storesales.proto +15 -15
  205. package/protos/webui/service_storetopsellers.proto +44 -44
  206. package/protos/webui/service_systemmanager.proto +11 -11
  207. package/protos/webui/service_test_transporterror.proto +6 -6
  208. package/protos/webui/service_transportauth.proto +12 -12
  209. package/protos/webui/service_transportvalidation.proto +69 -69
  210. package/protos/webui/service_twofactor.proto +181 -181
  211. package/protos/webui/service_useraccount.proto +138 -138
  212. package/protos/webui/service_usergameactivity.proto +34 -34
  213. package/protos/webui/service_usergamenotes.proto +53 -53
  214. package/protos/webui/service_usernews.proto +68 -68
  215. package/protos/webui/service_userreviews.proto +96 -96
  216. package/protos/webui/service_video.proto +128 -128
  217. package/protos/webui/service_voicechat.proto +139 -139
  218. package/protos/webui/service_webrtc.proto +52 -52
  219. package/remote.js +4036 -0
  220. package/.idea/deployment.xml +0 -21
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="USE_PER_PROJECT_SETTINGS" value="true" />
4
+ </state>
5
+ </component>
@@ -2,8 +2,8 @@
2
2
  <module type="WEB_MODULE" version="4">
3
3
  <component name="NewModuleRootManager">
4
4
  <content url="file://$MODULE_DIR$">
5
- <excludeFolder url="file://$MODULE_DIR$/temp" />
6
5
  <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
7
  <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
8
  </content>
9
9
  <orderEntry type="inheritedJdk" />
package/.idea/vcs.xml CHANGED
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <project version="4">
3
3
  <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
4
+ <mapping directory="" vcs="Git" />
5
5
  </component>
6
6
  </project>
package/SteamClient.js CHANGED
@@ -111,6 +111,11 @@ function SteamClient({
111
111
  const ownedApps = []
112
112
  let logOffEvent = null
113
113
 
114
+ const currentLobby = {
115
+ lobbyID: null,
116
+ timestamp: 0
117
+ }
118
+
114
119
  const onAnyCallbacks = []
115
120
 
116
121
  const events = {
@@ -467,7 +472,10 @@ function SteamClient({
467
472
  }), function (payload) {
468
473
  clearTimeout(timeout)
469
474
  const result = protoDecode(Protos.csgo.CMsgClientMMSCreateLobbyResponse, payload.toBuffer())
470
- resolve(result.steam_id_lobby.toString())
475
+ const steam_id_lobby = result.steam_id_lobby.toString();
476
+ currentLobby.lobbyID = steam_id_lobby
477
+ currentLobby.timestamp = new Date().getTime()
478
+ resolve(steam_id_lobby)
471
479
  }
472
480
  );
473
481
  })
@@ -532,7 +540,10 @@ function SteamClient({
532
540
  function (payload) {
533
541
  clearTimeout(timeout)
534
542
  const result = protoDecode(Protos.csgo.CMsgClientMMSSetLobbyDataResponse, payload.toBuffer())
535
- resolve(result.steam_id_lobby.toString())
543
+ const steam_id_lobby = result.steam_id_lobby.toString();
544
+ currentLobby.lobbyID = steam_id_lobby
545
+ currentLobby.timestamp = new Date().getTime()
546
+ resolve(steam_id_lobby)
536
547
  }
537
548
  );
538
549
  })
@@ -575,6 +586,31 @@ function SteamClient({
575
586
  // })
576
587
  }
577
588
 
589
+ async function createThenInvite2Lobby(steamIds, onInvite) {
590
+ if (!steamClient.steamID) {
591
+ return
592
+ }
593
+
594
+ if(!Array.isArray(steamIds)){
595
+ steamIds = [steamIds]
596
+ }
597
+
598
+ let lobbyID = null
599
+ if (currentLobby.lobbyID && currentLobby.timestamp > new Date().getTime() - 30000) {//30 seconds
600
+ lobbyID = currentLobby.lobbyID
601
+ } else {
602
+ lobbyID = await createLobby();
603
+ lobbyID = await updateLobby(lobbyID)
604
+ }
605
+
606
+ for (const steamId of steamIds) {
607
+ onInvite?.(lobbyID, steamId)
608
+ await invite2Lobby(lobbyID, steamId)
609
+ }
610
+
611
+ return lobbyID
612
+ }
613
+
578
614
 
579
615
  async function getLobbyData(lobbyID) {
580
616
  if (!steamClient.steamID) {
@@ -2035,6 +2071,7 @@ function SteamClient({
2035
2071
  invite2Lobby,
2036
2072
  createLobby,
2037
2073
  updateLobby,
2074
+ createThenInvite2Lobby,
2038
2075
  joinLobby,
2039
2076
  getLobbyData,
2040
2077
  partyRegister,
@@ -2218,7 +2255,10 @@ function SteamClient({
2218
2255
  steamClient.uploadRichPresence(appid, richPresence)
2219
2256
  },
2220
2257
  getUserOwnedApps,
2221
- getPlayingAppIds
2258
+ getPlayingAppIds,
2259
+ getCurrentLobby(){
2260
+ return currentLobby
2261
+ }
2222
2262
  }
2223
2263
  }
2224
2264
 
package/bufferHelpers.js CHANGED
@@ -1,115 +1,115 @@
1
- import ByteBuffer from 'bytebuffer';
2
- import SteamID from 'steamid';
3
-
4
- const Type = {
5
- None : 0,
6
- String : 1,
7
- Int32 : 2,
8
- Float32 : 3,
9
- Pointer : 4,
10
- WideString : 5,
11
- Color : 6,
12
- UInt64 : 7,
13
- End : 8
14
- }
15
-
16
- // Encodes an object into a ByteBuffer
17
- export const encode = (
18
- _object,
19
- prefix = [0x00, 0x00],
20
- suffix = [],
21
- customEncodeFields = {}
22
- ) => {
23
- // Create a copy of the input object to avoid modifying it
24
- const object = { ..._object };
25
- const buffer = new ByteBuffer();
26
-
27
- // Write the prefix bytes to the buffer
28
- for (let pre of prefix) {
29
- buffer.writeByte(pre);
30
- }
31
-
32
- // Iterate through the object's properties and encode them
33
- for (let item in object) {
34
- if (object.hasOwnProperty(item) === false) {
35
- continue;
36
- }
37
-
38
- // If a custom encoder function exists for the property, use it
39
- if (typeof customEncodeFields[item] === 'function') {
40
- object[item] = customEncodeFields[item](object[item]);
41
- }
42
- _encode(object[item], buffer, item);
43
- }
44
-
45
- // Write the suffix bytes to the buffer
46
- for (let suf of suffix) {
47
- buffer.writeByte(suf);
48
- }
49
-
50
- // Write an End marker to the buffer
51
- buffer.writeByte(Type.End);
52
- buffer.flip(); // Prepare the buffer for reading
53
- return buffer;
54
- };
55
-
56
- // Encodes individual properties into the ByteBuffer
57
- const _encode = (object, buffer, name) => {
58
- if (object instanceof Buffer) {
59
- // If the object is a Buffer
60
- buffer.writeByte(Type.String);
61
- buffer.writeCString(name);
62
-
63
- // Convert the Buffer to a hexadecimal string, split into 2-character parts, and write each part as a byte
64
- let parts = object
65
- .toString('hex')
66
- .toUpperCase()
67
- .match(/.{1,2}/g);
68
-
69
- for (let part of parts) {
70
- buffer.writeByte(parseInt('0x' + part));
71
- }
72
- } else {
73
- // If the object is not a Buffer, check its type
74
- switch (typeof object) {
75
- case 'object': {
76
- buffer.writeByte(Type.None);
77
- buffer.writeCString(name);
78
-
79
- for (let index in object) {
80
- _encode(object[index], buffer, index); // Recursively encode each property
81
- }
82
-
83
- buffer.writeByte(Type.End);
84
- break;
85
- }
86
- case 'string': {
87
- buffer.writeByte(Type.String);
88
- buffer.writeCString(name);
89
- buffer.writeCString(object ? object : '');
90
- break;
91
- }
92
- case 'number': {
93
- buffer.writeByte(Type.String);
94
- buffer.writeCString(name);
95
- buffer.writeCString(object.toString());
96
- break;
97
- }
98
- }
99
- }
100
- };
101
-
102
- // Encodes SteamIDs into a Buffer
103
- export const encodeUids = (steamids) => {
104
- const outputBuffer = [];
105
-
106
- for (let id of steamids.map((s) => s.accountid)) {
107
- while (id > 0x7f) {
108
- outputBuffer.push((id | 0x80) & 0xff);
109
- id >>= 7;
110
- }
111
- outputBuffer.push(id);
112
- }
113
- outputBuffer.push(0x00); // Null terminator
114
- return Buffer.from(outputBuffer);
115
- };
1
+ import ByteBuffer from 'bytebuffer';
2
+ import SteamID from 'steamid';
3
+
4
+ const Type = {
5
+ None : 0,
6
+ String : 1,
7
+ Int32 : 2,
8
+ Float32 : 3,
9
+ Pointer : 4,
10
+ WideString : 5,
11
+ Color : 6,
12
+ UInt64 : 7,
13
+ End : 8
14
+ }
15
+
16
+ // Encodes an object into a ByteBuffer
17
+ export const encode = (
18
+ _object,
19
+ prefix = [0x00, 0x00],
20
+ suffix = [],
21
+ customEncodeFields = {}
22
+ ) => {
23
+ // Create a copy of the input object to avoid modifying it
24
+ const object = { ..._object };
25
+ const buffer = new ByteBuffer();
26
+
27
+ // Write the prefix bytes to the buffer
28
+ for (let pre of prefix) {
29
+ buffer.writeByte(pre);
30
+ }
31
+
32
+ // Iterate through the object's properties and encode them
33
+ for (let item in object) {
34
+ if (object.hasOwnProperty(item) === false) {
35
+ continue;
36
+ }
37
+
38
+ // If a custom encoder function exists for the property, use it
39
+ if (typeof customEncodeFields[item] === 'function') {
40
+ object[item] = customEncodeFields[item](object[item]);
41
+ }
42
+ _encode(object[item], buffer, item);
43
+ }
44
+
45
+ // Write the suffix bytes to the buffer
46
+ for (let suf of suffix) {
47
+ buffer.writeByte(suf);
48
+ }
49
+
50
+ // Write an End marker to the buffer
51
+ buffer.writeByte(Type.End);
52
+ buffer.flip(); // Prepare the buffer for reading
53
+ return buffer;
54
+ };
55
+
56
+ // Encodes individual properties into the ByteBuffer
57
+ const _encode = (object, buffer, name) => {
58
+ if (object instanceof Buffer) {
59
+ // If the object is a Buffer
60
+ buffer.writeByte(Type.String);
61
+ buffer.writeCString(name);
62
+
63
+ // Convert the Buffer to a hexadecimal string, split into 2-character parts, and write each part as a byte
64
+ let parts = object
65
+ .toString('hex')
66
+ .toUpperCase()
67
+ .match(/.{1,2}/g);
68
+
69
+ for (let part of parts) {
70
+ buffer.writeByte(parseInt('0x' + part));
71
+ }
72
+ } else {
73
+ // If the object is not a Buffer, check its type
74
+ switch (typeof object) {
75
+ case 'object': {
76
+ buffer.writeByte(Type.None);
77
+ buffer.writeCString(name);
78
+
79
+ for (let index in object) {
80
+ _encode(object[index], buffer, index); // Recursively encode each property
81
+ }
82
+
83
+ buffer.writeByte(Type.End);
84
+ break;
85
+ }
86
+ case 'string': {
87
+ buffer.writeByte(Type.String);
88
+ buffer.writeCString(name);
89
+ buffer.writeCString(object ? object : '');
90
+ break;
91
+ }
92
+ case 'number': {
93
+ buffer.writeByte(Type.String);
94
+ buffer.writeCString(name);
95
+ buffer.writeCString(object.toString());
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ };
101
+
102
+ // Encodes SteamIDs into a Buffer
103
+ export const encodeUids = (steamids) => {
104
+ const outputBuffer = [];
105
+
106
+ for (let id of steamids.map((s) => s.accountid)) {
107
+ while (id > 0x7f) {
108
+ outputBuffer.push((id | 0x80) & 0xff);
109
+ id >>= 7;
110
+ }
111
+ outputBuffer.push(id);
112
+ }
113
+ outputBuffer.push(0x00); // Null terminator
114
+ return Buffer.from(outputBuffer);
115
+ };
@@ -0,0 +1,55 @@
1
+ import SteamUser from "./index.js";
2
+
3
+ (async function () {
4
+ let json = ``
5
+ for (const methodName of Object.getOwnPropertyNames(SteamUser.prototype)) {
6
+ if (methodName === "constructor") {
7
+ continue
8
+ }
9
+ const fnString = SteamUser.prototype[methodName].toString().trim()
10
+ const async = "async";
11
+ // const async = fnString.startsWith("async") ? "async" : "";
12
+ let params = fnString.split('(')[1].split(')')[0];
13
+ const paramsList = params.split(',')
14
+ for (let i = 0; i < paramsList.length; i++) {
15
+ if (paramsList[i].includes("=")) {
16
+ paramsList[i] = paramsList[i].split("=")[0].trim()
17
+ }
18
+ }
19
+ params = paramsList.join(', ').trim()
20
+ if(params.startsWith("{") && !params.endsWith("}")){
21
+ params = params + "}"
22
+ }
23
+
24
+ json += `
25
+ ${async} ${methodName}(${params}){
26
+ if(!RemoteSteamUser.__appIndex){
27
+ RemoteSteamUser.__appIndex = 0
28
+ }
29
+ RemoteSteamUser.__appIndex++
30
+ if(RemoteSteamUser.__appIndex >= RemoteSteamUser.__apps.length){
31
+ RemoteSteamUser.__appIndex = 0
32
+ }
33
+
34
+ const __params = [${params}];
35
+ if(__params.length === 1 && __params[0] === undefined){
36
+ __params.length = 0
37
+ }
38
+
39
+ try {
40
+ const result = (
41
+ await axios.post(RemoteSteamUser.__apps[RemoteSteamUser.__appIndex], {
42
+ method: "${methodName}",
43
+ params: __params,
44
+ cookies: this._cookies,
45
+ })
46
+ ).data?.result;
47
+ return result
48
+ } catch (e) {
49
+ }
50
+ }`.trim() + '\n'
51
+ }
52
+
53
+ console.log('')
54
+
55
+ })()