steamutils 1.4.90 → 1.4.92

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 +1 -0
  2. package/.idea/deployment.xml +14 -0
  3. package/.prettierrc.json +3 -3
  4. package/SteamClient.js +13 -6
  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 +518 -518
  10. package/create_proto.js +96 -96
  11. package/create_remote_file.js +153 -153
  12. package/full_steamproto.js +34 -34
  13. package/helpers/protos.js +48 -48
  14. package/index.js +7776 -7776
  15. package/package.json +1 -1
  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_usermessages.proto +592 -592
  24. package/protos/csgo/demo.proto +165 -165
  25. package/protos/csgo/econ_gcmessages.proto +219 -219
  26. package/protos/csgo/enums_clientserver.proto +1529 -1529
  27. package/protos/csgo/fatdemo.proto +125 -125
  28. package/protos/csgo/gameevents.proto +120 -120
  29. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  30. package/protos/csgo/gcsystemmsgs.proto +243 -243
  31. package/protos/csgo/netmessages.proto +618 -618
  32. package/protos/csgo/networkbasetypes.proto +246 -246
  33. package/protos/csgo/networksystem_protomessages.proto +17 -17
  34. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  35. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  36. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  37. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  38. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  39. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  40. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  41. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  42. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  43. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  44. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  45. package/protos/csgo/te.proto +259 -259
  46. package/protos/csgo/uifontfile_format.proto +13 -13
  47. package/protos/csgo/usercmd.proto +39 -39
  48. package/protos/csgo/usermessages.proto +752 -752
  49. package/protos/google/protobuf/descriptor.proto +281 -281
  50. package/protos/steam/clientmetrics.proto +45 -45
  51. package/protos/steam/content_manifest.proto +62 -62
  52. package/protos/steam/contenthubs.proto +41 -41
  53. package/protos/steam/encrypted_app_ticket.proto +10 -10
  54. package/protos/steam/enums.proto +501 -501
  55. package/protos/steam/enums_clientserver.proto +1508 -1508
  56. package/protos/steam/enums_productinfo.proto +14 -14
  57. package/protos/steam/htmlmessages.proto +1039 -1039
  58. package/protos/steam/offline_ticket.proto +8 -8
  59. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  60. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  61. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  62. package/protos/steam/steammessages_appoverview.proto +204 -204
  63. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  64. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  65. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  66. package/protos/steam/steammessages_client_objects.proto +649 -649
  67. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  68. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  69. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  70. package/protos/steam/steammessages_clientserver.proto +392 -392
  71. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  72. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  73. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  74. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  75. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  76. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  77. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  78. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  79. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  80. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  81. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  82. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  83. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  84. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  85. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  86. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  87. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  88. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  89. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  90. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  91. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  92. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  93. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  94. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  95. package/protos/steam/steammessages_hiddevices.proto +157 -157
  96. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  97. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  98. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  99. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  100. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  101. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  102. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  103. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  104. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  105. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  106. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  107. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  108. package/protos/steam/steammessages_remoteclient.proto +100 -100
  109. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  110. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  111. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  112. package/protos/steam/steammessages_remoteplay.proto +975 -975
  113. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  114. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  115. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  116. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  117. package/protos/steam/steammessages_siteserverui.proto +130 -130
  118. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  119. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  120. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  121. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  122. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  123. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  124. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  125. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  126. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  127. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  128. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  129. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  130. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  131. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  132. package/protos/steam/webuimessages_achievements.proto +29 -29
  133. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  134. package/protos/steam/webuimessages_gamescope.proto +57 -57
  135. package/protos/steam/webuimessages_steamengine.proto +41 -41
  136. package/protos/steam/webuimessages_steamos.proto +114 -114
  137. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  138. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  139. package/protos/steam/webuimessages_transport.proto +22 -22
  140. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  141. package/protos/webui/common.proto +4024 -4024
  142. package/protos/webui/service_accountcart.proto +153 -153
  143. package/protos/webui/service_accountlinking.proto +27 -27
  144. package/protos/webui/service_accountprivacy.proto +42 -42
  145. package/protos/webui/service_accountprivateapps.proto +34 -34
  146. package/protos/webui/service_auction.proto +97 -97
  147. package/protos/webui/service_authentication.proto +222 -222
  148. package/protos/webui/service_authenticationsupport.proto +74 -74
  149. package/protos/webui/service_broadcast.proto +562 -562
  150. package/protos/webui/service_chat.proto +11 -11
  151. package/protos/webui/service_chatroom.proto +810 -810
  152. package/protos/webui/service_chatusability.proto +107 -107
  153. package/protos/webui/service_checkout.proto +84 -84
  154. package/protos/webui/service_clan.proto +41 -41
  155. package/protos/webui/service_clanchatrooms.proto +25 -25
  156. package/protos/webui/service_clanfaqs.proto +202 -202
  157. package/protos/webui/service_clientcomm.proto +151 -151
  158. package/protos/webui/service_clientmetrics.proto +22 -22
  159. package/protos/webui/service_cloud.proto +222 -222
  160. package/protos/webui/service_cloudconfigstore.proto +51 -51
  161. package/protos/webui/service_cloudgaming.proto +30 -30
  162. package/protos/webui/service_community.proto +365 -365
  163. package/protos/webui/service_dailydeal.proto +89 -89
  164. package/protos/webui/service_econ.proto +134 -134
  165. package/protos/webui/service_embedded.proto +24 -24
  166. package/protos/webui/service_experimentservice.proto +6 -6
  167. package/protos/webui/service_familygroups.proto +355 -355
  168. package/protos/webui/service_fovasvideo.proto +15 -15
  169. package/protos/webui/service_friendmessages.proto +133 -133
  170. package/protos/webui/service_friendslist.proto +70 -70
  171. package/protos/webui/service_gamenotes.proto +15 -15
  172. package/protos/webui/service_gamerecording.proto +265 -265
  173. package/protos/webui/service_gamerecordingclip.proto +85 -85
  174. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  175. package/protos/webui/service_helprequestlogs.proto +16 -16
  176. package/protos/webui/service_loyaltyrewards.proto +252 -252
  177. package/protos/webui/service_marketingmessages.proto +215 -215
  178. package/protos/webui/service_mobileapp.proto +18 -18
  179. package/protos/webui/service_mobileauth.proto +24 -24
  180. package/protos/webui/service_mobiledevice.proto +26 -26
  181. package/protos/webui/service_mobileperaccount.proto +31 -31
  182. package/protos/webui/service_news.proto +110 -110
  183. package/protos/webui/service_parental.proto +258 -258
  184. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  185. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  186. package/protos/webui/service_phone.proto +51 -51
  187. package/protos/webui/service_physicalgoods.proto +15 -15
  188. package/protos/webui/service_player.proto +918 -918
  189. package/protos/webui/service_promotioneventinvites.proto +109 -109
  190. package/protos/webui/service_promotionplanning.proto +186 -186
  191. package/protos/webui/service_promotionstats.proto +23 -23
  192. package/protos/webui/service_publishedfile.proto +714 -714
  193. package/protos/webui/service_publishing.proto +200 -200
  194. package/protos/webui/service_quest.proto +127 -127
  195. package/protos/webui/service_salefeature.proto +373 -373
  196. package/protos/webui/service_saleitemrewards.proto +54 -54
  197. package/protos/webui/service_shoppingcart.proto +152 -152
  198. package/protos/webui/service_steamawards.proto +76 -76
  199. package/protos/webui/service_steamcharts.proto +75 -75
  200. package/protos/webui/service_steamengine.proto +36 -36
  201. package/protos/webui/service_steamlearn.proto +876 -876
  202. package/protos/webui/service_steamnotification.proto +73 -73
  203. package/protos/webui/service_steamtv.proto +495 -495
  204. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  205. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  206. package/protos/webui/service_storagedevicemanager.proto +104 -104
  207. package/protos/webui/service_store.proto +359 -359
  208. package/protos/webui/service_storeappsimilarity.proto +76 -76
  209. package/protos/webui/service_storebrowse.proto +103 -103
  210. package/protos/webui/service_storemarketing.proto +44 -44
  211. package/protos/webui/service_storequery.proto +103 -103
  212. package/protos/webui/service_storesales.proto +87 -87
  213. package/protos/webui/service_storetopsellers.proto +44 -44
  214. package/protos/webui/service_systemmanager.proto +11 -11
  215. package/protos/webui/service_test_transporterror.proto +6 -6
  216. package/protos/webui/service_transportauth.proto +17 -17
  217. package/protos/webui/service_transportvalidation.proto +69 -69
  218. package/protos/webui/service_twofactor.proto +170 -170
  219. package/protos/webui/service_useraccount.proto +142 -142
  220. package/protos/webui/service_usergameactivity.proto +34 -34
  221. package/protos/webui/service_usergamenotes.proto +70 -70
  222. package/protos/webui/service_usernews.proto +68 -68
  223. package/protos/webui/service_userreviews.proto +97 -97
  224. package/protos/webui/service_video.proto +50 -50
  225. package/protos/webui/service_videoclip.proto +62 -62
  226. package/protos/webui/service_voicechat.proto +139 -139
  227. package/protos/webui/service_webrtc.proto +52 -52
  228. package/remote.js +2203 -2203
  229. package/steamproto.js +1 -1
  230. package/utils.js +987 -987
  231. package/.idea/gbrowser_project.xml +0 -11
  232. package/.idea/git_toolbox_blame.xml +0 -6
  233. 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
