@decky/ui 4.15.1 → 4.16.0

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/dist/components/Dropdown.d.ts +2 -2
  2. package/dist/components/FooterLegend.d.ts +8 -2
  3. package/dist/components/FooterLegend.js +7 -0
  4. package/dist/components/Menu.d.ts +5 -9
  5. package/dist/components/Modal.d.ts +3 -2
  6. package/dist/globals/index.d.ts +25 -2
  7. package/dist/globals/index.js +1 -2
  8. package/dist/globals/shared/cm.d.ts +112 -0
  9. package/dist/globals/shared/enums.d.ts +80 -0
  10. package/dist/globals/shared/enums.js +85 -0
  11. package/dist/globals/shared/history.d.ts +12 -0
  12. package/dist/globals/shared/history.js +1 -0
  13. package/dist/globals/shared/index.d.ts +5 -0
  14. package/dist/globals/shared/index.js +5 -0
  15. package/dist/globals/shared/interfaces.d.ts +54 -0
  16. package/dist/globals/shared/interfaces.js +1 -0
  17. package/dist/globals/shared/navigation.d.ts +14 -0
  18. package/dist/globals/shared/navigation.js +10 -0
  19. package/dist/globals/shared/steamid.d.ts +36 -0
  20. package/dist/globals/shared/steamid.js +15 -0
  21. package/dist/globals/shared/storage.d.ts +27 -0
  22. package/dist/globals/shared/storage.js +11 -0
  23. package/dist/globals/steam-client/App.d.ts +1 -1
  24. package/dist/globals/steam-client/Auth.d.ts +1 -1
  25. package/dist/globals/steam-client/ClientNotifications.d.ts +1 -1
  26. package/dist/globals/steam-client/Overlay.d.ts +2 -1
  27. package/dist/globals/steam-client/Settings.d.ts +1 -1
  28. package/dist/globals/steam-client/SharedConnection.d.ts +2 -1
  29. package/dist/globals/steam-client/UI.d.ts +14 -3
  30. package/dist/globals/steam-client/UI.js +11 -0
  31. package/dist/globals/steam-client/User.d.ts +13 -0
  32. package/dist/globals/steam-client/User.js +7 -0
  33. package/dist/globals/steam-client/WebChat.d.ts +3 -2
  34. package/dist/globals/steam-client/shared.d.ts +0 -29
  35. package/dist/globals/steam-client/shared.js +0 -24
  36. package/dist/globals/stores/app.d.ts +35 -0
  37. package/dist/globals/stores/app.js +1 -0
  38. package/dist/globals/stores/appdetailsstore.d.ts +86 -0
  39. package/dist/globals/stores/appdetailsstore.js +1 -0
  40. package/dist/globals/stores/appinfostore.d.ts +56 -0
  41. package/dist/globals/stores/appinfostore.js +1 -0
  42. package/dist/globals/stores/appstore.d.ts +77 -0
  43. package/dist/globals/stores/appstore.js +1 -0
  44. package/dist/globals/stores/badgestore.d.ts +52 -0
  45. package/dist/globals/stores/badgestore.js +1 -0
  46. package/dist/globals/stores/collectionstore.d.ts +313 -0
  47. package/dist/globals/stores/collectionstore.js +143 -0
  48. package/dist/globals/stores/consolestore.d.ts +20 -0
  49. package/dist/globals/stores/consolestore.js +1 -0
  50. package/dist/globals/stores/focusnavcontroller.d.ts +383 -0
  51. package/dist/globals/stores/focusnavcontroller.js +29 -0
  52. package/dist/globals/stores/friendstore/clanstore.d.ts +75 -0
  53. package/dist/globals/stores/friendstore/clanstore.js +19 -0
  54. package/dist/globals/stores/friendstore/friendchat.d.ts +374 -0
  55. package/dist/globals/stores/friendstore/friendchat.js +56 -0
  56. package/dist/globals/stores/friendstore/friendgroupstore.d.ts +98 -0
  57. package/dist/globals/stores/friendstore/friendgroupstore.js +8 -0
  58. package/dist/globals/stores/friendstore/friendingamenotificationstore.d.ts +2 -0
  59. package/dist/globals/stores/friendstore/friendingamenotificationstore.js +1 -0
  60. package/dist/globals/stores/friendstore/friendslistfavoritesstore.d.ts +22 -0
  61. package/dist/globals/stores/friendstore/friendslistfavoritesstore.js +1 -0
  62. package/dist/globals/stores/friendstore/friendsuifriendstore.d.ts +125 -0
  63. package/dist/globals/stores/friendstore/friendsuifriendstore.js +1 -0
  64. package/dist/globals/stores/friendstore/index.d.ts +25 -0
  65. package/dist/globals/stores/friendstore/index.js +1 -0
  66. package/dist/globals/stores/friendstore/shared.d.ts +207 -0
  67. package/dist/globals/stores/friendstore/shared.js +41 -0
  68. package/dist/globals/stores/gamerecordingstore.d.ts +263 -0
  69. package/dist/globals/stores/gamerecordingstore.js +1 -0
  70. package/dist/globals/stores/index.d.ts +18 -0
  71. package/dist/globals/stores/index.js +18 -0
  72. package/dist/globals/stores/libraryuistore.d.ts +179 -0
  73. package/dist/globals/stores/libraryuistore.js +56 -0
  74. package/dist/globals/stores/localizationmanager.d.ts +18 -0
  75. package/dist/globals/stores/localizationmanager.js +1 -0
  76. package/dist/globals/stores/mainwindowbrowsermanager.d.ts +62 -0
  77. package/dist/globals/stores/mainwindowbrowsermanager.js +1 -0
  78. package/dist/globals/stores/notificationstore.d.ts +242 -0
  79. package/dist/globals/stores/notificationstore.js +20 -0
  80. package/dist/globals/stores/popupmanager.d.ts +128 -0
  81. package/dist/globals/stores/popupmanager.js +1 -0
  82. package/dist/globals/stores/securitystore.d.ts +35 -0
  83. package/dist/globals/stores/securitystore.js +1 -0
  84. package/dist/globals/stores/settingsstore.d.ts +86 -0
  85. package/dist/globals/stores/settingsstore.js +19 -0
  86. package/dist/globals/stores/steamuistore/gamepadbrowserview.d.ts +143 -0
  87. package/dist/globals/stores/steamuistore/gamepadbrowserview.js +9 -0
  88. package/dist/globals/stores/steamuistore/gamepaduiaudio.d.ts +36 -0
  89. package/dist/globals/stores/steamuistore/gamepaduiaudio.js +1 -0
  90. package/dist/globals/stores/steamuistore/index.d.ts +129 -0
  91. package/dist/globals/stores/steamuistore/index.js +11 -0
  92. package/dist/globals/stores/steamuistore/menu.d.ts +39 -0
  93. package/dist/globals/stores/steamuistore/menu.js +19 -0
  94. package/dist/globals/stores/steamuistore/window.d.ts +206 -0
  95. package/dist/globals/stores/steamuistore/window.js +6 -0
  96. package/dist/globals/stores/storeitemcache.d.ts +319 -0
  97. package/dist/globals/stores/storeitemcache.js +17 -0
  98. package/dist/globals/stores/urlstore.d.ts +57 -0
  99. package/dist/globals/stores/urlstore.js +1 -0
  100. package/dist/modules/Router.d.ts +5 -58
  101. package/dist/modules/Router.js +2 -20
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/dist/utils/index.d.ts +0 -1
  104. package/package.json +1 -1
  105. package/src/components/Dropdown.tsx +2 -2
  106. package/src/components/FooterLegend.ts +10 -2
  107. package/src/components/Menu.ts +11 -21
  108. package/src/components/Modal.ts +40 -8
  109. package/src/globals/index.ts +45 -2
  110. package/src/globals/shared/cm.ts +158 -0
  111. package/src/globals/shared/enums.ts +97 -0
  112. package/src/globals/shared/history.ts +15 -0
  113. package/src/globals/shared/index.ts +5 -0
  114. package/src/globals/shared/interfaces.ts +147 -0
  115. package/src/globals/shared/navigation.ts +15 -0
  116. package/src/globals/shared/steamid.ts +49 -0
  117. package/src/globals/shared/storage.ts +62 -0
  118. package/src/globals/steam-client/App.ts +2 -2
  119. package/src/globals/steam-client/Auth.ts +2 -2
  120. package/src/globals/steam-client/ClientNotifications.ts +1 -1
  121. package/src/globals/steam-client/Overlay.ts +2 -1
  122. package/src/globals/steam-client/Settings.ts +1 -1
  123. package/src/globals/steam-client/SharedConnection.ts +2 -1
  124. package/src/globals/steam-client/UI.ts +15 -6
  125. package/src/globals/steam-client/User.ts +20 -0
  126. package/src/globals/steam-client/WebChat.ts +3 -2
  127. package/src/globals/steam-client/shared.ts +0 -69
  128. package/src/globals/stores/app.ts +102 -0
  129. package/src/globals/stores/appdetailsstore.ts +235 -0
  130. package/src/globals/stores/appinfostore.ts +65 -0
  131. package/src/globals/stores/appstore.ts +166 -0
  132. package/src/globals/stores/badgestore.ts +87 -0
  133. package/src/globals/stores/collectionstore.ts +544 -0
  134. package/src/globals/stores/consolestore.ts +54 -0
  135. package/src/globals/stores/focusnavcontroller.ts +522 -0
  136. package/src/globals/stores/friendstore/clanstore.ts +89 -0
  137. package/src/globals/stores/friendstore/friendchat.ts +646 -0
  138. package/src/globals/stores/friendstore/friendgroupstore.ts +187 -0
  139. package/src/globals/stores/friendstore/friendingamenotificationstore.ts +1 -0
  140. package/src/globals/stores/friendstore/friendslistfavoritesstore.ts +37 -0
  141. package/src/globals/stores/friendstore/friendsuifriendstore.ts +274 -0
  142. package/src/globals/stores/friendstore/index.ts +58 -0
  143. package/src/globals/stores/friendstore/shared.ts +318 -0
  144. package/src/globals/stores/gamerecordingstore.ts +367 -0
  145. package/src/globals/stores/index.ts +18 -0
  146. package/src/globals/stores/libraryuistore.ts +395 -0
  147. package/src/globals/stores/localizationmanager.ts +56 -0
  148. package/src/globals/stores/mainwindowbrowsermanager.ts +135 -0
  149. package/src/globals/stores/notificationstore.ts +298 -0
  150. package/src/globals/stores/popupmanager.ts +352 -0
  151. package/src/globals/stores/securitystore.ts +36 -0
  152. package/src/globals/stores/settingsstore.ts +134 -0
  153. package/src/globals/stores/steamuistore/gamepadbrowserview.ts +172 -0
  154. package/src/globals/stores/steamuistore/gamepaduiaudio.ts +117 -0
  155. package/src/globals/stores/steamuistore/index.ts +212 -0
  156. package/src/globals/stores/steamuistore/menu.ts +89 -0
  157. package/src/globals/stores/steamuistore/window.ts +466 -0
  158. package/src/globals/stores/storeitemcache.ts +347 -0
  159. package/src/globals/stores/urlstore.ts +150 -0
  160. package/src/modules/Router.ts +11 -77
  161. package/src/utils/index.ts +0 -1
  162. package/dist/globals/SteamClient.d.ts +0 -5
  163. package/dist/globals/SteamClient.js +0 -1
  164. package/dist/globals/stores.d.ts +0 -70
  165. package/src/globals/SteamClient.ts +0 -6
  166. package/src/globals/stores.ts +0 -74
  167. /package/dist/globals/{stores.js → shared/cm.js} +0 -0
