steamutils 1.3.65 → 1.3.67

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 (167) hide show
  1. package/SteamClient.js +6 -3
  2. package/package.json +2 -2
  3. package/protos/csgo/base_gcmessages.proto +553 -0
  4. package/protos/csgo/connectionless_netmessages.proto +0 -2
  5. package/protos/csgo/cs_gameevents.proto +1 -0
  6. package/protos/csgo/cstrike15_gcmessages.proto +41 -12
  7. package/protos/csgo/cstrike15_usermessages.proto +0 -4
  8. package/protos/csgo/demo.proto +5 -0
  9. package/protos/csgo/econ_gcmessages.proto +0 -9
  10. package/protos/csgo/gcsdk_gcmessages.proto +2 -2
  11. package/protos/csgo/gcsystemmsgs.proto +1 -0
  12. package/protos/csgo/netmessages.proto +22 -8
  13. package/protos/csgo/networkbasetypes.proto +2 -0
  14. package/protos/csgo/steammessages.proto +23 -0
  15. package/protos/csgo/usercmd.proto +2 -1
  16. package/protos/csgo/usermessages.proto +31 -0
  17. package/protos/steam/enums.proto +58 -1
  18. package/protos/steam/enums_clientserver.proto +3 -34
  19. package/protos/steam/enums_productinfo.proto +1 -0
  20. package/protos/steam/htmlmessages.proto +12 -0
  21. package/protos/steam/steamdatagram_messages_sdr.proto +1 -1
  22. package/protos/steam/steammessages_accounthardware.steamclient.proto +18 -52
  23. package/protos/steam/steammessages_appoverview.proto +18 -1
  24. package/protos/steam/steammessages_auth.steamclient.proto +128 -188
  25. package/protos/steam/steammessages_base.proto +3 -0
  26. package/protos/steam/steammessages_broadcast.steamclient.proto +126 -267
  27. package/protos/steam/steammessages_chat.steamclient.proto +79 -290
  28. package/protos/steam/steammessages_client_objects.proto +4 -0
  29. package/protos/steam/steammessages_clientlanp2p.proto +1 -0
  30. package/protos/steam/steammessages_clientmetrics.steamclient.proto +0 -2
  31. package/protos/steam/steammessages_clientnotificationtypes.proto +19 -0
  32. package/protos/steam/steammessages_clientserver_2.proto +11 -0
  33. package/protos/steam/steammessages_clientserver_login.proto +1 -1
  34. package/protos/steam/steammessages_clientserver_mms.proto +228 -235
  35. package/protos/steam/steammessages_clientserver_ucm.proto +2 -0
  36. package/protos/steam/steammessages_clientserver_uds.proto +1 -0
  37. package/protos/steam/steammessages_clientserver_ufs.proto +0 -127
  38. package/protos/steam/steammessages_clientsettings.proto +46 -6
  39. package/protos/steam/steammessages_cloud.steamclient.proto +158 -249
  40. package/protos/steam/steammessages_contentsystem.steamclient.proto +16 -8
  41. package/protos/steam/steammessages_credentials.steamclient.proto +7 -26
  42. package/protos/steam/steammessages_datapublisher.steamclient.proto +30 -44
  43. package/protos/steam/steammessages_depotbuilder.steamclient.proto +6 -25
  44. package/protos/steam/steammessages_deviceauth.steamclient.proto +11 -45
  45. package/protos/steam/steammessages_econ.steamclient.proto +12 -25
  46. package/protos/steam/steammessages_familygroups.steamclient.proto +441 -0
  47. package/protos/steam/steammessages_friendmessages.steamclient.proto +19 -46
  48. package/protos/steam/steammessages_gamenetworking.steamclient.proto +2 -9
  49. package/protos/steam/steammessages_gamenotifications.steamclient.proto +57 -82
  50. package/protos/steam/steammessages_gameservers.steamclient.proto +13 -29
  51. package/protos/steam/steammessages_inventory.steamclient.proto +21 -73
  52. package/protos/steam/steammessages_linkfilter.steamclient.proto +14 -24
  53. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +1 -5
  54. package/protos/steam/steammessages_market.steamclient.proto +9 -13
  55. package/protos/steam/steammessages_marketingmessages.steamclient.proto +59 -60
  56. package/protos/steam/steammessages_offline.steamclient.proto +2 -9
  57. package/protos/steam/steammessages_parental.steamclient.proto +100 -66
  58. package/protos/steam/steammessages_parties.steamclient.proto +6 -25
  59. package/protos/steam/steammessages_partnerapps.steamclient.proto +11 -43
  60. package/protos/steam/steammessages_player.steamclient.proto +133 -278
  61. package/protos/steam/steammessages_publishedfile.steamclient.proto +213 -289
  62. package/protos/steam/steammessages_qms.steamclient.proto +4 -18
  63. package/protos/steam/steammessages_remoteclient.proto +2 -1
  64. package/protos/steam/steammessages_remoteclient_discovery.proto +9 -0
  65. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +18 -73
  66. package/protos/steam/steammessages_remoteplay.proto +1 -2
  67. package/protos/steam/steammessages_secrets.steamclient.proto +1 -5
  68. package/protos/steam/steammessages_shader.steamclient.proto +6 -25
  69. package/protos/steam/steammessages_site_license.steamclient.proto +8 -33
  70. package/protos/steam/steammessages_steamtv.steamclient.proto +169 -266
  71. package/protos/steam/steammessages_store.steamclient.proto +110 -77
  72. package/protos/steam/steammessages_storebrowse.steamclient.proto +170 -115
  73. package/protos/steam/steammessages_timedtrial.steamclient.proto +3 -13
  74. package/protos/steam/steammessages_twofactor.steamclient.proto +92 -121
  75. package/protos/steam/steammessages_unified_base.steamclient.proto +12 -0
  76. package/protos/steam/steammessages_unified_test.steamclient.proto +10 -20
  77. package/protos/steam/steammessages_useraccount.steamclient.proto +26 -64
  78. package/protos/steam/steammessages_vac.steamclient.proto +2 -9
  79. package/protos/steam/steammessages_video.steamclient.proto +25 -128
  80. package/protos/steam/steammessages_workshop.steamclient.proto +1 -5
  81. package/protos/steam/webuimessages_achievements.proto +29 -0
  82. package/protos/steam/webuimessages_gamescope.proto +57 -0
  83. package/protos/steam/webuimessages_steamengine.proto +9 -0
  84. package/protos/steam/webuimessages_steamos.proto +114 -0
  85. package/protos/steam/webuimessages_transport.proto +4 -0
  86. package/protos/steam/webuimessages_transportvalidation.proto +14 -0
  87. package/test_steamclient.js +7 -11
  88. package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +0 -357
  89. package/protos/steam/renderer/rendermessages.proto +0 -893
  90. package/protos/steam/steammessages_star.steamclient.proto +0 -64
  91. package/protos/webui/common.proto +0 -5508
  92. package/protos/webui/common_base.proto +0 -27
  93. package/protos/webui/service_accountlinking.proto +0 -27
  94. package/protos/webui/service_accountprivacy.proto +0 -42
  95. package/protos/webui/service_auction.proto +0 -97
  96. package/protos/webui/service_authentication.proto +0 -222
  97. package/protos/webui/service_authenticationsupport.proto +0 -74
  98. package/protos/webui/service_broadcast.proto +0 -562
  99. package/protos/webui/service_chat.proto +0 -11
  100. package/protos/webui/service_chatroom.proto +0 -810
  101. package/protos/webui/service_chatusability.proto +0 -107
  102. package/protos/webui/service_clan.proto +0 -41
  103. package/protos/webui/service_clanchatrooms.proto +0 -25
  104. package/protos/webui/service_clanfaqs.proto +0 -202
  105. package/protos/webui/service_clientcomm.proto +0 -150
  106. package/protos/webui/service_clientmetrics.proto +0 -63
  107. package/protos/webui/service_cloud.proto +0 -222
  108. package/protos/webui/service_cloudconfigstore.proto +0 -51
  109. package/protos/webui/service_cloudgaming.proto +0 -30
  110. package/protos/webui/service_community.proto +0 -365
  111. package/protos/webui/service_econ.proto +0 -134
  112. package/protos/webui/service_embedded.proto +0 -24
  113. package/protos/webui/service_experimentservice.proto +0 -6
  114. package/protos/webui/service_fovasvideo.proto +0 -15
  115. package/protos/webui/service_friendmessages.proto +0 -133
  116. package/protos/webui/service_friendslist.proto +0 -70
  117. package/protos/webui/service_gamenotes.proto +0 -15
  118. package/protos/webui/service_helprequestlogs.proto +0 -26
  119. package/protos/webui/service_loyaltyrewards.proto +0 -252
  120. package/protos/webui/service_marketingmessages.proto +0 -184
  121. package/protos/webui/service_mobileapp.proto +0 -18
  122. package/protos/webui/service_mobileauth.proto +0 -24
  123. package/protos/webui/service_mobiledevice.proto +0 -26
  124. package/protos/webui/service_mobileperaccount.proto +0 -31
  125. package/protos/webui/service_news.proto +0 -101
  126. package/protos/webui/service_parental.proto +0 -178
  127. package/protos/webui/service_partnermembershipinvite.proto +0 -29
  128. package/protos/webui/service_partnerstorebrowse.proto +0 -6
  129. package/protos/webui/service_phone.proto +0 -51
  130. package/protos/webui/service_physicalgoods.proto +0 -15
  131. package/protos/webui/service_player.proto +0 -885
  132. package/protos/webui/service_promotioneventinvites.proto +0 -50
  133. package/protos/webui/service_promotionplanning.proto +0 -72
  134. package/protos/webui/service_publishedfile.proto +0 -687
  135. package/protos/webui/service_publishing.proto +0 -119
  136. package/protos/webui/service_quest.proto +0 -127
  137. package/protos/webui/service_salefeature.proto +0 -315
  138. package/protos/webui/service_saleitemrewards.proto +0 -54
  139. package/protos/webui/service_shoppingcart.proto +0 -108
  140. package/protos/webui/service_steamawards.proto +0 -19
  141. package/protos/webui/service_steamcharts.proto +0 -75
  142. package/protos/webui/service_steamengine.proto +0 -36
  143. package/protos/webui/service_steamlearn.proto +0 -727
  144. package/protos/webui/service_steamnotification.proto +0 -84
  145. package/protos/webui/service_steamtv.proto +0 -495
  146. package/protos/webui/service_steamvrvoicechat.proto +0 -67
  147. package/protos/webui/service_steamvrwebrtc.proto +0 -48
  148. package/protos/webui/service_storagedevicemanager.proto +0 -104
  149. package/protos/webui/service_store.proto +0 -289
  150. package/protos/webui/service_storeappsimilarity.proto +0 -76
  151. package/protos/webui/service_storebrowse.proto +0 -73
  152. package/protos/webui/service_storequery.proto +0 -97
  153. package/protos/webui/service_storesales.proto +0 -15
  154. package/protos/webui/service_storetopsellers.proto +0 -44
  155. package/protos/webui/service_systemmanager.proto +0 -11
  156. package/protos/webui/service_test_transporterror.proto +0 -6
  157. package/protos/webui/service_transportauth.proto +0 -12
  158. package/protos/webui/service_transportvalidation.proto +0 -69
  159. package/protos/webui/service_twofactor.proto +0 -181
  160. package/protos/webui/service_useraccount.proto +0 -138
  161. package/protos/webui/service_usergameactivity.proto +0 -34
  162. package/protos/webui/service_usergamenotes.proto +0 -53
  163. package/protos/webui/service_usernews.proto +0 -68
  164. package/protos/webui/service_userreviews.proto +0 -96
  165. package/protos/webui/service_video.proto +0 -128
  166. package/protos/webui/service_voicechat.proto +0 -139
  167. package/protos/webui/service_webrtc.proto +0 -52
