steamutils 1.4.83 → 1.4.85

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 (233) 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 +18 -12
  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 +518 -518
  12. package/create_proto.js +96 -96
  13. package/create_remote_file.js +146 -146
  14. package/full_steamproto.js +34 -34
  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_usermessages.proto +592 -592
  26. package/protos/csgo/demo.proto +165 -165
  27. package/protos/csgo/econ_gcmessages.proto +219 -219
  28. package/protos/csgo/enums_clientserver.proto +1529 -1529
  29. package/protos/csgo/fatdemo.proto +125 -125
  30. package/protos/csgo/gameevents.proto +120 -120
  31. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  32. package/protos/csgo/gcsystemmsgs.proto +243 -243
  33. package/protos/csgo/netmessages.proto +618 -618
  34. package/protos/csgo/networkbasetypes.proto +246 -246
  35. package/protos/csgo/networksystem_protomessages.proto +17 -17
  36. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  37. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  38. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  39. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  40. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  41. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  42. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  43. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  44. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  45. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  46. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  47. package/protos/csgo/te.proto +259 -259
  48. package/protos/csgo/uifontfile_format.proto +13 -13
  49. package/protos/csgo/usercmd.proto +39 -39
  50. package/protos/csgo/usermessages.proto +752 -752
  51. package/protos/google/protobuf/descriptor.proto +281 -281
  52. package/protos/steam/clientmetrics.proto +45 -45
  53. package/protos/steam/content_manifest.proto +62 -62
  54. package/protos/steam/contenthubs.proto +41 -41
  55. package/protos/steam/encrypted_app_ticket.proto +10 -10
  56. package/protos/steam/enums.proto +501 -501
  57. package/protos/steam/enums_clientserver.proto +1508 -1508
  58. package/protos/steam/enums_productinfo.proto +14 -14
  59. package/protos/steam/htmlmessages.proto +1039 -1039
  60. package/protos/steam/offline_ticket.proto +8 -8
  61. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  62. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  63. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  64. package/protos/steam/steammessages_appoverview.proto +204 -204
  65. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  66. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  67. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  68. package/protos/steam/steammessages_client_objects.proto +649 -649
  69. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  70. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  71. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  72. package/protos/steam/steammessages_clientserver.proto +392 -392
  73. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  74. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  75. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  76. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  77. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  78. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  79. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  80. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  81. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  82. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  83. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  84. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  85. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  86. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  87. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  88. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  89. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  90. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  91. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  92. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  93. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  94. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  95. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  96. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  97. package/protos/steam/steammessages_hiddevices.proto +157 -157
  98. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  99. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  100. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  101. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  102. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  103. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  104. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  105. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  106. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  107. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  108. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  109. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  110. package/protos/steam/steammessages_remoteclient.proto +100 -100
  111. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  112. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  113. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  114. package/protos/steam/steammessages_remoteplay.proto +975 -975
  115. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  116. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  117. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  118. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  119. package/protos/steam/steammessages_siteserverui.proto +130 -130
  120. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  121. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  122. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  123. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  124. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  125. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  126. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  127. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  128. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  129. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  130. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  131. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  132. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  133. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  134. package/protos/steam/webuimessages_achievements.proto +29 -29
  135. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  136. package/protos/steam/webuimessages_gamescope.proto +57 -57
  137. package/protos/steam/webuimessages_steamengine.proto +41 -41
  138. package/protos/steam/webuimessages_steamos.proto +114 -114
  139. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  140. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  141. package/protos/steam/webuimessages_transport.proto +22 -22
  142. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  143. package/protos/webui/common.proto +4024 -4024
  144. package/protos/webui/service_accountcart.proto +153 -153
  145. package/protos/webui/service_accountlinking.proto +27 -27
  146. package/protos/webui/service_accountprivacy.proto +42 -42
  147. package/protos/webui/service_accountprivateapps.proto +34 -34
  148. package/protos/webui/service_auction.proto +97 -97
  149. package/protos/webui/service_authentication.proto +222 -222
  150. package/protos/webui/service_authenticationsupport.proto +74 -74
  151. package/protos/webui/service_broadcast.proto +562 -562
  152. package/protos/webui/service_chat.proto +11 -11
  153. package/protos/webui/service_chatroom.proto +810 -810
  154. package/protos/webui/service_chatusability.proto +107 -107
  155. package/protos/webui/service_checkout.proto +84 -84
  156. package/protos/webui/service_clan.proto +41 -41
  157. package/protos/webui/service_clanchatrooms.proto +25 -25
  158. package/protos/webui/service_clanfaqs.proto +202 -202
  159. package/protos/webui/service_clientcomm.proto +151 -151
  160. package/protos/webui/service_clientmetrics.proto +22 -22
  161. package/protos/webui/service_cloud.proto +222 -222
  162. package/protos/webui/service_cloudconfigstore.proto +51 -51
  163. package/protos/webui/service_cloudgaming.proto +30 -30
  164. package/protos/webui/service_community.proto +365 -365
  165. package/protos/webui/service_dailydeal.proto +89 -89
  166. package/protos/webui/service_econ.proto +134 -134
  167. package/protos/webui/service_embedded.proto +24 -24
  168. package/protos/webui/service_experimentservice.proto +6 -6
  169. package/protos/webui/service_familygroups.proto +355 -355
  170. package/protos/webui/service_fovasvideo.proto +15 -15
  171. package/protos/webui/service_friendmessages.proto +133 -133
  172. package/protos/webui/service_friendslist.proto +70 -70
  173. package/protos/webui/service_gamenotes.proto +15 -15
  174. package/protos/webui/service_gamerecording.proto +265 -265
  175. package/protos/webui/service_gamerecordingclip.proto +85 -85
  176. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  177. package/protos/webui/service_helprequestlogs.proto +16 -16
  178. package/protos/webui/service_loyaltyrewards.proto +252 -252
  179. package/protos/webui/service_marketingmessages.proto +215 -215
  180. package/protos/webui/service_mobileapp.proto +18 -18
  181. package/protos/webui/service_mobileauth.proto +24 -24
  182. package/protos/webui/service_mobiledevice.proto +26 -26
  183. package/protos/webui/service_mobileperaccount.proto +31 -31
  184. package/protos/webui/service_news.proto +110 -110
  185. package/protos/webui/service_parental.proto +258 -258
  186. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  187. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  188. package/protos/webui/service_phone.proto +51 -51
  189. package/protos/webui/service_physicalgoods.proto +15 -15
  190. package/protos/webui/service_player.proto +918 -918
  191. package/protos/webui/service_promotioneventinvites.proto +109 -109
  192. package/protos/webui/service_promotionplanning.proto +186 -186
  193. package/protos/webui/service_promotionstats.proto +23 -23
  194. package/protos/webui/service_publishedfile.proto +714 -714
  195. package/protos/webui/service_publishing.proto +200 -200
  196. package/protos/webui/service_quest.proto +127 -127
  197. package/protos/webui/service_salefeature.proto +373 -373
  198. package/protos/webui/service_saleitemrewards.proto +54 -54
  199. package/protos/webui/service_shoppingcart.proto +152 -152
  200. package/protos/webui/service_steamawards.proto +76 -76
  201. package/protos/webui/service_steamcharts.proto +75 -75
  202. package/protos/webui/service_steamengine.proto +36 -36
  203. package/protos/webui/service_steamlearn.proto +876 -876
  204. package/protos/webui/service_steamnotification.proto +73 -73
  205. package/protos/webui/service_steamtv.proto +495 -495
  206. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  207. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  208. package/protos/webui/service_storagedevicemanager.proto +104 -104
  209. package/protos/webui/service_store.proto +359 -359
  210. package/protos/webui/service_storeappsimilarity.proto +76 -76
  211. package/protos/webui/service_storebrowse.proto +103 -103
  212. package/protos/webui/service_storemarketing.proto +44 -44
  213. package/protos/webui/service_storequery.proto +103 -103
  214. package/protos/webui/service_storesales.proto +87 -87
  215. package/protos/webui/service_storetopsellers.proto +44 -44
  216. package/protos/webui/service_systemmanager.proto +11 -11
  217. package/protos/webui/service_test_transporterror.proto +6 -6
  218. package/protos/webui/service_transportauth.proto +17 -17
  219. package/protos/webui/service_transportvalidation.proto +69 -69
  220. package/protos/webui/service_twofactor.proto +170 -170
  221. package/protos/webui/service_useraccount.proto +142 -142
  222. package/protos/webui/service_usergameactivity.proto +34 -34
  223. package/protos/webui/service_usergamenotes.proto +70 -70
  224. package/protos/webui/service_usernews.proto +68 -68
  225. package/protos/webui/service_userreviews.proto +97 -97
  226. package/protos/webui/service_video.proto +50 -50
  227. package/protos/webui/service_videoclip.proto +62 -62
  228. package/protos/webui/service_voicechat.proto +139 -139
  229. package/protos/webui/service_webrtc.proto +52 -52
  230. package/remote.js +2287 -2287
  231. package/steamproto.js +1 -1
  232. package/utils.js +1 -1
  233. 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