@@ -0,0 +1,347 @@
1
+ import type { ServiceTransport } from '../shared';
2
+ import type { EAppType, ESteamDeckCompatibilityCategory } from '../steam-client/App';
3
+ import type { ELanguage } from '../steam-client/Settings';
4
+ import type { EResult } from '../steam-client/shared';
5
+
6
+ // #region TODO(protobufs): generate
7
+ export enum ESteamOSCompatibilityCategory {
8
+ k_ESteamOSCompatibilityCategory_Unknown,
9
+ k_ESteamOSCompatibilityCategory_Unsupported,
10
+ k_ESteamOSCompatibilityCategory_Compatible,
11
+ }
12
+
13
+ export enum EStoreItemType {
14
+ k_EStoreItemType_Invalid = -1,
15
+ k_EStoreItemType_App,
16
+ k_EStoreItemType_Package,
17
+ k_EStoreItemType_Bundle,
18
+ k_EStoreItemType_Mtx,
19
+ k_EStoreItemType_Tag,
20
+ k_EStoreItemType_Creator,
21
+ k_EStoreItemType_HubCategory,
22
+ }
23
+
24
+ declare class StoreBrowseItemDataRequest {}
25
+ // #endregion
26
+
27
+ interface StoreItemAssets {
28
+ ConstructAssetURL(urlFormat: string, name: string): string | undefined;
29
+ GetCommunityIconURL(): string | undefined;
30
+ GetCommunityIconURL_Full(): string | undefined;
31
+ GetHeaderURL(): string | undefined;
32
+ GetHeroCapsuleURL(): string | undefined;
33
+ GetHeroCapsuleURL_2x(): string | undefined;
34
+ GetLibraryCapsuleURL(): string | undefined;
35
+ GetLibraryCapsuleURL_2x(): string | undefined;
36
+ GetLibraryHeroURL(): string | undefined;
37
+ GetLibraryHeroURL_2x(): string | undefined;
38
+ GetMainCapsuleURL(): string | undefined;
39
+ GetPackageHeaderURL(): string | undefined;
40
+ GetPageBackgroundURL(): string | undefined;
41
+ GetRawPageBackgroundURL(): string | undefined;
42
+ GetSmallCapsuleURL(): string | undefined;
43
+ }
44
+
45
+ export interface CStoreItem {
46
+ k_regexSalePage: RegExp;
47
+ m_Assets: StoreItemAssets | undefined;
48
+ m_AssetsWithoutOverrides: StoreItemAssets | undefined;
49
+ m_BasicInfo: {
50
+ developers: {
51
+ name: string;
52
+ }[];
53
+ franchises: {
54
+ creator_clan_account_id: number;
55
+ name: string;
56
+ }[];
57
+ publishers: {
58
+ creator_clan_account_id: number;
59
+ name: string;
60
+ }[];
61
+ short_description: string;
62
+ };
63
+ m_BestPurchaseOption: {
64
+ active_discounts: {
65
+ discount_amount: string;
66
+ discount_description: string;
67
+ discount_end_date: number;
68
+ }[];
69
+ discount_pct: number;
70
+ final_price_in_cents: string;
71
+ formatted_final_price: string;
72
+ formatted_original_price: string;
73
+ hide_discount_pct_for_compliance: boolean;
74
+ included_game_count: number;
75
+ original_price_in_cents: string;
76
+ packageid: number;
77
+ purchase_option_name: string;
78
+ user_can_purchase_as_gift: boolean;
79
+ };
80
+ m_ContentDescriptorIDs: any[];
81
+ m_DataRequested: {
82
+ include_assets: boolean;
83
+ include_basic_info: boolean;
84
+ include_tag_count: number;
85
+ };
86
+ m_Platforms: {
87
+ windows: boolean;
88
+ mac: boolean;
89
+ steamos_linux: boolean;
90
+ vr_support: {
91
+ vrhmd: boolean;
92
+ vrhmd_only: boolean;
93
+ htc_vive: boolean;
94
+ oculus_rift: boolean;
95
+ windows_mr: boolean;
96
+ valve_index: boolean;
97
+ };
98
+ steam_deck_compat_category: ESteamDeckCompatibilityCategory;
99
+ steam_os_compat_category: ESteamOSCompatibilityCategory;
100
+ };
101
+ m_RelatedItems: {
102
+ demo_appid: any[];
103
+ standalone_demo_appid: any[];
104
+ };
105
+ m_ReleaseInfo: any;
106
+ m_ReviewInfo: any;
107
+ m_Screenshots: any;
108
+ m_SelfPurchaseOption: any;
109
+ m_StoreCategories: {
110
+ controller_categoryids: number[];
111
+ feature_categoryids: number[];
112
+ supported_player_categoryids: number[];
113
+ };
114
+ m_Trailers: any;
115
+ m_bIsComingSoon: boolean;
116
+ m_bIsEarlyAccess: boolean;
117
+ m_bIsFree: boolean;
118
+ m_bIsFreeTemporary: boolean;
119
+ m_bVisible: boolean;
120
+ m_eAppType: EAppType;
121
+ m_eItemType: EStoreItemType;
122
+ m_freeWeekend: {};
123
+ m_rgIncludedAppIDs: any[];
124
+ m_rgIncludedAppTypes: any[];
125
+ m_rgLinks: any;
126
+ m_rgPurchaseOptions: any;
127
+ m_rgStoreTagIDs: any[];
128
+ m_rgStoreTags: any[];
129
+ m_rgSupportedLanguages: any;
130
+ m_strInternalName: string;
131
+ m_strName: string;
132
+ m_strStoreURLPath: string;
133
+ m_strStoreURLPathOverride: string;
134
+ m_unAppID: number;
135
+ m_unID: number;
136
+ m_userFilterFailure: any;
137
+
138
+ BCheckDataRequestIncluded(msg: StoreBrowseItemDataRequest): boolean;
139
+ BContainDataRequest(msg: StoreBrowseItemDataRequest): boolean;
140
+ BHasAgeSafeScreenshots(): boolean;
141
+ BHasDemo(): boolean;
142
+ BHasHighlightTrailers(param0: any): boolean;
143
+ BHasSomeLanguageSupport(lang: ELanguage): boolean;
144
+ BHasStoreCategory(category: number): boolean;
145
+ BHasTags(): boolean;
146
+ BHasTrailers(param0: any): boolean;
147
+ BIsAgeSafeScreenshot(param0: any): boolean;
148
+ BIsApplicationOrTool(): boolean;
149
+ BIsComingSoon(): boolean;
150
+ BIsCustomComingSoonDisplay(): boolean;
151
+ BIsEarlyAccess(): boolean;
152
+ BIsFree(): boolean;
153
+ BIsFreeTemporary(): boolean;
154
+ BIsFreeWeekend(): boolean;
155
+ BIsPrePurchase(): boolean;
156
+ BIsReleased(): boolean;
157
+ BIsSalePage(): boolean;
158
+ BIsVisible(): boolean;
159
+ BLimitedLaunchActive(): boolean;
160
+ GetAllCreatorClanIDs(): number[];
161
+ GetAllDeveloperCreatorClans(): number[];
162
+ GetAllFranchiseCreatorClans(): number[];
163
+ GetAllLanguagesWithSomeSupport(): any[];
164
+ GetAllPublisherCreatorClans(): number[];
165
+ GetAllPurchaseOptions(): this['m_rgPurchaseOptions'];
166
+ GetAllTrailers(): this['m_Trailers'];
167
+ GetAppID(): number;
168
+ GetAppIDToRun(): number;
169
+ GetAppType(): EAppType;
170
+ GetAssets(): this['m_Assets'];
171
+ GetAssetsWithoutOverrides(): this['m_AssetsWithoutOverrides'];
172
+ GetBestPurchaseOption(): this['m_BestPurchaseOption'];
173
+ GetBestPurchaseOriginalPriceFormatted(): string;
174
+ GetBestPurchaseOriginalPriceInCents(): number;
175
+ GetBestPurchasePriceFormatted(): string;
176
+ GetBestPurchasePriceInCents(): number;
177
+ GetCapsuleHeadline(): any;
178
+ GetCommunityDiscussionForumsURL(): string;
179
+ GetCommunityPageURL(): string;
180
+ GetContentDescriptorIDs(): any[];
181
+ GetDataRequest(): this['m_DataRequested'];
182
+ GetDemoAppIDs(): number[];
183
+ GetDemoStandaloneStorePageAppIDs(): number[];
184
+ GetDeveloperNames(): string[];
185
+ GetFilteredReviewSummary(): any;
186
+ GetFilteredReviewSummaryLanguage(): any;
187
+ GetFormattedSteamReleaseDate(): string;
188
+ GetFranchiseNames(): string[];
189
+ GetFreeWeekendEnd(): any;
190
+ GetFreeWeekendPlayTextOverride(): any;
191
+ GetID(): number;
192
+ GetIncludedAppIDs(): number[];
193
+ GetIncludedAppIDsOrSelf(): number[];
194
+ GetIncludedAppTypes(): EAppType[];
195
+ GetInternalName(): any;
196
+ GetLinks(): any;
197
+ GetMicroTrailer(e: any): any | null;
198
+ GetName(): string;
199
+ GetOriginalReleaseDateRTime(): any;
200
+ GetParentAppID(): number;
201
+ GetPlatforms(): this['m_Platforms'];
202
+ GetPublisherNames(): string[];
203
+ GetReleaseDateRTime(e?: boolean): number;
204
+ GetSalePageVanityURL(): string;
205
+ GetScreenshots(e: any): any[];
206
+ GetSelfPurchaseOption(): any;
207
+ GetShortDescription(): string;
208
+ GetStoreCategories_Controller(): number[];
209
+ GetStoreCategories_Features(): number[];
210
+ GetStoreCategories_SupportedPlayers(): number[];
211
+ GetStoreItemType(): EStoreItemType;
212
+ GetStorePageURL(demoPage?: boolean): string;
213
+ GetStorePageURLOverride(): string;
214
+ GetStorePageURLWithOverride(): string;
215
+ GetTagIDs(): any[];
216
+ GetTags(): any[];
217
+ GetUnfilteredReviewSummary(): any;
218
+ GetUniqueID(): string;
219
+ GetUserFilterFailure(): any;
220
+ HasContentDescriptorID(param0: any): boolean;
221
+ HasDemoStandaloneStorePage(): boolean;
222
+ MergeData(e: any, t: any): void;
223
+ ReplaceBestPurchaseOption(e: any): void;
224
+ }
225
+
226
+ export interface CStoreItemCache {
227
+ k_AlreadyResolvedBusy: Promise<EResult>;
228
+ k_AlreadyResolvedInvalid: Promise<EResult>;
229
+ k_AlreadyResolvedOK: Promise<EResult>;
230
+ k_QueueWaitUntilRequestMS: number;
231
+ k_nMaxBatchSize: number;
232
+ m_PendingInfoPromise: any;
233
+ m_PendingInfoResolve: any;
234
+ m_PendingTimer: any;
235
+ m_bActivelyResettingCache: boolean;
236
+ m_bInitialized: boolean;
237
+ m_bReturnUnavailableItems: boolean;
238
+ m_bUsePartnerAPI: boolean;
239
+ m_mapApps: Map<number, CStoreItem>;
240
+ m_mapAppsInFlight: Map<number, CStoreItem>;
241
+ m_mapBundleInFlight: Map<number, CStoreItem>;
242
+ m_mapBundles: Map<number, CStoreItem>;
243
+ m_mapCreators: Map<number, CStoreItem>;
244
+ m_mapCreatorsInFlight: Map<number, CStoreItem>;
245
+ m_mapHubCategories: Map<number, CStoreItem>;
246
+ m_mapHubCategoriesInFlight: Map<number, CStoreItem>;
247
+ m_mapPackageInFlight: Map<number, CStoreItem>;
248
+ m_mapPackages: Map<number, CStoreItem>;
249
+ m_mapTags: Map<number, CStoreItem>;
250
+ m_mapTagsInFlight: Map<number, CStoreItem>;
251
+ m_serviceTransport: ServiceTransport;
252
+ m_setPendingAppInfo: Set<number>;
253
+ m_setPendingBundleInfo: Set<number>;
254
+ m_setPendingCreatorInfo: Set<number>;
255
+ m_setPendingDataRequest: Set<number>;
256
+ m_setPendingHubCategoryInfo: Set<number>;
257
+ m_setPendingPackageInfo: Set<number>;
258
+ m_setPendingTagInfo: Set<number>;
259
+ m_setUnavailableApps: Set<number>;
260
+ m_setUnavailableBundles: Set<number>;
261
+ m_setUnavailableCreators: Set<number>;
262
+ m_setUnavailableDueToCountryRestrictionApps: Set<number>;
263
+ m_setUnavailableDueToCountryRestrictionBundles: Set<number>;
264
+ m_setUnavailableDueToCountryRestrictionPackages: Set<number>;
265
+ m_setUnavailableHubCategories: Set<number>;
266
+ m_setUnavailablePackages: Set<number>;
267
+ m_setUnavailableTags: Set<number>;
268
+
269
+ BHasApp(appid: number, msg: StoreBrowseItemDataRequest): boolean;
270
+ BHasBundle(appid: number, msg: StoreBrowseItemDataRequest): boolean;
271
+ BHasCreator(appid: number, msg: StoreBrowseItemDataRequest): boolean;
272
+ BHasHubCategory(appid: number, msg: StoreBrowseItemDataRequest): boolean;
273
+ BHasPackage(appid: number, msg: StoreBrowseItemDataRequest): boolean;
274
+ BHasStoreItem(appid: number, type: EStoreItemType, msg: StoreBrowseItemDataRequest): boolean;
275
+ BHasTag(appid: number, msg: StoreBrowseItemDataRequest): boolean;
276
+ BIsAppMissing(appid: number): boolean;
277
+ BIsAppUnavailableDueToCountryRestriction(appid: number): boolean;
278
+ BIsBundleMissing(appid: number): boolean;
279
+ BIsBundleUnavailableDueToCountryRestriction(appid: number): boolean;
280
+ BIsCreatorMissing(appid: number): boolean;
281
+ BIsHubCategoryMissing(appid: number): boolean;
282
+ BIsPackageMissing(appid: number): boolean;
283
+ BIsPackageUnavailableDueToCountryRestriction(appid: number): boolean;
284
+ BIsStoreItemMissing(appid: number, type: EStoreItemType): boolean;
285
+ BIsStoreItemUnavailableDueToCountryRestriction(appid: number, type: EStoreItemType): boolean;
286
+ BIsTagMissing(appid: number): boolean;
287
+ FlushPendingInfo(): Promise<void>;
288
+ GetApp(appid: number): CStoreItem;
289
+ GetBundle(appid: number): CStoreItem;
290
+ GetCreator(appid: number): CStoreItem;
291
+ GetHubCategory(appid: number): CStoreItem;
292
+ GetMapForType(appid: number, type: EStoreItemType): Map<number, CStoreItem>;
293
+ GetPackage(appid: number): CStoreItem;
294
+ /** return type not a mistake, actually valve */
295
+ GetPreviousSupersetLoadPromise(
296
+ appid: number,
297
+ type: EStoreItemType,
298
+ msg: StoreBrowseItemDataRequest,
299
+ ): Promise<EResult> | null;
300
+ GetReturnUnavailableItems(): boolean;
301
+ GetServiceTransport(): ServiceTransport;
302
+ GetStoreItem(appid: number, type: EStoreItemType): CStoreItem;
303
+ GetStoreItemDataRequest(appid: number, type: EStoreItemType): CStoreItem['m_DataRequested'] | null;
304
+ GetStoreItemWithLegacyVisibilityCheck(appid: number, type: EStoreItemType): CStoreItem | undefined;
305
+ GetTag(appid: number): CStoreItem;
306
+ HintLoadStoreApps(apps: number[], msg: StoreBrowseItemDataRequest): Promise<EResult | undefined>;
307
+ HintLoadStoreBundles(bundles: number[], msg: StoreBrowseItemDataRequest): Promise<EResult | undefined>;
308
+ HintLoadStoreItems(
309
+ apps: number[] | null,
310
+ packages: number[] | null,
311
+ bundles: number[] | null,
312
+ tags: number[] | null,
313
+ creators: number[] | null,
314
+ hubCategories: number[] | null,
315
+ msg: StoreBrowseItemDataRequest,
316
+ ): Promise<EResult | undefined>;
317
+ HintLoadStorePackages(packages: number[], msg: StoreBrowseItemDataRequest): Promise<EResult | undefined>;
318
+ /** StoreItemID & StoreBrowseItemDataRequest proto messages respectively */
319
+ InternalHandleLoadStoreItems(msg1: any, msg2: StoreBrowseItemDataRequest): Promise<any>;
320
+ /** @param msg StoreItemID proto message */
321
+ MarkStoreItemIDUnavailable(msgs: any[]): void;
322
+ QueueAppRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
323
+ QueueBundleRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
324
+ QueueCreatorRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
325
+ QueueHubCategoryRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
326
+ QueueMultipleAppRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
327
+ QueueMultipleBundleRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
328
+ QueueMultipleCreatorRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
329
+ QueueMultipleHubCategoryRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
330
+ QueueMultiplePackageRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
331
+ QueueMultipleStoreItemRequests(
332
+ appids: number[],
333
+ type: EStoreItemType,
334
+ msg: StoreBrowseItemDataRequest,
335
+ ): Promise<EResult>;
336
+ QueueMultipleTagRequests(appids: number[], msg: StoreBrowseItemDataRequest): Promise<EResult>;
337
+ QueuePackageRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
338
+ QueueStoreItemRequest(appid: number, type: EStoreItemType, msg: StoreBrowseItemDataRequest): Promise<EResult>;
339
+ QueueTagRequest(appid: number, msg: StoreBrowseItemDataRequest): Promise<EResult>;
340
+ ReadResults(e: any[], t: any): any[];
341
+ ResetCache(): Promise<void>;
342
+ SetReturnUnavailableItems(value: boolean): void;
343
+ SetServiceTransport(value: ServiceTransport): void;
344
+ SetSteamInterface(value: any): void;
345
+ /** @param msg StoreItemID proto message */
346
+ SortStoreItems(msg: StoreBrowseItemDataRequest): any;
347
+ }
@@ -0,0 +1,150 @@
1
+ import type { EParentalFeature } from '../steam-client/Parental';
2
+ import type { SteamWebURL_t } from '../steam-client/URL';
3
+
4
+ type SteamURLs_t = {
5
+ [url in SteamWebURL_t]: { feature: EParentalFeature; regexMatchURL: RegExp; url: string };
6
+ };
7
+ type SteamURLsLowercase_t = {
8
+ [url in Lowercase<SteamWebURL_t>]: { bDuplicate: boolean; feature: EParentalFeature; url: string };
9
+ };
10
+
11
+ export interface CURLStore {
12
+ m_nGeneration: number;
13
+ m_steamUrls: SteamURLs_t & SteamURLsLowercase_t;
14
+
15
+ /**
16
+ * @returns `true` if the URL's domain matches either store, community, or
17
+ * help domains.
18
+ * @example
19
+ * ```js
20
+ * urlStore.BIsSteamURL('https://google.com')
21
+ * // false
22
+ * urlStore.BIsSteamURL('https://store.steampowered.com')
23
+ * // true
24
+ * ```
25
+ */
26
+ BIsSteamURL(url: string): boolean;
27
+
28
+ /**
29
+ * @returns the game's points shop URL.
30
+ */
31
+ BuildAppPointsShopURL(appId: number): string;
32
+
33
+ /**
34
+ * Like {@link BuildLibraryAssetURL}, but relative to
35
+ * `https://steamloopback.host`.
36
+ *
37
+ * @param appId Game's app ID.
38
+ * @param assetName e.g. `header.png`, `icon.jpg`, `library_hero`.
39
+ * @param timestamp UNIX timestamp.
40
+ */
41
+ BuildCachedLibraryAssetURL(appId: number, assetName: string, timestamp: number): string;
42
+
43
+ /**
44
+ * Like {@link BuildStoreAssetURL}, but relative to
45
+ * `https://steamloopback.host`.
46
+ *
47
+ * @param appId Game's app ID.
48
+ * @param assetName e.g. `header.png`, `icon.jpg`, `library_hero`.
49
+ * @param timestamp UNIX timestamp.
50
+ */
51
+ BuildCachedStoreAssetURL(appId: number, assetName: string, timestamp: number): string;
52
+
53
+ BuildCustomAssetURL(appId: number, assetName: string, extension: string, timestamp: number): string;
54
+
55
+ /**
56
+ * Like {@link BuildLibraryAssetURL}, but relative to
57
+ * `https://steamloopback.host`.
58
+ *
59
+ * It's very unlikely you will have to use this, prefer
60
+ * {@link BuildCachedLibraryAssetURL} instead.
61
+ *
62
+ * @param appId Game's app ID.
63
+ * @param icon e.g. `header.png`, `icon.jpg`, `library_hero`.
64
+ * @param timestamp UNIX timestamp.
65
+ */
66
+ BuildLegacyCachedLibraryAssetURL(appId: number, icon: string, timestamp: number): string;
67
+
68
+ /**
69
+ * @param appId Game's app ID.
70
+ * @param icon e.g. `header.png`, `icon.jpg`, `library_hero`.
71
+ * @param timestamp UNIX timestamp.
72
+ */
73
+ BuildLibraryAssetURL(appId: number, icon: string, timestamp: number): string;
74
+
75
+ /**
76
+ * Returns a Steam URL, e.g. `steam://url/SteamIDPage/{steamid64}`.
77
+ *
78
+ * @param name The URL to return.
79
+ * @param args Arguments to replace `%p1`, `%p2`, etc. with.
80
+ */
81
+ BuildSteamURL(name: SteamWebURL_t, ...args: string[]): string;
82
+
83
+ /**
84
+ * @param navParam Likely a tracking param to see where you clicked the link.
85
+ */
86
+ BuildStoreAppDlcURL(appId: number, navParam: string): string;
87
+
88
+ /**
89
+ * @param navParam Likely a tracking param to see where you clicked the link.
90
+ */
91
+ BuildStoreAppURL(appId: number, navParam: string): string;
92
+
93
+ BuildStoreAssetURL(appId: number, assetName: string): string;
94
+
95
+ GetAvatarBaseURL(): string;
96
+ GetBaseURLSharedCDN(): string;
97
+ GetClanCDNAssetURL(): string;
98
+ GetCommunityCDNAssetURL(): string;
99
+ GetCommunityCDNURL(): string;
100
+ GetCommunityImageURL(): string;
101
+ GetCommunityURL(): string;
102
+ GetHelpURL(): string;
103
+
104
+ /**
105
+ * Despite the name, only takes one argument and returns the first URL as an
106
+ * array.
107
+ *
108
+ * @example
109
+ * ```js
110
+ * urlStore.GetMatchingUrls('https://store.steampowered.com')[0].urlid
111
+ * // StoreFrontPage
112
+ * urlStore.m_steamUrls.StoreFrontPage.url
113
+ * // "https://store.steampowered.com/"
114
+ * ```
115
+ */
116
+ GetMatchingUrls(url: string): {
117
+ length: number;
118
+ urlid: SteamWebURL_t;
119
+ }[];
120
+
121
+ GetMediaCDNUrl(): string;
122
+ GetParentalFeature(name: SteamWebURL_t): EParentalFeature;
123
+ GetParentalFeatureForFullUrl(url: string): EParentalFeature;
124
+
125
+ GetStoreAppImageURL(): string;
126
+ GetStoreCDNURL(): string;
127
+ GetStoreGreatOnDeckURL(): string;
128
+ GetStoreIconBaseURL(): string;
129
+ GetStoreURL(): string;
130
+ GetStoreVRURL(): string;
131
+ GetVideoCDNAssetURL(): string;
132
+ GetWebApiURL(): string;
133
+
134
+ /**
135
+ * Navigates to given Steam URL from a provided event.
136
+ *
137
+ * @param ev Event to get the targetted window for.
138
+ * @param name The Steam URL to navigate to.
139
+ * @param args Arguments to replace `%p1`, `%p2`, etc. with.
140
+ */
141
+ NavigateToSteamURLInOwningWindow(ev: Event, name: SteamWebURL_t): void;
142
+
143
+ /**
144
+ * Resolves a Steam URL.
145
+ *
146
+ * @param name The URL to return.
147
+ * @param args Arguments to replace `%p1`, `%p2`, etc. with.
148
+ */
149
+ ResolveURL(name: SteamWebURL_t, ...args: string[]): string;
150
+ }
@@ -1,79 +1,13 @@
1
- import Logger from '../logger';
2
- import { Export, findModuleExport } from '../webpack';
3
- import {EDisplayStatus} from "../globals/steam-client/App";
1
+ import type { CSteamUIStore } from "../globals/stores/steamuistore";
2
+ import type { EQuickAccessTab, ESideMenu } from "../globals/stores/steamuistore/menu";
3
+ import type { SteamUIWindowInstance } from "../globals/stores/steamuistore/window";
4
+ import Logger from "../logger";
5
+ import { type Export, findModuleExport } from "../webpack";
4
6
 
