steamutils 1.4.77 → 1.4.79

Sign up to get free protection for your applications and to get access to all the features.
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
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
+ })();