@@ -249,7 +249,9 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
249
249
  onAnyCallbacks.forEach((cb) => cb?.({ eventName: name, data }));
250
250
  _events.forEach((e) => {
251
251
  clearTimeout(e.timeout);
252
- e.callback?.(data);
252
+ e.callback?.(data, {
253
+ steamId: getSteamId(),
254
+ });
253
255
  });
254
256
  _.remove(_events, (e) => !e || e.once);
255
257
  }
@@ -373,13 +375,8 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
373
375
  delete intervalRandoms[key];
374
376
  }
375
377
 
376
- function getSteamIdFromCookie() {
377
- const regex = /steamLoginSecure=(\d+)/;
378
- return cookie?.match?.(regex)?.[1];
379
- }
380
-
381
378
  function getAccountInfoName() {
382
- return [getSteamIdFromCookie(), steamClient?.accountInfo?.name, steamClient?._logOnDetails?.account_name].filter(Boolean).join(" - ");
379
+ return [getSteamId(), steamClient?.accountInfo?.name, steamClient?._logOnDetails?.account_name].filter(Boolean).join(" - ");
383
380
  }
384
381
 
385
382
  function getPersonaName() {
@@ -2820,6 +2817,19 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2820
2817
  return result;
2821
2818
  }
2822
2819
 
2820
+ function getSteamId() {
2821
+ const steamId = steamClient?.steamID?.getSteamID64?.();
2822
+ if (steamId) {
2823
+ return steamId;
2824
+ }
2825
+
2826
+ const regex = /steamLoginSecure=(\d+)/;
2827
+ const steamIdFromCookie = cookie?.match?.(regex)?.[1];
2828
+ if (steamIdFromCookie) {
2829
+ return steamIdFromCookie;
2830
+ }
2831
+ }
2832
+
2823
2833
  return {
2824
2834
  init,
2825
2835
  partySearch,
@@ -2970,11 +2980,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2970
2980
  return await steamClient.requestFreeLicense(...args);
2971
2981
  } catch (e) {}
2972
2982
  },
2973
- getSteamId() {
2974
- try {
2975
- return steamClient.steamID.getSteamID64();
2976
- } catch (e) {}
2977
- },
2983
+ getSteamId,
2978
2984
  getLastTimePartyRegister() {
2979
2985
  return lastTimePartyRegister;
2980
2986
  },
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
+ };