5
- export enum SideMenu {
6
- None,
7
- Main,
8
- QuickAccess,
9
- }
10
-
11
- export enum QuickAccessTab {
12
- Notifications,
13
- RemotePlayTogetherControls,
14
- VoiceChat,
15
- Friends,
16
- Settings,
17
- Perf,
18
- Help,
19
- Music,
20
- Decky = 999,
21
- }
22
-
23
- export type AppOverview = {
24
- appid: string;
25
- display_name: string;
26
- display_status: EDisplayStatus;
27
- sort_as: string;
28
- };
29
-
30
- export interface MenuStore {
31
- OpenSideMenu(sideMenu: SideMenu): void;
32
- OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
33
- OpenMainMenu(): void;
34
- }
35
-
36
- export interface WindowRouter {
37
- BrowserWindow: Window;
38
- MenuStore: MenuStore;
39
- Navigate(path: string): void;
40
- NavigateToChat(): void;
41
- NavigateToSteamWeb(url: string): void;
42
- NavigateBack(): void;
43
- }
44
-
45
- export interface WindowStore {
46
- GamepadUIMainWindowInstance?: WindowRouter; // Current
47
- SteamUIWindows: WindowRouter[];
48
- OverlayWindows: WindowRouter[]; // Used by desktop GamepadUI
49
- }
50
-
51
- export interface Router {
52
- WindowStore?: WindowStore;
53
- /** @deprecated use {@link Navigation} instead */
54
- CloseSideMenus(): void;
55
- /** @deprecated use {@link Navigation} instead */
56
- Navigate(path: string): void;
57
- /** @deprecated use {@link Navigation} instead */
58
- NavigateToAppProperties(): void;
59
- /** @deprecated use {@link Navigation} instead */
60
- NavigateToExternalWeb(url: string): void;
61
- /** @deprecated use {@link Navigation} instead */
62
- NavigateToInvites(): void;
63
- /** @deprecated use {@link Navigation} instead */
64
- NavigateToChat(): void;
65
- /** @deprecated use {@link Navigation} instead */
66
- NavigateToLibraryTab(): void;
67
- /** @deprecated use {@link Navigation} instead */
68
- NavigateToLayoutPreview(e: unknown): void;
69
- /** @deprecated use {@link Navigation} instead */
70
- OpenPowerMenu(unknown?: any): void;
71
- get RunningApps(): AppOverview[];
72
- get MainRunningApp(): AppOverview | undefined;
73
- }
74
-
75
- export const Router = findModuleExport((e: Export) => e.Navigate && e.NavigationManager) as Router;
7
+ // TODO(globals): maybe just use window.SteamUIStore ? it"s the exact same thing
8
+ export const Router = findModuleExport((e: Export) => e.Navigate && e.NavigationManager) as CSteamUIStore;
76
9
 
