@decky/ui 4.15.1 → 4.16.1

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 (173) 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 +47 -2
  7. package/dist/globals/index.js +3 -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 +3 -2
  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 +17 -6
  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 +5 -4
  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 +132 -0
  91. package/dist/globals/stores/steamuistore/index.js +14 -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 +3 -56
  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/dist/utils/react/fc.js +4 -2
  105. package/dist/utils/react/react.js +2 -2
  106. package/dist/utils/react/treepatcher.js +1 -1
  107. package/package.json +1 -1
  108. package/src/components/Dropdown.tsx +2 -2
  109. package/src/components/FooterLegend.ts +10 -2
  110. package/src/components/Menu.ts +11 -21
  111. package/src/components/Modal.ts +40 -8
  112. package/src/globals/index.ts +68 -2
  113. package/src/globals/shared/cm.ts +158 -0
  114. package/src/globals/shared/enums.ts +97 -0
  115. package/src/globals/shared/history.ts +15 -0
  116. package/src/globals/shared/index.ts +5 -0
  117. package/src/globals/shared/interfaces.ts +147 -0
  118. package/src/globals/shared/navigation.ts +15 -0
  119. package/src/globals/shared/steamid.ts +49 -0
  120. package/src/globals/shared/storage.ts +62 -0
  121. package/src/globals/steam-client/App.ts +2 -2
  122. package/src/globals/steam-client/Auth.ts +2 -2
  123. package/src/globals/steam-client/ClientNotifications.ts +1 -1
  124. package/src/globals/steam-client/Overlay.ts +3 -2
  125. package/src/globals/steam-client/Settings.ts +1 -1
  126. package/src/globals/steam-client/SharedConnection.ts +2 -1
  127. package/src/globals/steam-client/UI.ts +18 -9
  128. package/src/globals/steam-client/User.ts +20 -0
  129. package/src/globals/steam-client/WebChat.ts +5 -4
  130. package/src/globals/steam-client/shared.ts +0 -69
  131. package/src/globals/stores/app.ts +102 -0
  132. package/src/globals/stores/appdetailsstore.ts +235 -0
  133. package/src/globals/stores/appinfostore.ts +65 -0
  134. package/src/globals/stores/appstore.ts +166 -0
  135. package/src/globals/stores/badgestore.ts +87 -0
  136. package/src/globals/stores/collectionstore.ts +544 -0
  137. package/src/globals/stores/consolestore.ts +54 -0
  138. package/src/globals/stores/focusnavcontroller.ts +522 -0
  139. package/src/globals/stores/friendstore/clanstore.ts +89 -0
  140. package/src/globals/stores/friendstore/friendchat.ts +646 -0
  141. package/src/globals/stores/friendstore/friendgroupstore.ts +187 -0
  142. package/src/globals/stores/friendstore/friendingamenotificationstore.ts +1 -0
  143. package/src/globals/stores/friendstore/friendslistfavoritesstore.ts +37 -0
  144. package/src/globals/stores/friendstore/friendsuifriendstore.ts +274 -0
  145. package/src/globals/stores/friendstore/index.ts +58 -0
  146. package/src/globals/stores/friendstore/shared.ts +318 -0
  147. package/src/globals/stores/gamerecordingstore.ts +367 -0
  148. package/src/globals/stores/index.ts +18 -0
  149. package/src/globals/stores/libraryuistore.ts +395 -0
  150. package/src/globals/stores/localizationmanager.ts +56 -0
  151. package/src/globals/stores/mainwindowbrowsermanager.ts +135 -0
  152. package/src/globals/stores/notificationstore.ts +298 -0
  153. package/src/globals/stores/popupmanager.ts +352 -0
  154. package/src/globals/stores/securitystore.ts +36 -0
  155. package/src/globals/stores/settingsstore.ts +134 -0
  156. package/src/globals/stores/steamuistore/gamepadbrowserview.ts +172 -0
  157. package/src/globals/stores/steamuistore/gamepaduiaudio.ts +117 -0
  158. package/src/globals/stores/steamuistore/index.ts +217 -0
  159. package/src/globals/stores/steamuistore/menu.ts +89 -0
  160. package/src/globals/stores/steamuistore/window.ts +466 -0
  161. package/src/globals/stores/storeitemcache.ts +347 -0
  162. package/src/globals/stores/urlstore.ts +150 -0
  163. package/src/modules/Router.ts +9 -75
  164. package/src/utils/index.ts +0 -1
  165. package/src/utils/react/fc.ts +4 -2
  166. package/src/utils/react/react.ts +2 -2
  167. package/src/utils/react/treepatcher.ts +1 -1
  168. package/dist/globals/SteamClient.d.ts +0 -5
  169. package/dist/globals/SteamClient.js +0 -1
  170. package/dist/globals/stores.d.ts +0 -70
  171. package/src/globals/SteamClient.ts +0 -6
  172. package/src/globals/stores.ts +0 -74
  173. /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 { QuickAccessTab, SideMenu } 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;
@@ -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
 
@@ -7,7 +7,7 @@ export interface FCTrampoline {
7
7
  component: FC
8
8
  }
9
9
 
10
- let loggingEnabled = false;
10
+ let loggingEnabled = true;
11
11
 
12
12
  export function setFCTrampolineLoggingEnabled(value: boolean = true) { loggingEnabled = value };
13
13
 
@@ -38,7 +38,9 @@ export function injectFCTrampoline(component: FC, customHooks?: any): FCTrampoli
38
38
  component.prototype.render = function (...args: any[]) {
39
39
  loggingEnabled && logger.debug("rendering trampoline", args, this);
40
40
  // Pass through rendering via creating the component as a child so React can use function component logic instead of class component logic (setting up the hooks)
41
- return createElement(userComponent.component, this.props, this.props.children);
41
+ const ret = createElement(userComponent.component, this.props, this.props.children);
42
+ loggingEnabled && logger.debug("trampoline", ret);
43
+ return ret;
42
44
  };
43
45
  component.prototype.isReactComponent = true;
44
46
  let stubsApplied = false;
@@ -58,9 +58,9 @@ export function applyHookStubs(customHooks: any = {}): any {
58
58
  hooks.useCallback = (cb: Function) => cb;
59
59
  hooks.useContext = (cb: any) => cb?._currentValue;
60
60
  hooks.useLayoutEffect = (_: Function) => {}; //cb();
61
- hooks.useMemo = (cb: Function, _: any[]) => cb;
61
+ hooks.useMemo = (_: Function, __: any[]) => ({}); //cb()
62
62
  hooks.useEffect = (_: Function) => {}; //cb();
63
- hooks.useRef = (val: any) => ({ current: val || {} });
63
+ hooks.useRef = (val: any) => ({ current: val || void 0 });
64
64
  hooks.useState = (v: any) => {
65
65
  let val = v;
66
66
 
@@ -12,7 +12,7 @@ export type NodeStep = GenericNodeStep;
12
12
  export type ReactPatchHandler = GenericPatchHandler;
13
13
 
14
14
  // These will get *very* spammy.
15
- let loggingEnabled = false;
15
+ let loggingEnabled = true;
16
16
  let perfLoggingEnabled = false;
17
17
 
18
18
  export function setReactPatcherLoggingEnabled(value: boolean = true) { loggingEnabled = value };
@@ -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";