steamutils 1.4.75 → 1.4.77

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 (234) hide show
  1. package/.idea/codeStyles/Project.xml +1 -0
  2. package/.idea/deployment.xml +14 -0
  3. package/.prettierrc.json +3 -3
  4. package/SteamClient.js +36 -55
  5. package/_steamproto.js +33 -33
  6. package/axios.js +84 -84
  7. package/bufferHelpers.js +115 -115
  8. package/cheerio.js +103 -103
  9. package/const.js +458 -458
  10. package/create_proto.js +96 -96
  11. package/create_remote_file.js +74 -74
  12. package/full_steamproto.js +33 -33
  13. package/helpers/protos.js +48 -48
  14. package/index.js +7781 -7781
  15. package/package.json +1 -1
  16. package/protos/csgo/base_gcmessages.proto +553 -553
  17. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  18. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  19. package/protos/csgo/clientmessages.proto +48 -48
  20. package/protos/csgo/connectionless_netmessages.proto +17 -17
  21. package/protos/csgo/cs_gameevents.proto +35 -35
  22. package/protos/csgo/cs_usercmd.proto +34 -34
  23. package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
  24. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  25. package/protos/csgo/demo.proto +165 -165
  26. package/protos/csgo/econ_gcmessages.proto +219 -219
  27. package/protos/csgo/enums_clientserver.proto +1529 -1529
  28. package/protos/csgo/fatdemo.proto +125 -125
  29. package/protos/csgo/gameevents.proto +120 -120
  30. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  31. package/protos/csgo/gcsystemmsgs.proto +243 -243
  32. package/protos/csgo/netmessages.proto +618 -618
  33. package/protos/csgo/networkbasetypes.proto +246 -246
  34. package/protos/csgo/networksystem_protomessages.proto +17 -17
  35. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  36. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  37. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  38. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  39. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  40. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  41. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  42. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  43. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  44. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  45. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  46. package/protos/csgo/te.proto +259 -259
  47. package/protos/csgo/uifontfile_format.proto +13 -13
  48. package/protos/csgo/usercmd.proto +39 -39
  49. package/protos/csgo/usermessages.proto +752 -752
  50. package/protos/google/protobuf/descriptor.proto +281 -281
  51. package/protos/steam/clientmetrics.proto +45 -45
  52. package/protos/steam/content_manifest.proto +62 -62
  53. package/protos/steam/contenthubs.proto +41 -41
  54. package/protos/steam/encrypted_app_ticket.proto +10 -10
  55. package/protos/steam/enums.proto +501 -501
  56. package/protos/steam/enums_clientserver.proto +1508 -1508
  57. package/protos/steam/enums_productinfo.proto +14 -14
  58. package/protos/steam/htmlmessages.proto +1039 -1039
  59. package/protos/steam/offline_ticket.proto +8 -8
  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 +167 -167
  63. package/protos/steam/steammessages_appoverview.proto +204 -204
  64. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  65. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  66. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  67. package/protos/steam/steammessages_client_objects.proto +649 -649
  68. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  69. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  70. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  71. package/protos/steam/steammessages_clientserver.proto +392 -392
  72. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  73. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  74. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  75. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  76. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  77. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  78. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  79. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  80. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  81. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  82. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  83. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  84. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  85. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  86. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  87. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  88. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  89. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  90. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  91. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  92. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  93. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  94. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  95. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  96. package/protos/steam/steammessages_hiddevices.proto +157 -157
  97. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  98. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  99. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  100. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  101. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  102. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  103. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  104. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  105. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  106. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  107. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  108. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  109. package/protos/steam/steammessages_remoteclient.proto +100 -100
  110. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  111. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  112. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  113. package/protos/steam/steammessages_remoteplay.proto +975 -975
  114. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  115. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  116. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  117. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  118. package/protos/steam/steammessages_siteserverui.proto +130 -130
  119. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  120. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  121. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  122. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  123. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  124. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  125. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  126. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  127. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  128. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  129. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  130. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  131. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  132. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  133. package/protos/steam/webuimessages_achievements.proto +29 -29
  134. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  135. package/protos/steam/webuimessages_gamescope.proto +57 -57
  136. package/protos/steam/webuimessages_steamengine.proto +41 -41
  137. package/protos/steam/webuimessages_steamos.proto +114 -114
  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 +22 -22
  141. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  142. package/protos/webui/common.proto +4024 -4024
  143. package/protos/webui/service_accountcart.proto +153 -153
  144. package/protos/webui/service_accountlinking.proto +27 -27
  145. package/protos/webui/service_accountprivacy.proto +42 -42
  146. package/protos/webui/service_accountprivateapps.proto +34 -34
  147. package/protos/webui/service_auction.proto +97 -97
  148. package/protos/webui/service_authentication.proto +222 -222
  149. package/protos/webui/service_authenticationsupport.proto +74 -74
  150. package/protos/webui/service_broadcast.proto +562 -562
  151. package/protos/webui/service_chat.proto +11 -11
  152. package/protos/webui/service_chatroom.proto +810 -810
  153. package/protos/webui/service_chatusability.proto +107 -107
  154. package/protos/webui/service_checkout.proto +84 -84
  155. package/protos/webui/service_clan.proto +41 -41
  156. package/protos/webui/service_clanchatrooms.proto +25 -25
  157. package/protos/webui/service_clanfaqs.proto +202 -202
  158. package/protos/webui/service_clientcomm.proto +151 -151
  159. package/protos/webui/service_clientmetrics.proto +22 -22
  160. package/protos/webui/service_cloud.proto +222 -222
  161. package/protos/webui/service_cloudconfigstore.proto +51 -51
  162. package/protos/webui/service_cloudgaming.proto +30 -30
  163. package/protos/webui/service_community.proto +365 -365
  164. package/protos/webui/service_dailydeal.proto +89 -89
  165. package/protos/webui/service_econ.proto +134 -134
  166. package/protos/webui/service_embedded.proto +24 -24
  167. package/protos/webui/service_experimentservice.proto +6 -6
  168. package/protos/webui/service_familygroups.proto +355 -355
  169. package/protos/webui/service_fovasvideo.proto +15 -15
  170. package/protos/webui/service_friendmessages.proto +133 -133
  171. package/protos/webui/service_friendslist.proto +70 -70
  172. package/protos/webui/service_gamenotes.proto +15 -15
  173. package/protos/webui/service_gamerecording.proto +265 -265
  174. package/protos/webui/service_gamerecordingclip.proto +85 -85
  175. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  176. package/protos/webui/service_helprequestlogs.proto +16 -16
  177. package/protos/webui/service_loyaltyrewards.proto +252 -252
  178. package/protos/webui/service_marketingmessages.proto +215 -215
  179. package/protos/webui/service_mobileapp.proto +18 -18
  180. package/protos/webui/service_mobileauth.proto +24 -24
  181. package/protos/webui/service_mobiledevice.proto +26 -26
  182. package/protos/webui/service_mobileperaccount.proto +31 -31
  183. package/protos/webui/service_news.proto +110 -110
  184. package/protos/webui/service_parental.proto +258 -258
  185. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  186. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  187. package/protos/webui/service_phone.proto +51 -51
  188. package/protos/webui/service_physicalgoods.proto +15 -15
  189. package/protos/webui/service_player.proto +918 -918
  190. package/protos/webui/service_promotioneventinvites.proto +109 -109
  191. package/protos/webui/service_promotionplanning.proto +186 -186
  192. package/protos/webui/service_promotionstats.proto +23 -23
  193. package/protos/webui/service_publishedfile.proto +714 -714
  194. package/protos/webui/service_publishing.proto +200 -200
  195. package/protos/webui/service_quest.proto +127 -127
  196. package/protos/webui/service_salefeature.proto +373 -373
  197. package/protos/webui/service_saleitemrewards.proto +54 -54
  198. package/protos/webui/service_shoppingcart.proto +152 -152
  199. package/protos/webui/service_steamawards.proto +76 -76
  200. package/protos/webui/service_steamcharts.proto +75 -75
  201. package/protos/webui/service_steamengine.proto +36 -36
  202. package/protos/webui/service_steamlearn.proto +876 -876
  203. package/protos/webui/service_steamnotification.proto +73 -73
  204. package/protos/webui/service_steamtv.proto +495 -495
  205. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  206. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  207. package/protos/webui/service_storagedevicemanager.proto +104 -104
  208. package/protos/webui/service_store.proto +359 -359
  209. package/protos/webui/service_storeappsimilarity.proto +76 -76
  210. package/protos/webui/service_storebrowse.proto +103 -103
  211. package/protos/webui/service_storemarketing.proto +44 -44
  212. package/protos/webui/service_storequery.proto +103 -103
  213. package/protos/webui/service_storesales.proto +87 -87
  214. package/protos/webui/service_storetopsellers.proto +44 -44
  215. package/protos/webui/service_systemmanager.proto +11 -11
  216. package/protos/webui/service_test_transporterror.proto +6 -6
  217. package/protos/webui/service_transportauth.proto +17 -17
  218. package/protos/webui/service_transportvalidation.proto +69 -69
  219. package/protos/webui/service_twofactor.proto +170 -170
  220. package/protos/webui/service_useraccount.proto +142 -142
  221. package/protos/webui/service_usergameactivity.proto +34 -34
  222. package/protos/webui/service_usergamenotes.proto +70 -70
  223. package/protos/webui/service_usernews.proto +68 -68
  224. package/protos/webui/service_userreviews.proto +97 -97
  225. package/protos/webui/service_video.proto +50 -50
  226. package/protos/webui/service_videoclip.proto +62 -62
  227. package/protos/webui/service_voicechat.proto +139 -139
  228. package/protos/webui/service_webrtc.proto +52 -52
  229. package/remote.js +8378 -8378
  230. package/steamproto.js +1 -1
  231. package/utils.js +986 -986
  232. package/.idea/gbrowser_project.xml +0 -11
  233. package/.idea/git_toolbox_blame.xml +0 -6
  234. package/.idea/git_toolbox_prj.xml +0 -15
