Files
decky-frontend-lib/src/globals/steam-client/URL.ts
Yao Chung Hu 131ab4cc11 feat(globals): Steam client reference (#92)
* change: Add SteamClient types

Steam Version:  1690583737
Steam Client Build Date:  Sat, Jul 29 02:44 UTC -08:00

* new: Document some SteamClient interfaces

Using the SDH discord server, GitHub and some personal findings, I tried to document as much SteamClient functions as I can.

* new: Document some SteamClient interfaces - part 2

* new: Document some SteamClient interfaces - part 3

* new: Document some SteamClient interfaces - part 4

* new: Document some SteamClient interfaces - part 5

* new: Document some SteamClient interfaces - part 6

* new: Document some SteamClient interfaces - part 7

* change: Update interfaces to Steam Version 1691097434

Steam Version:  1691097434
Steam Client Build Date:  Fri, Aug 4 04:54 UTC -08:00

* new: Document some SteamClient interfaces - part 8

* new: Document some SteamClient interfaces - part 9

* change: Update interfaces to Steam Version 1694466342

Steam Version:  1694466342
Steam Client Build Date:  Tue, Sep 12 04:59 UTC +08:00

* new: Document some SteamClient interfaces - part 10

* new: Document some SteamClient interfaces - part 11

* new: Document some SteamClient interfaces - part 12

* new: Document some SteamClient interfaces - part 13

* new: Document some SteamClient interfaces - part 14

* change: Update interfaces to Steam Version 1698260427

Steam Version:  1698260427
Steam Client Build Date:  Thu, Oct 26 2:40 AM UTC -08:00

* new: Document some SteamClient interfaces - part 10

* change: Update interfaces to Steam Version 1700160213

Steam Version:  1700160213
Steam Client Build Date:  Fri, Nov 17 2:23 AM UTC +08:00

* docs(SteamClient): document some interfaces

* change: Fix formatting style

* docs(SteamClient): document protobufs & System.Report

* docs(SteamClient): document CMsgMonitorInfo

* docs(SteamClient): document remaining messages

* docs(SteamClient): update interfaces to Steam Version 1702515219
Steam Version:  1702515219
Steam Client Build Date:  Thu, Dec 14 00:36 UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1704329464
Steam Version:  1704329464
Steam Client Build Date:  Thu, Jan 4 12:23 AM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1705630720
Steam Version:  1705630720
Steam Client Build Date:  Fri, Jan 19 1:58 AM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1706914901
Steam Version:  1706914901
Steam Client Build Date:  Fri, Feb 2 8:46 PM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1709920887
Steam Version:  1709920887
Steam Client Build Date:  Thu, Mar 7 5:29 PM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1710786209
Steam Version:  1710786209
Steam Client Build Date:  Mon, Mar 18 7:07 PM UTC -08:00

* docs(SteamClient): document even more interfaces

* new: Document some SteamClient interfaces - part 15

* Fix QAM button bit number

* new: Document some SteamClient interfaces - part 16

* change: Update interfaces to Steam Version 1714854927

Steam Version: 1714854927
Steam Client Build Date:  Sat, May 4 7:11 AM UTC -08:00

* change: Refactor and reorganize SteamClient

* docs(SteamClient): document more notification interfaces

* docs(SteamClient): document more interfaces

* docs(SteamClient): add some descriptions

* docs(SteamClient): remove duplicate types

* change: Fix rebase errors

* Updated ControllerStateChange

* Fix typo

* docs(SteamClient): update interfaces to Steam Version 1723601482

Steam Version:  1723601482
Steam Client Build Date:  Wed, Aug 14 01:51 UTC -08:00

* docs(SteamClient): update interfaces to 1725654351

* docs(SteamClient): update interfaces to 1730416762

* docs(SteamClient): forgot some stuff

* docs(SteamClient): add missed interfaces

* docs(SteamClient): update enums

* docs(SteamClient): add some things and move stuff around

* docs(SteamClient): move shared enums/interfaces to a separate file

* docs(SteamClient): add more stuff

* docs(SteamClient): reword some things

* docs(SteamClient): new BrowserView things

* docs(SteamClient): review fixes

* move to src/globals

---------

Co-authored-by: ricewind012 <58827198+ricewind012@users.noreply.github.com>
Co-authored-by: Party Wumpus <48649272+PartyWumpus@users.noreply.github.com>
Co-authored-by: Xander <xander@isxander.dev>
2025-04-23 11:20:48 -04:00

175 lines
4.2 KiB
TypeScript

import { Unregisterable } from "./shared";
export interface URL {
/**
* Executes a steam:// URL.
* @param url The URL to execute.
*/
ExecuteSteamURL(url: string): void;
/**
* @param urls Additional URLs to get. May be empty.
*/
GetSteamURLList(urls: SteamWebURL_t[]): Promise<SteamURLs>;
GetWebSessionID(): Promise<string>;
/**
* Registers a callback to be called when a steam:// URL gets executed.
* @param section `rungameid`, `open`, etc.
* @param callback The callback function to be called.
* @returns an object that can be used to unregister the callback.
*/
RegisterForRunSteamURL(section: string, callback: (param0: number, url: string) => void): Unregisterable;
RegisterForSteamURLChanges(callback: () => void): void;
}
export type SteamWebURL_t =
| "AllNotifications"
| "AppHoverPublic"
| "AppHoverPublicFull"
| "AppNewsPage"
| "AsyncGames"
| "AvatarBaseURL"
| "BaseURLSharedCDN"
| "Chat"
| "ChatRoot"
| "ClaimEntitlements"
| "ClanAssetCDN"
| "CommentNotifications"
| "CommunityHome"
| "CommunityAddFriends"
| "CommunityCDN"
| "CommunityFilePage"
| "CommunityFriendsThatPlay"
| "CommunityFrontPage"
| "CommunityGroupSearch"
| "CommunityImages"
| "CommunityInventory"
| "CommunityMarket"
| "CommunityMarketApp"
| "CommunityRecommendations"
| "CommunityScreenshots"
| "CommunitySingleScreenshot"
| "CurrentlyPlayedWith"
| "EventAnnouncementPage"
| "FamilyManagement"
| "FamilySharing"
| "GameHub"
| "GameHubBroadcasts"
| "GameHubDiscussions"
| "GameHubGuides"
| "GameHubNews"
| "GameHubReviews"
| "GlobalAchievementStatsPage"
| "GlobalLeaderboardsPage"
| "GroupSteamIDPage"
| "HardwareSurvey"
| "HelpAppPage"
| "HelpChangeEmail"
| "HelpChangePassword"
| "HelpFAQ"
| "HelpFrontPage"
| "HelpWithLogin"
| "HelpWithLoginInfo"
| "HelpWithSteamGuardCode"
| "HelpVacBans"
| "ItemStorePage"
| "ItemStoreDetailPage"
| "JoinTrade"
| "LegalInformation"
| "LibraryAppDetails"
| "LibraryAppReview"
| "LibraryFeaturedBroadcasts"
| "ManageGiftsPage"
| "ManageSteamGuard"
| "ModeratorMessages"
| "Mobile"
| "MyHelpRequests"
| "OfficialGameGroupPage"
| "NewsHomePage"
| "ParentalBlocked"
| "ParentalSetup"
| "PendingFriends"
| "PendingGift"
| "PointsShop"
| "PrivacyPolicy"
| "RecommendGame"
| "RedeemWalletVoucher"
| "RegisterKey"
| "RegisterKeyNoParams"
| "SSA"
| "SteamAnnouncements"
| "SteamClientBetaBugReports"
| "SteamClientBetaNewsPage"
| "SteamClientBetaNewsPageFancy"
| "SteamClientNewsPage"
| "SteamClientPatchNotes"
| "SteamClientBetaPatchNotes"
| "SteamDiscussions"
| "SteamIDAchievementsPage"
| "SteamIDAppTradingCardsPage"
| "SteamIDBadgeInfo"
| "SteamIDBadgePage"
| "SteamIDBroadcastPage"
| "SteamIDEditPage"
| "SteamIDEditPrivacyPage"
| "SteamIDFriendsList"
| "SteamIDFriendsPage"
| "SteamIDGroupsPage"
| "SteamIDMyProfile"
| "SteamIDPage"
| "SteamLanguage"
| "SteamPreferences"
| "SteamVRHMDHelp"
| "SteamWorkshop"
| "SteamWorkshopPage"
| "SteamWorkshopSubscriptions"
| "SteamWorkshopUpdatedSubscriptions"
| "StoreAccount"
| "StoreAddFundsPage"
| "StoreAppHover"
| "StoreAppImages"
| "StoreAppPage"
| "StoreAppPageAddToCart"
| "StoreCart"
| "StoreCDN"
| "StoreDlcPage"
| "StoreExplore"
| "StoreExploreNew"
| "StoreFreeToPlay"
| "StoreFrontPage"
| "StoreGameSearchPage"
| "StoreGreatOnDeck"
| "StorePublisherPage"
| "StoreSpecials"
| "StoreStats"
| "StoreVR"
| "StoreWebMicroTxnPage"
| "SupportMessages"
| "TextFilterSettings"
| "TodayPage"
| "TradeOffers"
| "VideoCDN"
| "UserAchievementsPage"
| "UserLeaderboardsPage"
| "UserStatsPage"
| "UserWishlist"
| "WatchVideo"
| "WebAPI"
| "WorkshopEula"
| "YearInReview";
export interface SteamURL {
url: string;
/**
* @todo enum?
*/
feature: number;
}
export type SteamURLs = {
[url in SteamWebURL_t]: SteamURL;
}