@@ -48,6 +48,14 @@ enum EUserReviewScore {
48
48
  k_EUserReviewScore_OverwhelminglyPositive = 9;
49
49
  }
50
50
 
51
+ enum EStoreBrowseFilterFailure {
52
+ k_EStoreBrowseFilterFailure_None = 0;
53
+ k_EStoreBrowseFilterFailure_Redundant = 10;
54
+ k_EStoreBrowseFilterFailure_NotPreferred = 20;
55
+ k_EStoreBrowseFilterFailure_NotInterested = 30;
56
+ k_EStoreBrowseFilterFailure_UnwantedContent = 40;
57
+ }
58
+
51
59
  enum EStoreCategoryType {
52
60
  k_EStoreCategoryType_Category = 0;
53
61
  k_EStoreCategoryType_SupportedPlayers = 1;
@@ -68,9 +76,9 @@ message StoreItemID {
68
76
 
69
77
  message StoreBrowseContext {
70
78
  optional string language = 1;
71
- optional int32 elanguage = 2 [(description) = "ELanguage"];
72
- optional string country_code = 3 [(description) = "2-character country code; required"];
73
- optional int32 steam_realm = 4 [(description) = "ESteamRealm"];
79
+ optional int32 elanguage = 2;
80
+ optional string country_code = 3;
81
+ optional int32 steam_realm = 4;
74
82
  }
75
83
 
76
84
  message StoreBrowseItemDataRequest {
@@ -81,13 +89,15 @@ message StoreBrowseItemDataRequest {
81
89
  optional bool include_screenshots = 5;
82
90
  optional bool include_trailers = 6;
83
91
  optional bool include_ratings = 7;
84
- optional int32 include_tag_count = 8 [(description) = "Count of tags to return, as tagids. Maximum 20."];
92
+ optional int32 include_tag_count = 8;
85
93
  optional bool include_reviews = 9;
86
- optional bool include_basic_info = 10 [(description) = "Include short description, publisher, developers"];
87
- optional bool include_supported_languages = 11 [(description) = "includes the games support for languages: supported, full_audio, subtitles"];
94
+ optional bool include_basic_info = 10;
95
+ optional bool include_supported_languages = 11;
88
96
  optional bool include_full_description = 12;
89
- optional bool include_included_items = 13 [(description) = "For packages and bundles, return the apps and packages included as well. Pass included_item_data_request for more details on the included items."];
90
- optional .StoreBrowseItemDataRequest included_item_data_request = 14 [(description) = "The data to return for included items."];
97
+ optional bool include_included_items = 13;
98
+ optional .StoreBrowseItemDataRequest included_item_data_request = 14;
99
+ optional bool include_assets_without_overrides = 15;
100
+ optional bool apply_user_filters = 16;
91
101
  }
92
102
 
93
103
  message CStoreBrowse_GetItems_Request {
@@ -98,43 +108,43 @@ message CStoreBrowse_GetItems_Request {
98
108
 
99
109
  message StoreItem {
100
110
  message RelatedItems {
101
- optional uint32 parent_appid = 1 [(description) = "For DLC, Demos, etc, this is the main app."];
111
+ optional uint32 parent_appid = 1;
102
112
  }
103
113
 
104
114
  message IncludedItems {
105
- repeated .StoreItem included_apps = 1 [(description) = "All apps included, if this is a package or bundle"];
106
- repeated .StoreItem included_packages = 2 [(description) = "All packages included, if this is a bundle"];
115
+ repeated .StoreItem included_apps = 1;
116
+ repeated .StoreItem included_packages = 2;
107
117
  }
108
118
 
109
119
  message Categories {
110
- repeated uint32 supported_player_categoryids = 2 [(description) = "Categories like Single Player, Multiplayer, MMO"];
111
- repeated uint32 feature_categoryids = 3 [(description) = "Categories indicating supported features like Steam Cloud, VAC, Achievements, etc"];
112
- repeated uint32 controller_categoryids = 4 [(description) = "Categories indicating controller support and full controller support."];
120
+ repeated uint32 supported_player_categoryids = 2;
121
+ repeated uint32 feature_categoryids = 3;
122
+ repeated uint32 controller_categoryids = 4;
113
123
  }
114
124
 
115
125
  message Reviews {
116
126
  message StoreReviewSummary {
117
127
  optional uint32 review_count = 1;
118
- optional int32 percent_positive = 2 [(description) = "0-100"];
128
+ optional int32 percent_positive = 2;
119
129
  optional .EUserReviewScore review_score = 3 [default = k_EUserReviewScore_None];
120
- optional string review_score_label = 4 [(description) = "A string like 'Mixed', 'Negative', 'Overwhelmingly Positive'"];
130
+ optional string review_score_label = 4;
121
131
  }
122
132
 
123
- optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1 [(description) = "Review summary with review bombs removed (if any). Always present (if include_reviews set in request)"];
124
- optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2 [(description) = "Review summary with review bombs included. Only present if there are review bombs."];
133
+ optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1;
134
+ optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2;
125
135
  }
126
136
 
127
137
  message BasicInfo {
128
138
  message CreatorHomeLink {
129
139
  optional string name = 1;
130
- optional uint32 creator_clan_account_id = 2 [(description) = "Optioanl field indicating this name is associated this the creator home via the clan account id"];
140
+ optional uint32 creator_clan_account_id = 2;
131
141
  }
132
142
 
133
143
  optional string short_description = 1;
134
144
  repeated .StoreItem.BasicInfo.CreatorHomeLink publishers = 2;
135
145
  repeated .StoreItem.BasicInfo.CreatorHomeLink developers = 3;
136
146
  repeated .StoreItem.BasicInfo.CreatorHomeLink franchises = 4;
137
- optional string capsule_headline = 5 [(description) = "A custom string specified by the partner for display on or around a capsule on the store, e.g. 'Just Updated!'"];
147
+ optional string capsule_headline = 5;
138
148
  }
139
149
 
140
150
  message Tag {
@@ -143,31 +153,31 @@ message StoreItem {
143
153
  }
144
154
 
145
155
  message Assets {
146
- optional string asset_url_format = 1 [(description) = "Format for URLs, should substitute the capsule name for ${FILENAME} in the URL."];
156
+ optional string asset_url_format = 1;
147
157
  optional string main_capsule = 2;
148
158
  optional string small_capsule = 3;
149
- optional string header = 4 [(description) = "Equivalent to GetConstantRatioHeaderImage in PHP; apps will always have this, packages and bundles may not."];
150
- optional string package_header = 5 [(description) = "A wider header used on package/bundle pages. Not set for apps."];
159
+ optional string header = 4;
160
+ optional string package_header = 5;
151
161
  optional string page_background = 6;
152
- optional string hero_capsule = 7 [(description) = "374x448"];
153
- optional string hero_capsule_2x = 8 [(description) = "748x896 version of hero capsule."];
154
- optional string library_capsule = 9 [(description) = "300x450 - tall library asset"];
155
- optional string library_capsule_2x = 10 [(description) = "600x900 - tall library asset"];
156
- optional string library_hero = 11 [(description) = "960x310 or 1920x620 - library detail background asset"];
157
- optional string library_hero_2x = 12 [(description) = "1920x620 or 3840x1240 - library detail background asset"];
158
- optional string community_icon = 13 [(description) = "32x32 jpg uploading via steamworks under community assets"];
162
+ optional string hero_capsule = 7;
163
+ optional string hero_capsule_2x = 8;
164
+ optional string library_capsule = 9;
165
+ optional string library_capsule_2x = 10;
166
+ optional string library_hero = 11;
167
+ optional string library_hero_2x = 12;
168
+ optional string community_icon = 13;
159
169
  optional string clan_avatar = 14;
160
170
  }
161
171
 
162
172
  message ReleaseInfo {
163
- optional uint32 steam_release_date = 1 [(description) = "The date this item first released on the Steam store. For Early Access graduates, this is their graduation day."];
164
- optional uint32 original_release_date = 2 [(description) = "Optional; the date this item first released elsewhere, typically back catalog items."];
165
- optional uint32 original_steam_release_date = 3 [(description) = "For Early Access graduates, the date the game first appeared on Steam."];
166
- optional bool is_coming_soon = 4 [(description) = "Is the app coming soon? This flag should be preferred to doing time comparisons against steam_release_date."];
167
- optional bool is_preload = 5 [(description) = "Can the app be preloaded? Only applies to Coming Soon titles."];
168
- optional string custom_release_date_message = 6 [(description) = "Custom release date string. steam_release_date will be unset if this is set."];
169
- optional bool is_abridged_release_date = 7 [(description) = "Release date should be displayed as month-year only. steam_release_date is the last day of the month."];
170
- optional string coming_soon_display = 8 [(description) = "One of 'date_full', 'date_month', 'date_quarter', 'date_year', 'text_comingsoon', 'text_tba'"];
173
+ optional uint32 steam_release_date = 1;
174
+ optional uint32 original_release_date = 2;
175
+ optional uint32 original_steam_release_date = 3;
176
+ optional bool is_coming_soon = 4;
177
+ optional bool is_preload = 5;
178
+ optional string custom_release_date_message = 6;
179
+ optional bool is_abridged_release_date = 7;
180
+ optional string coming_soon_display = 8;
171
181
  optional bool is_early_access = 10;
172
182
  optional uint32 mac_release_date = 20;
173
183
  optional uint32 linux_release_date = 21;
@@ -197,88 +207,98 @@ message StoreItem {
197
207
  optional uint32 discount_end_date = 3;
198
208
  }
199
209
 
210
+ message RecurrenceInfo {
211
+ optional int32 packageid = 1;
212
+ optional int32 billing_agreement_type = 2;
213
+ optional int32 renewal_time_unit = 3;
214
+ optional int32 renewal_time_period = 4;
215
+ }
216
+
200
217
  optional int32 packageid = 1;
201
218
  optional int32 bundleid = 2;
202
- optional string purchase_option_name = 3 [(description) = "The name of the package or bundle"];
203
- optional int64 final_price_in_cents = 5 [(description) = "Always set. Includes any applicable non user-specific discounts."];
204
- optional int64 original_price_in_cents = 6 [(description) = "If discounted, this is the price the item would normally cost."];
219
+ optional string purchase_option_name = 3;
220
+ optional int64 final_price_in_cents = 5;
221
+ optional int64 original_price_in_cents = 6;
205
222
  optional int64 user_final_price_in_cents = 7;
206
- optional string formatted_final_price = 8 [(description) = "Always set. Formatted with currency symbol and decimal, like '$10.00'."];
223
+ optional string formatted_final_price = 8;
207
224
  optional string formatted_original_price = 9;
208
- optional int32 discount_pct = 10 [(description) = "If discounted, calculated from final price and original price."];
225
+ optional int32 discount_pct = 10;
209
226
  optional int32 user_discount_pct = 11;
210
- optional int32 bundle_discount_pct = 12 [(description) = "If this is a bundle, the savings from buying the bundle. If no bundle items are on active discount, this will be the same as discount_pct."];
211
- repeated .StoreItem.PurchaseOption.Discount active_discounts = 20 [(description) = "Discounts included in discounted_price_in_cents."];
212
- repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21 [(description) = "Additional discounts included in user_discounted_price_in_cents."];
213
- repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22 [(description) = "Additional user-specific discounts that do not apply to the current user."];
227
+ optional int32 bundle_discount_pct = 12;
228
+ repeated .StoreItem.PurchaseOption.Discount active_discounts = 20;
229
+ repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21;
230
+ repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22;
214
231
  optional bool user_can_purchase = 30;
215
232
  optional bool user_can_purchase_as_gift = 31;
216
- optional bool is_commercial_license = 40 [(description) = "This is a commercial license"];
217
- optional bool should_suppress_discount_pct = 41 [(description) = "Don't show the discount percentage on a store capsule for this item."];
218
- optional bool hide_discount_pct_for_compliance = 42 [default = false, (description) = "Don't show the discount percent because there was a discount in the last 30 days."];
219
- optional int32 included_game_count = 43 [(description) = "How many games are included in this purchase option."];
220
- optional int64 lowest_recent_price_in_cents = 44 [(description) = "Lowest recent price in cents. If not set, then there is no data so we ignore."];
233
+ optional bool is_commercial_license = 40;
234
+ optional bool should_suppress_discount_pct = 41;
235
+ optional bool hide_discount_pct_for_compliance = 42 [default = false];
236
+ optional int32 included_game_count = 43;
237
+ optional int64 lowest_recent_price_in_cents = 44;
238
+ optional bool requires_shipping = 45;
239
+ optional .StoreItem.PurchaseOption.RecurrenceInfo recurrence_info = 46;
221
240
  }
222
241
 
223
242
  message Screenshots {
224
243
  message Screenshot {
225
- optional string filename = 1 [(description) = "Path to file on media CDN. Can access sized version by appending to SHA: '.1920x1080', '.600x338', '.116x65'"];
226
- optional int32 ordinal = 2 [(description) = "Screenshots should be displayed in order of ascending ordinal; they are returned in-order but client may need to merge all_ages and mature_content_screenshots."];
244
+ optional string filename = 1;
245
+ optional int32 ordinal = 2;
227
246
  }
228
247
 
229
- repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2 [(description) = "Screenshots suitable for all ages."];
230
- repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3 [(description) = "Screenshots that may contain mature content; these should only be shown after verifying age (age gate)."];
248
+ repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2;
249
+ repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3;
231
250
  }
232
251
 
233
252
  message Trailers {
234
253
  message VideoSource {
235
- optional string filename = 1 [(description) = "Substitute into trailer_url_format"];
236
- optional string type = 2 [(description) = "'video/webm' or 'video/mp4'; can just put this directly in to a <source> tag."];
254
+ optional string filename = 1;
255
+ optional string type = 2;
237
256
  }
238
257
 
239
258
  message Trailer {
240
259
  optional string trailer_name = 1;
241
- optional string trailer_url_format = 2 [(description) = "Format for URLs, should substitute filename for ${FILENAME} in the URL."];
260
+ optional string trailer_url_format = 2;
242
261
  repeated .StoreItem.Trailers.VideoSource trailer_480p = 3;
243
262
  repeated .StoreItem.Trailers.VideoSource trailer_max = 4;
244
263
  repeated .StoreItem.Trailers.VideoSource microtrailer = 5;
245
- optional string screenshot_medium = 10 [(description) = "293x165px. Use trailer_url_format."];
246
- optional string screenshot_full = 11 [(description) = "Same size as trailer_max. Use trailer_url_format."];
247
- optional int32 trailer_base_id = 12 [(description) = "Trailer ID. For localized trailers, this will be the original trailer's ID"];
264
+ optional string screenshot_medium = 10;
265
+ optional string screenshot_full = 11;
266
+ optional int32 trailer_base_id = 12;
248
267
  }
249
268
 
250
- repeated .StoreItem.Trailers.Trailer highlights = 1 [(description) = "Primary trailers for this app"];
251
- repeated .StoreItem.Trailers.Trailer other_trailers = 2 [(description) = "Additional trailers; on the app page, these are shown after screenshots (highlights shown before)"];
269
+ repeated .StoreItem.Trailers.Trailer highlights = 1;
270
+ repeated .StoreItem.Trailers.Trailer other_trailers = 2;
252
271
  }
253
272
 
254
273
  message SupportedLanguage {
255
- optional int32 elanguage = 1 [(description) = "ELanguage"];
274
+ optional int32 elanguage = 1 [default = -1];
275
+ optional int32 eadditionallanguage = 5 [default = -1];
256
276
  optional bool supported = 2;
257
277
  optional bool full_audio = 3;
258
278
  optional bool subtitles = 4;
259
279
  }
260
280
 
261
281
  message FreeWeekend {
262
- optional uint32 start_time = 1 [(description) = "When the free weekend starts."];
263
- optional uint32 end_time = 2 [(description) = "When the free weekend ends."];
264
- optional string text = 3 [(description) = "Text to show as a description of the free weekend."];
282
+ optional uint32 start_time = 1;
283
+ optional uint32 end_time = 2;
284
+ optional string text = 3;
265
285
  }
266
286
 
267
287
  optional .EStoreItemType item_type = 1 [default = k_EStoreItemType_Invalid];
268
288
  optional uint32 id = 2;
269
- optional uint32 success = 3 [(description) = "EResult of this lookup action"];
289
+ optional uint32 success = 3;
270
290
  optional bool visible = 4;
271
- optional bool unvailable_for_country_restriction = 5 [(description) = "Indicates this app is visible in other regions, but not the requested reagion"];
291
+ optional bool unvailable_for_country_restriction = 5;
272
292
  optional string name = 6;
273
- optional string store_url_path = 7 [(description) = "The URL of this item's store page, to be appended to STORE_BASE_URL."];
274
- optional uint32 appid = 9 [(description) = "If this is an app, or a single-app package, the steamworks appid."];
275
- optional .EStoreAppType type = 10 [default = k_EStoreAppType_Game, (description) = "Type of app (Game, Software, Music). For packages/bundles, this will be the most interesting type (eg Game + Soundtrack bundle will have type Game)"];
276
- repeated .EStoreAppType included_types = 11 [(description) = "For packages/bundles, all types of included items"];
277
- repeated uint32 included_appids = 12 [(description) = "For packages/bundles, all included appids"];
293
+ optional string store_url_path = 7;
294
+ optional uint32 appid = 9;
295
+ optional .EStoreAppType type = 10 [default = k_EStoreAppType_Game];
296
+ repeated .EStoreAppType included_types = 11;
297
+ repeated uint32 included_appids = 12;
278
298
  optional bool is_free = 13;
279
299
  optional bool is_early_access = 14;
280
300
  optional .StoreItem.RelatedItems related_items = 15;
281
- optional .StoreItem.IncludedItems included_items = 16 [(description) = "Items included in this package/bundle, if included_items datarequest was passed."];
301
+ optional .StoreItem.IncludedItems included_items = 16;
282
302
  repeated .EContentDescriptorID content_descriptorids = 20;
283
303
  repeated uint32 tagids = 21;
284
304
  optional .StoreItem.Categories categories = 22;
@@ -288,30 +308,48 @@ message StoreItem {
288
308
  optional .StoreItem.Assets assets = 30;
289
309
  optional .StoreItem.ReleaseInfo release = 31;
290
310
  optional .StoreItem.Platforms platforms = 32;
291
- optional .StoreGameRating game_rating = 33 [(description) = "Local ratings agency information, like ESRB or PEGI"];
292
- optional .StoreItem.PurchaseOption best_purchase_option = 40 [(description) = "The cheapest way for the user to acquire this app or package (may be a bundle)."];
293
- repeated .StoreItem.PurchaseOption purchase_options = 41 [(description) = "Different ways to buy this app or packages (packages can be purchased directly, but may also be included in bundles)."];
294
- repeated .StoreItem.PurchaseOption accessories = 42 [(description) = "Additional packages or bundles associated with an app, but that do not contain the app."];
311
+ optional .StoreGameRating game_rating = 33;
312
+ optional .StoreItem.PurchaseOption best_purchase_option = 40;
313
+ repeated .StoreItem.PurchaseOption purchase_options = 41;
314
+ repeated .StoreItem.PurchaseOption accessories = 42;
315
+ optional .StoreItem.PurchaseOption self_purchase_option = 43;
295
316
  optional .StoreItem.Screenshots screenshots = 50;
296
317
  optional .StoreItem.Trailers trailers = 51;
297
318
  repeated .StoreItem.SupportedLanguage supported_languages = 52;
298
- optional string store_url_path_override = 53 [(description) = "Navigate to this URL (relative to store home) when the store capsule for this item is clicked, instead of the default /app/... URL. Used by advertising apps that point to a sale page."];
299
- optional .StoreItem.FreeWeekend free_weekend = 54 [(description) = "Information about a free weekend offer."];
300
- optional bool unlisted = 55 [(description) = "If true, item is only accessible on store via a direct link"];
301
- optional uint32 game_count = 56 [(description) = "For creators and tags, how many games belong to them"];
302
- optional string internal_name = 57 [(description) = "For hub categories, the internal name (handle) of the category"];
303
- optional string full_description = 58 [(description) = "About this game section on the store page"];
319
+ optional string store_url_path_override = 53;
320
+ optional .StoreItem.FreeWeekend free_weekend = 54;
321
+ optional bool unlisted = 55;
322
+ optional uint32 game_count = 56;
323
+ optional string internal_name = 57;
324
+ optional string full_description = 58;
325
+ optional bool is_free_temporarily = 59;
326
+ optional .StoreItem.Assets assets_without_overrides = 60;
327
+ optional .StoreBrowseFilterFailure user_filter_failure = 70;
304
328
  }
305
329
 
306
330
  message StoreGameRating {
307
- optional string type = 1 [(description) = "'esrb', 'pegi', ..."];
308
- optional string rating = 2 [(description) = "'t' for teen, 'm' for mature, ..."];
309
- repeated string descriptors = 3 [(description) = "Additional descriptors like 'Intense Violence', 'Strong Language',..."];
310
- optional string interactive_elements = 4 [(description) = "ESRB-specific"];
311
- optional int32 required_age = 10 [(description) = "Age in years. Store pages will prompt with an age gate"];
331
+ optional string type = 1;
332
+ optional string rating = 2;
333
+ repeated string descriptors = 3;
334
+ optional string interactive_elements = 4;
335
+ optional int32 required_age = 10;
312
336
  optional bool use_age_gate = 11;
313
- optional string image_url = 20 [(description) = "An image corresponding to the rating."];
314
- optional string image_target = 21 [(description) = "URL where the image should link for more information."];
337
+ optional string image_url = 20;
338
+ optional string image_target = 21;
339
+ }
340
+
341
+ message StoreBrowseFilterFailure {
342
+ optional .EStoreBrowseFilterFailure filter_failure = 1 [default = k_EStoreBrowseFilterFailure_None];
343
+ optional bool already_owned = 5;
344
+ optional bool on_wishlist = 6;
345
+ optional bool ignored = 7;
346
+ optional bool not_in_users_language = 10;
347
+ optional bool not_on_users_platform = 11;
348
+ optional bool demo_for_owned_game = 12;
349
+ optional bool dlc_for_unowned_game = 13;
350
+ optional bool nonpreferred_product_type = 20;
351
+ repeated uint32 excluded_tagids = 21;
352
+ repeated .EContentDescriptorID excluded_content_descriptorids = 30;
315
353
  }
316
354
 
317
355
  message CStoreBrowse_GetItems_Response {
@@ -320,7 +358,7 @@ message CStoreBrowse_GetItems_Response {
320
358
 
321
359
  message CStoreBrowse_GetStoreCategories_Request {
322
360
  optional string language = 1;
323
- optional int32 elanguage = 2 [default = -1, (description) = "ELanguage"];
361
+ optional int32 elanguage = 2 [default = -1];
324
362
  }
325
363
 
326
364
  message CStoreBrowse_GetStoreCategories_Response {
@@ -329,8 +367,9 @@ message CStoreBrowse_GetStoreCategories_Response {
329
367
  optional .EStoreCategoryType type = 2 [default = k_EStoreCategoryType_Category];
330
368
  optional string internal_name = 3;
331
369
  optional string display_name = 4;
332
- optional string image_url = 5 [(description) = "Append to STORE_CDN_URL"];
333
- optional bool show_in_search = 6 [(description) = "Indicates this category can link to search results showing all items in category."];
370
+ optional string image_url = 5;
371
+ optional bool show_in_search = 6;
372
+ optional bool computed = 7;
334
373
  }
335
374
 
336
375
  repeated .CStoreBrowse_GetStoreCategories_Response.Category categories = 1;
@@ -339,8 +378,8 @@ message CStoreBrowse_GetStoreCategories_Response {
339
378
  message CStoreBrowse_GetDLCForApps_Request {
340
379
  optional .StoreBrowseContext context = 1;
341
380
  optional .CStorePageFilter store_page_filter = 2;
342
- repeated .StoreItemID appids = 3 [(description) = "Apps for which we want DLC information."];
343
- optional uint64 steamid = 4 [(description) = "If specified, we want DLC information for all apps owned by this user."];
381
+ repeated .StoreItemID appids = 3;
382
+ optional uint64 steamid = 4;
344
383
  }
345
384
 
346
385
  message CStoreBrowse_GetDLCForApps_Response {
@@ -356,8 +395,8 @@ message CStoreBrowse_GetDLCForApps_Response {
356
395
 
357
396
  message PlaytimeForApp {
358
397
  optional uint32 appid = 1;
359
- optional uint32 playtime = 2 [(description) = "Total time played over all time."];
360
- optional uint32 last_played = 3 [(description) = "Time last played on any platform."];
398
+ optional uint32 playtime = 2;
399
+ optional uint32 last_played = 3;
361
400
  }
362
401
 
363
402
  repeated .CStoreBrowse_GetDLCForApps_Response.DLCData dlc_data = 1;
@@ -381,22 +420,38 @@ message CStoreBrowse_GetDLCForAppsSolr_Response {
381
420
  repeated .CStoreBrowse_GetDLCForAppsSolr_Response.DLCList dlc_lists = 1;
382
421
  }
383
422
 
384
- service StoreBrowse {
385
- option (service_description) = "APIs for accessing store item data";
386
-
387
- rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response) {
388
- option (method_description) = "Get information about items on the store";
389
- }
423
+ message CStoreBrowse_GetHardwareItems_Request {
424
+ repeated uint32 packageid = 1;
425
+ optional .StoreBrowseContext context = 2;
426
+ }
390
427
 
391
- rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response) {
392
- option (method_description) = "Get category definitions for store. This is a public-facing API (as compared to StoreCatalog.GetCategories, which is intended for PHP)";
393
- }
428
+ message CHardwarePackageDetails {
429
+ optional uint32 packageid = 1;
430
+ optional bool inventory_available = 3;
431
+ optional bool high_pending_orders = 4;
432
+ optional bool account_restricted_from_purchasing = 5;
433
+ optional bool requires_reservation = 6;
434
+ optional uint32 rtime_estimated_notification = 7;
435
+ optional string notificaton_token = 8;
436
+ optional int32 reservation_state = 9;
437
+ optional bool expired = 10;
438
+ optional uint32 time_expires = 11;
439
+ optional uint32 time_reserved = 12;
440
+ optional bool allow_quantity_purchase = 13;
441
+ optional int32 max_quantity_per_purchase = 14;
442
+ optional bool allow_purchase_in_country = 15;
443
+ optional uint32 estimated_delivery_soonest_business_days = 17;
444
+ optional uint32 estimated_delivery_latest_business_days = 18;
445
+ }
394
446
 
395
- rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response) {
396
- option (method_description) = "Returns all DLC appids for games owned by the user.";
397
- }
447
+ message CStoreBrowse_GetHardwareItems_Response {
448
+ repeated .CHardwarePackageDetails details = 1;
449
+ }
398
450
 
399
- rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response) {
400
- option (method_description) = "Returns all DLC appids for the specified games.";
401
- }
451
+ service StoreBrowse {
452
+ rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response);
453
+ rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response);
454
+ rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response);
455
+ rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response);
456
+ rpc GetHardwareItems (.CStoreBrowse_GetHardwareItems_Request) returns (.CStoreBrowse_GetHardwareItems_Response);
402
457
  }
@@ -34,17 +34,7 @@ message CTimedTrial_ResetPlaytime_Response {
34
34
  }
35
35
 
36
36
  service TimedTrial {
37
- option (service_description) = "A service to get user timed trial information";
38
-
39
- rpc GetTimeRemaining (.CTimedTrial_GetTimeRemaining_Request) returns (.CTimedTrial_GetTimeRemaining_Response) {
40
- option (method_description) = "Returns the amount of time a user has left on a timed trial for an app";
41
- }
42
-
43
- rpc RecordPlaytime (.CTimedTrial_RecordPlaytime_Request) returns (.CTimedTrial_RecordPlaytime_Response) {
44
- option (method_description) = "Updates the user's remaining playtime while in game";
45
- }
46
-
47
- rpc ResetPlaytime (.CTimedTrial_ResetPlaytime_Request) returns (.CTimedTrial_ResetPlaytime_Response) {
48
- option (method_description) = "Reset the user's remaining playtime (developer only)";
49
- }
37
+ rpc GetTimeRemaining (.CTimedTrial_GetTimeRemaining_Request) returns (.CTimedTrial_GetTimeRemaining_Response);
38
+ rpc RecordPlaytime (.CTimedTrial_RecordPlaytime_Request) returns (.CTimedTrial_RecordPlaytime_Response);
39
+ rpc ResetPlaytime (.CTimedTrial_ResetPlaytime_Request) returns (.CTimedTrial_ResetPlaytime_Response);
50
40
  }