steamutils 1.4.37 → 1.4.39

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 (232) 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 +35 -22
  5. package/_steamproto.js +29 -29
  6. package/axios.js +84 -84
  7. package/bufferHelpers.js +115 -115
  8. package/cheerio.js +103 -103
  9. package/const.js +451 -451
  10. package/create_proto.js +47 -47
  11. package/create_remote_file.js +66 -66
  12. package/helpers/protos.js +52 -52
  13. package/package.json +1 -1
  14. package/protos/csgo/base_gcmessages.proto +553 -553
  15. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  16. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  17. package/protos/csgo/clientmessages.proto +48 -48
  18. package/protos/csgo/connectionless_netmessages.proto +17 -17
  19. package/protos/csgo/cs_gameevents.proto +35 -35
  20. package/protos/csgo/cs_usercmd.proto +34 -34
  21. package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
  22. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  23. package/protos/csgo/demo.proto +165 -165
  24. package/protos/csgo/econ_gcmessages.proto +219 -219
  25. package/protos/csgo/enums_clientserver.proto +1529 -1529
  26. package/protos/csgo/fatdemo.proto +125 -125
  27. package/protos/csgo/gameevents.proto +120 -120
  28. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  29. package/protos/csgo/gcsystemmsgs.proto +243 -243
  30. package/protos/csgo/netmessages.proto +618 -618
  31. package/protos/csgo/networkbasetypes.proto +246 -246
  32. package/protos/csgo/networksystem_protomessages.proto +17 -17
  33. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  34. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  35. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  36. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  37. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  38. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  39. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  40. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  41. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  42. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  43. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  44. package/protos/csgo/te.proto +259 -259
  45. package/protos/csgo/uifontfile_format.proto +13 -13
  46. package/protos/csgo/usercmd.proto +39 -39
  47. package/protos/csgo/usermessages.proto +752 -752
  48. package/protos/google/protobuf/descriptor.proto +281 -281
  49. package/protos/steam/clientmetrics.proto +45 -45
  50. package/protos/steam/content_manifest.proto +62 -62
  51. package/protos/steam/contenthubs.proto +41 -41
  52. package/protos/steam/encrypted_app_ticket.proto +10 -10
  53. package/protos/steam/enums.proto +501 -501
  54. package/protos/steam/enums_clientserver.proto +1508 -1508
  55. package/protos/steam/enums_productinfo.proto +14 -14
  56. package/protos/steam/htmlmessages.proto +1039 -1039
  57. package/protos/steam/offline_ticket.proto +8 -8
  58. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  59. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  60. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  61. package/protos/steam/steammessages_appoverview.proto +204 -204
  62. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  63. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  64. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  65. package/protos/steam/steammessages_client_objects.proto +649 -649
  66. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  67. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  68. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  69. package/protos/steam/steammessages_clientserver.proto +392 -392
  70. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  71. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  72. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  73. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  74. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  75. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  76. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  77. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  78. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  79. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  80. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  81. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  82. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  83. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  84. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  85. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  86. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  87. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  88. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  89. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  90. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  91. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  92. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  93. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  94. package/protos/steam/steammessages_hiddevices.proto +157 -157
  95. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  96. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  97. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  98. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  99. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  100. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  101. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  102. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  103. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  104. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  105. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  106. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  107. package/protos/steam/steammessages_remoteclient.proto +100 -100
  108. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  109. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  110. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  111. package/protos/steam/steammessages_remoteplay.proto +975 -975
  112. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  113. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  114. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  115. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  116. package/protos/steam/steammessages_siteserverui.proto +130 -130
  117. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  118. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  119. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  120. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  121. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  122. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  123. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  124. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  125. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  126. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  127. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  128. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  129. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  130. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  131. package/protos/steam/webuimessages_achievements.proto +29 -29
  132. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  133. package/protos/steam/webuimessages_gamescope.proto +57 -57
  134. package/protos/steam/webuimessages_steamengine.proto +41 -41
  135. package/protos/steam/webuimessages_steamos.proto +114 -114
  136. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  137. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  138. package/protos/steam/webuimessages_transport.proto +22 -22
  139. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  140. package/protos/webui/common.proto +4024 -4024
  141. package/protos/webui/service_accountcart.proto +153 -153
  142. package/protos/webui/service_accountlinking.proto +27 -27
  143. package/protos/webui/service_accountprivacy.proto +42 -42
  144. package/protos/webui/service_accountprivateapps.proto +34 -34
  145. package/protos/webui/service_auction.proto +97 -97
  146. package/protos/webui/service_authentication.proto +222 -222
  147. package/protos/webui/service_authenticationsupport.proto +74 -74
  148. package/protos/webui/service_broadcast.proto +562 -562
  149. package/protos/webui/service_chat.proto +11 -11
  150. package/protos/webui/service_chatroom.proto +810 -810
  151. package/protos/webui/service_chatusability.proto +107 -107
  152. package/protos/webui/service_checkout.proto +84 -84
  153. package/protos/webui/service_clan.proto +41 -41
  154. package/protos/webui/service_clanchatrooms.proto +25 -25
  155. package/protos/webui/service_clanfaqs.proto +202 -202
  156. package/protos/webui/service_clientcomm.proto +151 -151
  157. package/protos/webui/service_clientmetrics.proto +22 -22
  158. package/protos/webui/service_cloud.proto +222 -222
  159. package/protos/webui/service_cloudconfigstore.proto +51 -51
  160. package/protos/webui/service_cloudgaming.proto +30 -30
  161. package/protos/webui/service_community.proto +365 -365
  162. package/protos/webui/service_dailydeal.proto +89 -89
  163. package/protos/webui/service_econ.proto +134 -134
  164. package/protos/webui/service_embedded.proto +24 -24
  165. package/protos/webui/service_experimentservice.proto +6 -6
  166. package/protos/webui/service_familygroups.proto +355 -355
  167. package/protos/webui/service_fovasvideo.proto +15 -15
  168. package/protos/webui/service_friendmessages.proto +133 -133
  169. package/protos/webui/service_friendslist.proto +70 -70
  170. package/protos/webui/service_gamenotes.proto +15 -15
  171. package/protos/webui/service_gamerecording.proto +265 -265
  172. package/protos/webui/service_gamerecordingclip.proto +85 -85
  173. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  174. package/protos/webui/service_helprequestlogs.proto +16 -16
  175. package/protos/webui/service_loyaltyrewards.proto +252 -252
  176. package/protos/webui/service_marketingmessages.proto +215 -215
  177. package/protos/webui/service_mobileapp.proto +18 -18
  178. package/protos/webui/service_mobileauth.proto +24 -24
  179. package/protos/webui/service_mobiledevice.proto +26 -26
  180. package/protos/webui/service_mobileperaccount.proto +31 -31
  181. package/protos/webui/service_news.proto +110 -110
  182. package/protos/webui/service_parental.proto +258 -258
  183. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  184. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  185. package/protos/webui/service_phone.proto +51 -51
  186. package/protos/webui/service_physicalgoods.proto +15 -15
  187. package/protos/webui/service_player.proto +918 -918
  188. package/protos/webui/service_promotioneventinvites.proto +109 -109
  189. package/protos/webui/service_promotionplanning.proto +186 -186
  190. package/protos/webui/service_promotionstats.proto +23 -23
  191. package/protos/webui/service_publishedfile.proto +714 -714
  192. package/protos/webui/service_publishing.proto +200 -200
  193. package/protos/webui/service_quest.proto +127 -127
  194. package/protos/webui/service_salefeature.proto +373 -373
  195. package/protos/webui/service_saleitemrewards.proto +54 -54
  196. package/protos/webui/service_shoppingcart.proto +152 -152
  197. package/protos/webui/service_steamawards.proto +76 -76
  198. package/protos/webui/service_steamcharts.proto +75 -75
  199. package/protos/webui/service_steamengine.proto +36 -36
  200. package/protos/webui/service_steamlearn.proto +876 -876
  201. package/protos/webui/service_steamnotification.proto +73 -73
  202. package/protos/webui/service_steamtv.proto +495 -495
  203. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  204. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  205. package/protos/webui/service_storagedevicemanager.proto +104 -104
  206. package/protos/webui/service_store.proto +359 -359
  207. package/protos/webui/service_storeappsimilarity.proto +76 -76
  208. package/protos/webui/service_storebrowse.proto +103 -103
  209. package/protos/webui/service_storemarketing.proto +44 -44
  210. package/protos/webui/service_storequery.proto +103 -103
  211. package/protos/webui/service_storesales.proto +87 -87
  212. package/protos/webui/service_storetopsellers.proto +44 -44
  213. package/protos/webui/service_systemmanager.proto +11 -11
  214. package/protos/webui/service_test_transporterror.proto +6 -6
  215. package/protos/webui/service_transportauth.proto +17 -17
  216. package/protos/webui/service_transportvalidation.proto +69 -69
  217. package/protos/webui/service_twofactor.proto +170 -170
  218. package/protos/webui/service_useraccount.proto +142 -142
  219. package/protos/webui/service_usergameactivity.proto +34 -34
  220. package/protos/webui/service_usergamenotes.proto +70 -70
  221. package/protos/webui/service_usernews.proto +68 -68
  222. package/protos/webui/service_userreviews.proto +97 -97
  223. package/protos/webui/service_video.proto +50 -50
  224. package/protos/webui/service_videoclip.proto +62 -62
  225. package/protos/webui/service_voicechat.proto +139 -139
  226. package/protos/webui/service_webrtc.proto +52 -52
  227. package/remote.js +6784 -6784
  228. package/steamproto.js +6159 -6159
  229. package/utils.js +872 -872
  230. package/.idea/gbrowser_project.xml +0 -11
  231. package/.idea/git_toolbox_blame.xml +0 -6
  232. 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
