steamutils 1.4.77 → 1.4.79

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 +0 -1
  2. package/.idea/gbrowser_project.xml +11 -0
  3. package/.idea/git_toolbox_blame.xml +6 -0
  4. package/.idea/git_toolbox_prj.xml +15 -0
  5. package/.prettierrc.json +3 -3
  6. package/SteamClient.js +30 -2
  7. package/_steamproto.js +33 -33
  8. package/axios.js +84 -84
  9. package/bufferHelpers.js +115 -115
  10. package/cheerio.js +103 -103
  11. package/const.js +458 -458
  12. package/create_proto.js +96 -96
  13. package/create_remote_file.js +146 -74
  14. package/full_steamproto.js +33 -33
  15. package/helpers/protos.js +48 -48
  16. package/index.js +7781 -7781
  17. package/package.json +1 -1
  18. package/protos/csgo/base_gcmessages.proto +553 -553
  19. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  20. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  21. package/protos/csgo/clientmessages.proto +48 -48
  22. package/protos/csgo/connectionless_netmessages.proto +17 -17
  23. package/protos/csgo/cs_gameevents.proto +35 -35
  24. package/protos/csgo/cs_usercmd.proto +34 -34
  25. package/protos/csgo/cstrike15_gcmessages.proto +1431 -1431
  26. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  27. package/protos/csgo/demo.proto +165 -165
  28. package/protos/csgo/econ_gcmessages.proto +219 -219
  29. package/protos/csgo/enums_clientserver.proto +1529 -1529
  30. package/protos/csgo/fatdemo.proto +125 -125
  31. package/protos/csgo/gameevents.proto +120 -120
  32. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  33. package/protos/csgo/gcsystemmsgs.proto +243 -243
  34. package/protos/csgo/netmessages.proto +618 -618
  35. package/protos/csgo/networkbasetypes.proto +246 -246
  36. package/protos/csgo/networksystem_protomessages.proto +17 -17
  37. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  38. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  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/steamnetworkingsockets_messages.proto +205 -205
  46. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  47. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  48. package/protos/csgo/te.proto +259 -259
  49. package/protos/csgo/uifontfile_format.proto +13 -13
  50. package/protos/csgo/usercmd.proto +39 -39
  51. package/protos/csgo/usermessages.proto +752 -752
  52. package/protos/google/protobuf/descriptor.proto +281 -281
  53. package/protos/steam/clientmetrics.proto +45 -45
  54. package/protos/steam/content_manifest.proto +62 -62
  55. package/protos/steam/contenthubs.proto +41 -41
  56. package/protos/steam/encrypted_app_ticket.proto +10 -10
  57. package/protos/steam/enums.proto +501 -501
  58. package/protos/steam/enums_clientserver.proto +1508 -1508
  59. package/protos/steam/enums_productinfo.proto +14 -14
  60. package/protos/steam/htmlmessages.proto +1039 -1039
  61. package/protos/steam/offline_ticket.proto +8 -8
  62. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  63. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  64. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  65. package/protos/steam/steammessages_appoverview.proto +204 -204
  66. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  67. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  68. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  69. package/protos/steam/steammessages_client_objects.proto +649 -649
  70. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  71. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  72. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  73. package/protos/steam/steammessages_clientserver.proto +392 -392
  74. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  75. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  76. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  77. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  78. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  79. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  80. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  81. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  82. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  83. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  84. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  85. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  86. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  87. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  88. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  89. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  90. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  91. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  92. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  93. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  94. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  95. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  96. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  97. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  98. package/protos/steam/steammessages_hiddevices.proto +157 -157
  99. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  100. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  101. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  102. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  103. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  104. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  105. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  106. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  107. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  108. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  109. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  110. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  111. package/protos/steam/steammessages_remoteclient.proto +100 -100
  112. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  113. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  114. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  115. package/protos/steam/steammessages_remoteplay.proto +975 -975
  116. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  117. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  118. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  119. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  120. package/protos/steam/steammessages_siteserverui.proto +130 -130
  121. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  122. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  123. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  124. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  125. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  126. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  127. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  128. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  129. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  130. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  131. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  132. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  133. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  134. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  135. package/protos/steam/webuimessages_achievements.proto +29 -29
  136. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  137. package/protos/steam/webuimessages_gamescope.proto +57 -57
  138. package/protos/steam/webuimessages_steamengine.proto +41 -41
  139. package/protos/steam/webuimessages_steamos.proto +114 -114
  140. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  141. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  142. package/protos/steam/webuimessages_transport.proto +22 -22
  143. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  144. package/protos/webui/common.proto +4024 -4024
  145. package/protos/webui/service_accountcart.proto +153 -153
  146. package/protos/webui/service_accountlinking.proto +27 -27
  147. package/protos/webui/service_accountprivacy.proto +42 -42
  148. package/protos/webui/service_accountprivateapps.proto +34 -34
  149. package/protos/webui/service_auction.proto +97 -97
  150. package/protos/webui/service_authentication.proto +222 -222
  151. package/protos/webui/service_authenticationsupport.proto +74 -74
  152. package/protos/webui/service_broadcast.proto +562 -562
  153. package/protos/webui/service_chat.proto +11 -11
  154. package/protos/webui/service_chatroom.proto +810 -810
  155. package/protos/webui/service_chatusability.proto +107 -107
  156. package/protos/webui/service_checkout.proto +84 -84
  157. package/protos/webui/service_clan.proto +41 -41
  158. package/protos/webui/service_clanchatrooms.proto +25 -25
  159. package/protos/webui/service_clanfaqs.proto +202 -202
  160. package/protos/webui/service_clientcomm.proto +151 -151
  161. package/protos/webui/service_clientmetrics.proto +22 -22
  162. package/protos/webui/service_cloud.proto +222 -222
  163. package/protos/webui/service_cloudconfigstore.proto +51 -51
  164. package/protos/webui/service_cloudgaming.proto +30 -30
  165. package/protos/webui/service_community.proto +365 -365
  166. package/protos/webui/service_dailydeal.proto +89 -89
  167. package/protos/webui/service_econ.proto +134 -134
  168. package/protos/webui/service_embedded.proto +24 -24
  169. package/protos/webui/service_experimentservice.proto +6 -6
  170. package/protos/webui/service_familygroups.proto +355 -355
  171. package/protos/webui/service_fovasvideo.proto +15 -15
  172. package/protos/webui/service_friendmessages.proto +133 -133
  173. package/protos/webui/service_friendslist.proto +70 -70
  174. package/protos/webui/service_gamenotes.proto +15 -15
  175. package/protos/webui/service_gamerecording.proto +265 -265
  176. package/protos/webui/service_gamerecordingclip.proto +85 -85
  177. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  178. package/protos/webui/service_helprequestlogs.proto +16 -16
  179. package/protos/webui/service_loyaltyrewards.proto +252 -252
  180. package/protos/webui/service_marketingmessages.proto +215 -215
  181. package/protos/webui/service_mobileapp.proto +18 -18
  182. package/protos/webui/service_mobileauth.proto +24 -24
  183. package/protos/webui/service_mobiledevice.proto +26 -26
  184. package/protos/webui/service_mobileperaccount.proto +31 -31
  185. package/protos/webui/service_news.proto +110 -110
  186. package/protos/webui/service_parental.proto +258 -258
  187. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  188. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  189. package/protos/webui/service_phone.proto +51 -51
  190. package/protos/webui/service_physicalgoods.proto +15 -15
  191. package/protos/webui/service_player.proto +918 -918
  192. package/protos/webui/service_promotioneventinvites.proto +109 -109
  193. package/protos/webui/service_promotionplanning.proto +186 -186
  194. package/protos/webui/service_promotionstats.proto +23 -23
  195. package/protos/webui/service_publishedfile.proto +714 -714
  196. package/protos/webui/service_publishing.proto +200 -200
  197. package/protos/webui/service_quest.proto +127 -127
  198. package/protos/webui/service_salefeature.proto +373 -373
  199. package/protos/webui/service_saleitemrewards.proto +54 -54
  200. package/protos/webui/service_shoppingcart.proto +152 -152
  201. package/protos/webui/service_steamawards.proto +76 -76
  202. package/protos/webui/service_steamcharts.proto +75 -75
  203. package/protos/webui/service_steamengine.proto +36 -36
  204. package/protos/webui/service_steamlearn.proto +876 -876
  205. package/protos/webui/service_steamnotification.proto +73 -73
  206. package/protos/webui/service_steamtv.proto +495 -495
  207. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  208. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  209. package/protos/webui/service_storagedevicemanager.proto +104 -104
  210. package/protos/webui/service_store.proto +359 -359
  211. package/protos/webui/service_storeappsimilarity.proto +76 -76
  212. package/protos/webui/service_storebrowse.proto +103 -103
  213. package/protos/webui/service_storemarketing.proto +44 -44
  214. package/protos/webui/service_storequery.proto +103 -103
  215. package/protos/webui/service_storesales.proto +87 -87
  216. package/protos/webui/service_storetopsellers.proto +44 -44
  217. package/protos/webui/service_systemmanager.proto +11 -11
  218. package/protos/webui/service_test_transporterror.proto +6 -6
  219. package/protos/webui/service_transportauth.proto +17 -17
  220. package/protos/webui/service_transportvalidation.proto +69 -69
  221. package/protos/webui/service_twofactor.proto +170 -170
  222. package/protos/webui/service_useraccount.proto +142 -142
  223. package/protos/webui/service_usergameactivity.proto +34 -34
  224. package/protos/webui/service_usergamenotes.proto +70 -70
  225. package/protos/webui/service_usernews.proto +68 -68
  226. package/protos/webui/service_userreviews.proto +97 -97
  227. package/protos/webui/service_video.proto +50 -50
  228. package/protos/webui/service_videoclip.proto +62 -62
  229. package/protos/webui/service_voicechat.proto +139 -139
  230. package/protos/webui/service_webrtc.proto +52 -52
  231. package/remote.js +2287 -8378
  232. package/steamproto.js +1 -1
  233. package/utils.js +986 -986
  234. package/.idea/deployment.xml +0 -14
