steamutils 1.5.35 → 1.5.37

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.
package/index.js CHANGED
@@ -7963,16 +7963,9 @@ export default class SteamUser {
7963
7963
  */
7964
7964
 
7965
7965
  /**
7966
- * Fetches batched loyalty reward items for given Steam AppIDs.
7967
- *
7968
- * @param {number|number[]} appIds - A Steam AppID or array of AppIDs to fetch reward items for.
7969
- * @returns {Promise<BatchedLoyaltyRewardItemsResponse|undefined>} The batched reward items response, or undefined if no app IDs are given or an error occurs.
7970
- *
7971
- * @example
7972
- * const rewards = await fetchBatchedLoyaltyRewardItems([3099280, 440]);
7973
- * if (rewards) {
7974
- * console.log(rewards.definitions.map(def => def.internal_description));
7975
- * }
7966
+ * Fetches Steam batched loyalty reward items for given app ID(s).
7967
+ * @param {number|number[]} appIds - A Steam App ID or array of App IDs.
7968
+ * @returns {Promise<Array<{eresult: number, response: BatchedLoyaltyRewardItemsResponse}>>}
7976
7969
  */
7977
7970
  static async fetchBatchedLoyaltyRewardItems(appIds) {
7978
7971
  if (!appIds) {
@@ -8023,10 +8016,60 @@ export default class SteamUser {
8023
8016
 
8024
8017
  try {
8025
8018
  const response = new SteamProto(SteamProtoType.CLoyaltyRewards_BatchedQueryRewardItems_Response).protoDecode(result.data);
8026
- return convertLongsToNumbers(response.responses["0"].response);
8019
+ return convertLongsToNumbers(response.responses);
8027
8020
  } catch (e) {}
8028
8021
  }
8029
8022
 
8023
+ /**
8024
+ * Fetches information about one or more Steam apps by their app IDs using the Steam Community GetApps API.
8025
+ *
8026
+ * Each app object in the response may include fields such as:
8027
+ * - appid: {number} The Steam application ID
8028
+ * - name: {string} Name of the app
8029
+ * - icon: {string} App icon hash
8030
+ * - logo, logo_small: {string} App logo (if any)
8031
+ * - tool, demo, media: {boolean} App type flags
8032
+ * - community_visible_stats: {boolean} If the app has community stats visible
8033
+ * - friendly_name: {string} Optional, usually empty for event apps
8034
+ * - propagation: {string} Propagation mode
8035
+ * - has_adult_content: {boolean} If app contains adult content
8036
+ * - is_visible_in_steam_china: {boolean} Visibility on Steam China
8037
+ * - app_type: {number} App type code
8038
+ * - has_adult_content_sex: {boolean}
8039
+ * - has_adult_content_violence: {boolean}
8040
+ * - content_descriptorids: {Array<number>}
8041
+ *
8042
+ * @async
8043
+ * @static
8044
+ * @param {number|number[]} appIds - A single app ID or array of app IDs to request.
8045
+ * @returns {Promise<{
8046
+ * apps: Array<{
8047
+ * content_descriptorids: number[],
8048
+ * appid: number,
8049
+ * name: string,
8050
+ * icon: string,
8051
+ * logo: string,
8052
+ * logo_small: string,
8053
+ * tool: boolean,
8054
+ * demo: boolean,
8055
+ * media: boolean,
8056
+ * community_visible_stats: boolean,
8057
+ * friendly_name: string,
8058
+ * propagation: string,
8059
+ * has_adult_content: boolean,
8060
+ * is_visible_in_steam_china: boolean,
8061
+ * app_type: number,
8062
+ * has_adult_content_sex: boolean,
8063
+ * has_adult_content_violence: boolean
8064
+ * }>
8065
+ * }|ResponseError|undefined>} Returns an object containing an 'apps' array with the app data on success,
8066
+ * a ResponseError if the request fails, or undefined if no appIds are supplied.
8067
+ *
8068
+ * @example
8069
+ * const result = await SteamUser.cCommunityGetAppsRequest(3558910);
8070
+ * console.log(result);
8071
+ * // { apps: [ { appid: 3558910, name: '...', ... } ] }
8072
+ */
8030
8073
  static async cCommunityGetAppsRequest(appIds) {
8031
8074
  if (!appIds) {
8032
8075
  return;
@@ -8061,6 +8104,59 @@ export default class SteamUser {
8061
8104
  return response;
8062
8105
  }
8063
8106
 
8107
+ /**
8108
+ * @typedef {Object} EligibleEventApp
8109
+ * @property {number} appid The unique Steam app ID.
8110
+ * @property {number} has_items_anyone_can_purchase 1 if anyone can purchase items, 0 otherwise.
8111
+ * @property {number} event_app 1 if the app is considered an event app, 0 otherwise.
8112
+ * @property {string|null} hero_carousel_image The filename for the hero carousel image, or null if not present.
8113
+ * @property {null} owned Reserved, always null in current data.
8114
+ */
8115
+
8116
+ /**
8117
+ * Fetches the list of eligible event apps from the Steam Points Shop events store.
8118
+ * This function retrieves the event page's HTML, parses out the loyalty store data,
8119
+ * and returns all eligible apps that are marked as event apps.
8120
+ *
8121
+ * @returns {Promise<EligibleEventApp[]>} Array of eligible event app objects (empty array if an error occurs).
8122
+ */
8123
+ static async getEligibleEventApps() {
8124
+ let html;
8125
+ try {
8126
+ ({ data: html } = await axios.get("https://store.steampowered.com/points/shop/c/events"));
8127
+ } catch (e) {
8128
+ console.error("Failed to fetch Steam Points Shop events page:", e);
8129
+ return [];
8130
+ }
8131
+ if (!html) {
8132
+ console.error("No HTML received from the events page.");
8133
+ return [];
8134
+ }
8135
+
8136
+ const $ = cheerio.load(html);
8137
+ const loyaltyStr = $("#application_config").attr("data-loyaltystore");
8138
+ if (!loyaltyStr) {
8139
+ console.error("Loyalty store data not found in HTML.");
8140
+ return [];
8141
+ }
8142
+
8143
+ let loyaltyObj;
8144
+ try {
8145
+ loyaltyObj = JSON.parse(loyaltyStr);
8146
+ } catch (e) {
8147
+ console.error("Failed to parse loyalty store JSON:", e);
8148
+ return [];
8149
+ }
8150
+
8151
+ const apps = loyaltyObj?.eligible_apps?.apps;
8152
+ if (!Array.isArray(apps)) {
8153
+ console.error("No valid eligible_apps array found in loyalty store object.");
8154
+ return [];
8155
+ }
8156
+
8157
+ return apps.filter((app) => app.event_app);
8158
+ }
8159
+
8064
8160
  static async decodeQRImage(imageURL) {
8065
8161
  let response = null;
8066
8162
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "steamutils",
3
- "version": "1.5.35",
3
+ "version": "1.5.37",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "alpha-common-utils": "^1.0.6",
package/steamproto.js CHANGED
@@ -27,6 +27,10 @@ export class SteamProto {
27
27
  }
28
28
 
29
29
  protoDecode(obj) {
30
+ if (isBase64(obj)) {
31
+ obj = Buffer.from(obj, "base64");
32
+ }
33
+
30
34
  const protobuf = this.toProto();
31
35
  try {
32
36
  return protobuf.toObject(protobuf.decode(obj), { defaults: true });
@@ -38,4 +42,12 @@ export class SteamProto {
38
42
  }
39
43
  }
40
44
 
45
+ function isBase64(str) {
46
+ if (typeof str !== "string") return false;
47
+ // remove whitespace and check
48
+ str = str.trim();
49
+ // base64 should only contain A-Z, a-z, 0-9, +, /, and possibly = at the end
50
+ return /^[A-Za-z0-9+/]+={0,2}$/.test(str) && str.length % 4 === 0;
51
+ }
52
+
41
53
  export const SteamProtoType = {};export const ESteamProto = {};ESteamProto.ECsgoGCMsg = {"k_EMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate":9104,"k_EMsgGCCStrike15_v2_MatchmakingClient2GCHello":9109,"k_EMsgGCCStrike15_v2_MatchmakingGC2ClientHello":9110,"k_EMsgGCCStrike15_v2_ClientReportPlayer":9119,"k_EMsgGCCStrike15_v2_ClientCommendPlayer":9121,"k_EMsgGCCStrike15_v2_ClientReportResponse":9122,"k_EMsgGCCStrike15_v2_ClientCommendPlayerQuery":9123,"k_EMsgGCCStrike15_v2_ClientCommendPlayerQueryResponse":9124,"k_EMsgGCCStrike15_v2_ClientRequestPlayersProfile":9127,"k_EMsgGCCStrike15_v2_PlayersProfile":9128,"k_EMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment":9132,"k_EMsgGCCStrike15_v2_GC2ClientTextMsg":9134,"k_EMsgGCCStrike15_v2_MatchList":9139,"k_EMsgGCCStrike15_v2_ClientRequestJoinFriendData":9163,"k_EMsgGCCStrike15_v2_AcknowledgePenalty":9171,"k_EMsgGCCStrike15_v2_GC2ClientGlobalStats":9173,"k_EMsgGCCStrike15_v2_ClientLogonFatalError":9187,"k_EMsgGCCStrike15_v2_ClientPollState":9188,"k_EMsgGCCStrike15_v2_Party_Register":9189,"k_EMsgGCCStrike15_v2_Party_Search":9191,"k_EMsgGCCStrike15_v2_Party_Invite":9192,"k_EMsgGCCStrike15_v2_Account_RequestCoPlays":9193,"k_EMsgGCCStrike15_v2_ClientGCRankUpdate":9194,"k_EMsgGCCStrike15_v2_GetEventFavorites_Response":9203,"k_EMsgGCCStrike15_ClientDeepStats":9210,"k_EMsgGCCStrike15_StartAgreementSessionInGame":9211,"k_EMsgGCCStrike15_v2_ClientNetworkConfig":9220};ESteamProto.EGCItemMsg = {"k_EMsgGCStoreGetUserData":2500,"k_EMsgGCStoreGetUserDataResponse":2501,"k_EMsgGCStorePurchaseFinalize":2504,"k_EMsgGCStorePurchaseFinalizeResponse":2505,"k_EMsgGCStorePurchaseCancel":2506,"k_EMsgGCStorePurchaseCancelResponse":2507,"k_EMsgGCStorePurchaseInit":2510,"k_EMsgGCStorePurchaseInitResponse":2511};ESteamProto.EMsg = {"k_EMsgClientChatInvite":800,"k_EMsgGCHInviteUserToLobby":2238,"k_EMsgClientRequestedClientStats":5480,"k_EMsgClientMMSCreateLobby":6601,"k_EMsgClientMMSCreateLobbyResponse":6602,"k_EMsgClientMMSJoinLobby":6603,"k_EMsgClientMMSSetLobbyData":6609,"k_EMsgClientMMSSetLobbyDataResponse":6610,"k_EMsgClientMMSGetLobbyData":6611,"k_EMsgClientMMSLobbyData":6612,"k_EMsgClientMMSInviteToLobby":6621};ESteamProto.EGCBaseClientMsg = {"k_EMsgGCClientWelcome":4004,"k_EMsgGCClientHello":4006,"k_EMsgGCClientConnectionStatus":4009};SteamProtoType.CMsgGCStorePurchaseInit = {"name":"CMsgGCStorePurchaseInit","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCStorePurchaseInitResponse = {"name":"CMsgGCStorePurchaseInitResponse","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconGameAccountClient = {"name":"CSOEconGameAccountClient","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOItemRecipe = {"name":"CSOItemRecipe","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconItem = {"name":"CSOEconItem","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgStoreGetUserData = {"name":"CMsgStoreGetUserData","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgStoreGetUserDataResponse = {"name":"CMsgStoreGetUserDataResponse","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconItemDropRateBonus = {"name":"CSOEconItemDropRateBonus","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconItemLeagueViewPass = {"name":"CSOEconItemLeagueViewPass","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconItemEventTicket = {"name":"CSOEconItemEventTicket","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCStorePurchaseCancel = {"name":"CMsgGCStorePurchaseCancel","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCStorePurchaseCancelResponse = {"name":"CMsgGCStorePurchaseCancelResponse","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCStorePurchaseFinalize = {"name":"CMsgGCStorePurchaseFinalize","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCStorePurchaseFinalizeResponse = {"name":"CMsgGCStorePurchaseFinalizeResponse","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CSOEconDefaultEquippedDefinitionInstanceClient = {"name":"CSOEconDefaultEquippedDefinitionInstanceClient","filename":"csgo\\base_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate = {"name":"CMsgGCCStrike15_v2_MatchmakingGC2ClientUpdate","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_MatchmakingGC2ClientHello = {"name":"CMsgGCCStrike15_v2_MatchmakingGC2ClientHello","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientGCRankUpdate = {"name":"CMsgGCCStrike15_v2_ClientGCRankUpdate","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientReportPlayer = {"name":"CMsgGCCStrike15_v2_ClientReportPlayer","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientCommendPlayer = {"name":"CMsgGCCStrike15_v2_ClientCommendPlayer","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientReportResponse = {"name":"CMsgGCCStrike15_v2_ClientReportResponse","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientRequestJoinFriendData = {"name":"CMsgGCCStrike15_v2_ClientRequestJoinFriendData","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCstrike15_v2_ClientRedeemFreeReward = {"name":"CMsgGCCstrike15_v2_ClientRedeemFreeReward","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientNetworkConfig = {"name":"CMsgGCCStrike15_v2_ClientNetworkConfig","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_ClientDeepStats = {"name":"CMsgGCCStrike15_ClientDeepStats","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientRequestPlayersProfile = {"name":"CMsgGCCStrike15_v2_ClientRequestPlayersProfile","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_PlayersProfile = {"name":"CMsgGCCStrike15_v2_PlayersProfile","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment = {"name":"CMsgGCCStrike15_v2_PlayerOverwatchCaseAssignment","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_GC2ClientTextMsg = {"name":"CMsgGCCStrike15_v2_GC2ClientTextMsg","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_MatchList = {"name":"CMsgGCCStrike15_v2_MatchList","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CSOEconCoupon = {"name":"CSOEconCoupon","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CSOAccountItemPersonalStore = {"name":"CSOAccountItemPersonalStore","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CSOQuestProgress = {"name":"CSOQuestProgress","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CSOAccountSeasonalOperation = {"name":"CSOAccountSeasonalOperation","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CSOPersonaDataPublic = {"name":"CSOPersonaDataPublic","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_AcknowledgePenalty = {"name":"CMsgGCCStrike15_v2_AcknowledgePenalty","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientLogonFatalError = {"name":"CMsgGCCStrike15_v2_ClientLogonFatalError","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_ClientPollState = {"name":"CMsgGCCStrike15_v2_ClientPollState","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_Party_Register = {"name":"CMsgGCCStrike15_v2_Party_Register","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_Party_Search = {"name":"CMsgGCCStrike15_v2_Party_Search","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_Party_SearchResults = {"name":"CMsgGCCStrike15_v2_Party_SearchResults","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_Party_Invite = {"name":"CMsgGCCStrike15_v2_Party_Invite","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_Account_RequestCoPlays = {"name":"CMsgGCCStrike15_v2_Account_RequestCoPlays","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgGCCStrike15_v2_GetEventFavorites_Response = {"name":"CMsgGCCStrike15_v2_GetEventFavorites_Response","filename":"csgo\\cstrike15_gcmessages.proto"};SteamProtoType.CMsgClientHello = {"name":"CMsgClientHello","filename":"csgo\\gcsdk_gcmessages.proto"};SteamProtoType.CMsgClientWelcome = {"name":"CMsgClientWelcome","filename":"csgo\\gcsdk_gcmessages.proto"};SteamProtoType.CMsgConnectionStatus = {"name":"CMsgConnectionStatus","filename":"csgo\\gcsdk_gcmessages.proto"};SteamProtoType.CPlayer_GetFriendsGameplayInfo_Request = {"name":"CPlayer_GetFriendsGameplayInfo_Request","filename":"csgo\\steammessages_player.steamworkssdk.proto"};SteamProtoType.CPlayer_GetFriendsGameplayInfo_Response = {"name":"CPlayer_GetFriendsGameplayInfo_Response","filename":"csgo\\steammessages_player.steamworkssdk.proto"};SteamProtoType.CAuthentication_RefreshToken_Revoke_Request = {"name":"CAuthentication_RefreshToken_Revoke_Request","filename":"steam\\steammessages_auth.steamclient.proto"};SteamProtoType.CAuthenticationSupport_QueryRefreshTokenByID_Request = {"name":"CAuthenticationSupport_QueryRefreshTokenByID_Request","filename":"steam\\steammessages_auth.steamclient.proto"};SteamProtoType.CMsgClientRequestedClientStats = {"name":"CMsgClientRequestedClientStats","filename":"steam\\steammessages_clientserver.proto"};SteamProtoType.CMsgClientUGSGetGlobalStats = {"name":"CMsgClientUGSGetGlobalStats","filename":"steam\\steammessages_clientserver_2.proto"};SteamProtoType.CMsgClientUGSGetGlobalStatsResponse = {"name":"CMsgClientUGSGetGlobalStatsResponse","filename":"steam\\steammessages_clientserver_2.proto"};SteamProtoType.CMsgClientMMSCreateLobby = {"name":"CMsgClientMMSCreateLobby","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSCreateLobbyResponse = {"name":"CMsgClientMMSCreateLobbyResponse","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSJoinLobby = {"name":"CMsgClientMMSJoinLobby","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSJoinLobbyResponse = {"name":"CMsgClientMMSJoinLobbyResponse","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSSetLobbyData = {"name":"CMsgClientMMSSetLobbyData","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSSetLobbyDataResponse = {"name":"CMsgClientMMSSetLobbyDataResponse","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSGetLobbyData = {"name":"CMsgClientMMSGetLobbyData","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSLobbyData = {"name":"CMsgClientMMSLobbyData","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSUserJoinedLobby = {"name":"CMsgClientMMSUserJoinedLobby","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CMsgClientMMSInviteToLobby = {"name":"CMsgClientMMSInviteToLobby","filename":"steam\\steammessages_clientserver_mms.proto"};SteamProtoType.CFriendMessages_GetRecentMessages_Request = {"name":"CFriendMessages_GetRecentMessages_Request","filename":"steam\\steammessages_friendmessages.steamclient.proto"};SteamProtoType.CFriendMessages_GetRecentMessages_Response = {"name":"CFriendMessages_GetRecentMessages_Response","filename":"steam\\steammessages_friendmessages.steamclient.proto"};SteamProtoType.CFriendMessages_SendMessage_Request = {"name":"CFriendMessages_SendMessage_Request","filename":"steam\\steammessages_friendmessages.steamclient.proto"};SteamProtoType.CFriendMessages_SendMessage_Response = {"name":"CFriendMessages_SendMessage_Response","filename":"steam\\steammessages_friendmessages.steamclient.proto"};SteamProtoType.CStoreBrowse_GetItems_Request = {"name":"CStoreBrowse_GetItems_Request","filename":"steam\\steammessages_storebrowse.steamclient.proto"};SteamProtoType.StoreItem = {"name":"StoreItem","filename":"steam\\steammessages_storebrowse.steamclient.proto"};SteamProtoType.CStoreBrowse_GetItems_Response = {"name":"CStoreBrowse_GetItems_Response","filename":"steam\\steammessages_storebrowse.steamclient.proto"};SteamProtoType.CPlayer_GetPlayerLinkDetails_Request = {"name":"CPlayer_GetPlayerLinkDetails_Request","filename":"steam\\steammessages_player.steamclient.proto"};SteamProtoType.CPlayer_GetPlayerLinkDetails_Response = {"name":"CPlayer_GetPlayerLinkDetails_Response","filename":"steam\\steammessages_player.steamclient.proto"};SteamProtoType.ProfileTheme = {"name":"ProfileTheme","filename":"steam\\steammessages_player.steamclient.proto"};SteamProtoType.ProfilePreferences = {"name":"ProfilePreferences","filename":"steam\\steammessages_player.steamclient.proto"};SteamProtoType.CCheckout_GetFriendOwnershipForGifting_Response = {"name":"CCheckout_GetFriendOwnershipForGifting_Response","filename":"webui\\service_checkout.proto"};SteamProtoType.CCommunity_GetApps_Request = {"name":"CCommunity_GetApps_Request","filename":"webui\\service_community.proto"};SteamProtoType.CCommunity_GetApps_Response = {"name":"CCommunity_GetApps_Response","filename":"webui\\service_community.proto"};SteamProtoType.CFriendsList_GetFriendsList_Response = {"name":"CFriendsList_GetFriendsList_Response","filename":"webui\\service_friendslist.proto"};SteamProtoType.CLoyaltyRewards_BatchedQueryRewardItems_Request = {"name":"CLoyaltyRewards_BatchedQueryRewardItems_Request","filename":"webui\\service_loyaltyrewards.proto"};SteamProtoType.CLoyaltyRewards_BatchedQueryRewardItems_Response = {"name":"CLoyaltyRewards_BatchedQueryRewardItems_Response","filename":"webui\\service_loyaltyrewards.proto"};SteamProtoType.CLoyaltyRewards_RedeemPoints_Request = {"name":"CLoyaltyRewards_RedeemPoints_Request","filename":"webui\\service_loyaltyrewards.proto"};SteamProtoType.CLoyaltyRewards_RedeemPoints_Response = {"name":"CLoyaltyRewards_RedeemPoints_Response","filename":"webui\\service_loyaltyrewards.proto"};