steamutils 1.4.36 → 1.4.38

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 (243) 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 +24 -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/engine_gcmessages.proto +1 -1
  26. package/protos/csgo/enums_clientserver.proto +1529 -1529
  27. package/protos/csgo/fatdemo.proto +125 -125
  28. package/protos/csgo/gameevents.proto +120 -120
  29. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  30. package/protos/csgo/gcsystemmsgs.proto +243 -243
  31. package/protos/csgo/netmessages.proto +618 -618
  32. package/protos/csgo/network_connection.proto +1 -1
  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.proto +1 -1
  38. package/protos/csgo/steammessages_base.proto +1 -1
  39. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  40. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  41. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  42. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  43. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  44. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  45. package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +1 -1
  46. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  47. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  48. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  49. package/protos/csgo/te.proto +259 -259
  50. package/protos/csgo/uifontfile_format.proto +13 -13
  51. package/protos/csgo/usercmd.proto +39 -39
  52. package/protos/csgo/usermessages.proto +752 -752
  53. package/protos/csgo/valveextensions.proto +1 -1
  54. package/protos/google/protobuf/descriptor.proto +281 -281
  55. package/protos/steam/clientmetrics.proto +45 -45
  56. package/protos/steam/content_manifest.proto +62 -62
  57. package/protos/steam/contenthubs.proto +41 -41
  58. package/protos/steam/encrypted_app_ticket.proto +10 -10
  59. package/protos/steam/enums.proto +501 -501
  60. package/protos/steam/enums_clientserver.proto +1508 -1508
  61. package/protos/steam/enums_productinfo.proto +14 -14
  62. package/protos/steam/htmlmessages.proto +1039 -1039
  63. package/protos/steam/offline_ticket.proto +8 -8
  64. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  65. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  66. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  67. package/protos/steam/steammessages_appoverview.proto +204 -204
  68. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  69. package/protos/steam/steammessages_base.proto +1 -1
  70. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  71. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  72. package/protos/steam/steammessages_client_objects.proto +649 -649
  73. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  74. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  75. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  76. package/protos/steam/steammessages_clientserver.proto +392 -392
  77. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  78. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  79. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  80. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  81. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  82. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  83. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  84. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  85. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  86. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  87. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  88. package/protos/steam/steammessages_clientsettings.proto +1 -1
  89. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  90. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  91. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  92. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  93. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  94. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  95. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  96. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  97. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  98. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  99. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  100. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  101. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  102. package/protos/steam/steammessages_hiddevices.proto +157 -157
  103. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  104. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  105. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  106. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  107. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  108. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  109. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  110. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  111. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  112. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  113. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  114. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  115. package/protos/steam/steammessages_remoteclient.proto +100 -100
  116. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  117. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  118. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  119. package/protos/steam/steammessages_remoteplay.proto +975 -975
  120. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  121. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  122. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  123. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  124. package/protos/steam/steammessages_siteserverui.proto +130 -130
  125. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  126. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  127. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  128. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  129. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  130. package/protos/steam/steammessages_unified_base.steamclient.proto +1 -1
  131. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  132. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  133. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  134. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  135. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  136. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  137. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  138. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  139. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  140. package/protos/steam/webuimessages_achievements.proto +29 -29
  141. package/protos/steam/webuimessages_base.proto +1 -1
  142. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  143. package/protos/steam/webuimessages_gamescope.proto +57 -57
  144. package/protos/steam/webuimessages_steamengine.proto +41 -41
  145. package/protos/steam/webuimessages_steamos.proto +114 -114
  146. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  147. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  148. package/protos/steam/webuimessages_transport.proto +22 -22
  149. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  150. package/protos/webui/common.proto +4024 -4024
  151. package/protos/webui/common_base.proto +1 -1
  152. package/protos/webui/service_accountcart.proto +153 -153
  153. package/protos/webui/service_accountlinking.proto +27 -27
  154. package/protos/webui/service_accountprivacy.proto +42 -42
  155. package/protos/webui/service_accountprivateapps.proto +34 -34
  156. package/protos/webui/service_auction.proto +97 -97
  157. package/protos/webui/service_authentication.proto +222 -222
  158. package/protos/webui/service_authenticationsupport.proto +74 -74
  159. package/protos/webui/service_broadcast.proto +562 -562
  160. package/protos/webui/service_chat.proto +11 -11
  161. package/protos/webui/service_chatroom.proto +810 -810
  162. package/protos/webui/service_chatusability.proto +107 -107
  163. package/protos/webui/service_checkout.proto +84 -84
  164. package/protos/webui/service_clan.proto +41 -41
  165. package/protos/webui/service_clanchatrooms.proto +25 -25
  166. package/protos/webui/service_clanfaqs.proto +202 -202
  167. package/protos/webui/service_clientcomm.proto +151 -151
  168. package/protos/webui/service_clientmetrics.proto +22 -22
  169. package/protos/webui/service_cloud.proto +222 -222
  170. package/protos/webui/service_cloudconfigstore.proto +51 -51
  171. package/protos/webui/service_cloudgaming.proto +30 -30
  172. package/protos/webui/service_community.proto +365 -365
  173. package/protos/webui/service_dailydeal.proto +89 -89
  174. package/protos/webui/service_econ.proto +134 -134
  175. package/protos/webui/service_embedded.proto +24 -24
  176. package/protos/webui/service_experimentservice.proto +6 -6
  177. package/protos/webui/service_familygroups.proto +355 -355
  178. package/protos/webui/service_fovasvideo.proto +15 -15
  179. package/protos/webui/service_friendmessages.proto +133 -133
  180. package/protos/webui/service_friendslist.proto +70 -70
  181. package/protos/webui/service_gamenotes.proto +15 -15
  182. package/protos/webui/service_gamerecording.proto +265 -265
  183. package/protos/webui/service_gamerecordingclip.proto +85 -85
  184. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  185. package/protos/webui/service_helprequestlogs.proto +16 -16
  186. package/protos/webui/service_loyaltyrewards.proto +252 -252
  187. package/protos/webui/service_marketingmessages.proto +215 -215
  188. package/protos/webui/service_mobileapp.proto +18 -18
  189. package/protos/webui/service_mobileauth.proto +24 -24
  190. package/protos/webui/service_mobiledevice.proto +26 -26
  191. package/protos/webui/service_mobileperaccount.proto +31 -31
  192. package/protos/webui/service_news.proto +110 -110
  193. package/protos/webui/service_parental.proto +258 -258
  194. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  195. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  196. package/protos/webui/service_phone.proto +51 -51
  197. package/protos/webui/service_physicalgoods.proto +15 -15
  198. package/protos/webui/service_player.proto +918 -918
  199. package/protos/webui/service_promotioneventinvites.proto +109 -109
  200. package/protos/webui/service_promotionplanning.proto +186 -186
  201. package/protos/webui/service_promotionstats.proto +23 -23
  202. package/protos/webui/service_publishedfile.proto +714 -714
  203. package/protos/webui/service_publishing.proto +200 -200
  204. package/protos/webui/service_quest.proto +127 -127
  205. package/protos/webui/service_salefeature.proto +373 -373
  206. package/protos/webui/service_saleitemrewards.proto +54 -54
  207. package/protos/webui/service_shoppingcart.proto +152 -152
  208. package/protos/webui/service_steamawards.proto +76 -76
  209. package/protos/webui/service_steamcharts.proto +75 -75
  210. package/protos/webui/service_steamengine.proto +36 -36
  211. package/protos/webui/service_steamlearn.proto +876 -876
  212. package/protos/webui/service_steamnotification.proto +73 -73
  213. package/protos/webui/service_steamtv.proto +495 -495
  214. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  215. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  216. package/protos/webui/service_storagedevicemanager.proto +104 -104
  217. package/protos/webui/service_store.proto +359 -359
  218. package/protos/webui/service_storeappsimilarity.proto +76 -76
  219. package/protos/webui/service_storebrowse.proto +103 -103
  220. package/protos/webui/service_storemarketing.proto +44 -44
  221. package/protos/webui/service_storequery.proto +103 -103
  222. package/protos/webui/service_storesales.proto +87 -87
  223. package/protos/webui/service_storetopsellers.proto +44 -44
  224. package/protos/webui/service_systemmanager.proto +11 -11
  225. package/protos/webui/service_test_transporterror.proto +6 -6
  226. package/protos/webui/service_transportauth.proto +17 -17
  227. package/protos/webui/service_transportvalidation.proto +69 -69
  228. package/protos/webui/service_twofactor.proto +170 -170
  229. package/protos/webui/service_useraccount.proto +142 -142
  230. package/protos/webui/service_usergameactivity.proto +34 -34
  231. package/protos/webui/service_usergamenotes.proto +70 -70
  232. package/protos/webui/service_usernews.proto +68 -68
  233. package/protos/webui/service_userreviews.proto +97 -97
  234. package/protos/webui/service_video.proto +50 -50
  235. package/protos/webui/service_videoclip.proto +62 -62
  236. package/protos/webui/service_voicechat.proto +139 -139
  237. package/protos/webui/service_webrtc.proto +52 -52
  238. package/remote.js +6784 -6784
  239. package/steamproto.js +6159 -6159
  240. package/utils.js +872 -872
  241. package/.idea/gbrowser_project.xml +0 -11
  242. package/.idea/git_toolbox_blame.xml +0 -6
  243. 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();