@@ -2,6 +2,7 @@
2
2
  <code_scheme name="Project" version="173">
3
3
  <HTMLCodeStyleSettings>
4
4
  <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
+ <option name="HTML_ENFORCE_QUOTES" value="true" />
5
6
  </HTMLCodeStyleSettings>
6
7
  <JSCodeStyleSettings version="0">
7
8
  <option name="FORCE_SEMICOLON_STYLE" value="true" />
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
4
+ <serverData>
5
+ <paths name="botnatridiscord">
6
+ <serverdata>
7
+ <mappings>
8
+ <mapping local="$PROJECT_DIR$" web="/" />
9
+ </mappings>
10
+ </serverdata>
11
+ </paths>
12
+ </serverData>
13
+ </component>
14
+ </project>
package/.prettierrc.json CHANGED
@@ -1,3 +1,3 @@
1
- {
2
- "printWidth": 1000
3
- }
1
+ {
2
+ "printWidth": 1000
3
+ }
package/SteamClient.js CHANGED
@@ -109,6 +109,9 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
109
109
  let _cleanNodeSteamLicensesTimeout = null;
110
110
  let _cleanNodeSteamFriendTimeout = null;
111
111
 
112
+ let _appLaunchedTimeout = null;
113
+ let _appQuitTimeout = null;
114
+
112
115
  let _clientWelcome = null;
