steamutils 1.5.21 → 1.5.23

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 (231) 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/_steamproto.js +39 -39
  5. package/axios.js +84 -84
  6. package/bufferHelpers.js +115 -115
  7. package/cheerio.js +103 -103
  8. package/const.js +1 -0
  9. package/create_proto.js +96 -96
  10. package/full_steamproto.js +39 -39
  11. package/helpers/protos.js +48 -48
  12. package/index.js +3 -4
  13. package/package.json +1 -1
  14. package/protos/csgo/base_gcmessages.proto +553 -553
  15. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  16. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  17. package/protos/csgo/clientmessages.proto +48 -48
  18. package/protos/csgo/connectionless_netmessages.proto +17 -17
  19. package/protos/csgo/cs_gameevents.proto +35 -35
  20. package/protos/csgo/cs_usercmd.proto +34 -34
  21. package/protos/csgo/cstrike15_usermessages.proto +592 -592
  22. package/protos/csgo/demo.proto +165 -165
  23. package/protos/csgo/econ_gcmessages.proto +219 -219
  24. package/protos/csgo/enums_clientserver.proto +1529 -1529
  25. package/protos/csgo/fatdemo.proto +125 -125
  26. package/protos/csgo/gameevents.proto +120 -120
  27. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  28. package/protos/csgo/gcsystemmsgs.proto +243 -243
  29. package/protos/csgo/netmessages.proto +618 -618
  30. package/protos/csgo/networkbasetypes.proto +246 -246
  31. package/protos/csgo/networksystem_protomessages.proto +17 -17
  32. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  33. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  34. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  35. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  36. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  37. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  38. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  39. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  40. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  41. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  42. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  43. package/protos/csgo/te.proto +259 -259
  44. package/protos/csgo/uifontfile_format.proto +13 -13
  45. package/protos/csgo/usercmd.proto +39 -39
  46. package/protos/csgo/usermessages.proto +752 -752
  47. package/protos/google/protobuf/descriptor.proto +281 -281
  48. package/protos/steam/clientmetrics.proto +45 -45
  49. package/protos/steam/content_manifest.proto +62 -62
  50. package/protos/steam/contenthubs.proto +41 -41
  51. package/protos/steam/encrypted_app_ticket.proto +10 -10
  52. package/protos/steam/enums.proto +501 -501
  53. package/protos/steam/enums_clientserver.proto +1508 -1508
  54. package/protos/steam/enums_productinfo.proto +14 -14
  55. package/protos/steam/htmlmessages.proto +1039 -1039
  56. package/protos/steam/offline_ticket.proto +8 -8
  57. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  58. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  59. package/protos/steam/steammessages_accounthardware.steamclient.proto +167 -167
  60. package/protos/steam/steammessages_appoverview.proto +204 -204
  61. package/protos/steam/steammessages_auth.steamclient.proto +375 -375
  62. package/protos/steam/steammessages_broadcast.steamclient.proto +618 -618
  63. package/protos/steam/steammessages_chat.steamclient.proto +1070 -1070
  64. package/protos/steam/steammessages_client_objects.proto +649 -649
  65. package/protos/steam/steammessages_clientlanp2p.proto +43 -43
  66. package/protos/steam/steammessages_clientmetrics.steamclient.proto +192 -192
  67. package/protos/steam/steammessages_clientnotificationtypes.proto +250 -250
  68. package/protos/steam/steammessages_clientserver.proto +392 -392
  69. package/protos/steam/steammessages_clientserver_2.proto +771 -771
  70. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  71. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  72. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  73. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  74. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  75. package/protos/steam/steammessages_clientserver_mms.proto +233 -233
  76. package/protos/steam/steammessages_clientserver_ucm.proto +207 -207
  77. package/protos/steam/steammessages_clientserver_uds.proto +125 -125
  78. package/protos/steam/steammessages_clientserver_ufs.proto +45 -45
  79. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  80. package/protos/steam/steammessages_cloud.steamclient.proto +422 -422
  81. package/protos/steam/steammessages_contentsystem.steamclient.proto +123 -123
  82. package/protos/steam/steammessages_credentials.steamclient.proto +96 -96
  83. package/protos/steam/steammessages_datapublisher.steamclient.proto +102 -102
  84. package/protos/steam/steammessages_depotbuilder.steamclient.proto +99 -99
  85. package/protos/steam/steammessages_deviceauth.steamclient.proto +169 -169
  86. package/protos/steam/steammessages_econ.steamclient.proto +137 -137
  87. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -441
  88. package/protos/steam/steammessages_friendmessages.steamclient.proto +141 -141
  89. package/protos/steam/steammessages_gamenetworking.steamclient.proto +25 -25
  90. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  91. package/protos/steam/steammessages_gamenotifications.steamclient.proto +131 -131
  92. package/protos/steam/steammessages_gameservers.steamclient.proto +136 -136
  93. package/protos/steam/steammessages_hiddevices.proto +157 -157
  94. package/protos/steam/steammessages_inventory.steamclient.proto +172 -172
  95. package/protos/steam/steammessages_linkfilter.steamclient.proto +39 -39
  96. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +29 -29
  97. package/protos/steam/steammessages_market.steamclient.proto +22 -22
  98. package/protos/steam/steammessages_marketingmessages.steamclient.proto +273 -273
  99. package/protos/steam/steammessages_offline.steamclient.proto +33 -33
  100. package/protos/steam/steammessages_parental.steamclient.proto +262 -262
  101. package/protos/steam/steammessages_parties.steamclient.proto +75 -75
  102. package/protos/steam/steammessages_partnerapps.steamclient.proto +106 -106
  103. package/protos/steam/steammessages_player.steamclient.proto +915 -915
  104. package/protos/steam/steammessages_publishedfile.steamclient.proto +737 -737
  105. package/protos/steam/steammessages_qms.steamclient.proto +111 -111
  106. package/protos/steam/steammessages_remoteclient.proto +100 -100
  107. package/protos/steam/steammessages_remoteclient_discovery.proto +244 -244
  108. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +31 -31
  109. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  110. package/protos/steam/steammessages_remoteplay.proto +975 -975
  111. package/protos/steam/steammessages_secrets.steamclient.proto +35 -35
  112. package/protos/steam/steammessages_shader.steamclient.proto +89 -89
  113. package/protos/steam/steammessages_site_license.steamclient.proto +103 -103
  114. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  115. package/protos/steam/steammessages_siteserverui.proto +130 -130
  116. package/protos/steam/steammessages_steamtv.steamclient.proto +533 -533
  117. package/protos/steam/steammessages_store.steamclient.proto +404 -404
  118. package/protos/steam/steammessages_storebrowse.steamclient.proto +457 -457
  119. package/protos/steam/steammessages_timedtrial.steamclient.proto +40 -40
  120. package/protos/steam/steammessages_twofactor.steamclient.proto +157 -157
  121. package/protos/steam/steammessages_unified_test.steamclient.proto +51 -51
  122. package/protos/steam/steammessages_useraccount.steamclient.proto +211 -211
  123. package/protos/steam/steammessages_vac.steamclient.proto +37 -37
  124. package/protos/steam/steammessages_video.steamclient.proto +68 -68
  125. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  126. package/protos/steam/steammessages_workshop.steamclient.proto +19 -19
  127. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  128. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  129. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  130. package/protos/steam/webuimessages_achievements.proto +29 -29
  131. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  132. package/protos/steam/webuimessages_gamescope.proto +57 -57
  133. package/protos/steam/webuimessages_steamengine.proto +41 -41
  134. package/protos/steam/webuimessages_steamos.proto +114 -114
  135. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  136. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  137. package/protos/steam/webuimessages_transport.proto +22 -22
  138. package/protos/steam/webuimessages_transportvalidation.proto +111 -111
  139. package/protos/webui/common.proto +4024 -4024
  140. package/protos/webui/service_accountcart.proto +153 -153
  141. package/protos/webui/service_accountlinking.proto +27 -27
  142. package/protos/webui/service_accountprivacy.proto +42 -42
  143. package/protos/webui/service_accountprivateapps.proto +34 -34
  144. package/protos/webui/service_auction.proto +97 -97
  145. package/protos/webui/service_authentication.proto +222 -222
  146. package/protos/webui/service_authenticationsupport.proto +74 -74
  147. package/protos/webui/service_broadcast.proto +562 -562
  148. package/protos/webui/service_chat.proto +11 -11
  149. package/protos/webui/service_chatroom.proto +810 -810
  150. package/protos/webui/service_chatusability.proto +107 -107
  151. package/protos/webui/service_checkout.proto +84 -84
  152. package/protos/webui/service_clan.proto +41 -41
  153. package/protos/webui/service_clanchatrooms.proto +25 -25
  154. package/protos/webui/service_clanfaqs.proto +202 -202
  155. package/protos/webui/service_clientcomm.proto +151 -151
  156. package/protos/webui/service_clientmetrics.proto +22 -22
  157. package/protos/webui/service_cloud.proto +222 -222
  158. package/protos/webui/service_cloudconfigstore.proto +51 -51
  159. package/protos/webui/service_cloudgaming.proto +30 -30
  160. package/protos/webui/service_community.proto +365 -365
  161. package/protos/webui/service_dailydeal.proto +89 -89
  162. package/protos/webui/service_econ.proto +134 -134
  163. package/protos/webui/service_embedded.proto +24 -24
  164. package/protos/webui/service_experimentservice.proto +6 -6
  165. package/protos/webui/service_familygroups.proto +355 -355
  166. package/protos/webui/service_fovasvideo.proto +15 -15
  167. package/protos/webui/service_friendmessages.proto +133 -133
  168. package/protos/webui/service_friendslist.proto +70 -70
  169. package/protos/webui/service_gamenotes.proto +15 -15
  170. package/protos/webui/service_gamerecording.proto +265 -265
  171. package/protos/webui/service_gamerecordingclip.proto +85 -85
  172. package/protos/webui/service_gamerecordingdebug.proto +52 -52
  173. package/protos/webui/service_helprequestlogs.proto +16 -16
  174. package/protos/webui/service_loyaltyrewards.proto +252 -252
  175. package/protos/webui/service_marketingmessages.proto +215 -215
  176. package/protos/webui/service_mobileapp.proto +18 -18
  177. package/protos/webui/service_mobileauth.proto +24 -24
  178. package/protos/webui/service_mobiledevice.proto +26 -26
  179. package/protos/webui/service_mobileperaccount.proto +31 -31
  180. package/protos/webui/service_news.proto +110 -110
  181. package/protos/webui/service_parental.proto +258 -258
  182. package/protos/webui/service_partnermembershipinvite.proto +34 -34
  183. package/protos/webui/service_partnerstorebrowse.proto +28 -28
  184. package/protos/webui/service_phone.proto +51 -51
  185. package/protos/webui/service_physicalgoods.proto +15 -15
  186. package/protos/webui/service_player.proto +918 -918
  187. package/protos/webui/service_promotioneventinvites.proto +109 -109
  188. package/protos/webui/service_promotionplanning.proto +186 -186
  189. package/protos/webui/service_promotionstats.proto +23 -23
  190. package/protos/webui/service_publishedfile.proto +714 -714
  191. package/protos/webui/service_publishing.proto +200 -200
  192. package/protos/webui/service_quest.proto +127 -127
  193. package/protos/webui/service_salefeature.proto +373 -373
  194. package/protos/webui/service_saleitemrewards.proto +54 -54
  195. package/protos/webui/service_shoppingcart.proto +152 -152
  196. package/protos/webui/service_steamawards.proto +76 -76
  197. package/protos/webui/service_steamcharts.proto +75 -75
  198. package/protos/webui/service_steamengine.proto +36 -36
  199. package/protos/webui/service_steamlearn.proto +876 -876
  200. package/protos/webui/service_steamnotification.proto +73 -73
  201. package/protos/webui/service_steamtv.proto +495 -495
  202. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  203. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  204. package/protos/webui/service_storagedevicemanager.proto +104 -104
  205. package/protos/webui/service_store.proto +359 -359
  206. package/protos/webui/service_storeappsimilarity.proto +76 -76
  207. package/protos/webui/service_storebrowse.proto +103 -103
  208. package/protos/webui/service_storemarketing.proto +44 -44
  209. package/protos/webui/service_storequery.proto +103 -103
  210. package/protos/webui/service_storesales.proto +87 -87
  211. package/protos/webui/service_storetopsellers.proto +44 -44
  212. package/protos/webui/service_systemmanager.proto +11 -11
  213. package/protos/webui/service_test_transporterror.proto +6 -6
  214. package/protos/webui/service_transportauth.proto +17 -17
  215. package/protos/webui/service_transportvalidation.proto +69 -69
  216. package/protos/webui/service_twofactor.proto +170 -170
  217. package/protos/webui/service_useraccount.proto +142 -142
  218. package/protos/webui/service_usergameactivity.proto +34 -34
  219. package/protos/webui/service_usergamenotes.proto +70 -70
  220. package/protos/webui/service_usernews.proto +68 -68
  221. package/protos/webui/service_userreviews.proto +97 -97
  222. package/protos/webui/service_video.proto +50 -50
  223. package/protos/webui/service_videoclip.proto +62 -62
  224. package/protos/webui/service_voicechat.proto +139 -139
  225. package/protos/webui/service_webrtc.proto +52 -52
  226. package/steamproto.js +146 -146
  227. package/utils.js +1234 -1234
  228. package/.idea/gbrowser_project.xml +0 -11
  229. package/.idea/git_toolbox_blame.xml +0 -6
  230. package/.idea/git_toolbox_prj.xml +0 -15
  231. package/race.js +0 -2241