@@ -2,7 +2,6 @@
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" />
6
5
  </HTMLCodeStyleSettings>
7
6
  <JSCodeStyleSettings version="0">
8
7
  <option name="FORCE_SEMICOLON_STYLE" value="true" />
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GBrowserProjectService"><![CDATA[{
4
+ "tabs": [
5
+ {
6
+ "url": "http://google.com.vn",
7
+ "createdAt": "2024-08-14T16:14:35Z"
8
+ }
9
+ ]
10
+ }]]></component>
11
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxBlameSettings">
4
+ <option name="version" value="2" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxProjectSettings">
4
+ <option name="commitMessageIssueKeyValidationOverride">
5
+ <BoolValueOverride>
6
+ <option name="enabled" value="true" />
7
+ </BoolValueOverride>
8
+ </option>
9
+ <option name="commitMessageValidationEnabledOverride">
10
+ <BoolValueOverride>
11
+ <option name="enabled" value="true" />
12
+ </BoolValueOverride>
13
+ </option>
14
+ </component>
15
+ </project>
package/.prettierrc.json CHANGED
@@ -1,3 +1,3 @@
1
- {
2
- "printWidth": 1000
3
- }
1
+ {
2
+ "printWidth": 1000
3
+ }
package/SteamClient.js CHANGED
@@ -465,7 +465,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
465
465
  getCookies() ||
