steamutils 1.4.69 → 1.4.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/.idea/codeStyles/Project.xml +1 -0
  2. package/.idea/deployment.xml +14 -0
  3. package/.prettierrc.json +3 -3
  4. package/SteamClient.js +10 -5
  5. package/_steamproto.js +33 -33
  6. package/axios.js +84 -84
  7. package/bufferHelpers.js +115 -115
  8. package/cheerio.js +103 -103
  9. package/const.js +458 -458
  10. package/create_proto.js +96 -96
  11. package/create_remote_file.js +66 -66
  12. package/full_steamproto.js +35 -0
  13. package/helpers/protos.js +48 -48
  14. package/index.js +7764 -7764
  15. package/package.json +6 -6
  16. package/protos/csgo/base_gcmessages.proto +553 -553
  17. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  18. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  19. package/protos/csgo/clientmessages.proto +48 -48
  20. package/protos/csgo/connectionless_netmessages.proto +17 -17
  21. package/protos/csgo/cs_gameevents.proto +35 -35
  22. package/protos/csgo/cs_usercmd.proto +34 -34
  23. package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
  24. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  25. package/protos/csgo/demo.proto +165 -165
  26. package/protos/csgo/econ_gcmessages.proto +219 -219
  27. package/protos/csgo/enums_clientserver.proto +1529 -1529
  28. package/protos/csgo/fatdemo.proto +125 -125
  29. package/protos/csgo/gameevents.proto +120 -120
  30. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  31. package/protos/csgo/gcsystemmsgs.proto +243 -243
  32. package/protos/csgo/netmessages.proto +618 -618
  33. package/protos/csgo/networkbasetypes.proto +246 -246
  34. package/protos/csgo/networksystem_protomessages.proto +17 -17
  35. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  36. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  37. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  38. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  39. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  40. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  41. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  42. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  43. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  44. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  45. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  46. package/protos/csgo/te.proto +259 -259
  47. package/protos/csgo/uifontfile_format.proto +13 -13
  48. package/protos/csgo/usercmd.proto +39 -39
  49. package/protos/csgo/usermessages.proto +752 -752
  50. package/protos/google/protobuf/descriptor.proto +281 -281
  51. package/protos/steam/clientmetrics.proto +45 -45
  52. package/protos/steam/content_manifest.proto +62 -62
  53. package/protos/steam/contenthubs.proto +41 -41
  54. package/protos/steam/encrypted_app_ticket.proto +10 -10
  55. package/protos/steam/enums.proto +501 -501
  56. package/protos/steam/enums_clientserver.proto +1508 -1508
  57. package/protos/steam/enums_productinfo.proto +14 -14
  58. package/protos/steam/htmlmessages.proto +1039 -1039
  59. package/protos/steam/offline_ticket.proto +8 -8
  60. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  61. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  62. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  63. package/protos/steam/steammessages_appoverview.proto +204 -204
  64. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  65. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  66. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  67. package/protos/steam/steammessages_client_objects.proto +649 -649
  68. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  69. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  70. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  71. package/protos/steam/steammessages_clientserver.proto +392 -392
  72. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  73. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  74. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  75. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  76. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  77. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  78. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  79. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  80. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  81. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  82. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  83. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  84. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  85. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  86. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  87. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  88. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  89. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  90. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  91. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  92. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  93. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  94. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  95. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  96. package/protos/steam/steammessages_hiddevices.proto +157 -157
  97. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  98. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  99. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  100. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  101. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  102. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  103. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  104. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  105. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  106. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  107. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  108. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  109. package/protos/steam/steammessages_remoteclient.proto +100 -100
  110. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  111. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  112. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  113. package/protos/steam/steammessages_remoteplay.proto +975 -975
  114. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  115. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  116. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  117. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  118. package/protos/steam/steammessages_siteserverui.proto +130 -130
  119. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  120. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  121. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  122. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  123. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  124. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  125. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  126. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  127. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  128. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  129. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  130. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  131. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  132. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  133. package/protos/steam/webuimessages_achievements.proto +29 -29
  134. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  135. package/protos/steam/webuimessages_gamescope.proto +57 -57
  136. package/protos/steam/webuimessages_steamengine.proto +41 -41
  137. package/protos/steam/webuimessages_steamos.proto +114 -114
  138. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  139. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  140. package/protos/steam/webuimessages_transport.proto +22 -22
  141. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  142. package/protos/webui/common.proto +4024 -4024
  143. package/protos/webui/service_accountcart.proto +153 -153
  144. package/protos/webui/service_accountlinking.proto +27 -27
  145. package/protos/webui/service_accountprivacy.proto +42 -42
  146. package/protos/webui/service_accountprivateapps.proto +34 -34
  147. package/protos/webui/service_auction.proto +97 -97
  148. package/protos/webui/service_authentication.proto +222 -222
  149. package/protos/webui/service_authenticationsupport.proto +74 -74
  150. package/protos/webui/service_broadcast.proto +562 -562
  151. package/protos/webui/service_chat.proto +11 -11
  152. package/protos/webui/service_chatroom.proto +810 -810
  153. package/protos/webui/service_chatusability.proto +107 -107
  154. package/protos/webui/service_checkout.proto +84 -84
  155. package/protos/webui/service_clan.proto +41 -41
  156. package/protos/webui/service_clanchatrooms.proto +25 -25
  157. package/protos/webui/service_clanfaqs.proto +202 -202
  158. package/protos/webui/service_clientcomm.proto +151 -151
  159. package/protos/webui/service_clientmetrics.proto +22 -22
  160. package/protos/webui/service_cloud.proto +222 -222
  161. package/protos/webui/service_cloudconfigstore.proto +51 -51
  162. package/protos/webui/service_cloudgaming.proto +30 -30
  163. package/protos/webui/service_community.proto +365 -365
  164. package/protos/webui/service_dailydeal.proto +89 -89
  165. package/protos/webui/service_econ.proto +134 -134
  166. package/protos/webui/service_embedded.proto +24 -24
  167. package/protos/webui/service_experimentservice.proto +6 -6
  168. package/protos/webui/service_familygroups.proto +355 -355
  169. package/protos/webui/service_fovasvideo.proto +15 -15
  170. package/protos/webui/service_friendmessages.proto +133 -133
  171. package/protos/webui/service_friendslist.proto +70 -70
  172. package/protos/webui/service_gamenotes.proto +15 -15
  173. package/protos/webui/service_gamerecording.proto +265 -265
  174. package/protos/webui/service_gamerecordingclip.proto +85 -85
  175. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  176. package/protos/webui/service_helprequestlogs.proto +16 -16
  177. package/protos/webui/service_loyaltyrewards.proto +252 -252
  178. package/protos/webui/service_marketingmessages.proto +215 -215
  179. package/protos/webui/service_mobileapp.proto +18 -18
  180. package/protos/webui/service_mobileauth.proto +24 -24
  181. package/protos/webui/service_mobiledevice.proto +26 -26
  182. package/protos/webui/service_mobileperaccount.proto +31 -31
  183. package/protos/webui/service_news.proto +110 -110
  184. package/protos/webui/service_parental.proto +258 -258
  185. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  186. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  187. package/protos/webui/service_phone.proto +51 -51
  188. package/protos/webui/service_physicalgoods.proto +15 -15
  189. package/protos/webui/service_player.proto +918 -918
  190. package/protos/webui/service_promotioneventinvites.proto +109 -109
  191. package/protos/webui/service_promotionplanning.proto +186 -186
  192. package/protos/webui/service_promotionstats.proto +23 -23
  193. package/protos/webui/service_publishedfile.proto +714 -714
  194. package/protos/webui/service_publishing.proto +200 -200
  195. package/protos/webui/service_quest.proto +127 -127
  196. package/protos/webui/service_salefeature.proto +373 -373
  197. package/protos/webui/service_saleitemrewards.proto +54 -54
  198. package/protos/webui/service_shoppingcart.proto +152 -152
  199. package/protos/webui/service_steamawards.proto +76 -76
  200. package/protos/webui/service_steamcharts.proto +75 -75
  201. package/protos/webui/service_steamengine.proto +36 -36
  202. package/protos/webui/service_steamlearn.proto +876 -876
  203. package/protos/webui/service_steamnotification.proto +73 -73
  204. package/protos/webui/service_steamtv.proto +495 -495
  205. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  206. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  207. package/protos/webui/service_storagedevicemanager.proto +104 -104
  208. package/protos/webui/service_store.proto +359 -359
  209. package/protos/webui/service_storeappsimilarity.proto +76 -76
  210. package/protos/webui/service_storebrowse.proto +103 -103
  211. package/protos/webui/service_storemarketing.proto +44 -44
  212. package/protos/webui/service_storequery.proto +103 -103
  213. package/protos/webui/service_storesales.proto +87 -87
  214. package/protos/webui/service_storetopsellers.proto +44 -44
  215. package/protos/webui/service_systemmanager.proto +11 -11
  216. package/protos/webui/service_test_transporterror.proto +6 -6
  217. package/protos/webui/service_transportauth.proto +17 -17
  218. package/protos/webui/service_transportvalidation.proto +69 -69
  219. package/protos/webui/service_twofactor.proto +170 -170
  220. package/protos/webui/service_useraccount.proto +142 -142
  221. package/protos/webui/service_usergameactivity.proto +34 -34
  222. package/protos/webui/service_usergamenotes.proto +70 -70
  223. package/protos/webui/service_usernews.proto +68 -68
  224. package/protos/webui/service_userreviews.proto +97 -97
  225. package/protos/webui/service_video.proto +50 -50
  226. package/protos/webui/service_videoclip.proto +62 -62
  227. package/protos/webui/service_voicechat.proto +139 -139
  228. package/protos/webui/service_webrtc.proto +52 -52
  229. package/remote.js +6784 -6784
  230. package/steamproto.js +34 -34
  231. package/utils.js +986 -986
  232. package/.idea/gbrowser_project.xml +0 -11
  233. package/.idea/git_toolbox_blame.xml +0 -6
  234. package/.idea/git_toolbox_prj.xml +0 -15
