steamutils 1.4.75 → 1.4.77

Sign up to get free protection for your applications and to get access to all the features.
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
+ }