@@ -90,6 +90,7 @@ export const SteamClientEvents = {
90
90
  emailInfo: "emailInfo",
91
91
  accountLimitations: "accountLimitations",
92
92
  wallet: "wallet",
93
+ licenses: "licenses",
93
94
  };
94
95
  const PersonasCache = [];
95
96
  let isSendingFriendMessages = false;
@@ -437,7 +438,7 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
437
438
  }),
438
439
  function (payload) {
439
440
  clearTimeout(timeout);
440
- const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoEncode(payload.toBuffer());
441
+ const result = new SteamProto(SteamProtoType.CMsgClientMMSCreateLobbyResponse).protoDecode(payload.toBuffer());
441
442
  const steam_id_lobby = result.steam_id_lobby.toString();
442
443
  currentLobby.lobbyID = steam_id_lobby;
443
444
  currentLobby.timestamp = Date.now();
@@ -941,6 +942,10 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
941
942
  _clientWelcome = obj;
942
943
  callEvent(events.csgoOnline, obj);
943
944
 
945
+ setTimeout(function () {
946
+ _clientWelcome.items = {};
947
+ }, 10000);
948
+
944
949
  if (isPartyRegister) {
945
950
  partyRegister();
946
951
  doSetInterval(
@@ -1421,6 +1426,11 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1421
1426
  },
1422
1427
  async friendsList() {
1423
1428
  callEvent(events.friendsList, getFriendList());
1429
+
1430
+ steamClient.myFriends = {};
1431
+ setTimeout(function () {
1432
+ steamClient.myFriends = {};
1433
+ }, 10000);
1424
1434
  },
1425
1435
  async gifts(gid, packageid, TimeCreated, TimeExpiration, TimeSent, TimeAcked, TimeRedeemed, RecipientAddress, SenderAddress, SenderName) {
1426
1436
  callEvent(events.gifts, {
@@ -1464,6 +1474,18 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1464
1474
  balance: balance,
1465
1475
  });
1466
1476
  },
1477
+ async licenses() {
1478
+ steamClient.licenses = [];
1479
+ setTimeout(function () {
1480
+ steamClient.licenses = [];
1481
+ }, 10000);
1482
+ },
1483
+ async users() {
1484
+ steamClient.users = {};
1485
+ setTimeout(function () {
1486
+ steamClient.users = {};
1487
+ }, 10000);
1488
+ },
1467
1489
  };
1468
1490
 
1469
1491
  const _chatEvents = {
@@ -2193,28 +2215,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2193
2215
 
2194
2216
  const encodedMessages = new SteamProto(SteamProtoType.CMsgGCCstrike15_v2_ClientRedeemFreeReward).protoEncode({
2195
2217
  items: itemIds,
2196
- redeemable_balance: 0,
2197
- generation_time: generation_time,
2198
2218
  });
2199
- steamClient.sendToGC(730, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward, {}, encodedMessages, function (payload) {
2200
- console.log(payload);
2201
- });
2202
-
2203
- setTimeout(function () {
2204
- steamClient._send(
2205
- {
2206
- msg: ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
2207
- proto: {
2208
- steamid: steamClient.steamID.getSteamID64(),
2209
- routing_appid: 730,
2210
- },
2211
- },
2212
- encodedMessages,
2213
- function (payload) {
2214
- console.log(payload);
2215
- },
2216
- );
2217
- }, 30000);
2219
+ steamClient.sendToGC(
2220
+ 730,
2221
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
2222
+ {
2223
+ steamid: steamClient.steamID.getSteamID64(),
2224
+ routing_appid: 730,
2225
+ },
2226
+ encodedMessages,
2227
+ function (payload) {
2228
+ console.log(payload);
2229
+ },
2230
+ );
2218
2231
  }
2219
2232
 
2220
2233
  function requestRankingInfo() {
package/_steamproto.js CHANGED
@@ -1,29 +1,29 @@
1
- import path from "path";
2
- import { loadProfos } from "./helpers/protos.js";
3
- import { fileURLToPath } from "url";
4
- const __filename = fileURLToPath(import.meta.url);
5
- const __dirname = path.dirname(__filename);
6
-
7
- export class SteamProto {
8
- constructor(proto) {
9
- this._proto = proto;
10
- }
11
-
12
- toProto() {
13
- const file = loadProfos(path.join(`${__dirname}/protos/`, this._proto.filename));
14
- const root = root.loadSync(file, {
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
- protoDecode(obj) {
26
- const protobuf = this.toProto();
27
- return protobuf.toObject(protobuf.decode(obj), { defaults: true });
28
- }
29
- }
1
+ import path from "path";
2
+ import { loadProfos } from "./helpers/protos.js";
3
+ import { fileURLToPath } from "url";
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+
7
+ export class SteamProto {
8
+ constructor(proto) {
9
+ this._proto = proto;
10
+ }
11
+
12
+ toProto() {
13
+ const file = loadProfos(path.join(`${__dirname}/protos/`, this._proto.filename));
14
+ const root = root.loadSync(file, {
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
+ protoDecode(obj) {
26
+ const protobuf = this.toProto();
27
+ return protobuf.toObject(protobuf.decode(obj), { defaults: true });
28
+ }
29
+ }
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
+ };