@@ -2,6 +2,7 @@
2
2
  <code_scheme name="Project" version="173">
3
3
  <HTMLCodeStyleSettings>
4
4
  <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
+ <option name="HTML_ENFORCE_QUOTES" value="true" />
5
6
  </HTMLCodeStyleSettings>
6
7
  <JSCodeStyleSettings version="0">
7
8
  <option name="FORCE_SEMICOLON_STYLE" value="true" />
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
4
+ <serverData>
5
+ <paths name="botnatridiscord">
6
+ <serverdata>
7
+ <mappings>
8
+ <mapping local="$PROJECT_DIR$" web="/" />
9
+ </mappings>
10
+ </serverdata>
11
+ </paths>
12
+ </serverData>
13
+ </component>
14
+ </project>
package/.prettierrc.json CHANGED
@@ -1,3 +1,3 @@
1
- {
2
- "printWidth": 1000
3
- }
1
+ {
2
+ "printWidth": 1000
3
+ }
package/SteamClient.js CHANGED
@@ -388,8 +388,13 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
388
388
  delete intervalRandoms[key];
389
389
  }
390
390
 
391
+ function getSteamIdFromCookie() {
392
+ const regex = /steamLoginSecure=(\d+)/;
393
+ return cookie?.match?.(regex)?.[1];
394
+ }
395
+
391
396
  function getAccountInfoName() {
392
- return [steamClient?.accountInfo?.name, steamClient?._logOnDetails?.account_name].filter(Boolean).join(" - ");
397
+ return [getSteamIdFromCookie(), steamClient?.accountInfo?.name, steamClient?._logOnDetails?.account_name].filter(Boolean).join(" - ");
393
398
  }
394
399
 
395
400
  function getPersonaName() {
@@ -1995,7 +2000,9 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
1995
2000
  try {
1996
2001
  isLogOff = false;
1997
2002
  if (!steamClient) {
1998
- steamClient = new NodeSteamUser();
2003
+ steamClient = new NodeSteamUser({
2004
+ machineIdType: 4,
2005
+ });
1999
2006
  bindEvent();
2000
2007
  }
2001
2008
  steamClient.logOn({
@@ -2126,9 +2133,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2126
2133
 
2127
2134
  if (steamClient) {
2128
2135
  steamClient.logOff();
2129
- await sleep(5000);
2130
-
2131
- steamClient._connection?.end(true);
2136
+ await sleep(30000);
2132
2137
 
2133
2138
  function cleanSteamClient(obj, key) {
2134
2139
  const value = obj[key];
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
+ };