@@ -92,7 +92,6 @@ export const SteamClientEvents = {
92
92
  licenses: "licenses",
93
93
  logOff: "logOff",
94
94
  };
95
- let isSendingFriendMessages = false;
96
95
 
97
96
  function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense = true, isFakeGameScore = true, isPartyRegister = true, isAutoPlay = false, isInvisible = false, autoAcceptTradeRequest = false, autoReconnect = true, games = null }) {
98
97
  let steamClient = null;
@@ -2302,6 +2301,7 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2302
2301
  }
2303
2302
  }
2304
2303
 
2304
+ let isSendingFriendMessages = false;
2305
2305
  async function _execMessageQueue() {
2306
2306
  if (isLogOff) {
2307
2307
  clearMessageQueue();
@@ -2408,11 +2408,11 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2408
2408
  // }
2409
2409
  }
2410
2410
 
2411
- async function playCSGO() {
2411
+ async function _playCSGO(option = {}) {
2412
2412
  games = 730;
2413
- isInvisible = false;
2414
- isAutoPlay = true;
2415
- isPartyRegister = false;
2413
+ isInvisible = option.isInvisible ?? false;
2414
+ isAutoPlay = option.isAutoPlay ?? true;
2415
+ isPartyRegister = option.isPartyRegister ?? false;
2416
2416
 
2417
2417
  let timeout = null;
2418
2418
  const eventIds = [];
@@ -2895,7 +2895,14 @@ function SteamClient({ username, cookie, clientJsToken, isAutoRequestFreeLicense
2895
2895
  return null;
2896
2896
  },
2897
2897
  autoRequestFreeLicense,
2898
- playCSGO,
2898
+ async playCSGO() {
2899
+ return await _playCSGO();
2900
+ },
2901
+ async playCSGOSilent() {
2902
+ return await _playCSGO({
2903
+ isInvisible: true,
2904
+ });
2905
+ },
2899
2906
  doSetInterval,
2900
2907
  doClearIntervals,
2901
2908
  gamesPlayed,
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
+ };