466
466
  new Promise((resolve) => {
467
467
  onEvent({
468
- name: "webSession",
468
+ name: SteamClientEvents.webSession,
469
469
  callback: function (webSession) {
470
470
  resolve(webSession?.cookies);
471
471
  },
@@ -840,6 +840,34 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
840
840
  steam_launcher: 0,
841
841
  }),
842
842
  );
843
+
844
+ const [clientHello, clientWelcome] = await Promise.all([
845
+ new Promise((resolve) => {
846
+ onEvent({
847
+ name: SteamClientEvents.csgoClientHello,
848
+ callback: function (clientHello) {
849
+ resolve(clientHello);
850
+ },
851
+ once: true,
852
+ timeout: 30000,
853
+ });
854
+ }),
855
+ new Promise((resolve) => {
856
+ onEvent({
857
+ name: SteamClientEvents.csgoOnline,
858
+ callback: function (clientWelcome) {
859
+ resolve(clientWelcome);
860
+ },
861
+ once: true,
862
+ timeout: 30000,
863
+ });
864
+ }),
865
+ ]);
866
+
867
+ return {
868
+ clientHello,
869
+ clientWelcome,
870
+ };
843
871
  }
844
872
 
845
873
  async function requestCoPlays() {
@@ -2528,7 +2556,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2528
2556
  steamClient.gamesPlayed(processedApps);
2529
2557
  if (processedApps.some((app) => parseInt(app.game_id) === 730)) {
2530
2558
  await sleep(500);
2531
- await sendHello();
2559
+ sendHello();
2532
2560
  }
2533
2561
  updateFakeGameScore();
2534
2562
 
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
+ };