@@ -1464,6 +1465,16 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
1464
1465
  balance: balance,
1465
1466
  });
1466
1467
  },
1468
+ async licenses() {
1469
+ setTimeout(function () {
1470
+ steamClient.licenses = [];
1471
+ }, 1000);
1472
+ },
1473
+ async users() {
1474
+ setTimeout(function () {
1475
+ steamClient.users = {};
1476
+ }, 1000);
1477
+ },
1467
1478
  };
1468
1479
 
1469
1480
  const _chatEvents = {
@@ -2193,28 +2204,19 @@ function SteamClient({ username, password, cookie, clientJsToken, isAutoRequestF
2193
2204
 
2194
2205
  const encodedMessages = new SteamProto(SteamProtoType.CMsgGCCstrike15_v2_ClientRedeemFreeReward).protoEncode({
2195
2206
  items: itemIds,
2196
- redeemable_balance: 0,
2197
- generation_time: generation_time,
2198
- });
2199
- steamClient.sendToGC(730, ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward, {}, encodedMessages, function (payload) {
2200
- console.log(payload);
2201
2207
  });
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);
2208
+ steamClient.sendToGC(
2209
+ 730,
2210
+ ESteamProto.ECsgoGCMsg.k_EMsgGCCStrike15_v2_ClientRedeemFreeReward,
2211
+ {
2212
+ steamid: steamClient.steamID.getSteamID64(),
2213
+ routing_appid: 730,
2214
+ },
2215
+ encodedMessages,
2216
+ function (payload) {
2217
+ console.log(payload);
2218
+ },
2219
+ );
2218
2220
  }
2219
2221
 
2220
2222
  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
+ };