steamutils 1.4.77 → 1.4.78

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 +3106 -3106
  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
package/create_proto.js CHANGED
@@ -1,96 +1,96 @@
1
- import helpers, { loadProfos } from "./helpers/protos.js";
2
- import path from "path";
3
- import { fileURLToPath } from "url";
4
- import Protobuf from "protobufjs";
5
- import fs from "fs";
6
-
7
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
- const shortfileName = "steamproto.js";
9
- const fullfileName = "full_steamproto.js";
10
-
11
- function main() {
12
- const rootDir = `${__dirname}/protos/`;
13
- const Protos = helpers([
14
- {
15
- name: "csgo",
16
- protos: loadProfos(rootDir),
17
- },
18
- ]);
19
-
20
- const content = fs.readFileSync("_steamproto.js", { encoding: "utf8", flag: "r" });
21
-
22
- fs.writeFileSync(shortfileName, `${content}\nexport const SteamProtoType = {};export const ESteamProto = {};`);
23
- fs.writeFileSync(fullfileName, `${content}\nexport const SteamProtoType = {};export const ESteamProto = {};`);
24
-
25
- for (const key in Protos.csgo) {
26
- let csgo = Protos.csgo[key];
27
- if (typeof csgo === "function" || typeof csgo === "boolean" || typeof csgo === "string" || Array.isArray(csgo) || csgo === null) {
28
- continue;
29
- }
30
-
31
- if (csgo instanceof Protobuf.Type) {
32
- const fields = {};
33
- for (const fieldsKey in csgo.fields) {
34
- fields[fieldsKey] = fieldsKey;
35
- }
36
-
37
- const filename = path.relative(rootDir, csgo.filename);
38
- const text = `SteamProtoType.${key} = ${JSON.stringify({ name: csgo.name, filename })};`;
39
- fs.appendFileSync(fullfileName, text);
40
- if (hasKeyDir(key, __dirname)) {
41
- fs.appendFileSync(shortfileName, text);
42
- }
43
- } else {
44
- for (const csgoKey in csgo) {
45
- if (csgo[csgoKey] instanceof Protobuf.Enum) {
46
- const values = csgo[csgoKey].values;
47
- fs.appendFileSync(fullfileName, `ESteamProto.${csgoKey} = ${JSON.stringify(values)};`);
48
-
49
- for (const valuesKey in values) {
50
- if (!hasKeyDir(`${csgoKey}.${valuesKey}`, __dirname)) {
51
- delete values[valuesKey];
52
- }
53
- }
54
- if (Object.keys(values).length) {
55
- fs.appendFileSync(shortfileName, `ESteamProto.${csgoKey} = ${JSON.stringify(values)};`);
56
- }
57
- }
58
- }
59
- }
60
- }
61
- }
62
-
63
- const ignoreFiles = ["create_remote_file.js", shortfileName, fullfileName];
64
-
65
- export function hasKeyDir(key, dir) {
66
- const currentDir = fs.readdirSync(dir);
67
- for (const currentFile of currentDir) {
68
- if (!["SteamClient.js", "index.js"].includes(currentFile)) {
69
- continue;
70
- }
71
-
72
- const _dir = path.join(dir, currentFile);
73
- const isDirectory = fs.lstatSync(_dir).isDirectory();
74
- if (isDirectory) {
75
- if (currentFile !== "node_modules") {
76
- if (hasKeyDir(key, _dir)) {
77
- return true;
78
- }
79
- }
80
- } else {
81
- if (currentFile.endsWith(".js") && !ignoreFiles.includes(currentFile)) {
82
- if (hasKeyFile(key, _dir)) {
83
- return true;
84
- }
85
- }
86
- }
87
- }
88
- return false;
89
- }
90
-
91
- export function hasKeyFile(key, file) {
92
- const content = fs.readFileSync(file);
93
- return content.includes(key);
94
- }
95
-
96
- main();
1
+ import helpers, { loadProfos } from "./helpers/protos.js";
2
+ import path from "path";
3
+ import { fileURLToPath } from "url";
4
+ import Protobuf from "protobufjs";
5
+ import fs from "fs";
6
+
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ const shortfileName = "steamproto.js";
9
+ const fullfileName = "full_steamproto.js";
10
+
11
+ function main() {
12
+ const rootDir = `${__dirname}/protos/`;
13
+ const Protos = helpers([
14
+ {
15
+ name: "csgo",
16
+ protos: loadProfos(rootDir),
17
+ },
18
+ ]);
19
+
20
+ const content = fs.readFileSync("_steamproto.js", { encoding: "utf8", flag: "r" });
21
+
22
+ fs.writeFileSync(shortfileName, `${content}\nexport const SteamProtoType = {};export const ESteamProto = {};`);
23
+ fs.writeFileSync(fullfileName, `${content}\nexport const SteamProtoType = {};export const ESteamProto = {};`);
24
+
25
+ for (const key in Protos.csgo) {
26
+ let csgo = Protos.csgo[key];
27
+ if (typeof csgo === "function" || typeof csgo === "boolean" || typeof csgo === "string" || Array.isArray(csgo) || csgo === null) {
28
+ continue;
29
+ }
30
+
31
+ if (csgo instanceof Protobuf.Type) {
32
+ const fields = {};
33
+ for (const fieldsKey in csgo.fields) {
34
+ fields[fieldsKey] = fieldsKey;
35
+ }
36
+
37
+ const filename = path.relative(rootDir, csgo.filename);
38
+ const text = `SteamProtoType.${key} = ${JSON.stringify({ name: csgo.name, filename })};`;
39
+ fs.appendFileSync(fullfileName, text);
40
+ if (hasKeyDir(key, __dirname)) {
41
+ fs.appendFileSync(shortfileName, text);
42
+ }
43
+ } else {
44
+ for (const csgoKey in csgo) {
45
+ if (csgo[csgoKey] instanceof Protobuf.Enum) {
46
+ const values = csgo[csgoKey].values;
47
+ fs.appendFileSync(fullfileName, `ESteamProto.${csgoKey} = ${JSON.stringify(values)};`);
48
+
49
+ for (const valuesKey in values) {
50
+ if (!hasKeyDir(`${csgoKey}.${valuesKey}`, __dirname)) {
51
+ delete values[valuesKey];
52
+ }
53
+ }
54
+ if (Object.keys(values).length) {
55
+ fs.appendFileSync(shortfileName, `ESteamProto.${csgoKey} = ${JSON.stringify(values)};`);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ const ignoreFiles = ["create_remote_file.js", shortfileName, fullfileName];
64
+
65
+ export function hasKeyDir(key, dir) {
66
+ const currentDir = fs.readdirSync(dir);
67
+ for (const currentFile of currentDir) {
68
+ if (!["SteamClient.js", "index.js"].includes(currentFile)) {
69
+ continue;
70
+ }
71
+
72
+ const _dir = path.join(dir, currentFile);
73
+ const isDirectory = fs.lstatSync(_dir).isDirectory();
74
+ if (isDirectory) {
75
+ if (currentFile !== "node_modules") {
76
+ if (hasKeyDir(key, _dir)) {
77
+ return true;
78
+ }
79
+ }
80
+ } else {
81
+ if (currentFile.endsWith(".js") && !ignoreFiles.includes(currentFile)) {
82
+ if (hasKeyFile(key, _dir)) {
83
+ return true;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ return false;
89
+ }
90
+
91
+ export function hasKeyFile(key, file) {
92
+ const content = fs.readFileSync(file);
93
+ return content.includes(key);
94
+ }
95
+
96
+ main();
@@ -1,74 +1,146 @@
1
- import SteamUser from "./index.js";
2
- import _ from "lodash";
3
-
4
- (async function () {
5
- const xx = SteamUser;
6
-
7
- let json = "";
8
-
9
- function doWrite(user, is_static) {
10
- for (const methodName of Object.getOwnPropertyNames(user)) {
11
- if (methodName === "constructor" || methodName === "length" || methodName === "name" || methodName === "prototype" || methodName === "RequestXML_TooManyRequests" || methodName === "MAX_RETRY") {
12
- continue;
13
- }
14
- const fnString = user[methodName].toString().trim();
15
- const async = "async";
16
- // const async = fnString.startsWith("async") ? "async" : "";
17
- let params = fnString.split("(")[1].split(")")[0];
18
- const paramsList = params.split(",");
19
- for (let i = 0; i < paramsList.length; i++) {
20
- if (paramsList[i].includes("=")) {
21
- paramsList[i] = paramsList[i].split("=")[0].trim();
22
- }
23
- }
24
- params = paramsList.join(", ").trim();
25
- if (params.startsWith("{") && !params.endsWith("}")) {
26
- params = `${params}}`;
27
- }
28
-
29
- json += `${`
30
- ${is_static ? "static " : ""} ${async} ${methodName}(${params}){
31
- const __params = [${params}];
32
- if(__params.length === 1 && __params[0] === undefined){
33
- __params.length = 0
34
- }
35
- let __cookies = this._cookies;
36
- if (__cookies) {
37
- if (!Array.isArray(__cookies)) {
38
- __cookies = [__cookies];
39
- }
40
- __cookies = __cookies.map(function (cookie) {
41
- return cookie.toString();
42
- });
43
- }
44
-
45
- for (let i = 0; i < 5; i++) {
46
- try {
47
- const response = await axios.post(getAppURL(), {
48
- method: "${methodName}",
49
- params: __params,
50
- cookies: __cookies,
51
- is_static: ${!!is_static}
52
- });
53
-
54
- if (!response || response.error) {
55
- if (response?.message) {
56
- console.error(response?.message);
57
- }
58
- continue;
59
- }
60
-
61
- return response.data?.result;
62
- } catch (e) {
63
- /* empty */
64
- }
65
- }
66
- }`.trim()}\n`;
67
- }
68
- }
69
-
70
- doWrite(SteamUser.prototype, false);
71
- doWrite(SteamUser, true);
72
-
73
- console.log("");
74
- })();
1
+ import SteamUser from "./index.js";
2
+ import fs from "fs";
3
+
4
+ (async function () {
5
+ let content = "";
6
+
7
+ function doWrite(user, is_static) {
8
+ for (const methodName of Object.getOwnPropertyNames(user)) {
9
+ if (methodName === "constructor" || methodName === "length" || methodName === "name" || methodName === "prototype" || methodName === "RequestXML_TooManyRequests" || methodName === "MAX_RETRY") {
10
+ continue;
11
+ }
12
+ const fnString = user[methodName].toString().trim();
13
+ const async = "async";
14
+ // const async = fnString.startsWith("async") ? "async" : "";
15
+ let params = fnString.split("(")[1].split(")")[0];
16
+ const paramsList = params.split(",");
17
+ for (let i = 0; i < paramsList.length; i++) {
18
+ if (paramsList[i].includes("=")) {
19
+ paramsList[i] = paramsList[i].split("=")[0].trim();
20
+ }
21
+ }
22
+ params = paramsList.join(", ").trim();
23
+ if (params.startsWith("{") && !params.endsWith("}")) {
24
+ params = `${params}}`;
25
+ }
26
+
27
+ content += `${`
28
+ ${is_static ? "static " : ""} ${async} ${methodName}(${params}){
29
+ const {__params, __cookies} = formatParams([${params}] ${is_static ? "" : ", this._cookies"} );
30
+ const config = {
31
+ method: "${methodName}",
32
+ params: __params,${is_static ? "" : "cookies: __cookies,"}
33
+ is_static: ${!!is_static}
34
+ }
35
+ return await doRequest(config)
36
+ }`.trim()}\n`;
37
+ }
38
+ }
39
+
40
+ doWrite(SteamUser.prototype, false);
41
+ doWrite(SteamUser, true);
42
+
43
+ const fileContent = `
44
+
45
+ import axios from "axios";
46
+ import SteamUser, { ELanguage } from "./index.js";
47
+ import CookieManager from "./CookieManager.js";
48
+
49
+ function getAppURL() {
50
+ if (!RemoteSteamUser.__appIndex) {
51
+ RemoteSteamUser.__appIndex = 0;
52
+ }
53
+ RemoteSteamUser.__appIndex++;
54
+ if (RemoteSteamUser.__appIndex >= RemoteSteamUser.__apps.length) {
55
+ RemoteSteamUser.__appIndex = 0;
56
+ }
57
+ return RemoteSteamUser.__apps[RemoteSteamUser.__appIndex];
58
+ }
59
+
60
+ function formatParams(__params, __cookies) {
61
+ if (__params.length === 1 && __params[0] === undefined) {
62
+ __params.length = 0;
63
+ }
64
+ if (__cookies) {
65
+ if (!Array.isArray(__cookies)) {
66
+ __cookies = [__cookies];
67
+ }
68
+ __cookies = __cookies.map(function (cookie) {
69
+ return cookie.toString();
70
+ });
71
+ }
72
+
73
+ return {
74
+ __params,
75
+ __cookies,
76
+ };
77
+ }
78
+
79
+ const MAX_RETRY = 5;
80
+
81
+ async function doRequest(config){
82
+ for (let i = 0; i < MAX_RETRY; i++) {
83
+ const url = getAppURL();
84
+
85
+ try {
86
+ const response = await axios.post(url, config);
87
+
88
+ if (!response || !response.data) {
89
+ continue;
90
+ }
91
+
92
+ return response.data?.result;
93
+ } catch (e) {
94
+ /* empty */
95
+ }
96
+ }
97
+ }
98
+
99
+ export default class RemoteSteamUser {
100
+ constructor(cookies, refreshCookie, onRefreshCookie) {
101
+ if (!Array.isArray(cookies)) {
102
+ cookies = [cookies];
103
+ }
104
+ this._refreshCookie = refreshCookie;
105
+ this._onRefreshCookie = onRefreshCookie;
106
+ this._cookies = cookies.map(function (cookie) {
107
+ return new CookieManager(cookie?.cookie || cookie);
108
+ });
109
+ const timezoneOffset = new Date().getTimezoneOffset() * -1 * 60 + ",0";
110
+ for (const cookie of this._cookies) {
111
+ cookie.setCookie("timezoneOffset", timezoneOffset);
112
+
113
+ let { steamMachineAuth, steamLoginSecure, steamRememberLogin, steamId, miniprofile, sessionid } = SteamUser.parseCookie(cookie.toString());
114
+
115
+ if (!sessionid) {
116
+ sessionid = SteamUser.generateSessionID();
117
+ cookie.setCookie("sessionid", sessionid);
118
+ }
119
+
120
+ this._sessionId = sessionid;
121
+ this._customURL = null;
122
+ this._steamIdUser = steamId;
123
+ this._miniProfileUser = miniprofile;
124
+ this._steamMachineAuth = steamMachineAuth;
125
+ this._steamLoginSecure = steamLoginSecure;
126
+ this._steamRememberLogin = steamRememberLogin;
127
+ }
128
+
129
+ this.setSteamLanguage(ELanguage.english);
130
+
131
+ if (!this._steamIdUser) {
132
+ console.error("Invalid cookie. Missing steamId");
133
+ }
134
+ }
135
+
136
+ ${content}
137
+
138
+ }
139
+
140
+
141
+ `;
142
+
143
+ fs.writeFileSync("./remote.js", fileContent.trim());
144
+
145
+ console.log("");
146
+ })();