package/cheerio.js CHANGED
@@ -1,103 +1,103 @@
1
- import * as cheerio from "cheerio";
2
-
3
- export function tables2json($, tables, getValue) {
4
- const tablesData = [];
5
- $(tables).each(function (index, el) {
6
- tablesData.push(table2json($, el, getValue));
7
- });
8
- return tablesData;
9
- }
10
-
11
- export function table2json(
12
- $,
13
- table,
14
- getValue = function ($, el) {
15
- return $(el).text().trim();
16
- },
17
- ) {
18
- const data = [];
19
- const header = [];
20
- $($(table)[0])
21
- .find("tr")
22
- .each(function (trIndex, trEl) {
23
- const tr = $(trEl);
24
- const row = [];
25
- tr.children().each(function (tdIndex, tdEl) {
26
- const isHeader = tdEl.name.toLowerCase() === "th";
27
- tdEl = $(tdEl);
28
- const tdContent = getValue($, tdEl, isHeader);
29
- (isHeader ? header : row).push(tdContent);
30
- });
31
- if (row.length) {
32
- data.push(row);
33
- }
34
- });
35
-
36
- if (!header.length) return data;
37
-
38
- for (let i = 0; i < data.length; i++) {
39
- const obj = {};
40
- for (let j = 0; j < header.length; j++) {
41
- obj[header[j]] = data[i][j];
42
- }
43
- data[i] = obj;
44
- }
45
-
46
- return data;
47
- }
48
-
49
- export function getTableHasHeaders($, $tables, headers = []) {
50
- headers = headers.slice();
51
- const tables = [];
52
- $($tables).each((tableIndex, tableEl) => {
53
- const _headers = headers.slice();
54
- let table;
55
- if (table) {
56
- return;
57
- }
58
- const $tableEl = $(tableEl);
59
- $tableEl
60
- .find("tr")
61
- .children()
62
- .each(function (trIndex, trEl) {
63
- if (table) {
64
- return;
65
- }
66
- const $trEl = $(trEl);
67
- let text = $trEl.text().trim();
68
-
69
- if (_headers.includes(text)) {
70
- _headers.splice(_headers.indexOf(text), 1);
71
-
72
- if (!_headers.length) {
73
- table = $tableEl;
74
- }
75
- }
76
- });
77
- if (table) {
78
- tables.push(table);
79
- }
80
- });
81
- return tables;
82
- }
83
-
84
- export function querySelectorAll($, selector, root) {
85
- try {
86
- if (root) {
87
- return [...root.find(selector)].map((el) => $(el));
88
- } else {
89
- return [...$(selector)].map((el) => $(el));
90
- }
91
- } catch (e) {
92
- console.error(e);
93
- return [];
94
- }
95
- }
96
-
97
- export function getDocumentTitle(html) {
98
- if (!html || typeof html !== "string") return;
99
- return cheerio
100
- .load(html.replaceAll(/[\t\n\r]/gi, "").trim())("head > title")
101
- .text()
102
- .trim();
103
- }
1
+ import * as cheerio from "cheerio";
2
+
3
+ export function tables2json($, tables, getValue) {
4
+ const tablesData = [];
5
+ $(tables).each(function (index, el) {
6
+ tablesData.push(table2json($, el, getValue));
7
+ });
8
+ return tablesData;
9
+ }
10
+
11
+ export function table2json(
12
+ $,
13
+ table,
14
+ getValue = function ($, el) {
15
+ return $(el).text().trim();
16
+ },
17
+ ) {
18
+ const data = [];
19
+ const header = [];
20
+ $($(table)[0])
21
+ .find("tr")
22
+ .each(function (trIndex, trEl) {
23
+ const tr = $(trEl);
24
+ const row = [];
25
+ tr.children().each(function (tdIndex, tdEl) {
26
+ const isHeader = tdEl.name.toLowerCase() === "th";
27
+ tdEl = $(tdEl);
28
+ const tdContent = getValue($, tdEl, isHeader);
29
+ (isHeader ? header : row).push(tdContent);
30
+ });
31
+ if (row.length) {
32
+ data.push(row);
33
+ }
34
+ });
35
+
36
+ if (!header.length) return data;
37
+
38
+ for (let i = 0; i < data.length; i++) {
39
+ const obj = {};
40
+ for (let j = 0; j < header.length; j++) {
41
+ obj[header[j]] = data[i][j];
42
+ }
43
+ data[i] = obj;
44
+ }
45
+
46
+ return data;
47
+ }
48
+
49
+ export function getTableHasHeaders($, $tables, headers = []) {
50
+ headers = headers.slice();
51
+ const tables = [];
52
+ $($tables).each((tableIndex, tableEl) => {
53
+ const _headers = headers.slice();
54
+ let table;
55
+ if (table) {
56
+ return;
57
+ }
58
+ const $tableEl = $(tableEl);
59
+ $tableEl
60
+ .find("tr")
61
+ .children()
62
+ .each(function (trIndex, trEl) {
63
+ if (table) {
64
+ return;
65
+ }
66
+ const $trEl = $(trEl);
67
+ let text = $trEl.text().trim();
68
+
69
+ if (_headers.includes(text)) {
70
+ _headers.splice(_headers.indexOf(text), 1);
71
+
72
+ if (!_headers.length) {
73
+ table = $tableEl;
74
+ }
75
+ }
76
+ });
77
+ if (table) {
78
+ tables.push(table);
79
+ }
80
+ });
81
+ return tables;
82
+ }
83
+
84
+ export function querySelectorAll($, selector, root) {
85
+ try {
86
+ if (root) {
87
+ return [...root.find(selector)].map((el) => $(el));
88
+ } else {
89
+ return [...$(selector)].map((el) => $(el));
90
+ }
91
+ } catch (e) {
92
+ console.error(e);
93
+ return [];
94
+ }
95
+ }
96
+
97
+ export function getDocumentTitle(html) {
98
+ if (!html || typeof html !== "string") return;
99
+ return cheerio
100
+ .load(html.replaceAll(/[\t\n\r]/gi, "").trim())("head > title")
101
+ .text()
102
+ .trim();
103
+ }
package/const.js CHANGED
@@ -3,6 +3,7 @@ export const MatchHistoryType = {
3
3
  matchhistorycompetitive: "matchhistorycompetitive",
4
4
  matchhistorypremier: "matchhistorypremier",
5
5
  matchhistorycompetitivepermap: "matchhistorycompetitivepermap",
6
+ matchhistorywingman: "matchhistorywingman",
6
7
  };
7
8
 
8
9
  export const MatchWinLose = {
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();