113
116
  let _clientHello = null;
114
117
 
@@ -197,9 +200,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
197
200
  for (const [eventName, events] of Object.entries(gcEvents)) {
198
201
  if (eventName === name) {
199
202
  for (const event of events) {
200
- if (event.timeout) {
201
- clearTimeout(event.timeout);
202
- }
203
+ clearTimeout(event.timeout);
203
204
  }
204
205
  events.length = 0;
205
206
  } else {
@@ -207,9 +208,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
207
208
  return Object.values(e).some((v) => v === name);
208
209
  });
209
210
  for (const removedEvent of removedEvents) {
210
- if (removedEvent.timeout) {
211
- clearTimeout(removedEvent.timeout);
212
- }
211
+ clearTimeout(removedEvent.timeout);
213
212
  }
214
213
  }
215
214
  }
@@ -229,10 +228,8 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
229
228
  let calculated = false;
230
229
 
231
230
  for (const removedEvent of removedEvents) {
232
- if (removedEvent.timeout) {
233
- clearTimeout(removedEvent.timeout);
234
- delete removedEvent.timeout;
235
- }
231
+ clearTimeout(removedEvent.timeout);
232
+ delete removedEvent.timeout;
236
233
 
237
234
  if (!calculated) {
238
235
  calculated = true;
@@ -288,9 +285,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
288
285
  for (const [eventName, _events] of Object.entries(events)) {
289
286
  if (eventName === name) {
290
287
  for (const event of _events) {
291
- if (event.timeout) {
292
- clearTimeout(event.timeout);
293
- }
288
+ clearTimeout(event.timeout);
294
289
  }
295
290
  _events.length = 0;
296
291
  } else {
@@ -298,9 +293,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
298
293
  return Object.values(e).some((v) => v === name);
299
294
  });
300
295
  for (const removedEvent of removedEvents) {
301
- if (removedEvent.timeout) {
302
- clearTimeout(removedEvent.timeout);
303
- }
296
+ clearTimeout(removedEvent.timeout);
304
297
  }
305
298
  }
306
299
  }