10
+ // TODO(globals): replace with MenuStore, etc. ?
77
11
  export interface Navigation {
78
12
  Navigate(path: string): void;
79
13
  NavigateBack(): void;
@@ -84,8 +18,8 @@ export interface Navigation {
84
18
  NavigateToLibraryTab(): void;
85
19
  NavigateToLayoutPreview(e: unknown): void;
86
20
  NavigateToSteamWeb(url: string): void;
87
- OpenSideMenu(sideMenu: SideMenu): void;
88
- OpenQuickAccessMenu(quickAccessTab?: QuickAccessTab): void;
21
+ OpenSideMenu(sideMenu: ESideMenu): void;
22
+ OpenQuickAccessMenu(quickAccessTab?: EQuickAccessTab): void;
89
23
  OpenMainMenu(): void;
90
24
  OpenPowerMenu(unknown?: any): void;
91
25
  /** if calling this to perform navigation, call it after Navigate to prevent a race condition in desktop Big Picture mode that hides the overlay unintentionally */
@@ -99,7 +33,7 @@ const logger = new Logger("Navigation");
99
33
  try {
100
34
  function createNavigationFunction(fncName: string, handler?: (win: any) => any) {
101
35
  return (...args: any) => {
102
- let win: WindowRouter | undefined;
36
+ let win: SteamUIWindowInstance | undefined;
103
37
  try {
104
38
  win = window.SteamUIStore.GetFocusedWindowInstance();
105
39
  } catch (e) {
@@ -5,7 +5,6 @@ export * from './react/fc';
5
5
  export * from './react/treepatcher';
6
6
 
7
7
  declare global {
8
- var FocusNavController: any;
9
8
  var GamepadNavTree: any;
10
9
  }
11
10
 
@@ -1,5 +0,0 @@
1
- import { SteamClient } from "./steam-client";
2
- export * from "./steam-client/shared";
3
- declare global {
4
- var SteamClient: SteamClient;
5
- }
@@ -1 +0,0 @@
1
- export * from "./steam-client/shared";
@@ -1,70 +0,0 @@
1
- import { WindowRouter } from '../modules/Router';
2
- import { AppDetails, LogoPosition, SteamAppOverview } from "./steam-client/App";
3
- interface AppData {
4
- details: AppDetails;
5
- }
6
- interface AppStoreAppOverview extends SteamAppOverview {
7
- m_setStoreCategories: Set<number>;
8
- m_setStoreTags: Set<number>;
9
- m_strPerClientData: Set<any> | undefined;
10
- m_strAssociations: Set<any> | undefined;
11
- BIsModOrShortcut: () => boolean;
12
- BIsShortcut: () => boolean;
13
- }
14
- declare global {
15
- interface Window {
16
- LocalizationManager: {
17
- m_mapTokens: Map<string, string>;
18
- m_mapFallbackTokens: Map<string, string>;
19
- m_rgLocalesToUse: string[];
20
- };
21
- App: {
22
- m_CurrentUser: {
23
- bIsLimited: boolean;
24
- bIsOfflineMode: boolean;
25
- bSupportAlertActive: boolean;
26
- bCanInviteFriends: boolean;
27
- NotificationCounts: {
28
- comments: number;
29
- inventory_items: number;
30
- invites: number;
31
- gifts: number;
32
- offline_messages: number;
33
- trade_offers: number;
34
- async_game_updates: number;
35
- moderator_messages: number;
36
- help_request_replies: number;
37
- };
38
- strAccountBalance: string;
39
- strAccountName: string;
40
- strSteamID: string;
41
- };
42
- };
43
- appStore: {
44
- GetAppOverviewByAppID: (appId: number) => SteamAppOverview | null;
45
- GetCustomVerticalCapsuleURLs: (app: AppStoreAppOverview) => string[];
46
- GetCustomLandcapeImageURLs: (app: AppStoreAppOverview) => string[];
47
- GetCustomHeroImageURLs: (app: AppStoreAppOverview) => string[];
48
- GetCustomLogoImageURLs: (app: AppStoreAppOverview) => string[];
49
- GetLandscapeImageURLForApp: (app: AppStoreAppOverview) => string;
50
- GetVerticalCapsuleURLForApp: (app: AppStoreAppOverview) => string;
51
- GetCachedLandscapeImageURLForApp: (app: AppStoreAppOverview) => string;
52
- GetCachedVerticalImageURLForApp: (app: AppStoreAppOverview) => string;
53
- GetPregeneratedVerticalCapsuleForApp: (app: AppStoreAppOverview) => string;
54
- GetIconURLForApp: (app: AppStoreAppOverview) => string;
55
- };
56
- appDetailsStore: {
57
- GetAppData: (appId: number) => AppData | null;
58
- GetAppDetails: (appId: number) => AppDetails | null;
59
- GetCustomLogoPosition: (app: AppStoreAppOverview) => LogoPosition | null;
60
- SaveCustomLogoPosition: (app: AppStoreAppOverview, logoPositions: LogoPosition) => any;
61
- };
62
- SteamUIStore: {
63
- GetFocusedWindowInstance: () => WindowRouter;
64
- };
65
- securitystore: {
66
- IsLockScreenActive: () => boolean;
67
- };
68
- }
69
- }
70
- export {};