steamutils 1.4.76 → 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.
- package/.idea/codeStyles/Project.xml +1 -0
- package/.idea/deployment.xml +14 -0
- package/.prettierrc.json +3 -3
- package/SteamClient.js +23 -43
- package/_steamproto.js +33 -33
- package/axios.js +84 -84
- package/bufferHelpers.js +115 -115
- package/cheerio.js +103 -103
- package/const.js +458 -458
- package/create_proto.js +96 -96
- package/create_remote_file.js +74 -74
- package/full_steamproto.js +33 -33
- package/helpers/protos.js +48 -48
- package/index.js +7781 -7781
- package/package.json +1 -1
- package/protos/csgo/base_gcmessages.proto +553 -553
- package/protos/csgo/base_gcmessages_csgo.proto +547 -547
- package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
- package/protos/csgo/clientmessages.proto +48 -48
- package/protos/csgo/connectionless_netmessages.proto +17 -17
- package/protos/csgo/cs_gameevents.proto +35 -35
- package/protos/csgo/cs_usercmd.proto +34 -34
- package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
- package/protos/csgo/cstrike15_usermessages.proto +592 -592
- package/protos/csgo/demo.proto +165 -165
- package/protos/csgo/econ_gcmessages.proto +219 -219
- package/protos/csgo/enums_clientserver.proto +1529 -1529
- package/protos/csgo/fatdemo.proto +125 -125
- package/protos/csgo/gameevents.proto +120 -120
- package/protos/csgo/gcsdk_gcmessages.proto +323 -323
- package/protos/csgo/gcsystemmsgs.proto +243 -243
- package/protos/csgo/netmessages.proto +618 -618
- package/protos/csgo/networkbasetypes.proto +246 -246
- package/protos/csgo/networksystem_protomessages.proto +17 -17
- package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
- package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
- package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
- package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
- package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
- package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
- package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
- package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
- package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
- package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/csgo/te.proto +259 -259
- package/protos/csgo/uifontfile_format.proto +13 -13
- package/protos/csgo/usercmd.proto +39 -39
- package/protos/csgo/usermessages.proto +752 -752
- package/protos/google/protobuf/descriptor.proto +281 -281
- package/protos/steam/clientmetrics.proto +45 -45
- package/protos/steam/content_manifest.proto +62 -62
- package/protos/steam/contenthubs.proto +41 -41
- package/protos/steam/encrypted_app_ticket.proto +10 -10
- package/protos/steam/enums.proto +501 -501
- package/protos/steam/enums_clientserver.proto +1508 -1508
- package/protos/steam/enums_productinfo.proto +14 -14
- package/protos/steam/htmlmessages.proto +1039 -1039
- package/protos/steam/offline_ticket.proto +8 -8
- package/protos/steam/steamdatagram_messages_auth.proto +65 -65
- package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
- package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
- package/protos/steam/steammessages_appoverview.proto +204 -204
- package/protos/steam/steammessages_auth.steamclient.proto +375 -375
- package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
- package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
- package/protos/steam/steammessages_client_objects.proto +649 -649
- package/protos/steam/steammessages_clientlanp2p.proto +43 -43
- package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
- package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
- package/protos/steam/steammessages_clientserver.proto +392 -392
- package/protos/steam/steammessages_clientserver_2.proto +771 -771
- package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
- package/protos/steam/steammessages_clientserver_friends.proto +260 -260
- package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
- package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
- package/protos/steam/steammessages_clientserver_login.proto +167 -167
- package/protos/steam/steammessages_clientserver_mms.proto +233 -233
- package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
- package/protos/steam/steammessages_clientserver_uds.proto +125 -125
- package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
- package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
- package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
- package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
- package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
- package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
- package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
- package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
- package/protos/steam/steammessages_econ.steamclient.proto +137 -137
- package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
- package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
- package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
- package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
- package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
- package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
- package/protos/steam/steammessages_hiddevices.proto +157 -157
- package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
- package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
- package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
- package/protos/steam/steammessages_market.steamclient.proto +22 -22
- package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
- package/protos/steam/steammessages_offline.steamclient.proto +33 -33
- package/protos/steam/steammessages_parental.steamclient.proto +262 -262
- package/protos/steam/steammessages_parties.steamclient.proto +75 -75
- package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
- package/protos/steam/steammessages_player.steamclient.proto +915 -915
- package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
- package/protos/steam/steammessages_qms.steamclient.proto +111 -111
- package/protos/steam/steammessages_remoteclient.proto +100 -100
- package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
- package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
- package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
- package/protos/steam/steammessages_remoteplay.proto +975 -975
- package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
- package/protos/steam/steammessages_shader.steamclient.proto +89 -89
- package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
- package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
- package/protos/steam/steammessages_siteserverui.proto +130 -130
- package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
- package/protos/steam/steammessages_store.steamclient.proto +404 -404
- package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
- package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
- package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
- package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
- package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
- package/protos/steam/steammessages_vac.steamclient.proto +37 -37
- package/protos/steam/steammessages_video.steamclient.proto +68 -68
- package/protos/steam/steammessages_virtualcontroller.proto +138 -138
- package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
- package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
- package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/steam/webuimessages_achievements.proto +29 -29
- package/protos/steam/webuimessages_gamenotes.proto +21 -21
- package/protos/steam/webuimessages_gamescope.proto +57 -57
- package/protos/steam/webuimessages_steamengine.proto +41 -41
- package/protos/steam/webuimessages_steamos.proto +114 -114
- package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
- package/protos/steam/webuimessages_systemmanager.proto +17 -17
- package/protos/steam/webuimessages_transport.proto +22 -22
- package/protos/steam/webuimessages_transportvalidation.proto +111 -111
- package/protos/webui/common.proto +4024 -4024
- package/protos/webui/service_accountcart.proto +153 -153
- package/protos/webui/service_accountlinking.proto +27 -27
- package/protos/webui/service_accountprivacy.proto +42 -42
- package/protos/webui/service_accountprivateapps.proto +34 -34
- package/protos/webui/service_auction.proto +97 -97
- package/protos/webui/service_authentication.proto +222 -222
- package/protos/webui/service_authenticationsupport.proto +74 -74
- package/protos/webui/service_broadcast.proto +562 -562
- package/protos/webui/service_chat.proto +11 -11
- package/protos/webui/service_chatroom.proto +810 -810
- package/protos/webui/service_chatusability.proto +107 -107
- package/protos/webui/service_checkout.proto +84 -84
- package/protos/webui/service_clan.proto +41 -41
- package/protos/webui/service_clanchatrooms.proto +25 -25
- package/protos/webui/service_clanfaqs.proto +202 -202
- package/protos/webui/service_clientcomm.proto +151 -151
- package/protos/webui/service_clientmetrics.proto +22 -22
- package/protos/webui/service_cloud.proto +222 -222
- package/protos/webui/service_cloudconfigstore.proto +51 -51
- package/protos/webui/service_cloudgaming.proto +30 -30
- package/protos/webui/service_community.proto +365 -365
- package/protos/webui/service_dailydeal.proto +89 -89
- package/protos/webui/service_econ.proto +134 -134
- package/protos/webui/service_embedded.proto +24 -24
- package/protos/webui/service_experimentservice.proto +6 -6
- package/protos/webui/service_familygroups.proto +355 -355
- package/protos/webui/service_fovasvideo.proto +15 -15
- package/protos/webui/service_friendmessages.proto +133 -133
- package/protos/webui/service_friendslist.proto +70 -70
- package/protos/webui/service_gamenotes.proto +15 -15
- package/protos/webui/service_gamerecording.proto +265 -265
- package/protos/webui/service_gamerecordingclip.proto +85 -85
- package/protos/webui/service_gamerecordingdebug.proto +52 -52
- package/protos/webui/service_helprequestlogs.proto +16 -16
- package/protos/webui/service_loyaltyrewards.proto +252 -252
- package/protos/webui/service_marketingmessages.proto +215 -215
- package/protos/webui/service_mobileapp.proto +18 -18
- package/protos/webui/service_mobileauth.proto +24 -24
- package/protos/webui/service_mobiledevice.proto +26 -26
- package/protos/webui/service_mobileperaccount.proto +31 -31
- package/protos/webui/service_news.proto +110 -110
- package/protos/webui/service_parental.proto +258 -258
- package/protos/webui/service_partnermembershipinvite.proto +34 -34
- package/protos/webui/service_partnerstorebrowse.proto +28 -28
- package/protos/webui/service_phone.proto +51 -51
- package/protos/webui/service_physicalgoods.proto +15 -15
- package/protos/webui/service_player.proto +918 -918
- package/protos/webui/service_promotioneventinvites.proto +109 -109
- package/protos/webui/service_promotionplanning.proto +186 -186
- package/protos/webui/service_promotionstats.proto +23 -23
- package/protos/webui/service_publishedfile.proto +714 -714
- package/protos/webui/service_publishing.proto +200 -200
- package/protos/webui/service_quest.proto +127 -127
- package/protos/webui/service_salefeature.proto +373 -373
- package/protos/webui/service_saleitemrewards.proto +54 -54
- package/protos/webui/service_shoppingcart.proto +152 -152
- package/protos/webui/service_steamawards.proto +76 -76
- package/protos/webui/service_steamcharts.proto +75 -75
- package/protos/webui/service_steamengine.proto +36 -36
- package/protos/webui/service_steamlearn.proto +876 -876
- package/protos/webui/service_steamnotification.proto +73 -73
- package/protos/webui/service_steamtv.proto +495 -495
- package/protos/webui/service_steamvrvoicechat.proto +67 -67
- package/protos/webui/service_steamvrwebrtc.proto +48 -48
- package/protos/webui/service_storagedevicemanager.proto +104 -104
- package/protos/webui/service_store.proto +359 -359
- package/protos/webui/service_storeappsimilarity.proto +76 -76
- package/protos/webui/service_storebrowse.proto +103 -103
- package/protos/webui/service_storemarketing.proto +44 -44
- package/protos/webui/service_storequery.proto +103 -103
- package/protos/webui/service_storesales.proto +87 -87
- package/protos/webui/service_storetopsellers.proto +44 -44
- package/protos/webui/service_systemmanager.proto +11 -11
- package/protos/webui/service_test_transporterror.proto +6 -6
- package/protos/webui/service_transportauth.proto +17 -17
- package/protos/webui/service_transportvalidation.proto +69 -69
- package/protos/webui/service_twofactor.proto +170 -170
- package/protos/webui/service_useraccount.proto +142 -142
- package/protos/webui/service_usergameactivity.proto +34 -34
- package/protos/webui/service_usergamenotes.proto +70 -70
- package/protos/webui/service_usernews.proto +68 -68
- package/protos/webui/service_userreviews.proto +97 -97
- package/protos/webui/service_video.proto +50 -50
- package/protos/webui/service_videoclip.proto +62 -62
- package/protos/webui/service_voicechat.proto +139 -139
- package/protos/webui/service_webrtc.proto +52 -52
- package/remote.js +8378 -8378
- package/steamproto.js +1 -1
- package/utils.js +986 -986
- package/.idea/gbrowser_project.xml +0 -11
- package/.idea/git_toolbox_blame.xml +0 -6
- 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
|
@@ -200,9 +200,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
200
200
|
for (const [eventName, events] of Object.entries(gcEvents)) {
|
|
201
201
|
if (eventName === name) {
|
|
202
202
|
for (const event of events) {
|
|
203
|
-
|
|
204
|
-
clearTimeout(event.timeout);
|
|
205
|
-
}
|
|
203
|
+
clearTimeout(event.timeout);
|
|
206
204
|
}
|
|
207
205
|
events.length = 0;
|
|
208
206
|
} else {
|
|
@@ -210,9 +208,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
210
208
|
return Object.values(e).some((v) => v === name);
|
|
211
209
|
});
|
|
212
210
|
for (const removedEvent of removedEvents) {
|
|
213
|
-
|
|
214
|
-
clearTimeout(removedEvent.timeout);
|
|
215
|
-
}
|
|
211
|
+
clearTimeout(removedEvent.timeout);
|
|
216
212
|
}
|
|
217
213
|
}
|
|
218
214
|
}
|
|
@@ -232,10 +228,8 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
232
228
|
let calculated = false;
|
|
233
229
|
|
|
234
230
|
for (const removedEvent of removedEvents) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
delete removedEvent.timeout;
|
|
238
|
-
}
|
|
231
|
+
clearTimeout(removedEvent.timeout);
|
|
232
|
+
delete removedEvent.timeout;
|
|
239
233
|
|
|
240
234
|
if (!calculated) {
|
|
241
235
|
calculated = true;
|
|
@@ -291,9 +285,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
291
285
|
for (const [eventName, _events] of Object.entries(events)) {
|
|
292
286
|
if (eventName === name) {
|
|
293
287
|
for (const event of _events) {
|
|
294
|
-
|
|
295
|
-
clearTimeout(event.timeout);
|
|
296
|
-
}
|
|
288
|
+
clearTimeout(event.timeout);
|
|
297
289
|
}
|
|
298
290
|
_events.length = 0;
|
|
299
291
|
} else {
|
|
@@ -301,9 +293,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
301
293
|
return Object.values(e).some((v) => v === name);
|
|
302
294
|
});
|
|
303
295
|
for (const removedEvent of removedEvents) {
|
|
304
|
-
|
|
305
|
-
clearTimeout(removedEvent.timeout);
|
|
306
|
-
}
|
|
296
|
+
clearTimeout(removedEvent.timeout);
|
|
307
297
|
}
|
|
308
298
|
}
|
|
309
299
|
}
|
|
@@ -316,12 +306,8 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
316
306
|
function offAllEvent() {
|
|
317
307
|
for (const name in events) {
|
|
318
308
|
for (const event of events[name]) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
clearTimeout(event.timeout);
|
|
322
|
-
} catch (e) {}
|
|
323
|
-
delete event.timeout;
|
|
324
|
-
}
|
|
309
|
+
clearTimeout(event.timeout);
|
|
310
|
+
delete event.timeout;
|
|
325
311
|
}
|
|
326
312
|
events[name].length = 0;
|
|
327
313
|
}
|
|
@@ -338,9 +324,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
338
324
|
}
|
|
339
325
|
if (isRandom) {
|
|
340
326
|
if (intervalRandoms[key] !== undefined) {
|
|
341
|
-
|
|
342
|
-
clearTimeout(intervalRandoms[key]);
|
|
343
|
-
} catch (e) {}
|
|
327
|
+
clearTimeout(intervalRandoms[key]);
|
|
344
328
|
}
|
|
345
329
|
intervalRandoms[key] = setTimeout(
|
|
346
330
|
function () {
|
|
@@ -385,9 +369,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
385
369
|
} catch (e) {}
|
|
386
370
|
delete intervals[key];
|
|
387
371
|
|
|
388
|
-
|
|
389
|
-
clearTimeout(intervalRandoms[key]);
|
|
390
|
-
} catch (e) {}
|
|
372
|
+
clearTimeout(intervalRandoms[key]);
|
|
391
373
|
delete intervalRandoms[key];
|
|
392
374
|
}
|
|
393
375
|
|
|
@@ -453,9 +435,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
453
435
|
if (!globalThis.SteamClient_PersonasCache_Timeout) {
|
|
454
436
|
globalThis.SteamClient_PersonasCache_Timeout = {};
|
|
455
437
|
}
|
|
456
|
-
|
|
457
|
-
clearTimeout(globalThis.SteamClient_PersonasCache_Timeout[sid64]);
|
|
458
|
-
}
|
|
438
|
+
clearTimeout(globalThis.SteamClient_PersonasCache_Timeout[sid64]);
|
|
459
439
|
globalThis.SteamClient_PersonasCache_Timeout[sid64] = setTimeout(function () {
|
|
460
440
|
delete globalThis.SteamClient_PersonasCache[sid64];
|
|
461
441
|
delete globalThis.SteamClient_PersonasCache_Timeout[sid64];
|
|
@@ -1521,13 +1501,10 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
1521
1501
|
async user(steamId, data) {
|
|
1522
1502
|
callEvent(events.user, { steamId: steamId.getSteamID64(), data });
|
|
1523
1503
|
|
|
1524
|
-
// cleanNodeSteamUserData
|
|
1525
1504
|
for (const friendSteamId in steamClient.users) {
|
|
1526
1505
|
steamClient.users[friendSteamId] = {};
|
|
1527
1506
|
}
|
|
1528
|
-
|
|
1529
|
-
clearTimeout(_cleanNodeSteamUserTimeout);
|
|
1530
|
-
}
|
|
1507
|
+
clearTimeout(_cleanNodeSteamUserTimeout);
|
|
1531
1508
|
_cleanNodeSteamUserTimeout = setTimeout(function () {
|
|
1532
1509
|
steamClient.users = {};
|
|
1533
1510
|
}, 60000);
|
|
@@ -1670,9 +1647,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
1670
1647
|
|
|
1671
1648
|
steamClient.myFriends = {};
|
|
1672
1649
|
|
|
1673
|
-
|
|
1674
|
-
clearTimeout(_cleanNodeSteamFriendTimeout);
|
|
1675
|
-
}
|
|
1650
|
+
clearTimeout(_cleanNodeSteamFriendTimeout);
|
|
1676
1651
|
|
|
1677
1652
|
_cleanNodeSteamFriendTimeout = setTimeout(function () {
|
|
1678
1653
|
steamClient.myFriends = {};
|
|
@@ -1725,9 +1700,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
1725
1700
|
async licenses() {
|
|
1726
1701
|
steamClient.licenses = [];
|
|
1727
1702
|
|
|
1728
|
-
|
|
1729
|
-
clearTimeout(_cleanNodeSteamLicensesTimeout);
|
|
1730
|
-
}
|
|
1703
|
+
clearTimeout(_cleanNodeSteamLicensesTimeout);
|
|
1731
1704
|
|
|
1732
1705
|
_cleanNodeSteamLicensesTimeout = setTimeout(function () {
|
|
1733
1706
|
steamClient.licenses = [];
|
|
@@ -1817,7 +1790,14 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
1817
1790
|
}
|
|
1818
1791
|
|
|
1819
1792
|
for (const [name, _event] of Object.entries(_events)) {
|
|
1820
|
-
steamClient.on(name,
|
|
1793
|
+
steamClient.on(name, async (...args) => {
|
|
1794
|
+
if (!steamClient) {
|
|
1795
|
+
return;
|
|
1796
|
+
}
|
|
1797
|
+
try {
|
|
1798
|
+
await _event?.(...args);
|
|
1799
|
+
} catch (e) {}
|
|
1800
|
+
});
|
|
1821
1801
|
}
|
|
1822
1802
|
|
|
1823
1803
|
for (const [name, _event] of Object.entries(_chatEvents)) {
|
|
@@ -1829,7 +1809,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
|
|
|
1829
1809
|
const timeout = { current: null };
|
|
1830
1810
|
return new Promise((resolve) => {
|
|
1831
1811
|
function myhandler(...args) {
|
|
1832
|
-
|
|
1812
|
+
clearTimeout(timeout.current);
|
|
1833
1813
|
removeHandler();
|
|
1834
1814
|
resolve(handler?.(...args));
|
|
1835
1815
|
}
|
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
|
+
}
|
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
|
+
};
|