@@ -313,12 +306,8 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
313
306
  function offAllEvent() {
314
307
  for (const name in events) {
315
308
  for (const event of events[name]) {
316
- if (event.timeout) {
317
- try {
318
- clearTimeout(event.timeout);
319
- } catch (e) {}
320
- delete event.timeout;
321
- }
309
+ clearTimeout(event.timeout);
310
+ delete event.timeout;
322
311
  }
323
312
  events[name].length = 0;
324
313
  }
@@ -335,9 +324,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
335
324
  }
336
325
  if (isRandom) {
337
326
  if (intervalRandoms[key] !== undefined) {
338
- try {
339
- clearTimeout(intervalRandoms[key]);
340
- } catch (e) {}
327
+ clearTimeout(intervalRandoms[key]);
341
328
  }
342
329
  intervalRandoms[key] = setTimeout(
343
330
  function () {
@@ -382,9 +369,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
382
369
  } catch (e) {}
383
370
  delete intervals[key];
384
371
 
385
- try {
386
- clearTimeout(intervalRandoms[key]);
387
- } catch (e) {}
372
+ clearTimeout(intervalRandoms[key]);
388
373
  delete intervalRandoms[key];
389
374
  }
390
375
 
@@ -450,9 +435,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
450
435
  if (!globalThis.SteamClient_PersonasCache_Timeout) {
451
436
  globalThis.SteamClient_PersonasCache_Timeout = {};
452
437
  }
453
- if (globalThis.SteamClient_PersonasCache_Timeout[sid64]) {
454
- clearTimeout(globalThis.SteamClient_PersonasCache_Timeout[sid64]);
455
- }
438
+ clearTimeout(globalThis.SteamClient_PersonasCache_Timeout[sid64]);
456
439
  globalThis.SteamClient_PersonasCache_Timeout[sid64] = setTimeout(function () {
457
440
  delete globalThis.SteamClient_PersonasCache[sid64];
458
441
  delete globalThis.SteamClient_PersonasCache_Timeout[sid64];
@@ -1518,13 +1501,10 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1518
1501
  async user(steamId, data) {
1519
1502
  callEvent(events.user, { steamId: steamId.getSteamID64(), data });
1520
1503
 
1521
- // cleanNodeSteamUserData
1522
1504
  for (const friendSteamId in steamClient.users) {
1523
1505
  steamClient.users[friendSteamId] = {};
1524
1506
  }
1525
- if (_cleanNodeSteamUserTimeout) {
1526
- clearTimeout(_cleanNodeSteamUserTimeout);
1527
- }
1507
+ clearTimeout(_cleanNodeSteamUserTimeout);
1528
1508
  _cleanNodeSteamUserTimeout = setTimeout(function () {
1529
1509
  steamClient.users = {};
1530
1510
  }, 60000);
@@ -1667,9 +1647,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1667
1647
 
1668
1648
  steamClient.myFriends = {};
1669
1649
 
1670
- if (_cleanNodeSteamFriendTimeout) {
1671
- clearTimeout(_cleanNodeSteamFriendTimeout);
1672
- }
1650
+ clearTimeout(_cleanNodeSteamFriendTimeout);
1673
1651
 
1674
1652
  _cleanNodeSteamFriendTimeout = setTimeout(function () {
1675
1653
  steamClient.myFriends = {};
@@ -1693,12 +1671,14 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1693
1671
  callEvent(events.emailInfo, { address, validated });
1694
1672
  },
1695
1673
  async appLaunched() {
1696
- setTimeout(function () {
1674
+ clearTimeout(_appLaunchedTimeout);
1675
+ _appLaunchedTimeout = setTimeout(function () {
1697
1676
  state = getPlayingAppIds().length ? "InGame" : isInvisible ? "Invisible" : "Online";
1698
1677
  }, 2000);
1699
1678
  },
1700
1679
  async appQuit() {
1701
- setTimeout(function () {
1680
+ clearTimeout(_appQuitTimeout);
1681
+ _appQuitTimeout = setTimeout(function () {
1702
1682
  state = getPlayingAppIds().length ? "InGame" : isInvisible ? "Invisible" : "Online";
1703
1683
  }, 2000);
1704
1684
  },
@@ -1720,9 +1700,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1720
1700
  async licenses() {
1721
1701
  steamClient.licenses = [];
1722
1702
 
1723
- if (_cleanNodeSteamLicensesTimeout) {
1724
- clearTimeout(_cleanNodeSteamLicensesTimeout);
1725
- }
1703
+ clearTimeout(_cleanNodeSteamLicensesTimeout);
1726
1704
 
1727
1705
  _cleanNodeSteamLicensesTimeout = setTimeout(function () {
1728
1706
  steamClient.licenses = [];
@@ -1812,7 +1790,14 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1812
1790
  }
1813
1791
 
1814
1792
  for (const [name, _event] of Object.entries(_events)) {
1815
- steamClient.on(name, _event);
1793
+ steamClient.on(name, async (...args) => {
1794
+ if (!steamClient) {
1795
+ return;
1796
+ }
1797
+ try {
1798
+ await _event?.(...args);
1799
+ } catch (e) {}
1800
+ });
1816
1801
  }
1817
1802
 
1818
1803
  for (const [name, _event] of Object.entries(_chatEvents)) {
@@ -1824,7 +1809,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1824
1809
  const timeout = { current: null };
1825
1810
  return new Promise((resolve) => {
1826
1811
  function myhandler(...args) {
1827
- timeout.current && clearTimeout(timeout.current);
1812
+ clearTimeout(timeout.current);
1828
1813
  removeHandler();
1829
1814
  resolve(handler?.(...args));
1830
1815
  }
@@ -2154,15 +2139,11 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2154
2139
  callEvent(events.logOff);
2155
2140
  events.logOff = [];
2156
2141
 
2157
- if (_cleanNodeSteamUserTimeout) {
2158
- clearTimeout(_cleanNodeSteamUserTimeout);
2159
- }
2160
- if (_cleanNodeSteamLicensesTimeout) {
2161
- clearTimeout(_cleanNodeSteamLicensesTimeout);
2162
- }
2163
- if (_cleanNodeSteamFriendTimeout) {
2164
- clearTimeout(_cleanNodeSteamFriendTimeout);
2165
- }
2142
+ clearTimeout(_cleanNodeSteamUserTimeout);
2143
+ clearTimeout(_cleanNodeSteamLicensesTimeout);
2144
+ clearTimeout(_cleanNodeSteamFriendTimeout);
2145
+ clearTimeout(_appLaunchedTimeout);
2146
+ clearTimeout(_appQuitTimeout);
2166
2147
 
2167
2148
  if (steamClient) {
2168
2149
  steamClient.logOff();
@@ -2660,7 +2641,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2660
2641
  }
2661
2642
 
2662
2643
  function getPlayingAppIds() {
2663
- return steamClient._playingAppIds || [];
2644
+ return steamClient?._playingAppIds || [];
2664
2645
  }
2665
2646
 
2666
2647
  async function requestJoinFriendData(token, version) {
package/_steamproto.js CHANGED
@@ -1,33 +1,33 @@
1
- import path from "path";
2
- import { fileURLToPath } from "url";
3
- import Protobuf from "protobufjs";
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- export class SteamProto {
9
- constructor(proto) {
10
- this._proto = proto;
11
- }
12
-
13
- toProto() {
14
- const root = new Protobuf.Root().loadSync(path.join(`${__dirname}/protos/`, this._proto.filename), {
15
- keepCase: true,
16
- });
17
- return root[this._proto.name];
18
- }
19
-
20
- protoEncode(obj) {
21
- const protobuf = this.toProto();
22
- return protobuf.encode(protobuf.create(obj)).finish();
23
- }
24
-
25
- protoEncodeBase64(obj) {
26
- return this.protoEncode(obj).toString("base64");
27
- }
28
-
29
- protoDecode(obj) {
30
- const protobuf = this.toProto();
31
- return protobuf.toObject(protobuf.decode(obj), { defaults: true });
32
- }
33
- }
1
+ import path from "path";
2
+ import { fileURLToPath } from "url";
3
+ import Protobuf from "protobufjs";
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+
8
+ export class SteamProto {
9
+ constructor(proto) {
10
+ this._proto = proto;
11
+ }
12
+
13
+ toProto() {
14
+ const root = new Protobuf.Root().loadSync(path.join(`${__dirname}/protos/`, this._proto.filename), {
15
+ keepCase: true,
16
+ });
17
+ return root[this._proto.name];
18
+ }
19
+
20
+ protoEncode(obj) {
21
+ const protobuf = this.toProto();
22
+ return protobuf.encode(protobuf.create(obj)).finish();
23
+ }
24
+
25
+ protoEncodeBase64(obj) {
26
+ return this.protoEncode(obj).toString("base64");
27
+ }
28
+
29
+ protoDecode(obj) {
30
+ const protobuf = this.toProto();
31
+ return protobuf.toObject(protobuf.decode(obj), { defaults: true });
32
+ }
33
+ }
package/axios.js CHANGED
@@ -1,84 +1,84 @@
1
- import * as _axios from "axios";
2
- import * as cheerio from "cheerio";
3
-
4
- export class Header {
5
- headers = {};
6
-
7
- constructor(headers) {
8
- if (typeof headers === "object" && Object.keys(headers).length) {
9
- this.headers = this.validate(headers);
10
- }
11
- }
12
-
13
- validate(headers) {
14
- headers = Object.keys(headers).reduce(function (previousValue, currentValue, currentIndex, array) {
15
- previousValue[currentValue.toLowerCase()] = headers[currentValue]?.trim();
16
- return previousValue;
17
- }, {});
18
- if (headers.cookie === undefined || headers.cookie === null) {
19
- headers.cookie = "";
20
- }
21
- return headers;
22
- }
23
-
24
- get(key) {
25
- if (key === undefined) {
26
- return { ...this.headers };
27
- } else {
28
- return this.headers[key.toLowerCase()];
29
- }
30
- }
31
-
32
- set(key, value) {
33
- if (typeof key === "string") {
34
- this.headers[key.toLowerCase()] = value;
35
- } else {
36
- for (let _key in key) {
37
- this.headers[_key.toLowerCase()] = key[_key];
38
- }
39
- }
40
- this.headers = this.validate(this.headers);
41
- return this;
42
- }
43
- }
44
-
45
- const axios = _axios.default.create({
46
- baseURL: "/",
47
- timeout: 60000,
48
- headers: {
49
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
50
- },
51
- validateStatus: () => true,
52
- withCredentials: true,
53
- maxContentLength: Infinity,
54
- maxBodyLength: Infinity,
55
- });
56
-
57
- //debug
58
- // axios.interceptors.request.use(function (config) {
59
- // console_log(`[axios]`, config.method, config.url)
60
- // return config
61
- // }, function (error) {
62
- // return Promise.reject(error)
63
- // })
64
-
65
- export async function request(config) {
66
- try {
67
- if (!config?.headers?.cookie) {
68
- try {
69
- delete config.headers.cookie;
70
- } catch (e) {}
71
- }
72
- const result = await axios.request(config);
73
- if (result.data && typeof result.data === "string") {
74
- result._$ = function () {
75
- return cheerio.load(result.data.replaceAll(/[\t\n\r]/gi, "").trim());
76
- };
77
- }
78
- return result;
79
- } catch (e) {
80
- return {
81
- error: e,
82
- };
83
- }
84
- }
1
+ import * as _axios from "axios";
2
+ import * as cheerio from "cheerio";
3
+
4
+ export class Header {
5
+ headers = {};
6
+
7
+ constructor(headers) {
8
+ if (typeof headers === "object" && Object.keys(headers).length) {
9
+ this.headers = this.validate(headers);
10
+ }
11
+ }
12
+
13
+ validate(headers) {
14
+ headers = Object.keys(headers).reduce(function (previousValue, currentValue, currentIndex, array) {
15
+ previousValue[currentValue.toLowerCase()] = headers[currentValue]?.trim();
16
+ return previousValue;
17
+ }, {});
18
+ if (headers.cookie === undefined || headers.cookie === null) {
19
+ headers.cookie = "";
20
+ }
21
+ return headers;
22
+ }
23
+
24
+ get(key) {
25
+ if (key === undefined) {
26
+ return { ...this.headers };
27
+ } else {
28
+ return this.headers[key.toLowerCase()];
29
+ }
30
+ }
31
+
32
+ set(key, value) {
33
+ if (typeof key === "string") {
34
+ this.headers[key.toLowerCase()] = value;
35
+ } else {
36
+ for (let _key in key) {
37
+ this.headers[_key.toLowerCase()] = key[_key];
38
+ }
39
+ }
40
+ this.headers = this.validate(this.headers);
41
+ return this;
42
+ }
43
+ }
44
+
45
+ const axios = _axios.default.create({
46
+ baseURL: "/",
47
+ timeout: 60000,
48
+ headers: {
49
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
50
+ },
51
+ validateStatus: () => true,
52
+ withCredentials: true,
53
+ maxContentLength: Infinity,
54
+ maxBodyLength: Infinity,
55
+ });
56
+
57
+ //debug
58
+ // axios.interceptors.request.use(function (config) {
59
+ // console_log(`[axios]`, config.method, config.url)
60
+ // return config
61
+ // }, function (error) {
62
+ // return Promise.reject(error)
63
+ // })
64
+
65
+ export async function request(config) {
66
+ try {
67
+ if (!config?.headers?.cookie) {
68
+ try {
69
+ delete config.headers.cookie;
70
+ } catch (e) {}
71
+ }
72
+ const result = await axios.request(config);
73
+ if (result.data && typeof result.data === "string") {
74
+ result._$ = function () {
75
+ return cheerio.load(result.data.replaceAll(/[\t\n\r]/gi, "").trim());
76
+ };
77
+ }
78
+ return result;
79
+ } catch (e) {
80
+ return {
81
+ error: e,
82
+ };
83
+ }
84
+ }