├── .idea
├── .name
├── copyright
│ └── profiles_settings.xml
├── .gitignore
├── watcherTasks.xml
├── encodings.xml
├── codeStyles
│ ├── codeStyleConfig.xml
│ └── Project.xml
├── misc.xml
├── jsLibraryMappings.xml
├── copilot.data.migration.agent.xml
├── copilot.data.migration.ask.xml
├── copilot.data.migration.edit.xml
├── scopes
│ └── Project_Source_Files.xml
├── copilot.data.migration.ask2agent.xml
├── vcs.xml
├── modules.xml
├── steam-user.iml
└── inspectionProfiles
│ └── Project_Default.xml
├── .npmrc
├── .npmignore
├── .github
├── FUNDING.yml
└── ISSUE_TEMPLATE
│ ├── i-have-a-question.md
│ ├── bug_report.md
│ └── feature_request.md
├── resources
├── EPrivacyState.js
├── EClientUIMode.js
├── EPurchaseResult.js
├── EConnectionProtocol.js
├── EMachineIDType.js
├── default_options.js
└── CurrencyData.js
├── enums
├── EControllerLayoutType.js
├── EAgreementType.js
├── EMessageReactionType.js
├── ECloudStoragePersistState.js
├── EChatRoomMessageReactionType.js
├── EContentCheckProvider.js
├── EKeyEscrowUsage.js
├── ESystemUpdateNotificationType.js
├── EStorageBlockFileSystemType.js
├── EAuthTokenPlatformType.js
├── EStreamVersion.js
├── ETokenRenewalType.js
├── EPublishedFileStorageSystem.js
├── ETextFilterSetting.js
├── EStreamBitrate.js
├── EStorageBlockContentType.js
├── EWorkshopFileAction.js
├── EChatRoomGroupType.js
├── EProtoExecutionSite.js
├── EStreamDataMessage.js
├── EVideoFormat.js
├── EBroadcastChatPermission.js
├── EChatRoomType.js
├── EMarketingMessageVisibility.js
├── ESteamPipeWorkType.js
├── EHIDDeviceLocation.js
├── EAudioFormat.js
├── EStreamDiscoveryMessage.js
├── ELogFileType.js
├── ESystemAudioDirection.js
├── EHDRToneMapOperator.js
├── EAppControllerSupportLevel.js
├── EContentDeltaChunkDataLocation.js
├── EGetGamesAlgorithm.js
├── EProvideDeckFeedbackPreference.js
├── ESessionPersistence.js
├── ESystemAudioPortDirection.js
├── ESystemFanControlMode.js
├── ESystemServiceState.js
├── ECPUGovernor.js
├── EChatInfoType.js
├── ELeaderboardSortMethod.js
├── ENotificationSetting.js
├── EColorProfile.js
├── EGameSearchAction.js
├── EPlaytestStatus.js
├── EProfileCustomizationStyle.js
├── EBatteryState.js
├── ESteamNetworkingSocketsCipher.js
├── ETradeOfferConfirmationMethod.js
├── EACState.js
├── EIntroducerRouting.js
├── ELeaderboardUploadScoreMethod.js
├── ELobbyStatus.js
├── EUserReviewScorePreference.js
├── EChatRoomJoinState.js
├── EInputMode.js
├── EPackageStatus.js
├── EUniverse.js
├── EChatFlags.js
├── EClanRank.js
├── ECloudPendingRemoteOperation.js
├── EMMSLobbyStatus.js
├── EPublishedFileInappropriateProvider.js
├── EStreamInterface.js
├── EStreamMouseWheelDirection.js
├── ESystemDisplayCompatibilityMode.js
├── EAuthSessionSecurityHistory.js
├── EJSRegisterMethodType.js
├── EAppAssociationType.js
├── EClientStatAggregateMethod.js
├── ECodecUsageReason.js
├── EValveIndexComponent.js
├── EContentHubDiscountFilterType.js
├── ELeaderboardDataRequest.js
├── EPublishedFileVisibility.js
├── ESplitScalingFilter.js
├── ESteamPipeOperationType.js
├── ESteamDeckCompatibilityFeedback.js
├── EStreamingDataType.js
├── ELeaderboardDisplayType.js
├── EStreamHostPlayAudioPreference.js
├── ECodecUsagePlatform.js
├── ELobbyType.js
├── EStorageDriveMediaType.js
├── EStreamAudioCodec.js
├── EStreamColorspace.js
├── EStreamDeviceFormFactor.js
├── E_STAR_GlyphWriteResult.js
├── EMouseMode.js
├── EStreamActivity.js
├── EGraphicsPerfOverlayLevel.js
├── EHIDDeviceDisconnectMethod.js
├── ESteamDeckCompatibilityCategory.js
├── EStreamChannel.js
├── EStreamQualityPreference.js
├── ELobbyFilterType.js
├── ENewsUpdateType.js
├── EScalingFilter.js
├── ESystemAudioPortType.js
├── EGetChannelsAlgorithm.js
├── EAppGamepadGyroTrackpadSupportLevel.js
├── ENewSteamAnnouncementState.js
├── ESplitScalingScaler.js
├── EStreamMouseButton.js
├── EBanContentCheckResult.js
├── EGPUPerformanceLevel.js
├── EChatRoomNotificationLevel.js
├── EMarketingMessageLookupType.js
├── EStreamP2PScope.js
├── EStoreItemType.js
├── EWorkshopFileType.js
├── ESDCardFormatStage.js
├── EServerFlags.js
├── EOSBranch.js
├── EStreamVideoCodec.js
├── EChatRoomGroupPermissions.js
├── EClientStat.js
├── EStoreCategoryType.js
├── EUpdaterType.js
├── EBroadcastImageType.js
├── ELobbyComparison.js
├── ESteamDeckCompatibilityResultDisplayType.js
├── EStreamTransport.js
├── EInternalAccountType.js
├── ERemoteClientService.js
├── EPlatformType.js
├── EStreamStatsMessage.js
├── EAuthTokenState.js
├── EPublishedFileInappropriateResult.js
├── EContentDescriptorID.js
├── EPersonaState.js
├── EUpdaterState.js
├── EChatRoomGroupRank.js
├── EClientSettingStore.js
├── EChatMemberStateChange.js
├── EStreamControllerConfigMsg.js
├── EPublishedFileRevision.js
├── ESteamNetworkingUDPMsgID.js
├── EStreamFramerateLimiter.js
├── ERegionCode.js
├── ERemoteStoragePlatform.js
├── EUCMFilePrivacyState.js
├── EClanRelationship.js
├── EPublishedFileForSaleStatus.js
├── EUdpPacketType.js
├── EActivationCodeClass.js
├── EDRMBlobDownloadType.js
├── EMarketingMessageFlags.js
├── EWorkshopEnumerationType.js
├── EAuthTokenRevokeAction.js
├── EMarketingMessageAssociationType.js
├── EMsgClanAccountFlags.js
├── EAuthSessionGuardType.js
├── EGameSearchResult.js
├── ELauncherType.js
├── EContentDownloadSourceType.js
├── ERemoteDeviceAuthorizationResult.js
├── ESteamTVContentTemplate.js
├── EAppUsageEvent.js
├── ESystemAudioChannel.js
├── EStreamFrameResult.js
├── EChatRoomMemberStateChange.js
├── EMarketingMessageType.js
├── EAccountType.js
├── EDepotFileFlag.js
├── EFriendRelationship.js
├── EAppCloudStatus.js
├── EChatRoomServerMsg.js
├── EUserReviewScore.js
├── ESteamReviewScore.js
├── EChatRoomServerMessage.js
├── ELicenseType.js
├── ETradeOfferState.js
├── EBluetoothDeviceType.js
├── EChatActionResult.js
├── EStoreAppType.js
├── ESystemIMType.js
├── EClanPermission.js
├── EExternalAccountType.js
├── EAuthSessionResponse.js
├── EChatRoomGroupAction.js
├── ETouchGesture.js
├── EVoiceCallState.js
├── EFriendFlags.js
├── EBroadcastWatchLocation.js
├── EChatRoomEnterResponse.js
├── EStreamGamepadInputType.js
├── EChatAction.js
├── ERemoteDeviceStreamingResult.js
├── EStoreDiscoveryQueueType.js
├── EChatEntryType.js
├── EAppType.js
├── EDenyReason.js
├── EPersonaStateFlag.js
├── EBillingType.js
├── EClientPersonaStateFlag.js
├── ECommunityItemClass.js
├── ERemoteClientBroadcastMsg.js
├── EStreamFrameEvent.js
├── EAppInfoSection.js
├── EChatPermission.js
├── ELicenseFlags.js
├── EFrameAccumulatedStat.js
├── EProfileCustomizationType.js
├── EDRMBlobDownloadErrorDetail.js
└── ESteamNotificationType.js
├── protobufs
├── offline_ticket.proto
├── encrypted_app_ticket.proto
├── enums_productinfo.proto
├── common_base.proto
├── generated
│ ├── offline_ticket.json
│ └── encrypted_app_ticket.json
├── steammessages_workshop.steamclient.proto
├── steammessages_unified_base.steamclient.proto
├── steammessages_sitelicenseclient.proto
├── steammessages_gamenetworking.steamclient.proto
├── steammessages_lobbymatchmaking.steamclient.proto
├── steammessages_clientlanp2p.proto
├── steamnetworkingsockets_messages_certs.proto
├── steammessages_secrets.steamclient.proto
├── contenthubs.proto
├── steammessages_offline.steamclient.proto
├── steammessages_vac.steamclient.proto
├── clientmetrics.proto
├── steammessages_market.steamclient.proto
├── steammessages_timedtrial.steamclient.proto
├── steammessages_gamenetworkingui.proto
└── content_manifest.proto
├── .editorconfig
├── components
├── connection_protocols
│ └── base.js
├── 08-machineauth.js
├── classes
│ ├── CMAuthTransport.js
│ └── HandlerManager.js
├── store.js
├── 04-utility.js
└── 05-filestorage.js
├── examples
├── licensesdumper.js
├── databasedownloader.js
├── lib
│ └── collect_credentials.js
└── tokendumper.js
├── LICENSE
├── .gitignore
└── package.json
/.idea/.name:
--------------------------------------------------------------------------------
1 | steam-user
2 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | node_modules/
3 | test.js
4 | dev_data.json
5 | dev/
6 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: DoctorMcKay
2 | custom: 'https://dev.doctormckay.com/donate/'
3 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 |
--------------------------------------------------------------------------------
/.idea/watcherTasks.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/resources/EPrivacyState.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | Private: 1,
3 | FriendsOnly: 2,
4 | Public: 3,
5 |
6 | 1: 'Private',
7 | 2: 'FriendsOnly',
8 | 3: 'Public'
9 | };
10 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/resources/EClientUIMode.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EClientUIMode
3 | */
4 | module.exports = {
5 | None: 0,
6 | BigPicture: 1,
7 | Mobile: 2,
8 | Web: 3
9 |
10 | // I don't know how to get the VR thing
11 | };
12 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/enums/EControllerLayoutType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EControllerLayoutType
3 | */
4 | module.exports = {
5 | Phone: 0,
6 | Tablet: 1,
7 |
8 | // Value-to-name mapping for convenience
9 | 0: 'Phone',
10 | 1: 'Tablet',
11 | };
12 |
--------------------------------------------------------------------------------
/resources/EPurchaseResult.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | Unknown: -1,
3 | OK: 0,
4 | AlreadyOwned: 9,
5 | RegionLockedKey: 13,
6 | InvalidKey: 14,
7 | DuplicatedKey: 15,
8 | BaseGameRequired: 24,
9 | OnCooldown: 53
10 | };
11 |
--------------------------------------------------------------------------------
/.idea/copilot.data.migration.agent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/copilot.data.migration.ask.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/copilot.data.migration.edit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/scopes/Project_Source_Files.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/copilot.data.migration.ask2agent.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/protobufs/offline_ticket.proto:
--------------------------------------------------------------------------------
1 | message Offline_Ticket {
2 | optional bytes encrypted_ticket = 1;
3 | optional bytes signature = 2;
4 | optional int32 kdf1 = 3;
5 | optional bytes salt1 = 4;
6 | optional int32 kdf2 = 5;
7 | optional bytes salt2 = 6;
8 | }
9 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = tab
6 | indent_size = 4
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | insert_final_newline = false
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/enums/EAgreementType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EAgreementType
3 | * @readonly
4 | */
5 | const EAgreementType = {
6 | Invalid: -1,
7 | GlobalSSA: 0,
8 | ChinaSSA: 1,
9 |
10 | // Value-to-name mapping for convenience
11 | '-1': 'Invalid',
12 | 0: 'GlobalSSA',
13 | 1: 'ChinaSSA',
14 | };
15 |
16 | module.exports = EAgreementType;
17 |
--------------------------------------------------------------------------------
/resources/EConnectionProtocol.js:
--------------------------------------------------------------------------------
1 | /**
2 | * What type of CM connection we should use.
3 | * @readonly
4 | * @enum {number}
5 | * @since 4.0.0
6 | */
7 | module.exports = {
8 | /** Pick one automatically */
9 | Auto: 0,
10 |
11 | /** TCP with Valve-crypto */
12 | TCP: 1,
13 |
14 | /** WebSocket with TLS */
15 | WebSocket: 2
16 | };
17 |
--------------------------------------------------------------------------------
/enums/EMessageReactionType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EMessageReactionType
3 | * @readonly
4 | */
5 | const EMessageReactionType = {
6 | Invalid: 0,
7 | Emoticon: 1,
8 | Sticker: 2,
9 |
10 | // Value-to-name mapping for convenience
11 | 0: 'Invalid',
12 | 1: 'Emoticon',
13 | 2: 'Sticker',
14 | };
15 |
16 | module.exports = EMessageReactionType;
17 |
--------------------------------------------------------------------------------
/enums/ECloudStoragePersistState.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum ECloudStoragePersistState
3 | * @readonly
4 | */
5 | const ECloudStoragePersistState = {
6 | Persisted: 0,
7 | Forgotten: 1,
8 | Deleted: 2,
9 |
10 | // Value-to-name mapping for convenience
11 | 0: 'Persisted',
12 | 1: 'Forgotten',
13 | 2: 'Deleted',
14 | };
15 |
16 | module.exports = ECloudStoragePersistState;
17 |
--------------------------------------------------------------------------------
/enums/EChatRoomMessageReactionType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EChatRoomMessageReactionType
3 | * @readonly
4 | */
5 | const EChatRoomMessageReactionType = {
6 | Invalid: 0,
7 | Emoticon: 1,
8 | Sticker: 2,
9 |
10 | // Value-to-name mapping for convenience
11 | 0: 'Invalid',
12 | 1: 'Emoticon',
13 | 2: 'Sticker',
14 | };
15 |
16 | module.exports = EChatRoomMessageReactionType;
17 |
--------------------------------------------------------------------------------
/enums/EContentCheckProvider.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EContentCheckProvider
3 | * @readonly
4 | */
5 | const EContentCheckProvider = {
6 | Invalid: 0,
7 | Google: 1,
8 | Amazon: 2,
9 | Local: 3,
10 |
11 | // Value-to-name mapping for convenience
12 | 0: 'Invalid',
13 | 1: 'Google',
14 | 2: 'Amazon',
15 | 3: 'Local',
16 | };
17 |
18 | module.exports = EContentCheckProvider;
19 |
--------------------------------------------------------------------------------
/protobufs/encrypted_app_ticket.proto:
--------------------------------------------------------------------------------
1 | option optimize_for = SPEED;
2 | option cc_generic_services = false;
3 |
4 | message EncryptedAppTicket {
5 | optional uint32 ticket_version_no = 1;
6 | optional uint32 crc_encryptedticket = 2;
7 | optional uint32 cb_encrypteduserdata = 3;
8 | optional uint32 cb_encrypted_appownershipticket = 4;
9 | optional bytes encrypted_ticket = 5;
10 | }
11 |
--------------------------------------------------------------------------------
/enums/EKeyEscrowUsage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EKeyEscrowUsage = {
9 | "StreamingDevice": 0,
10 |
11 | // Value-to-name mapping for convenience
12 | "0": "StreamingDevice",
13 | };
14 |
15 | module.exports = EKeyEscrowUsage;
16 |
--------------------------------------------------------------------------------
/enums/ESystemUpdateNotificationType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum ESystemUpdateNotificationType
3 | * @readonly
4 | */
5 | const ESystemUpdateNotificationType = {
6 | Invalid: 0,
7 | Available: 1,
8 | NeedsRestart: 2,
9 |
10 | // Value-to-name mapping for convenience
11 | 0: 'Invalid',
12 | 1: 'Available',
13 | 2: 'NeedsRestart',
14 | };
15 |
16 | module.exports = ESystemUpdateNotificationType;
17 |
--------------------------------------------------------------------------------
/enums/EStorageBlockFileSystemType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EStorageBlockFileSystemType
3 | * @readonly
4 | */
5 | const EStorageBlockFileSystemType = {
6 | Invalid: 0,
7 | Unknown: 1,
8 | VFat: 2,
9 | Ext4: 3,
10 |
11 | // Value-to-name mapping for convenience
12 | 0: 'Invalid',
13 | 1: 'Unknown',
14 | 2: 'VFat',
15 | 3: 'Ext4',
16 | };
17 |
18 | module.exports = EStorageBlockFileSystemType;
19 |
--------------------------------------------------------------------------------
/enums/EAuthTokenPlatformType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EAuthTokenPlatformType
3 | * @readonly
4 | */
5 | const EAuthTokenPlatformType = {
6 | Unknown: 0,
7 | SteamClient: 1,
8 | WebBrowser: 2,
9 | MobileApp: 3,
10 |
11 | // Value-to-name mapping for convenience
12 | 0: 'Unknown',
13 | 1: 'SteamClient',
14 | 2: 'WebBrowser',
15 | 3: 'MobileApp',
16 | };
17 |
18 | module.exports = EAuthTokenPlatformType;
19 |
--------------------------------------------------------------------------------
/enums/EStreamVersion.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamVersion = {
9 | "None": 0,
10 | "Current": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "None",
14 | "1": "Current",
15 | };
16 |
17 | module.exports = EStreamVersion;
18 |
--------------------------------------------------------------------------------
/enums/ETokenRenewalType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ETokenRenewalType = {
9 | "None": 0,
10 | "Allow": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "None",
14 | "1": "Allow",
15 | };
16 |
17 | module.exports = ETokenRenewalType;
18 |
--------------------------------------------------------------------------------
/enums/EPublishedFileStorageSystem.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EPublishedFileStorageSystem
3 | * @readonly
4 | */
5 | const EPublishedFileStorageSystem = {
6 | Invalid: 0,
7 | LegacyCloud: 1,
8 | Depot: 2,
9 | UGCCloud: 3,
10 |
11 | // Value-to-name mapping for convenience
12 | 0: 'Invalid',
13 | 1: 'LegacyCloud',
14 | 2: 'Depot',
15 | 3: 'UGCCloud',
16 | };
17 |
18 | module.exports = EPublishedFileStorageSystem;
19 |
--------------------------------------------------------------------------------
/enums/ETextFilterSetting.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum ETextFilterSetting
3 | * @readonly
4 | */
5 | const ETextFilterSetting = {
6 | SteamLabOptedOut: 0,
7 | Enabled: 1,
8 | EnabledAllowProfanity: 2,
9 | Disabled: 3,
10 |
11 | // Value-to-name mapping for convenience
12 | 0: 'SteamLabOptedOut',
13 | 1: 'Enabled',
14 | 2: 'EnabledAllowProfanity',
15 | 3: 'Disabled',
16 | };
17 |
18 | module.exports = ETextFilterSetting;
19 |
--------------------------------------------------------------------------------
/enums/EStreamBitrate.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamBitrate = {
9 | "Autodetect": -1,
10 | "Unlimited": 0,
11 |
12 | // Value-to-name mapping for convenience
13 | "-1": "Autodetect",
14 | "0": "Unlimited",
15 | };
16 |
17 | module.exports = EStreamBitrate;
18 |
--------------------------------------------------------------------------------
/enums/EStorageBlockContentType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EStorageBlockContentType
3 | * @readonly
4 | */
5 | const EStorageBlockContentType = {
6 | Invalid: 0,
7 | Unknown: 1,
8 | FileSystem: 2,
9 | Crypto: 3,
10 | Raid: 4,
11 |
12 | // Value-to-name mapping for convenience
13 | 0: 'Invalid',
14 | 1: 'Unknown',
15 | 2: 'FileSystem',
16 | 3: 'Crypto',
17 | 4: 'Raid',
18 | };
19 |
20 | module.exports = EStorageBlockContentType;
21 |
--------------------------------------------------------------------------------
/enums/EWorkshopFileAction.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EWorkshopFileAction = {
9 | "Played": 0,
10 | "Completed": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "Played",
14 | "1": "Completed",
15 | };
16 |
17 | module.exports = EWorkshopFileAction;
18 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/i-have-a-question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: I have a question
3 | about: I want to ask a question about how to do something with the module
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | == DO NOT PROCEED TO OPEN THIS ISSUE ==
11 |
12 | GitHub issues in this repository are for bugs and feature requests ONLY! Please use the dedicated forum instead at https://dev.doctormckay.com/forum/7-node-steam-user/
13 |
--------------------------------------------------------------------------------
/enums/EChatRoomGroupType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomGroupType = {
9 | "Default": 0,
10 | "Unmoderated": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "Default",
14 | "1": "Unmoderated",
15 | };
16 |
17 | module.exports = EChatRoomGroupType;
18 |
--------------------------------------------------------------------------------
/enums/EProtoExecutionSite.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EProtoExecutionSite = {
9 | "Unknown": 0,
10 | "SteamClient": 2,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "Unknown",
14 | "2": "SteamClient",
15 | };
16 |
17 | module.exports = EProtoExecutionSite;
18 |
--------------------------------------------------------------------------------
/enums/EStreamDataMessage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamDataMessage = {
9 | "DataPacket": 1,
10 | "DataLost": 2,
11 |
12 | // Value-to-name mapping for convenience
13 | "1": "DataPacket",
14 | "2": "DataLost",
15 | };
16 |
17 | module.exports = EStreamDataMessage;
18 |
--------------------------------------------------------------------------------
/enums/EVideoFormat.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EVideoFormat = {
9 | "None": 0,
10 | "YV12": 1,
11 | "Accel": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "YV12",
16 | "2": "Accel",
17 | };
18 |
19 | module.exports = EVideoFormat;
20 |
--------------------------------------------------------------------------------
/enums/EBroadcastChatPermission.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EBroadcastChatPermission = {
9 | "Public": 0,
10 | "OwnsApp": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "Public",
14 | "1": "OwnsApp",
15 | };
16 |
17 | module.exports = EBroadcastChatPermission;
18 |
--------------------------------------------------------------------------------
/enums/EChatRoomType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomType = {
9 | "Friend": 1,
10 | "MUC": 2,
11 | "Lobby": 3,
12 |
13 | // Value-to-name mapping for convenience
14 | "1": "Friend",
15 | "2": "MUC",
16 | "3": "Lobby",
17 | };
18 |
19 | module.exports = EChatRoomType;
20 |
--------------------------------------------------------------------------------
/enums/EMarketingMessageVisibility.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:13:56 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMarketingMessageVisibility = {
9 | "Beta": 1,
10 | "Public": 2,
11 |
12 | // Value-to-name mapping for convenience
13 | "1": "Beta",
14 | "2": "Public",
15 | };
16 |
17 | module.exports = EMarketingMessageVisibility;
18 |
--------------------------------------------------------------------------------
/enums/ESteamPipeWorkType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamPipeWorkType = {
9 | "Invalid": 0,
10 | "StageFromChunkStores": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "Invalid",
14 | "1": "StageFromChunkStores",
15 | };
16 |
17 | module.exports = ESteamPipeWorkType;
18 |
--------------------------------------------------------------------------------
/enums/EHIDDeviceLocation.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EHIDDeviceLocation = {
9 | "Local": 0,
10 | "Remote": 2,
11 | "Any": 3,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Local",
15 | "2": "Remote",
16 | "3": "Any",
17 | };
18 |
19 | module.exports = EHIDDeviceLocation;
20 |
--------------------------------------------------------------------------------
/enums/EAudioFormat.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAudioFormat = {
9 | "None": 0,
10 | "16BitLittleEndian": 1,
11 | "Float": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "16BitLittleEndian",
16 | "2": "Float",
17 | };
18 |
19 | module.exports = EAudioFormat;
20 |
--------------------------------------------------------------------------------
/enums/EStreamDiscoveryMessage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamDiscoveryMessage = {
9 | "PingRequest": 1,
10 | "PingResponse": 2,
11 |
12 | // Value-to-name mapping for convenience
13 | "1": "PingRequest",
14 | "2": "PingResponse",
15 | };
16 |
17 | module.exports = EStreamDiscoveryMessage;
18 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/enums/ELogFileType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELogFileType = {
9 | "SystemBoot": 0,
10 | "SystemReset": 1,
11 | "SystemDebug": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "SystemBoot",
15 | "1": "SystemReset",
16 | "2": "SystemDebug",
17 | };
18 |
19 | module.exports = ELogFileType;
20 |
--------------------------------------------------------------------------------
/enums/ESystemAudioDirection.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemAudioDirection = {
9 | "Invalid": 0,
10 | "Input": 1,
11 | "Output": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Input",
16 | "2": "Output",
17 | };
18 |
19 | module.exports = ESystemAudioDirection;
20 |
--------------------------------------------------------------------------------
/enums/EHDRToneMapOperator.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EHDRToneMapOperator = {
9 | "Invalid": 0,
10 | "Uncharted": 1,
11 | "Reinhard": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Uncharted",
16 | "2": "Reinhard",
17 | };
18 |
19 | module.exports = EHDRToneMapOperator;
20 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Report a bug or incorrect behavior in the module
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | ## Describe the bug
11 | A clear and concise description of what the bug is.
12 |
13 | ## Versions
14 | What version of the module and what version of Node.js are you using?
15 |
16 | ## Screenshots and Error Logs
17 | If applicable, add screenshots and error logs to help explain your problem.
18 |
--------------------------------------------------------------------------------
/.idea/steam-user.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/enums/EAppControllerSupportLevel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppControllerSupportLevel = {
9 | "None": 0,
10 | "Partial": 1,
11 | "Full": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "Partial",
16 | "2": "Full",
17 | };
18 |
19 | module.exports = EAppControllerSupportLevel;
20 |
--------------------------------------------------------------------------------
/enums/EContentDeltaChunkDataLocation.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EContentDeltaChunkDataLocation = {
9 | "InProtobuf": 0,
10 | "AfterProtobuf": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "InProtobuf",
14 | "1": "AfterProtobuf",
15 | };
16 |
17 | module.exports = EContentDeltaChunkDataLocation;
18 |
--------------------------------------------------------------------------------
/enums/EGetGamesAlgorithm.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGetGamesAlgorithm = {
9 | "Default": 1,
10 | "MostPlayed": 2,
11 | "PopularNew": 3,
12 |
13 | // Value-to-name mapping for convenience
14 | "1": "Default",
15 | "2": "MostPlayed",
16 | "3": "PopularNew",
17 | };
18 |
19 | module.exports = EGetGamesAlgorithm;
20 |
--------------------------------------------------------------------------------
/enums/EProvideDeckFeedbackPreference.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EProvideDeckFeedbackPreference = {
9 | "Unset": 0,
10 | "Yes": 1,
11 | "No": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Unset",
15 | "1": "Yes",
16 | "2": "No",
17 | };
18 |
19 | module.exports = EProvideDeckFeedbackPreference;
20 |
--------------------------------------------------------------------------------
/enums/ESessionPersistence.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESessionPersistence = {
9 | "Invalid": -1,
10 | "Ephemeral": 0,
11 | "Persistent": 1,
12 |
13 | // Value-to-name mapping for convenience
14 | "-1": "Invalid",
15 | "0": "Ephemeral",
16 | "1": "Persistent",
17 | };
18 |
19 | module.exports = ESessionPersistence;
20 |
--------------------------------------------------------------------------------
/enums/ESystemAudioPortDirection.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemAudioPortDirection = {
9 | "Invalid": 0,
10 | "Input": 1,
11 | "Output": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Input",
16 | "2": "Output",
17 | };
18 |
19 | module.exports = ESystemAudioPortDirection;
20 |
--------------------------------------------------------------------------------
/enums/ESystemFanControlMode.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:45 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemFanControlMode = {
9 | "Invalid": 0,
10 | "Disabled": 1,
11 | "Default": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Disabled",
16 | "2": "Default",
17 | };
18 |
19 | module.exports = ESystemFanControlMode;
20 |
--------------------------------------------------------------------------------
/enums/ESystemServiceState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemServiceState = {
9 | "Unavailable": 0,
10 | "Disabled": 1,
11 | "Enabled": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Unavailable",
15 | "1": "Disabled",
16 | "2": "Enabled",
17 | };
18 |
19 | module.exports = ESystemServiceState;
20 |
--------------------------------------------------------------------------------
/protobufs/enums_productinfo.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 |
3 | option optimize_for = SPEED;
4 | option cc_generic_services = true;
5 | option (force_php_generation) = true;
6 |
7 | enum EContentDescriptorID {
8 | k_EContentDescriptor_FrequentNudityOrSexualContent = 1;
9 | k_EContentDescriptor_FrequentViolenceOrGore = 2;
10 | k_EContentDescriptor_StrongSexualContent = 3;
11 | k_EContentDescriptor_UNUSED_4 = 4;
12 | k_EContentDescriptor_AnyMatureContent = 5;
13 | }
14 |
--------------------------------------------------------------------------------
/enums/ECPUGovernor.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ECPUGovernor = {
9 | "Invalid": 0,
10 | "Perf": 1,
11 | "Powersave": 2,
12 | "Manual": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Perf",
17 | "2": "Powersave",
18 | "3": "Manual",
19 | };
20 |
21 | module.exports = ECPUGovernor;
22 |
--------------------------------------------------------------------------------
/enums/EChatInfoType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatInfoType = {
9 | "StateChange": 1,
10 | "InfoUpdate": 2,
11 | "MemberLimitChange": 3,
12 |
13 | // Value-to-name mapping for convenience
14 | "1": "StateChange",
15 | "2": "InfoUpdate",
16 | "3": "MemberLimitChange",
17 | };
18 |
19 | module.exports = EChatInfoType;
20 |
--------------------------------------------------------------------------------
/enums/ELeaderboardSortMethod.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELeaderboardSortMethod = {
9 | "None": 0,
10 | "Ascending": 1,
11 | "Descending": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "Ascending",
16 | "2": "Descending",
17 | };
18 |
19 | module.exports = ELeaderboardSortMethod;
20 |
--------------------------------------------------------------------------------
/enums/ENotificationSetting.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ENotificationSetting = {
9 | "NotifyUseDefault": 0,
10 | "Always": 1,
11 | "Never": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "NotifyUseDefault",
15 | "1": "Always",
16 | "2": "Never",
17 | };
18 |
19 | module.exports = ENotificationSetting;
20 |
--------------------------------------------------------------------------------
/enums/EColorProfile.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EColorProfile = {
9 | "Invalid": 0,
10 | "Native": 1,
11 | "Standard": 2,
12 | "Vivid": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Native",
17 | "2": "Standard",
18 | "3": "Vivid",
19 | };
20 |
21 | module.exports = EColorProfile;
22 |
--------------------------------------------------------------------------------
/enums/EGameSearchAction.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGameSearchAction = {
9 | "None": 0,
10 | "Accept": 1,
11 | "Decline": 2,
12 | "Cancel": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "None",
16 | "1": "Accept",
17 | "2": "Decline",
18 | "3": "Cancel",
19 | };
20 |
21 | module.exports = EGameSearchAction;
22 |
--------------------------------------------------------------------------------
/enums/EPlaytestStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPlaytestStatus = {
9 | "None": 0,
10 | "Pending": 1,
11 | "Invited": 2,
12 | "Granted": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "None",
16 | "1": "Pending",
17 | "2": "Invited",
18 | "3": "Granted",
19 | };
20 |
21 | module.exports = EPlaytestStatus;
22 |
--------------------------------------------------------------------------------
/enums/EProfileCustomizationStyle.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EProfileCustomizationStyle
3 | * @readonly
4 | */
5 | const EProfileCustomizationStyle = {
6 | Default: 0,
7 | Selected: 1,
8 | Rarest: 2,
9 | MostRecent: 3,
10 | Random: 4,
11 | HighestRated: 5,
12 |
13 | // Value-to-name mapping for convenience
14 | 0: 'Default',
15 | 1: 'Selected',
16 | 2: 'Rarest',
17 | 3: 'MostRecent',
18 | 4: 'Random',
19 | 5: 'HighestRated',
20 | };
21 |
22 | module.exports = EProfileCustomizationStyle;
23 |
--------------------------------------------------------------------------------
/enums/EBatteryState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EBatteryState = {
9 | "Unknown": 0,
10 | "Discharging": 1,
11 | "Charging": 2,
12 | "Full": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "Discharging",
17 | "2": "Charging",
18 | "3": "Full",
19 | };
20 |
21 | module.exports = EBatteryState;
22 |
--------------------------------------------------------------------------------
/enums/ESteamNetworkingSocketsCipher.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamNetworkingSocketsCipher = {
9 | "INVALID": 0,
10 | "NULL": 1,
11 | "AES_256_GCM": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "INVALID",
15 | "1": "NULL",
16 | "2": "AES_256_GCM",
17 | };
18 |
19 | module.exports = ESteamNetworkingSocketsCipher;
20 |
--------------------------------------------------------------------------------
/enums/ETradeOfferConfirmationMethod.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ETradeOfferConfirmationMethod = {
9 | "Invalid": 0,
10 | "Email": 1,
11 | "MobileApp": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Email",
16 | "2": "MobileApp",
17 | };
18 |
19 | module.exports = ETradeOfferConfirmationMethod;
20 |
--------------------------------------------------------------------------------
/components/connection_protocols/base.js:
--------------------------------------------------------------------------------
1 | const EventEmitter = require('events').EventEmitter;
2 |
3 | let g_ConnectionId = 1;
4 |
5 | class BaseConnection extends EventEmitter {
6 | constructor(user) {
7 | super();
8 | this.user = user;
9 | this.connectionId = g_ConnectionId++;
10 | }
11 |
12 | _debug(msg, verbose = false) {
13 | this.user.emit(verbose ? 'debug-verbose' : 'debug', `[${this.connectionType[0]}${this.connectionId}] ${msg}`);
14 | }
15 | }
16 |
17 | module.exports = BaseConnection;
18 |
--------------------------------------------------------------------------------
/enums/EACState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EACState = {
9 | "Unknown": 0,
10 | "Disconnected": 1,
11 | "Connected": 2,
12 | "ConnectedSlow": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "Disconnected",
17 | "2": "Connected",
18 | "3": "ConnectedSlow",
19 | };
20 |
21 | module.exports = EACState;
22 |
--------------------------------------------------------------------------------
/enums/EIntroducerRouting.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EIntroducerRouting = {
9 | "FileShare": 0, // removed
10 | "P2PVoiceChat": 1,
11 | "P2PNetworking": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "FileShare",
15 | "1": "P2PVoiceChat",
16 | "2": "P2PNetworking",
17 | };
18 |
19 | module.exports = EIntroducerRouting;
20 |
--------------------------------------------------------------------------------
/enums/ELeaderboardUploadScoreMethod.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELeaderboardUploadScoreMethod = {
9 | "None": 0,
10 | "KeepBest": 1,
11 | "ForceUpdate": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "KeepBest",
16 | "2": "ForceUpdate",
17 | };
18 |
19 | module.exports = ELeaderboardUploadScoreMethod;
20 |
--------------------------------------------------------------------------------
/enums/ELobbyStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELobbyStatus = {
9 | "Invalid": 0,
10 | "Exists": 1,
11 | "DoesNotExist": 2,
12 | "NotAMember": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Exists",
17 | "2": "DoesNotExist",
18 | "3": "NotAMember",
19 | };
20 |
21 | module.exports = ELobbyStatus;
22 |
--------------------------------------------------------------------------------
/enums/EUserReviewScorePreference.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUserReviewScorePreference = {
9 | "Unset": 0,
10 | "IncludeAll": 1,
11 | "ExcludeBombs": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Unset",
15 | "1": "IncludeAll",
16 | "2": "ExcludeBombs",
17 | };
18 |
19 | module.exports = EUserReviewScorePreference;
20 |
--------------------------------------------------------------------------------
/enums/EChatRoomJoinState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomJoinState = {
9 | "Default": 0,
10 | "None": 1,
11 | "Joined": 2,
12 | "TestInvalid": 99,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Default",
16 | "1": "None",
17 | "2": "Joined",
18 | "99": "TestInvalid",
19 | };
20 |
21 | module.exports = EChatRoomJoinState;
22 |
--------------------------------------------------------------------------------
/enums/EInputMode.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EInputMode = {
9 | "Unknown": 0,
10 | "Mouse": 1,
11 | "Controller": 2,
12 | "MouseAndController": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "Mouse",
17 | "2": "Controller",
18 | "3": "MouseAndController",
19 | };
20 |
21 | module.exports = EInputMode;
22 |
--------------------------------------------------------------------------------
/enums/EPackageStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPackageStatus = {
9 | "Available": 0,
10 | "Preorder": 1,
11 | "Unavailable": 2,
12 | "Invalid": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Available",
16 | "1": "Preorder",
17 | "2": "Unavailable",
18 | "3": "Invalid",
19 | };
20 |
21 | module.exports = EPackageStatus;
22 |
--------------------------------------------------------------------------------
/enums/EUniverse.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUniverse = {
9 | "Invalid": 0,
10 | "Public": 1,
11 | "Beta": 2,
12 | "Internal": 3,
13 | "Dev": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "Public",
18 | "2": "Beta",
19 | "3": "Internal",
20 | "4": "Dev",
21 | };
22 |
23 | module.exports = EUniverse;
24 |
--------------------------------------------------------------------------------
/enums/EChatFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatFlags = {
9 | "Locked": 1,
10 | "InvisibleToFriends": 2,
11 | "Moderated": 4,
12 | "Unjoinable": 8,
13 |
14 | // Value-to-name mapping for convenience
15 | "1": "Locked",
16 | "2": "InvisibleToFriends",
17 | "4": "Moderated",
18 | "8": "Unjoinable",
19 | };
20 |
21 | module.exports = EChatFlags;
22 |
--------------------------------------------------------------------------------
/enums/EClanRank.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClanRank = {
9 | "None": 0,
10 | "Owner": 1,
11 | "Officer": 2,
12 | "Member": 3,
13 | "Moderator": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "None",
17 | "1": "Owner",
18 | "2": "Officer",
19 | "3": "Member",
20 | "4": "Moderator",
21 | };
22 |
23 | module.exports = EClanRank;
24 |
--------------------------------------------------------------------------------
/enums/ECloudPendingRemoteOperation.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum ECloudPendingRemoteOperation
3 | * @readonly
4 | */
5 | const ECloudPendingRemoteOperation = {
6 | None: 0,
7 | AppSessionActive: 1,
8 | UploadInProgress: 2,
9 | UploadPending: 3,
10 | AppSessionSuspended: 4,
11 |
12 | // Value-to-name mapping for convenience
13 | 0: 'None',
14 | 1: 'AppSessionActive',
15 | 2: 'UploadInProgress',
16 | 3: 'UploadPending',
17 | 4: 'AppSessionSuspended',
18 | };
19 |
20 | module.exports = ECloudPendingRemoteOperation;
21 |
--------------------------------------------------------------------------------
/enums/EMMSLobbyStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMMSLobbyStatus = {
9 | "Invalid": 0,
10 | "Exists": 1,
11 | "DoesNotExist": 2,
12 | "NotAMember": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Exists",
17 | "2": "DoesNotExist",
18 | "3": "NotAMember",
19 | };
20 |
21 | module.exports = EMMSLobbyStatus;
22 |
--------------------------------------------------------------------------------
/enums/EPublishedFileInappropriateProvider.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPublishedFileInappropriateProvider = {
9 | "Invalid": 0,
10 | "Google": 1,
11 | "Amazon": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "Google",
16 | "2": "Amazon",
17 | };
18 |
19 | module.exports = EPublishedFileInappropriateProvider;
20 |
--------------------------------------------------------------------------------
/enums/EStreamInterface.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamInterface = {
9 | "Default": 0,
10 | "RecentGames": 1,
11 | "BigPicture": 2,
12 | "Desktop": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Default",
16 | "1": "RecentGames",
17 | "2": "BigPicture",
18 | "3": "Desktop",
19 | };
20 |
21 | module.exports = EStreamInterface;
22 |
--------------------------------------------------------------------------------
/enums/EStreamMouseWheelDirection.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamMouseWheelDirection = {
9 | "Down": -120,
10 | "Left": 3,
11 | "Right": 4,
12 | "Up": 120,
13 |
14 | // Value-to-name mapping for convenience
15 | "-120": "Down",
16 | "3": "Left",
17 | "4": "Right",
18 | "120": "Up",
19 | };
20 |
21 | module.exports = EStreamMouseWheelDirection;
22 |
--------------------------------------------------------------------------------
/enums/ESystemDisplayCompatibilityMode.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemDisplayCompatibilityMode = {
9 | "Invalid": 0,
10 | "None": 1,
11 | "MinimalBandwith": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "None",
16 | "2": "MinimalBandwith",
17 | };
18 |
19 | module.exports = ESystemDisplayCompatibilityMode;
20 |
--------------------------------------------------------------------------------
/enums/EAuthSessionSecurityHistory.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAuthSessionSecurityHistory = {
9 | "Invalid": 0,
10 | "UsedPreviously": 1,
11 | "NoPriorHistory": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "Invalid",
15 | "1": "UsedPreviously",
16 | "2": "NoPriorHistory",
17 | };
18 |
19 | module.exports = EAuthSessionSecurityHistory;
20 |
--------------------------------------------------------------------------------
/enums/EJSRegisterMethodType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EJSRegisterMethodType = {
9 | "Invalid": 0,
10 | "Function": 1,
11 | "Callback": 2,
12 | "Promise": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Function",
17 | "2": "Callback",
18 | "3": "Promise",
19 | };
20 |
21 | module.exports = EJSRegisterMethodType;
22 |
--------------------------------------------------------------------------------
/enums/EAppAssociationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppAssociationType = {
9 | "Invalid": 0,
10 | "Publisher": 1,
11 | "Developer": 2,
12 | "Franchise": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "Publisher",
17 | "2": "Developer",
18 | "3": "Franchise",
19 | };
20 |
21 | module.exports = EAppAssociationType;
22 |
--------------------------------------------------------------------------------
/enums/EClientStatAggregateMethod.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClientStatAggregateMethod = {
9 | "LatestOnly": 0,
10 | "Sum": 1,
11 | "Event": 2,
12 | "Scalar": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "LatestOnly",
16 | "1": "Sum",
17 | "2": "Event",
18 | "3": "Scalar",
19 | };
20 |
21 | module.exports = EClientStatAggregateMethod;
22 |
--------------------------------------------------------------------------------
/enums/ECodecUsageReason.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ECodecUsageReason = {
9 | "Unknown": 0,
10 | "RemotePlay": 1,
11 | "Broadcasting": 2,
12 | "GameVideo": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "RemotePlay",
17 | "2": "Broadcasting",
18 | "3": "GameVideo",
19 | };
20 |
21 | module.exports = ECodecUsageReason;
22 |
--------------------------------------------------------------------------------
/enums/EValveIndexComponent.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EValveIndexComponent = {
9 | "Unknown": 0,
10 | "HMD": 1,
11 | "LeftKnuckle": 2,
12 | "RightKnuckle": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "HMD",
17 | "2": "LeftKnuckle",
18 | "3": "RightKnuckle",
19 | };
20 |
21 | module.exports = EValveIndexComponent;
22 |
--------------------------------------------------------------------------------
/enums/EContentHubDiscountFilterType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EContentHubDiscountFilterType = {
9 | "None": 0,
10 | "DiscountsOnly": 1,
11 | "PrioritizeDiscounts": 2,
12 |
13 | // Value-to-name mapping for convenience
14 | "0": "None",
15 | "1": "DiscountsOnly",
16 | "2": "PrioritizeDiscounts",
17 | };
18 |
19 | module.exports = EContentHubDiscountFilterType;
20 |
--------------------------------------------------------------------------------
/enums/ELeaderboardDataRequest.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELeaderboardDataRequest = {
9 | "Global": 0,
10 | "GlobalAroundUser": 1,
11 | "Friends": 2,
12 | "Users": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Global",
16 | "1": "GlobalAroundUser",
17 | "2": "Friends",
18 | "3": "Users",
19 | };
20 |
21 | module.exports = ELeaderboardDataRequest;
22 |
--------------------------------------------------------------------------------
/enums/EPublishedFileVisibility.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Mon Sep 02 2024 23:48:07 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPublishedFileVisibility = {
9 | "Public": 0,
10 | "FriendsOnly": 1,
11 | "Private": 2,
12 | "Unlisted": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Public",
16 | "1": "FriendsOnly",
17 | "2": "Private",
18 | "3": "Unlisted",
19 | };
20 |
21 | module.exports = EPublishedFileVisibility;
22 |
--------------------------------------------------------------------------------
/enums/ESplitScalingFilter.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESplitScalingFilter = {
9 | "Invalid": 0,
10 | "Linear": 1,
11 | "Nearest": 2,
12 | "FSR": 3,
13 | "NIS": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "Linear",
18 | "2": "Nearest",
19 | "3": "FSR",
20 | "4": "NIS",
21 | };
22 |
23 | module.exports = ESplitScalingFilter;
24 |
--------------------------------------------------------------------------------
/enums/ESteamPipeOperationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamPipeOperationType = {
9 | "Invalid": 0,
10 | "DecryptCPU": 1,
11 | "DiskRead": 2,
12 | "DiskWrite": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "DecryptCPU",
17 | "2": "DiskRead",
18 | "3": "DiskWrite",
19 | };
20 |
21 | module.exports = ESteamPipeOperationType;
22 |
--------------------------------------------------------------------------------
/enums/ESteamDeckCompatibilityFeedback.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamDeckCompatibilityFeedback = {
9 | "Unset": 0,
10 | "Agree": 1,
11 | "Disagree": 2,
12 | "Ignore": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unset",
16 | "1": "Agree",
17 | "2": "Disagree",
18 | "3": "Ignore",
19 | };
20 |
21 | module.exports = ESteamDeckCompatibilityFeedback;
22 |
--------------------------------------------------------------------------------
/enums/EStreamingDataType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamingDataType = {
9 | "AudioData": 0,
10 | "VideoData": 1,
11 | "MicrophoneData": 2,
12 | "NeptuneData": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "AudioData",
16 | "1": "VideoData",
17 | "2": "MicrophoneData",
18 | "3": "NeptuneData",
19 | };
20 |
21 | module.exports = EStreamingDataType;
22 |
--------------------------------------------------------------------------------
/enums/ELeaderboardDisplayType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELeaderboardDisplayType = {
9 | "None": 0,
10 | "Numeric": 1,
11 | "TimeSeconds": 2,
12 | "TimeMilliSeconds": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "None",
16 | "1": "Numeric",
17 | "2": "TimeSeconds",
18 | "3": "TimeMilliSeconds",
19 | };
20 |
21 | module.exports = ELeaderboardDisplayType;
22 |
--------------------------------------------------------------------------------
/enums/EStreamHostPlayAudioPreference.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamHostPlayAudioPreference = {
9 | "k_EStreamHostPlayAudioDefault": 0,
10 | "k_EStreamHostPlayAudioAlways": 1,
11 |
12 | // Value-to-name mapping for convenience
13 | "0": "k_EStreamHostPlayAudioDefault",
14 | "1": "k_EStreamHostPlayAudioAlways",
15 | };
16 |
17 | module.exports = EStreamHostPlayAudioPreference;
18 |
--------------------------------------------------------------------------------
/enums/ECodecUsagePlatform.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ECodecUsagePlatform = {
9 | "Unknown": 0,
10 | "Windows": 1,
11 | "MacOS": 2,
12 | "Linux": 3,
13 | "SteamDeck": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Unknown",
17 | "1": "Windows",
18 | "2": "MacOS",
19 | "3": "Linux",
20 | "4": "SteamDeck",
21 | };
22 |
23 | module.exports = ECodecUsagePlatform;
24 |
--------------------------------------------------------------------------------
/enums/ELobbyType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELobbyType = {
9 | "Private": 0,
10 | "FriendsOnly": 1,
11 | "Public": 2,
12 | "Invisible": 3,
13 | "PrivateUnique": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Private",
17 | "1": "FriendsOnly",
18 | "2": "Public",
19 | "3": "Invisible",
20 | "4": "PrivateUnique",
21 | };
22 |
23 | module.exports = ELobbyType;
24 |
--------------------------------------------------------------------------------
/enums/EStorageDriveMediaType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStorageDriveMediaType = {
9 | "Invalid": 0,
10 | "Unknown": 1,
11 | "HDD": 2,
12 | "SSD": 3,
13 | "Removable": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "Unknown",
18 | "2": "HDD",
19 | "3": "SSD",
20 | "4": "Removable",
21 | };
22 |
23 | module.exports = EStorageDriveMediaType;
24 |
--------------------------------------------------------------------------------
/enums/EStreamAudioCodec.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamAudioCodec = {
9 | "None": 0,
10 | "Raw": 1,
11 | "Vorbis": 2,
12 | "Opus": 3,
13 | "MP3": 4,
14 | "AAC": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "None",
18 | "1": "Raw",
19 | "2": "Vorbis",
20 | "3": "Opus",
21 | "4": "MP3",
22 | "5": "AAC",
23 | };
24 |
25 | module.exports = EStreamAudioCodec;
26 |
--------------------------------------------------------------------------------
/enums/EStreamColorspace.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamColorspace = {
9 | "Unknown": 0,
10 | "BT601": 1,
11 | "BT601_Full": 2,
12 | "BT709": 3,
13 | "BT709_Full": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Unknown",
17 | "1": "BT601",
18 | "2": "BT601_Full",
19 | "3": "BT709",
20 | "4": "BT709_Full",
21 | };
22 |
23 | module.exports = EStreamColorspace;
24 |
--------------------------------------------------------------------------------
/enums/EStreamDeviceFormFactor.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamDeviceFormFactor = {
9 | "Unknown": 0,
10 | "Phone": 1,
11 | "Tablet": 2,
12 | "Computer": 3,
13 | "TV": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Unknown",
17 | "1": "Phone",
18 | "2": "Tablet",
19 | "3": "Computer",
20 | "4": "TV",
21 | };
22 |
23 | module.exports = EStreamDeviceFormFactor;
24 |
--------------------------------------------------------------------------------
/enums/E_STAR_GlyphWriteResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const E_STAR_GlyphWriteResult = {
9 | "Success": 0,
10 | "InvalidMessage": 1,
11 | "InvalidJSON": 2,
12 | "SQLError": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Success",
16 | "1": "InvalidMessage",
17 | "2": "InvalidJSON",
18 | "3": "SQLError",
19 | };
20 |
21 | module.exports = E_STAR_GlyphWriteResult;
22 |
--------------------------------------------------------------------------------
/enums/EMouseMode.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMouseMode = {
9 | "Unknown": 0,
10 | "RelativeCursor": 1,
11 | "AbsoluteCursor": 2,
12 | "Touch": 3,
13 | "Relative": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Unknown",
17 | "1": "RelativeCursor",
18 | "2": "AbsoluteCursor",
19 | "3": "Touch",
20 | "4": "Relative",
21 | };
22 |
23 | module.exports = EMouseMode;
24 |
--------------------------------------------------------------------------------
/enums/EStreamActivity.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:33:23 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum EStreamActivity
6 | * @readonly
7 | */
8 | const EStreamActivity = {
9 | "Idle": 1,
10 | "Game": 2,
11 | "Desktop": 3,
12 | "SecureDesktop": 4,
13 | "Music": 5,
14 |
15 | // Value-to-name mapping for convenience
16 | "1": "Idle",
17 | "2": "Game",
18 | "3": "Desktop",
19 | "4": "SecureDesktop",
20 | "5": "Music",
21 | };
22 |
23 | module.exports = EStreamActivity;
24 |
--------------------------------------------------------------------------------
/enums/EGraphicsPerfOverlayLevel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGraphicsPerfOverlayLevel = {
9 | "Hidden": 0,
10 | "Basic": 1,
11 | "Medium": 2,
12 | "Full": 3,
13 | "Minimal": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Hidden",
17 | "1": "Basic",
18 | "2": "Medium",
19 | "3": "Full",
20 | "4": "Minimal",
21 | };
22 |
23 | module.exports = EGraphicsPerfOverlayLevel;
24 |
--------------------------------------------------------------------------------
/enums/EHIDDeviceDisconnectMethod.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EHIDDeviceDisconnectMethod = {
9 | "Unknown": 0,
10 | "Bluetooth": 1,
11 | "FeatureReport": 2,
12 | "OutputReport": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "Bluetooth",
17 | "2": "FeatureReport",
18 | "3": "OutputReport",
19 | };
20 |
21 | module.exports = EHIDDeviceDisconnectMethod;
22 |
--------------------------------------------------------------------------------
/enums/ESteamDeckCompatibilityCategory.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamDeckCompatibilityCategory = {
9 | "Unknown": 0,
10 | "Unsupported": 1,
11 | "Playable": 2,
12 | "Verified": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Unknown",
16 | "1": "Unsupported",
17 | "2": "Playable",
18 | "3": "Verified",
19 | };
20 |
21 | module.exports = ESteamDeckCompatibilityCategory;
22 |
--------------------------------------------------------------------------------
/enums/EStreamChannel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamChannel = {
9 | "Invalid": -1,
10 | "Discovery": 0,
11 | "Control": 1,
12 | "Stats": 2,
13 | "DataChannelStart": 3,
14 |
15 | // Value-to-name mapping for convenience
16 | "-1": "Invalid",
17 | "0": "Discovery",
18 | "1": "Control",
19 | "2": "Stats",
20 | "3": "DataChannelStart",
21 | };
22 |
23 | module.exports = EStreamChannel;
24 |
--------------------------------------------------------------------------------
/enums/EStreamQualityPreference.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:33:23 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum EStreamQualityPreference
6 | * @readonly
7 | */
8 | const EStreamQualityPreference = {
9 | "Automatic": -1,
10 | "Fast": 1,
11 | "Balanced": 2,
12 | "Beautiful": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "-1": "Automatic",
16 | "1": "Fast",
17 | "2": "Balanced",
18 | "3": "Beautiful",
19 | };
20 |
21 | module.exports = EStreamQualityPreference;
22 |
--------------------------------------------------------------------------------
/enums/ELobbyFilterType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELobbyFilterType = {
9 | "String": 0,
10 | "Numerical": 1,
11 | "SlotsAvailable": 2,
12 | "NearValue": 3,
13 | "Distance": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "String",
17 | "1": "Numerical",
18 | "2": "SlotsAvailable",
19 | "3": "NearValue",
20 | "4": "Distance",
21 | };
22 |
23 | module.exports = ELobbyFilterType;
24 |
--------------------------------------------------------------------------------
/enums/ENewsUpdateType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ENewsUpdateType = {
9 | "AppNews": 0,
10 | "SteamAds": 1,
11 | "SteamNews": 2,
12 | "CDDBUpdate": 3,
13 | "ClientUpdate": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "AppNews",
17 | "1": "SteamAds",
18 | "2": "SteamNews",
19 | "3": "CDDBUpdate",
20 | "4": "ClientUpdate",
21 | };
22 |
23 | module.exports = ENewsUpdateType;
24 |
--------------------------------------------------------------------------------
/enums/EScalingFilter.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EScalingFilter = {
9 | "Invalid": 0,
10 | "FSR": 1,
11 | "Nearest": 2,
12 | "Integer": 3,
13 | "Linear": 4,
14 | "NIS": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Invalid",
18 | "1": "FSR",
19 | "2": "Nearest",
20 | "3": "Integer",
21 | "4": "Linear",
22 | "5": "NIS",
23 | };
24 |
25 | module.exports = EScalingFilter;
26 |
--------------------------------------------------------------------------------
/enums/ESystemAudioPortType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemAudioPortType = {
9 | "Invalid": 0,
10 | "Unknown": 1,
11 | "Audio32f": 2,
12 | "Midi8b": 3,
13 | "Video32RGBA": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "Unknown",
18 | "2": "Audio32f",
19 | "3": "Midi8b",
20 | "4": "Video32RGBA",
21 | };
22 |
23 | module.exports = ESystemAudioPortType;
24 |
--------------------------------------------------------------------------------
/enums/EGetChannelsAlgorithm.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGetChannelsAlgorithm = {
9 | "Default": 1,
10 | "Friends": 2,
11 | "Featured": 3,
12 | "Developer": 4,
13 | "Following": 5,
14 |
15 | // Value-to-name mapping for convenience
16 | "1": "Default",
17 | "2": "Friends",
18 | "3": "Featured",
19 | "4": "Developer",
20 | "5": "Following",
21 | };
22 |
23 | module.exports = EGetChannelsAlgorithm;
24 |
--------------------------------------------------------------------------------
/enums/EAppGamepadGyroTrackpadSupportLevel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppGamepadGyroTrackpadSupportLevel = {
9 | "Unknown": -1,
10 | "NoGamepad": 0,
11 | "Gamepad": 1,
12 | "Simultaneous": 2,
13 |
14 | // Value-to-name mapping for convenience
15 | "-1": "Unknown",
16 | "0": "NoGamepad",
17 | "1": "Gamepad",
18 | "2": "Simultaneous",
19 | };
20 |
21 | module.exports = EAppGamepadGyroTrackpadSupportLevel;
22 |
--------------------------------------------------------------------------------
/enums/ENewSteamAnnouncementState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ENewSteamAnnouncementState = {
9 | "Invalid": 0,
10 | "AllRead": 1,
11 | "NewAnnouncement": 2,
12 | "FeaturedAnnouncement": 3,
13 |
14 | // Value-to-name mapping for convenience
15 | "0": "Invalid",
16 | "1": "AllRead",
17 | "2": "NewAnnouncement",
18 | "3": "FeaturedAnnouncement",
19 | };
20 |
21 | module.exports = ENewSteamAnnouncementState;
22 |
--------------------------------------------------------------------------------
/enums/ESplitScalingScaler.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESplitScalingScaler = {
9 | "Invalid": 0,
10 | "Auto": 1,
11 | "Integer": 2,
12 | "Fit": 3,
13 | "Fill": 4,
14 | "Stretch": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Invalid",
18 | "1": "Auto",
19 | "2": "Integer",
20 | "3": "Fit",
21 | "4": "Fill",
22 | "5": "Stretch",
23 | };
24 |
25 | module.exports = ESplitScalingScaler;
26 |
--------------------------------------------------------------------------------
/enums/EStreamMouseButton.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamMouseButton = {
9 | "Left": 1,
10 | "Right": 2,
11 | "Middle": 16,
12 | "X1": 32,
13 | "X2": 64,
14 | "Unknown": 4096,
15 |
16 | // Value-to-name mapping for convenience
17 | "1": "Left",
18 | "2": "Right",
19 | "16": "Middle",
20 | "32": "X1",
21 | "64": "X2",
22 | "4096": "Unknown",
23 | };
24 |
25 | module.exports = EStreamMouseButton;
26 |
--------------------------------------------------------------------------------
/enums/EBanContentCheckResult.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EBanContentCheckResult
3 | * @readonly
4 | */
5 | const EBanContentCheckResult = {
6 | NotScanned: 0,
7 | Reset: 1,
8 | NeedsChecking: 2,
9 | VeryUnlikely: 5,
10 | Unlikely: 30,
11 | Possible: 50,
12 | Likely: 75,
13 | VeryLikely: 100,
14 |
15 | // Value-to-name mapping for convenience
16 | 0: 'NotScanned',
17 | 1: 'Reset',
18 | 2: 'NeedsChecking',
19 | 5: 'VeryUnlikely',
20 | 30: 'Unlikely',
21 | 50: 'Possible',
22 | 75: 'Likely',
23 | 100: 'VeryLikely',
24 | };
25 |
26 | module.exports = EBanContentCheckResult;
27 |
--------------------------------------------------------------------------------
/enums/EGPUPerformanceLevel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGPUPerformanceLevel = {
9 | "Invalid": 0,
10 | "Auto": 1,
11 | "Manual": 2,
12 | "Low": 3,
13 | "High": 4,
14 | "Profiling": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Invalid",
18 | "1": "Auto",
19 | "2": "Manual",
20 | "3": "Low",
21 | "4": "High",
22 | "5": "Profiling",
23 | };
24 |
25 | module.exports = EGPUPerformanceLevel;
26 |
--------------------------------------------------------------------------------
/enums/EChatRoomNotificationLevel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomNotificationLevel = {
9 | "Invalid": 0,
10 | "None": 1,
11 | "MentionMe": 2,
12 | "MentionAll": 3,
13 | "AllMessages": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "None",
18 | "2": "MentionMe",
19 | "3": "MentionAll",
20 | "4": "AllMessages",
21 | };
22 |
23 | module.exports = EChatRoomNotificationLevel;
24 |
--------------------------------------------------------------------------------
/enums/EMarketingMessageLookupType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:13:56 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMarketingMessageLookupType = {
9 | "Invalid": 0,
10 | "ByGID": 1,
11 | "Active": 2,
12 | "ByTitleWithType": 3,
13 | "ByGIDList": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invalid",
17 | "1": "ByGID",
18 | "2": "Active",
19 | "3": "ByTitleWithType",
20 | "4": "ByGIDList",
21 | };
22 |
23 | module.exports = EMarketingMessageLookupType;
24 |
--------------------------------------------------------------------------------
/enums/EStreamP2PScope.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:33:23 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum EStreamP2PScope
6 | * @readonly
7 | */
8 | const EStreamP2PScope = {
9 | "Unknown": 0, // obsolete
10 | "Automatic": 0,
11 | "Disabled": 1,
12 | "OnlyMe": 2,
13 | "Friends": 3,
14 | "Everyone": 4,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Automatic",
18 | "1": "Disabled",
19 | "2": "OnlyMe",
20 | "3": "Friends",
21 | "4": "Everyone",
22 | };
23 |
24 | module.exports = EStreamP2PScope;
25 |
--------------------------------------------------------------------------------
/enums/EStoreItemType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStoreItemType = {
9 | "Invalid": -1,
10 | "App": 0,
11 | "Package": 1,
12 | "Bundle": 2,
13 | "Mtx": 3,
14 | "Tag": 4,
15 | "Creator": 5,
16 |
17 | // Value-to-name mapping for convenience
18 | "-1": "Invalid",
19 | "0": "App",
20 | "1": "Package",
21 | "2": "Bundle",
22 | "3": "Mtx",
23 | "4": "Tag",
24 | "5": "Creator",
25 | };
26 |
27 | module.exports = EStoreItemType;
28 |
--------------------------------------------------------------------------------
/enums/EWorkshopFileType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Mon Sep 02 2024 23:48:07 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EWorkshopFileType = {
9 | "First": 0,
10 | "SteamworksAccessInvite": 13,
11 | "SteamVideo": 14,
12 | "GameManagedItem": 15,
13 | "Clip": 16,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "First",
17 | "13": "SteamworksAccessInvite",
18 | "14": "SteamVideo",
19 | "15": "GameManagedItem",
20 | "16": "Clip",
21 | };
22 |
23 | module.exports = EWorkshopFileType;
24 |
--------------------------------------------------------------------------------
/enums/ESDCardFormatStage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESDCardFormatStage = {
9 | "Invalid": 0,
10 | "Starting": 1,
11 | "Testing": 2,
12 | "Rescuing": 3,
13 | "Formatting": 4,
14 | "Finalizing": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Invalid",
18 | "1": "Starting",
19 | "2": "Testing",
20 | "3": "Rescuing",
21 | "4": "Formatting",
22 | "5": "Finalizing",
23 | };
24 |
25 | module.exports = ESDCardFormatStage;
26 |
--------------------------------------------------------------------------------
/enums/EServerFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EServerFlags = {
9 | "None": 0,
10 | "Active": 1,
11 | "Secure": 2,
12 | "Dedicated": 4,
13 | "Linux": 8,
14 | "Passworded": 16,
15 | "Private": 32,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "None",
19 | "1": "Active",
20 | "2": "Secure",
21 | "4": "Dedicated",
22 | "8": "Linux",
23 | "16": "Passworded",
24 | "32": "Private",
25 | };
26 |
27 | module.exports = EServerFlags;
28 |
--------------------------------------------------------------------------------
/enums/EOSBranch.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EOSBranch = {
9 | "Unknown": 0,
10 | "Release": 1,
11 | "ReleaseCandidate": 2,
12 | "Beta": 3,
13 | "BetaCandidate": 4,
14 | "Main": 5,
15 | "Staging": 6,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "Unknown",
19 | "1": "Release",
20 | "2": "ReleaseCandidate",
21 | "3": "Beta",
22 | "4": "BetaCandidate",
23 | "5": "Main",
24 | "6": "Staging",
25 | };
26 |
27 | module.exports = EOSBranch;
28 |
--------------------------------------------------------------------------------
/enums/EStreamVideoCodec.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamVideoCodec = {
9 | "None": 0,
10 | "Raw": 1,
11 | "VP8": 2,
12 | "VP9": 3,
13 | "H264": 4,
14 | "HEVC": 5,
15 | "ORBX1": 6,
16 | "ORBX2": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "None",
20 | "1": "Raw",
21 | "2": "VP8",
22 | "3": "VP9",
23 | "4": "H264",
24 | "5": "HEVC",
25 | "6": "ORBX1",
26 | "7": "ORBX2",
27 | };
28 |
29 | module.exports = EStreamVideoCodec;
30 |
--------------------------------------------------------------------------------
/enums/EChatRoomGroupPermissions.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomGroupPermissions = {
9 | "Default": 0,
10 | "Valid": 1,
11 | "CanInvite": 2,
12 | "CanKick": 4,
13 | "CanBan": 8,
14 | "CanAdminChannel": 16,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Default",
18 | "1": "Valid",
19 | "2": "CanInvite",
20 | "4": "CanKick",
21 | "8": "CanBan",
22 | "16": "CanAdminChannel",
23 | };
24 |
25 | module.exports = EChatRoomGroupPermissions;
26 |
--------------------------------------------------------------------------------
/resources/EMachineIDType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * What type of machine ID SteamUser will use to logon to Steam with.
3 | * @readonly
4 | * @enum {number}
5 | * @since 1.7.0
6 | */
7 | module.exports = {
8 | /** No machine ID will be provided to Steam */
9 | None: 1,
10 |
11 | /** A randomly-generated machine ID will be created on each logon */
12 | AlwaysRandom: 2,
13 |
14 | /** A machine ID will be generated from your account's username */
15 | AccountNameGenerated: 3,
16 |
17 | /** A random machine ID will be generated and saved to the {dataDirectory}, and will be used for future logons */
18 | PersistentRandom: 4
19 | };
20 |
--------------------------------------------------------------------------------
/enums/EClientStat.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClientStat = {
9 | "P2PConnectionsUDP": 0,
10 | "P2PConnectionsRelay": 1,
11 | "P2PGameConnections": 2,
12 | "P2PVoiceConnections": 3,
13 | "BytesDownloaded": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "P2PConnectionsUDP",
17 | "1": "P2PConnectionsRelay",
18 | "2": "P2PGameConnections",
19 | "3": "P2PVoiceConnections",
20 | "4": "BytesDownloaded",
21 | };
22 |
23 | module.exports = EClientStat;
24 |
--------------------------------------------------------------------------------
/enums/EStoreCategoryType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStoreCategoryType = {
9 | "Category": 0,
10 | "SupportedPlayers": 1,
11 | "Feature": 2,
12 | "ControllerSupport": 3,
13 | "CloudGaming": 4,
14 | "MAX": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Category",
18 | "1": "SupportedPlayers",
19 | "2": "Feature",
20 | "3": "ControllerSupport",
21 | "4": "CloudGaming",
22 | "5": "MAX",
23 | };
24 |
25 | module.exports = EStoreCategoryType;
26 |
--------------------------------------------------------------------------------
/enums/EUpdaterType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUpdaterType = {
9 | "Invalid": 0,
10 | "Client": 1,
11 | "OS": 2,
12 | "BIOS": 3,
13 | "Aggregated": 4,
14 | "Test1": 5,
15 | "Test2": 6,
16 | "Dummy": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Invalid",
20 | "1": "Client",
21 | "2": "OS",
22 | "3": "BIOS",
23 | "4": "Aggregated",
24 | "5": "Test1",
25 | "6": "Test2",
26 | "7": "Dummy",
27 | };
28 |
29 | module.exports = EUpdaterType;
30 |
--------------------------------------------------------------------------------
/enums/EBroadcastImageType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EBroadcastImageType = {
9 | "None": 0,
10 | "Offline": 1,
11 | "Standby": 2,
12 | "Avatar": 3,
13 | "Summary": 4,
14 | "Background": 5,
15 | "Emoticon": 6,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "None",
19 | "1": "Offline",
20 | "2": "Standby",
21 | "3": "Avatar",
22 | "4": "Summary",
23 | "5": "Background",
24 | "6": "Emoticon",
25 | };
26 |
27 | module.exports = EBroadcastImageType;
28 |
--------------------------------------------------------------------------------
/enums/ELobbyComparison.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELobbyComparison = {
9 | "EqualToOrLessThan": -2,
10 | "LessThan": -1,
11 | "Equal": 0,
12 | "GreaterThan": 1,
13 | "EqualToOrGreaterThan": 2,
14 | "NotEqual": 3,
15 |
16 | // Value-to-name mapping for convenience
17 | "-2": "EqualToOrLessThan",
18 | "-1": "LessThan",
19 | "0": "Equal",
20 | "1": "GreaterThan",
21 | "2": "EqualToOrGreaterThan",
22 | "3": "NotEqual",
23 | };
24 |
25 | module.exports = ELobbyComparison;
26 |
--------------------------------------------------------------------------------
/enums/ESteamDeckCompatibilityResultDisplayType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamDeckCompatibilityResultDisplayType = {
9 | "Invisible": 0,
10 | "Informational": 1,
11 | "Unsupported": 2,
12 | "Playable": 3,
13 | "Verified": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "Invisible",
17 | "1": "Informational",
18 | "2": "Unsupported",
19 | "3": "Playable",
20 | "4": "Verified",
21 | };
22 |
23 | module.exports = ESteamDeckCompatibilityResultDisplayType;
24 |
--------------------------------------------------------------------------------
/enums/EStreamTransport.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamTransport = {
9 | "None": 0,
10 | "UDP": 1,
11 | "UDPRelay": 2,
12 | "WebRTC": 3,
13 | "SDR": 4,
14 | "UDP_SNS": 5,
15 | "SNS": 6, // obsolete
16 | "UDPRelay_SNS": 6,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "None",
20 | "1": "UDP",
21 | "2": "UDPRelay",
22 | "3": "WebRTC",
23 | "4": "SDR",
24 | "5": "UDP_SNS",
25 | "6": "UDPRelay_SNS",
26 | };
27 |
28 | module.exports = EStreamTransport;
29 |
--------------------------------------------------------------------------------
/enums/EInternalAccountType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EInternalAccountType = {
9 | "k_EInternalSteamAccountType": 1,
10 | "k_EInternalClanType": 2,
11 | "k_EInternalAppType": 3,
12 | "k_EInternalBroadcastChannelType": 4,
13 |
14 | // Value-to-name mapping for convenience
15 | "1": "k_EInternalSteamAccountType",
16 | "2": "k_EInternalClanType",
17 | "3": "k_EInternalAppType",
18 | "4": "k_EInternalBroadcastChannelType",
19 | };
20 |
21 | module.exports = EInternalAccountType;
22 |
--------------------------------------------------------------------------------
/enums/ERemoteClientService.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERemoteClientService = {
9 | "None": 0,
10 | "RemoteControl": 1,
11 | "GameStreaming": 2,
12 | "SiteLicense": 4,
13 | "ContentCache": 8,
14 | "ContentServer": 16,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "None",
18 | "1": "RemoteControl",
19 | "2": "GameStreaming",
20 | "4": "SiteLicense",
21 | "8": "ContentCache",
22 | "16": "ContentServer",
23 | };
24 |
25 | module.exports = ERemoteClientService;
26 |
--------------------------------------------------------------------------------
/enums/EPlatformType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPlatformType = {
9 | "Unknown": 0,
10 | "Win32": 1,
11 | "Win64": 2,
12 | "Linux": 3, // removed "split to Linux64 and Linux32"
13 | "Linux64": 3,
14 | "OSX": 4,
15 | "PS3": 5,
16 | "Linux32": 6,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Unknown",
20 | "1": "Win32",
21 | "2": "Win64",
22 | "3": "Linux64",
23 | "4": "OSX",
24 | "5": "PS3",
25 | "6": "Linux32",
26 | };
27 |
28 | module.exports = EPlatformType;
29 |
--------------------------------------------------------------------------------
/enums/EStreamStatsMessage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamStatsMessage = {
9 | "FrameEvents": 1,
10 | "DebugDump": 2,
11 | "LogMessage": 3,
12 | "LogUploadBegin": 4,
13 | "LogUploadData": 5,
14 | "LogUploadComplete": 6,
15 |
16 | // Value-to-name mapping for convenience
17 | "1": "FrameEvents",
18 | "2": "DebugDump",
19 | "3": "LogMessage",
20 | "4": "LogUploadBegin",
21 | "5": "LogUploadData",
22 | "6": "LogUploadComplete",
23 | };
24 |
25 | module.exports = EStreamStatsMessage;
26 |
--------------------------------------------------------------------------------
/enums/EAuthTokenState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAuthTokenState = {
9 | "Invalid": 0,
10 | "New": 1,
11 | "Confirmed": 2,
12 | "Issued": 3,
13 | "Denied": 4,
14 | "LoggedOut": 5,
15 | "Consumed": 6,
16 | "Revoked": 99,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Invalid",
20 | "1": "New",
21 | "2": "Confirmed",
22 | "3": "Issued",
23 | "4": "Denied",
24 | "5": "LoggedOut",
25 | "6": "Consumed",
26 | "99": "Revoked",
27 | };
28 |
29 | module.exports = EAuthTokenState;
30 |
--------------------------------------------------------------------------------
/enums/EPublishedFileInappropriateResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPublishedFileInappropriateResult = {
9 | "NotScanned": 0,
10 | "VeryUnlikely": 1,
11 | "Unlikely": 30,
12 | "Possible": 50,
13 | "Likely": 75,
14 | "VeryLikely": 100,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "NotScanned",
18 | "1": "VeryUnlikely",
19 | "30": "Unlikely",
20 | "50": "Possible",
21 | "75": "Likely",
22 | "100": "VeryLikely",
23 | };
24 |
25 | module.exports = EPublishedFileInappropriateResult;
26 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/enums/EContentDescriptorID.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EContentDescriptorID = {
9 | "FrequentNudityOrSexualContent": 1,
10 | "FrequentViolenceOrGore": 2,
11 | "StrongSexualContent": 3,
12 | "UNUSED_4": 4,
13 | "AnyMatureContent": 5,
14 |
15 | // Value-to-name mapping for convenience
16 | "1": "FrequentNudityOrSexualContent",
17 | "2": "FrequentViolenceOrGore",
18 | "3": "StrongSexualContent",
19 | "4": "UNUSED_4",
20 | "5": "AnyMatureContent",
21 | };
22 |
23 | module.exports = EContentDescriptorID;
24 |
--------------------------------------------------------------------------------
/enums/EPersonaState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPersonaState = {
9 | "Offline": 0,
10 | "Online": 1,
11 | "Busy": 2,
12 | "Away": 3,
13 | "Snooze": 4,
14 | "LookingToTrade": 5,
15 | "LookingToPlay": 6,
16 | "Invisible": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Offline",
20 | "1": "Online",
21 | "2": "Busy",
22 | "3": "Away",
23 | "4": "Snooze",
24 | "5": "LookingToTrade",
25 | "6": "LookingToPlay",
26 | "7": "Invisible",
27 | };
28 |
29 | module.exports = EPersonaState;
30 |
--------------------------------------------------------------------------------
/protobufs/common_base.proto:
--------------------------------------------------------------------------------
1 | import "google/protobuf/descriptor.proto";
2 |
3 | extend .google.protobuf.FieldOptions {
4 | optional string description = 50000;
5 | }
6 |
7 | extend .google.protobuf.ServiceOptions {
8 | optional string service_description = 50000;
9 | }
10 |
11 | extend .google.protobuf.MethodOptions {
12 | optional string method_description = 50000;
13 | }
14 |
15 | extend .google.protobuf.EnumOptions {
16 | optional string enum_description = 50000;
17 | }
18 |
19 | extend .google.protobuf.EnumValueOptions {
20 | optional string enum_value_description = 50000;
21 | }
22 |
23 | message NoResponse {
24 | }
25 |
26 | message NotImplemented {
27 | }
28 |
--------------------------------------------------------------------------------
/enums/EUpdaterState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUpdaterState = {
9 | "Invalid": 0,
10 | "UpToDate": 2,
11 | "Checking": 3,
12 | "Available": 4,
13 | "Applying": 5,
14 | "ClientRestartPending": 6,
15 | "SystemRestartPending": 7,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "Invalid",
19 | "2": "UpToDate",
20 | "3": "Checking",
21 | "4": "Available",
22 | "5": "Applying",
23 | "6": "ClientRestartPending",
24 | "7": "SystemRestartPending",
25 | };
26 |
27 | module.exports = EUpdaterState;
28 |
--------------------------------------------------------------------------------
/enums/EChatRoomGroupRank.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomGroupRank = {
9 | "Default": 0,
10 | "Viewer": 10,
11 | "Guest": 15,
12 | "Member": 20,
13 | "Moderator": 30,
14 | "Officer": 40,
15 | "Owner": 50,
16 | "TestInvalid": 99,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Default",
20 | "10": "Viewer",
21 | "15": "Guest",
22 | "20": "Member",
23 | "30": "Moderator",
24 | "40": "Officer",
25 | "50": "Owner",
26 | "99": "TestInvalid",
27 | };
28 |
29 | module.exports = EChatRoomGroupRank;
30 |
--------------------------------------------------------------------------------
/enums/EClientSettingStore.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClientSettingStore = {
9 | "Invalid": 0,
10 | "ConfigStore_Install": 1,
11 | "ConfigStore_UserRoaming": 2,
12 | "ConfigStore_UserLocal": 3,
13 | "Registry": 4,
14 | "CustomFunc": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Invalid",
18 | "1": "ConfigStore_Install",
19 | "2": "ConfigStore_UserRoaming",
20 | "3": "ConfigStore_UserLocal",
21 | "4": "Registry",
22 | "5": "CustomFunc",
23 | };
24 |
25 | module.exports = EClientSettingStore;
26 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/enums/EChatMemberStateChange.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatMemberStateChange = {
9 | "Entered": 1,
10 | "Left": 2,
11 | "Disconnected": 4,
12 | "Kicked": 8,
13 | "Banned": 16,
14 | "VoiceSpeaking": 4096,
15 | "VoiceDoneSpeaking": 8192,
16 |
17 | // Value-to-name mapping for convenience
18 | "1": "Entered",
19 | "2": "Left",
20 | "4": "Disconnected",
21 | "8": "Kicked",
22 | "16": "Banned",
23 | "4096": "VoiceSpeaking",
24 | "8192": "VoiceDoneSpeaking",
25 | };
26 |
27 | module.exports = EChatMemberStateChange;
28 |
--------------------------------------------------------------------------------
/enums/EStreamControllerConfigMsg.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamControllerConfigMsg = {
9 | "RequestConfigsForApp": 0,
10 | "ConfigResponse": 1,
11 | "PersonalizationResponse": 2,
12 | "ActiveConfigChange": 3,
13 | "RequestActiveConfig": 4,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "RequestConfigsForApp",
17 | "1": "ConfigResponse",
18 | "2": "PersonalizationResponse",
19 | "3": "ActiveConfigChange",
20 | "4": "RequestActiveConfig",
21 | };
22 |
23 | module.exports = EStreamControllerConfigMsg;
24 |
--------------------------------------------------------------------------------
/enums/EPublishedFileRevision.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPublishedFileRevision = {
9 | "Default": 0,
10 | "Latest": 1,
11 | "ApprovedSnapshot": 2,
12 | "ApprovedSnapshot_China": 3,
13 | "RejectedSnapshot": 4,
14 | "RejectedSnapshot_China": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "Default",
18 | "1": "Latest",
19 | "2": "ApprovedSnapshot",
20 | "3": "ApprovedSnapshot_China",
21 | "4": "RejectedSnapshot",
22 | "5": "RejectedSnapshot_China",
23 | };
24 |
25 | module.exports = EPublishedFileRevision;
26 |
--------------------------------------------------------------------------------
/enums/ESteamNetworkingUDPMsgID.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamNetworkingUDPMsgID = {
9 | "ChallengeRequest": 32,
10 | "ChallengeReply": 33,
11 | "ConnectRequest": 34,
12 | "ConnectOK": 35,
13 | "ConnectionClosed": 36,
14 | "NoConnection": 37,
15 |
16 | // Value-to-name mapping for convenience
17 | "32": "ChallengeRequest",
18 | "33": "ChallengeReply",
19 | "34": "ConnectRequest",
20 | "35": "ConnectOK",
21 | "36": "ConnectionClosed",
22 | "37": "NoConnection",
23 | };
24 |
25 | module.exports = ESteamNetworkingUDPMsgID;
26 |
--------------------------------------------------------------------------------
/enums/EStreamFramerateLimiter.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamFramerateLimiter = {
9 | "SlowCapture": 1,
10 | "SlowConvert": 2,
11 | "SlowEncode": 4,
12 | "SlowNetwork": 8,
13 | "SlowDecode": 16,
14 | "SlowGame": 32,
15 | "SlowDisplay": 64,
16 |
17 | // Value-to-name mapping for convenience
18 | "1": "SlowCapture",
19 | "2": "SlowConvert",
20 | "4": "SlowEncode",
21 | "8": "SlowNetwork",
22 | "16": "SlowDecode",
23 | "32": "SlowGame",
24 | "64": "SlowDisplay",
25 | };
26 |
27 | module.exports = EStreamFramerateLimiter;
28 |
--------------------------------------------------------------------------------
/enums/ERegionCode.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERegionCode = {
9 | "USEast": 0,
10 | "USWest": 1,
11 | "SouthAmerica": 2,
12 | "Europe": 3,
13 | "Asia": 4,
14 | "Australia": 5,
15 | "MiddleEast": 6,
16 | "Africa": 7,
17 | "World": 255,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "USEast",
21 | "1": "USWest",
22 | "2": "SouthAmerica",
23 | "3": "Europe",
24 | "4": "Asia",
25 | "5": "Australia",
26 | "6": "MiddleEast",
27 | "7": "Africa",
28 | "255": "World",
29 | };
30 |
31 | module.exports = ERegionCode;
32 |
--------------------------------------------------------------------------------
/enums/ERemoteStoragePlatform.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERemoteStoragePlatform = {
9 | "None": 0,
10 | "Windows": 1,
11 | "OSX": 2,
12 | "PS3": 4,
13 | "Linux": 8,
14 | "Switch": 16,
15 | "Android": 32,
16 | "IPhoneOS": 64,
17 | "All": -1,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "None",
21 | "1": "Windows",
22 | "2": "OSX",
23 | "4": "PS3",
24 | "8": "Linux",
25 | "16": "Switch",
26 | "32": "Android",
27 | "64": "IPhoneOS",
28 | "-1": "All",
29 | };
30 |
31 | module.exports = ERemoteStoragePlatform;
32 |
--------------------------------------------------------------------------------
/enums/EUCMFilePrivacyState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Mon Sep 02 2024 23:48:07 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUCMFilePrivacyState = {
9 | "Invalid": -1,
10 | "Private": 2,
11 | "FriendsOnly": 4,
12 | "Public": 8,
13 | "Unlisted": 16,
14 |
15 | // Value-to-name mapping for convenience
16 | "-1": "Invalid",
17 | "2": "Private",
18 | "4": "FriendsOnly",
19 | "8": "Public",
20 | "16": "Unlisted",
21 | };
22 |
23 | module.exports = EUCMFilePrivacyState;
24 |
25 | module.exports.All = module.exports.Public | module.exports.FriendsOnly | module.exports.Private | module.exports.Unlisted;
26 |
--------------------------------------------------------------------------------
/enums/EClanRelationship.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClanRelationship = {
9 | "None": 0,
10 | "Blocked": 1,
11 | "Invited": 2,
12 | "Member": 3,
13 | "Kicked": 4,
14 | "KickAcknowledged": 5,
15 | "PendingApproval": 6,
16 | "RequestDenied": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "None",
20 | "1": "Blocked",
21 | "2": "Invited",
22 | "3": "Member",
23 | "4": "Kicked",
24 | "5": "KickAcknowledged",
25 | "6": "PendingApproval",
26 | "7": "RequestDenied",
27 | };
28 |
29 | module.exports = EClanRelationship;
30 |
--------------------------------------------------------------------------------
/enums/EPublishedFileForSaleStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPublishedFileForSaleStatus = {
9 | "NotForSale": 0,
10 | "PendingApproval": 1,
11 | "ApprovedForSale": 2,
12 | "RejectedForSale": 3,
13 | "NoLongerForSale": 4,
14 | "TentativeApproval": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "NotForSale",
18 | "1": "PendingApproval",
19 | "2": "ApprovedForSale",
20 | "3": "RejectedForSale",
21 | "4": "NoLongerForSale",
22 | "5": "TentativeApproval",
23 | };
24 |
25 | module.exports = EPublishedFileForSaleStatus;
26 |
--------------------------------------------------------------------------------
/enums/EUdpPacketType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUdpPacketType = {
9 | "Invalid": 0,
10 | "ChallengeReq": 1,
11 | "Challenge": 2,
12 | "Connect": 3,
13 | "Accept": 4,
14 | "Disconnect": 5,
15 | "Data": 6,
16 | "Datagram": 7,
17 | "Max": 8,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "Invalid",
21 | "1": "ChallengeReq",
22 | "2": "Challenge",
23 | "3": "Connect",
24 | "4": "Accept",
25 | "5": "Disconnect",
26 | "6": "Data",
27 | "7": "Datagram",
28 | "8": "Max",
29 | };
30 |
31 | module.exports = EUdpPacketType;
32 |
--------------------------------------------------------------------------------
/protobufs/generated/offline_ticket.json:
--------------------------------------------------------------------------------
1 | {
2 | "nested": {
3 | "Offline_Ticket": {
4 | "fields": {
5 | "encrypted_ticket": {
6 | "type": "bytes",
7 | "id": 1
8 | },
9 | "signature": {
10 | "type": "bytes",
11 | "id": 2
12 | },
13 | "kdf1": {
14 | "type": "int32",
15 | "id": 3
16 | },
17 | "salt1": {
18 | "type": "bytes",
19 | "id": 4
20 | },
21 | "kdf2": {
22 | "type": "int32",
23 | "id": 5
24 | },
25 | "salt2": {
26 | "type": "bytes",
27 | "id": 6
28 | }
29 | }
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | ## Is your feature request related to a problem? Please describe.
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | ## Describe the solution you'd like
14 | A clear and concise description of what you want to happen.
15 |
16 | ## Describe alternatives you've considered
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | ## Additional context
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/enums/EActivationCodeClass.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EActivationCodeClass = {
9 | "WonCDKey": 0,
10 | "ValveCDKey": 1,
11 | "Doom3CDKey": 2,
12 | "DBLookup": 3,
13 | "Steam2010Key": 4,
14 | "Max": 5,
15 | "Test": 2147483647,
16 | "Invalid": 4294967295,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "WonCDKey",
20 | "1": "ValveCDKey",
21 | "2": "Doom3CDKey",
22 | "3": "DBLookup",
23 | "4": "Steam2010Key",
24 | "5": "Max",
25 | "2147483647": "Test",
26 | "4294967295": "Invalid",
27 | };
28 |
29 | module.exports = EActivationCodeClass;
30 |
--------------------------------------------------------------------------------
/enums/EDRMBlobDownloadType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EDRMBlobDownloadType = {
9 | "Error": 0,
10 | "File": 1,
11 | "Parts": 2,
12 | "Compressed": 4,
13 | "AllMask": 7,
14 | "IsJob": 8,
15 | "HighPriority": 16,
16 | "AddTimestamp": 32,
17 | "LowPriority": 64,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "Error",
21 | "1": "File",
22 | "2": "Parts",
23 | "4": "Compressed",
24 | "7": "AllMask",
25 | "8": "IsJob",
26 | "16": "HighPriority",
27 | "32": "AddTimestamp",
28 | "64": "LowPriority",
29 | };
30 |
31 | module.exports = EDRMBlobDownloadType;
32 |
--------------------------------------------------------------------------------
/enums/EMarketingMessageFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMarketingMessageFlags = {
9 | "None": 0,
10 | "HighPriority": 1,
11 | "PlatformWindows": 2,
12 | "PlatformMac": 4,
13 | "PlatformLinux": 8,
14 |
15 | // Value-to-name mapping for convenience
16 | "0": "None",
17 | "1": "HighPriority",
18 | "2": "PlatformWindows",
19 | "4": "PlatformMac",
20 | "8": "PlatformLinux",
21 | };
22 |
23 | module.exports = EMarketingMessageFlags;
24 |
25 | module.exports.PlatformRestrictions = module.exports.PlatformWindows | module.exports.PlatformMac | module.exports.PlatformLinux;
26 |
--------------------------------------------------------------------------------
/enums/EWorkshopEnumerationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EWorkshopEnumerationType = {
9 | "RankedByVote": 0,
10 | "Recent": 1,
11 | "Trending": 2,
12 | "FavoriteOfFriends": 3,
13 | "VotedByFriends": 4,
14 | "ContentByFriends": 5,
15 | "RecentFromFollowedUsers": 6,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "RankedByVote",
19 | "1": "Recent",
20 | "2": "Trending",
21 | "3": "FavoriteOfFriends",
22 | "4": "VotedByFriends",
23 | "5": "ContentByFriends",
24 | "6": "RecentFromFollowedUsers",
25 | };
26 |
27 | module.exports = EWorkshopEnumerationType;
28 |
--------------------------------------------------------------------------------
/enums/EAuthTokenRevokeAction.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAuthTokenRevokeAction = {
9 | "Logout": 0,
10 | "Permanent": 1,
11 | "Replaced": 2,
12 | "Support": 3,
13 | "Consume": 4,
14 | "NonRememberedLogout": 5,
15 | "NonRememberedPermanent": 6,
16 | "Automatic": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Logout",
20 | "1": "Permanent",
21 | "2": "Replaced",
22 | "3": "Support",
23 | "4": "Consume",
24 | "5": "NonRememberedLogout",
25 | "6": "NonRememberedPermanent",
26 | "7": "Automatic",
27 | };
28 |
29 | module.exports = EAuthTokenRevokeAction;
30 |
--------------------------------------------------------------------------------
/enums/EMarketingMessageAssociationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:13:56 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMarketingMessageAssociationType = {
9 | "NoAssociation": 0,
10 | "AppAssociation": 1,
11 | "SubscriptionAssociation": 2,
12 | "PublisherAssociation": 3,
13 | "GenreAssociation": 4,
14 | "BundleAssociation": 5,
15 |
16 | // Value-to-name mapping for convenience
17 | "0": "NoAssociation",
18 | "1": "AppAssociation",
19 | "2": "SubscriptionAssociation",
20 | "3": "PublisherAssociation",
21 | "4": "GenreAssociation",
22 | "5": "BundleAssociation",
23 | };
24 |
25 | module.exports = EMarketingMessageAssociationType;
26 |
--------------------------------------------------------------------------------
/enums/EMsgClanAccountFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMsgClanAccountFlags = {
9 | "k_EMsgClanAccountFlagPublic": 1,
10 | "k_EMsgClanAccountFlagLarge": 2,
11 | "k_EMsgClanAccountFlagLocked": 4,
12 | "k_EMsgClanAccountFlagDisabled": 8,
13 | "k_EMsgClanAccountFlagOGG": 16,
14 |
15 | // Value-to-name mapping for convenience
16 | "1": "k_EMsgClanAccountFlagPublic",
17 | "2": "k_EMsgClanAccountFlagLarge",
18 | "4": "k_EMsgClanAccountFlagLocked",
19 | "8": "k_EMsgClanAccountFlagDisabled",
20 | "16": "k_EMsgClanAccountFlagOGG",
21 | };
22 |
23 | module.exports = EMsgClanAccountFlags;
24 |
--------------------------------------------------------------------------------
/enums/EAuthSessionGuardType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAuthSessionGuardType = {
9 | "Unknown": 0,
10 | "None": 1,
11 | "EmailCode": 2,
12 | "DeviceCode": 3,
13 | "DeviceConfirmation": 4,
14 | "EmailConfirmation": 5,
15 | "MachineToken": 6,
16 | "LegacyMachineAuth": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Unknown",
20 | "1": "None",
21 | "2": "EmailCode",
22 | "3": "DeviceCode",
23 | "4": "DeviceConfirmation",
24 | "5": "EmailConfirmation",
25 | "6": "MachineToken",
26 | "7": "LegacyMachineAuth",
27 | };
28 |
29 | module.exports = EAuthSessionGuardType;
30 |
--------------------------------------------------------------------------------
/enums/EGameSearchResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EGameSearchResult = {
9 | "Invalid": 0,
10 | "SearchInProgress": 1,
11 | "SearchFailedNoHosts": 2,
12 | "SearchGameFound": 3,
13 | "SearchCompleteAccepted": 4,
14 | "SearchCompleteDeclined": 5,
15 | "SearchCanceled": 6,
16 |
17 | // Value-to-name mapping for convenience
18 | "0": "Invalid",
19 | "1": "SearchInProgress",
20 | "2": "SearchFailedNoHosts",
21 | "3": "SearchGameFound",
22 | "4": "SearchCompleteAccepted",
23 | "5": "SearchCompleteDeclined",
24 | "6": "SearchCanceled",
25 | };
26 |
27 | module.exports = EGameSearchResult;
28 |
--------------------------------------------------------------------------------
/enums/ELauncherType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Mon Sep 02 2024 23:48:07 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELauncherType = {
9 | "Default": 0,
10 | "PerfectWorld": 1,
11 | "Nexon": 2,
12 | "CmdLine": 3,
13 | "CSGO": 4,
14 | "ClientUI": 5,
15 | "Headless": 6,
16 | "SteamChina": 7,
17 | "SingleApp": 8,
18 | "GameServer": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Default",
22 | "1": "PerfectWorld",
23 | "2": "Nexon",
24 | "3": "CmdLine",
25 | "4": "CSGO",
26 | "5": "ClientUI",
27 | "6": "Headless",
28 | "7": "SteamChina",
29 | "8": "SingleApp",
30 | "9": "GameServer",
31 | };
32 |
33 | module.exports = ELauncherType;
34 |
--------------------------------------------------------------------------------
/enums/EContentDownloadSourceType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EContentDownloadSourceType = {
9 | "Invalid": 0,
10 | "CS": 1,
11 | "CDN": 2,
12 | "LCS": 3,
13 | "ProxyCache": 4,
14 | "LANPeer": 5,
15 | "SLS": 6,
16 | "SteamCache": 7,
17 | "OpenCache": 8,
18 | "LANCache": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "CS",
23 | "2": "CDN",
24 | "3": "LCS",
25 | "4": "ProxyCache",
26 | "5": "LANPeer",
27 | "6": "SLS",
28 | "7": "SteamCache",
29 | "8": "OpenCache",
30 | "9": "LANCache",
31 | };
32 |
33 | module.exports = EContentDownloadSourceType;
34 |
--------------------------------------------------------------------------------
/enums/ERemoteDeviceAuthorizationResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERemoteDeviceAuthorizationResult = {
9 | "Success": 0,
10 | "Denied": 1,
11 | "NotLoggedIn": 2,
12 | "Offline": 3,
13 | "Busy": 4,
14 | "InProgress": 5,
15 | "TimedOut": 6,
16 | "Failed": 7,
17 | "Canceled": 8,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "Success",
21 | "1": "Denied",
22 | "2": "NotLoggedIn",
23 | "3": "Offline",
24 | "4": "Busy",
25 | "5": "InProgress",
26 | "6": "TimedOut",
27 | "7": "Failed",
28 | "8": "Canceled",
29 | };
30 |
31 | module.exports = ERemoteDeviceAuthorizationResult;
32 |
--------------------------------------------------------------------------------
/enums/ESteamTVContentTemplate.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamTVContentTemplate = {
9 | "Invalid": 0,
10 | "Takeover": 1,
11 | "SingleGame": 2,
12 | "GameList": 3,
13 | "QuickExplore": 4,
14 | "ConveyorBelt": 5,
15 | "WatchParty": 6,
16 | "Developer": 7,
17 | "Event": 8,
18 |
19 | // Value-to-name mapping for convenience
20 | "0": "Invalid",
21 | "1": "Takeover",
22 | "2": "SingleGame",
23 | "3": "GameList",
24 | "4": "QuickExplore",
25 | "5": "ConveyorBelt",
26 | "6": "WatchParty",
27 | "7": "Developer",
28 | "8": "Event",
29 | };
30 |
31 | module.exports = ESteamTVContentTemplate;
32 |
--------------------------------------------------------------------------------
/enums/EAppUsageEvent.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppUsageEvent = {
9 | "GameLaunch": 1,
10 | "GameLaunchTrial": 2,
11 | "Media": 3,
12 | "PreloadStart": 4,
13 | "PreloadFinish": 5,
14 | "MarketingMessageView": 6,
15 | "InGameAdViewed": 7,
16 | "GameLaunchFreeWeekend": 8,
17 |
18 | // Value-to-name mapping for convenience
19 | "1": "GameLaunch",
20 | "2": "GameLaunchTrial",
21 | "3": "Media",
22 | "4": "PreloadStart",
23 | "5": "PreloadFinish",
24 | "6": "MarketingMessageView",
25 | "7": "InGameAdViewed",
26 | "8": "GameLaunchFreeWeekend",
27 | };
28 |
29 | module.exports = EAppUsageEvent;
30 |
--------------------------------------------------------------------------------
/enums/ESystemAudioChannel.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemAudioChannel = {
9 | "Invalid": 0,
10 | "Aggregated": 1,
11 | "FrontLeft": 2,
12 | "FrontRight": 3,
13 | "LFE": 4,
14 | "BackLeft": 5,
15 | "BackRight": 6,
16 | "FrontCenter": 7,
17 | "Unknown": 8,
18 | "Mono": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "Aggregated",
23 | "2": "FrontLeft",
24 | "3": "FrontRight",
25 | "4": "LFE",
26 | "5": "BackLeft",
27 | "6": "BackRight",
28 | "7": "FrontCenter",
29 | "8": "Unknown",
30 | "9": "Mono",
31 | };
32 |
33 | module.exports = ESystemAudioChannel;
34 |
--------------------------------------------------------------------------------
/enums/EStreamFrameResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamFrameResult = {
9 | "Pending": 0,
10 | "Displayed": 1,
11 | "DroppedNetworkSlow": 2,
12 | "DroppedNetworkLost": 3,
13 | "DroppedDecodeSlow": 4,
14 | "DroppedDecodeCorrupt": 5,
15 | "DroppedLate": 6,
16 | "DroppedReset": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Pending",
20 | "1": "Displayed",
21 | "2": "DroppedNetworkSlow",
22 | "3": "DroppedNetworkLost",
23 | "4": "DroppedDecodeSlow",
24 | "5": "DroppedDecodeCorrupt",
25 | "6": "DroppedLate",
26 | "7": "DroppedReset",
27 | };
28 |
29 | module.exports = EStreamFrameResult;
30 |
--------------------------------------------------------------------------------
/protobufs/generated/encrypted_app_ticket.json:
--------------------------------------------------------------------------------
1 | {
2 | "options": {
3 | "optimize_for": "SPEED",
4 | "cc_generic_services": false
5 | },
6 | "nested": {
7 | "EncryptedAppTicket": {
8 | "fields": {
9 | "ticket_version_no": {
10 | "type": "uint32",
11 | "id": 1
12 | },
13 | "crc_encryptedticket": {
14 | "type": "uint32",
15 | "id": 2
16 | },
17 | "cb_encrypteduserdata": {
18 | "type": "uint32",
19 | "id": 3
20 | },
21 | "cb_encrypted_appownershipticket": {
22 | "type": "uint32",
23 | "id": 4
24 | },
25 | "encrypted_ticket": {
26 | "type": "bytes",
27 | "id": 5
28 | }
29 | }
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/enums/EChatRoomMemberStateChange.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomMemberStateChange = {
9 | "Invalid": 0,
10 | "Joined": 1,
11 | "Parted": 2,
12 | "Kicked": 3,
13 | "Invited": 4,
14 | "RankChanged": 7,
15 | "InviteDismissed": 8,
16 | "Muted": 9,
17 | "Banned": 10,
18 | "RolesChanged": 12,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "Joined",
23 | "2": "Parted",
24 | "3": "Kicked",
25 | "4": "Invited",
26 | "7": "RankChanged",
27 | "8": "InviteDismissed",
28 | "9": "Muted",
29 | "10": "Banned",
30 | "12": "RolesChanged",
31 | };
32 |
33 | module.exports = EChatRoomMemberStateChange;
34 |
--------------------------------------------------------------------------------
/enums/EMarketingMessageType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:13:56 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EMarketingMessageType = {
9 | "Invalid": 0,
10 | "NowAvailable": 1,
11 | "WeekendDeal": 2,
12 | "PrePurchase": 3,
13 | "PlayNow": 4,
14 | "PreloadNow": 5,
15 | "General": 6,
16 | "DemoQuit": 7,
17 | "Gifting": 8,
18 | "EJsKorner": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "NowAvailable",
23 | "2": "WeekendDeal",
24 | "3": "PrePurchase",
25 | "4": "PlayNow",
26 | "5": "PreloadNow",
27 | "6": "General",
28 | "7": "DemoQuit",
29 | "8": "Gifting",
30 | "9": "EJsKorner",
31 | };
32 |
33 | module.exports = EMarketingMessageType;
34 |
--------------------------------------------------------------------------------
/protobufs/steammessages_workshop.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | message CWorkshop_GetEULAStatus_Request {
7 | optional uint32 appid = 1;
8 | }
9 |
10 | message CWorkshop_GetEULAStatus_Response {
11 | optional uint32 version = 1;
12 | optional uint32 timestamp_action = 2;
13 | optional bool accepted = 3;
14 | optional bool needs_action = 4;
15 | }
16 |
17 | service Workshop {
18 | option (service_description) = "A service to access published file data";
19 |
20 | rpc GetEULAStatus (.CWorkshop_GetEULAStatus_Request) returns (.CWorkshop_GetEULAStatus_Response) {
21 | option (method_description) = "Retrieve the status of the user's EULA acceptance.";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/enums/EAccountType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAccountType = {
9 | "Invalid": 0,
10 | "Individual": 1,
11 | "Multiseat": 2,
12 | "GameServer": 3,
13 | "AnonGameServer": 4,
14 | "Pending": 5,
15 | "ContentServer": 6,
16 | "Clan": 7,
17 | "Chat": 8,
18 | "ConsoleUser": 9,
19 | "AnonUser": 10,
20 |
21 | // Value-to-name mapping for convenience
22 | "0": "Invalid",
23 | "1": "Individual",
24 | "2": "Multiseat",
25 | "3": "GameServer",
26 | "4": "AnonGameServer",
27 | "5": "Pending",
28 | "6": "ContentServer",
29 | "7": "Clan",
30 | "8": "Chat",
31 | "9": "ConsoleUser",
32 | "10": "AnonUser",
33 | };
34 |
35 | module.exports = EAccountType;
36 |
--------------------------------------------------------------------------------
/enums/EDepotFileFlag.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EDepotFileFlag = {
9 | "UserConfig": 1,
10 | "VersionedUserConfig": 2,
11 | "Encrypted": 4,
12 | "ReadOnly": 8,
13 | "Hidden": 16,
14 | "Executable": 32,
15 | "Directory": 64,
16 | "CustomExecutable": 128,
17 | "InstallScript": 256,
18 | "Symlink": 512,
19 |
20 | // Value-to-name mapping for convenience
21 | "1": "UserConfig",
22 | "2": "VersionedUserConfig",
23 | "4": "Encrypted",
24 | "8": "ReadOnly",
25 | "16": "Hidden",
26 | "32": "Executable",
27 | "64": "Directory",
28 | "128": "CustomExecutable",
29 | "256": "InstallScript",
30 | "512": "Symlink",
31 | };
32 |
33 | module.exports = EDepotFileFlag;
34 |
--------------------------------------------------------------------------------
/enums/EFriendRelationship.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EFriendRelationship = {
9 | "None": 0,
10 | "Blocked": 1,
11 | "RequestRecipient": 2,
12 | "Friend": 3,
13 | "RequestInitiator": 4,
14 | "Ignored": 5,
15 | "IgnoredFriend": 6,
16 | "SuggestedFriend": 7, // removed "was used by the original implementation of the facebook linking feature; but now unused."
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "None",
20 | "1": "Blocked",
21 | "2": "RequestRecipient",
22 | "3": "Friend",
23 | "4": "RequestInitiator",
24 | "5": "Ignored",
25 | "6": "IgnoredFriend",
26 | "7": "SuggestedFriend",
27 | };
28 |
29 | module.exports = EFriendRelationship;
30 |
--------------------------------------------------------------------------------
/enums/EAppCloudStatus.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppCloudStatus = {
9 | "Invalid": 0,
10 | "Disabled": 1,
11 | "Unknown": 2,
12 | "Synchronized": 3,
13 | "Checking": 4,
14 | "OutOfSync": 5,
15 | "Uploading": 6,
16 | "Downloading": 7,
17 | "SyncFailed": 8,
18 | "Conflict": 9,
19 | "PendingElsewhere": 10,
20 |
21 | // Value-to-name mapping for convenience
22 | "0": "Invalid",
23 | "1": "Disabled",
24 | "2": "Unknown",
25 | "3": "Synchronized",
26 | "4": "Checking",
27 | "5": "OutOfSync",
28 | "6": "Uploading",
29 | "7": "Downloading",
30 | "8": "SyncFailed",
31 | "9": "Conflict",
32 | "10": "PendingElsewhere",
33 | };
34 |
35 | module.exports = EAppCloudStatus;
36 |
--------------------------------------------------------------------------------
/enums/EChatRoomServerMsg.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomServerMsg = {
9 | "Invalid": 0,
10 | "RenameChatRoom": 1,
11 | "Joined": 2,
12 | "Parted": 3,
13 | "Kicked": 4,
14 | "Invited": 5,
15 | "InviteDismissed": 8,
16 | "ChatRoomTaglineChanged": 9,
17 | "ChatRoomAvatarChanged": 10,
18 | "AppCustom": 11,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "RenameChatRoom",
23 | "2": "Joined",
24 | "3": "Parted",
25 | "4": "Kicked",
26 | "5": "Invited",
27 | "8": "InviteDismissed",
28 | "9": "ChatRoomTaglineChanged",
29 | "10": "ChatRoomAvatarChanged",
30 | "11": "AppCustom",
31 | };
32 |
33 | module.exports = EChatRoomServerMsg;
34 |
--------------------------------------------------------------------------------
/enums/EUserReviewScore.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EUserReviewScore = {
9 | "None": 0,
10 | "OverwhelminglyNegative": 1,
11 | "VeryNegative": 2,
12 | "Negative": 3,
13 | "MostlyNegative": 4,
14 | "Mixed": 5,
15 | "MostlyPositive": 6,
16 | "Positive": 7,
17 | "VeryPositive": 8,
18 | "OverwhelminglyPositive": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "None",
22 | "1": "OverwhelminglyNegative",
23 | "2": "VeryNegative",
24 | "3": "Negative",
25 | "4": "MostlyNegative",
26 | "5": "Mixed",
27 | "6": "MostlyPositive",
28 | "7": "Positive",
29 | "8": "VeryPositive",
30 | "9": "OverwhelminglyPositive",
31 | };
32 |
33 | module.exports = EUserReviewScore;
34 |
--------------------------------------------------------------------------------
/enums/ESteamReviewScore.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamReviewScore = {
9 | "None": 0,
10 | "OverwhelminglyNegative": 1,
11 | "VeryNegative": 2,
12 | "Negative": 3,
13 | "MostlyNegative": 4,
14 | "Mixed": 5,
15 | "MostlyPositive": 6,
16 | "Positive": 7,
17 | "VeryPositive": 8,
18 | "OverwhelminglyPositive": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "None",
22 | "1": "OverwhelminglyNegative",
23 | "2": "VeryNegative",
24 | "3": "Negative",
25 | "4": "MostlyNegative",
26 | "5": "Mixed",
27 | "6": "MostlyPositive",
28 | "7": "Positive",
29 | "8": "VeryPositive",
30 | "9": "OverwhelminglyPositive",
31 | };
32 |
33 | module.exports = ESteamReviewScore;
34 |
--------------------------------------------------------------------------------
/enums/EChatRoomServerMessage.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomServerMessage = {
9 | "Invalid": 0,
10 | "RenameChatRoom": 1,
11 | "Joined": 2,
12 | "Parted": 3,
13 | "Kicked": 4,
14 | "Invited": 5,
15 | "InviteDismissed": 8,
16 | "ChatRoomTaglineChanged": 9,
17 | "ChatRoomAvatarChanged": 10,
18 | "AppCustom": 11,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "Invalid",
22 | "1": "RenameChatRoom",
23 | "2": "Joined",
24 | "3": "Parted",
25 | "4": "Kicked",
26 | "5": "Invited",
27 | "8": "InviteDismissed",
28 | "9": "ChatRoomTaglineChanged",
29 | "10": "ChatRoomAvatarChanged",
30 | "11": "AppCustom",
31 | };
32 |
33 | module.exports = EChatRoomServerMessage;
34 |
--------------------------------------------------------------------------------
/enums/ELicenseType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELicenseType = {
9 | "NoLicense": 0,
10 | "SinglePurchase": 1,
11 | "SinglePurchaseLimitedUse": 2,
12 | "RecurringCharge": 3,
13 | "RecurringChargeLimitedUse": 4,
14 | "RecurringChargeLimitedUseWithOverages": 5,
15 | "RecurringOption": 6,
16 | "LimitedUseDelayedActivation": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "NoLicense",
20 | "1": "SinglePurchase",
21 | "2": "SinglePurchaseLimitedUse",
22 | "3": "RecurringCharge",
23 | "4": "RecurringChargeLimitedUse",
24 | "5": "RecurringChargeLimitedUseWithOverages",
25 | "6": "RecurringOption",
26 | "7": "LimitedUseDelayedActivation",
27 | };
28 |
29 | module.exports = ELicenseType;
30 |
--------------------------------------------------------------------------------
/enums/ETradeOfferState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ETradeOfferState = {
9 | "Invalid": 1,
10 | "Active": 2,
11 | "Accepted": 3,
12 | "Countered": 4,
13 | "Expired": 5,
14 | "Canceled": 6,
15 | "Declined": 7,
16 | "InvalidItems": 8,
17 | "CreatedNeedsConfirmation": 9,
18 | "CanceledBySecondFactor": 10,
19 | "InEscrow": 11,
20 |
21 | // Value-to-name mapping for convenience
22 | "1": "Invalid",
23 | "2": "Active",
24 | "3": "Accepted",
25 | "4": "Countered",
26 | "5": "Expired",
27 | "6": "Canceled",
28 | "7": "Declined",
29 | "8": "InvalidItems",
30 | "9": "CreatedNeedsConfirmation",
31 | "10": "CanceledBySecondFactor",
32 | "11": "InEscrow",
33 | };
34 |
35 | module.exports = ETradeOfferState;
36 |
--------------------------------------------------------------------------------
/enums/EBluetoothDeviceType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:35:51 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum EBluetoothDeviceType
6 | * @readonly
7 | */
8 | const EBluetoothDeviceType = {
9 | "Invalid": 0,
10 | "Unknown": 1,
11 | "Phone": 2,
12 | "Computer": 3,
13 | "Headset": 4,
14 | "Headphones": 5,
15 | "Speakers": 6,
16 | "OtherAudio": 7,
17 | "Mouse": 8,
18 | "Joystick": 9,
19 | "Gamepad": 10,
20 | "Keyboard": 11,
21 |
22 | // Value-to-name mapping for convenience
23 | "0": "Invalid",
24 | "1": "Unknown",
25 | "2": "Phone",
26 | "3": "Computer",
27 | "4": "Headset",
28 | "5": "Headphones",
29 | "6": "Speakers",
30 | "7": "OtherAudio",
31 | "8": "Mouse",
32 | "9": "Joystick",
33 | "10": "Gamepad",
34 | "11": "Keyboard",
35 | };
36 |
37 | module.exports = EBluetoothDeviceType;
38 |
--------------------------------------------------------------------------------
/enums/EChatActionResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatActionResult = {
9 | "Success": 1,
10 | "Error": 2,
11 | "NotPermitted": 3,
12 | "NotAllowedOnClanMember": 4,
13 | "NotAllowedOnBannedUser": 5,
14 | "NotAllowedOnChatOwner": 6,
15 | "NotAllowedOnSelf": 7,
16 | "ChatDoesntExist": 8,
17 | "ChatFull": 9,
18 | "VoiceSlotsFull": 10,
19 |
20 | // Value-to-name mapping for convenience
21 | "1": "Success",
22 | "2": "Error",
23 | "3": "NotPermitted",
24 | "4": "NotAllowedOnClanMember",
25 | "5": "NotAllowedOnBannedUser",
26 | "6": "NotAllowedOnChatOwner",
27 | "7": "NotAllowedOnSelf",
28 | "8": "ChatDoesntExist",
29 | "9": "ChatFull",
30 | "10": "VoiceSlotsFull",
31 | };
32 |
33 | module.exports = EChatActionResult;
34 |
--------------------------------------------------------------------------------
/enums/EStoreAppType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStoreAppType = {
9 | "Game": 0,
10 | "Demo": 1,
11 | "Mod": 2,
12 | "Movie": 3,
13 | "DLC": 4,
14 | "Guide": 5,
15 | "Software": 6,
16 | "Video": 7,
17 | "Series": 8,
18 | "Episode": 9,
19 | "Hardware": 10,
20 | "Music": 11,
21 | "Beta": 12,
22 | "Tool": 13,
23 | "Advertising": 14,
24 |
25 | // Value-to-name mapping for convenience
26 | "0": "Game",
27 | "1": "Demo",
28 | "2": "Mod",
29 | "3": "Movie",
30 | "4": "DLC",
31 | "5": "Guide",
32 | "6": "Software",
33 | "7": "Video",
34 | "8": "Series",
35 | "9": "Episode",
36 | "10": "Hardware",
37 | "11": "Music",
38 | "12": "Beta",
39 | "13": "Tool",
40 | "14": "Advertising",
41 | };
42 |
43 | module.exports = EStoreAppType;
44 |
--------------------------------------------------------------------------------
/enums/ESystemIMType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESystemIMType = {
9 | "RawText": 0,
10 | "InvalidCard": 1,
11 | "RecurringPurchaseFailed": 2,
12 | "CardWillExpire": 3,
13 | "SubscriptionExpired": 4,
14 | "GuestPassReceived": 5,
15 | "GuestPassGranted": 6,
16 | "GiftRevoked": 7,
17 | "SupportMessage": 8,
18 | "SupportMessageClearAlert": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "RawText",
22 | "1": "InvalidCard",
23 | "2": "RecurringPurchaseFailed",
24 | "3": "CardWillExpire",
25 | "4": "SubscriptionExpired",
26 | "5": "GuestPassReceived",
27 | "6": "GuestPassGranted",
28 | "7": "GiftRevoked",
29 | "8": "SupportMessage",
30 | "9": "SupportMessageClearAlert",
31 | };
32 |
33 | module.exports = ESystemIMType;
34 |
--------------------------------------------------------------------------------
/enums/EClanPermission.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClanPermission = {
9 | "Nobody": 0,
10 | "Owner": 1,
11 | "Officer": 2,
12 | "OwnerAndOfficer": 3,
13 | "Member": 4,
14 | "Moderator": 8,
15 | "OGGGameOwner": 16,
16 | "NonMember": 128,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "Nobody",
20 | "1": "Owner",
21 | "2": "Officer",
22 | "3": "OwnerAndOfficer",
23 | "4": "Member",
24 | "8": "Moderator",
25 | "16": "OGGGameOwner",
26 | "128": "NonMember",
27 | };
28 |
29 | module.exports = EClanPermission;
30 |
31 | module.exports.OwnerOfficerModerator = module.exports.Owner | module.exports.Officer | module.exports.Moderator;
32 | module.exports.AllMembers = module.exports.Owner | module.exports.Officer | module.exports.Moderator | module.exports.Member;
33 |
--------------------------------------------------------------------------------
/enums/EExternalAccountType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EExternalAccountType = {
9 | "k_EExternalNone": 0,
10 | "k_EExternalSteamAccount": 1,
11 | "k_EExternalGoogleAccount": 2,
12 | "k_EExternalFacebookAccount": 3,
13 | "k_EExternalTwitterAccount": 4,
14 | "k_EExternalTwitchAccount": 5,
15 | "k_EExternalYouTubeChannelAccount": 6,
16 | "k_EExternalFacebookPage": 7,
17 |
18 | // Value-to-name mapping for convenience
19 | "0": "k_EExternalNone",
20 | "1": "k_EExternalSteamAccount",
21 | "2": "k_EExternalGoogleAccount",
22 | "3": "k_EExternalFacebookAccount",
23 | "4": "k_EExternalTwitterAccount",
24 | "5": "k_EExternalTwitchAccount",
25 | "6": "k_EExternalYouTubeChannelAccount",
26 | "7": "k_EExternalFacebookPage",
27 | };
28 |
29 | module.exports = EExternalAccountType;
30 |
--------------------------------------------------------------------------------
/enums/EAuthSessionResponse.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAuthSessionResponse = {
9 | "OK": 0,
10 | "UserNotConnectedToSteam": 1,
11 | "NoLicenseOrExpired": 2,
12 | "VACBanned": 3,
13 | "LoggedInElseWhere": 4,
14 | "VACCheckTimedOut": 5,
15 | "AuthTicketCanceled": 6,
16 | "AuthTicketInvalidAlreadyUsed": 7,
17 | "AuthTicketInvalid": 8,
18 | "PublisherIssuedBan": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "OK",
22 | "1": "UserNotConnectedToSteam",
23 | "2": "NoLicenseOrExpired",
24 | "3": "VACBanned",
25 | "4": "LoggedInElseWhere",
26 | "5": "VACCheckTimedOut",
27 | "6": "AuthTicketCanceled",
28 | "7": "AuthTicketInvalidAlreadyUsed",
29 | "8": "AuthTicketInvalid",
30 | "9": "PublisherIssuedBan",
31 | };
32 |
33 | module.exports = EAuthSessionResponse;
34 |
--------------------------------------------------------------------------------
/enums/EChatRoomGroupAction.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomGroupAction = {
9 | "Default": 0,
10 | "CreateRenameDeleteChannel": 1,
11 | "Kick": 2,
12 | "Ban": 3,
13 | "Invite": 4,
14 | "ChangeTaglineAvatarName": 5,
15 | "Chat": 6,
16 | "ViewHistory": 7,
17 | "ChangeGroupRoles": 8,
18 | "ChangeUserRoles": 9,
19 | "MentionAll": 10,
20 | "SetWatchingBroadcast": 11,
21 |
22 | // Value-to-name mapping for convenience
23 | "0": "Default",
24 | "1": "CreateRenameDeleteChannel",
25 | "2": "Kick",
26 | "3": "Ban",
27 | "4": "Invite",
28 | "5": "ChangeTaglineAvatarName",
29 | "6": "Chat",
30 | "7": "ViewHistory",
31 | "8": "ChangeGroupRoles",
32 | "9": "ChangeUserRoles",
33 | "10": "MentionAll",
34 | "11": "SetWatchingBroadcast",
35 | };
36 |
37 | module.exports = EChatRoomGroupAction;
38 |
--------------------------------------------------------------------------------
/enums/ETouchGesture.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ETouchGesture = {
9 | "None": 0,
10 | "Touch": 1,
11 | "Tap": 2,
12 | "DoubleTap": 3,
13 | "ShortPress": 4,
14 | "LongPress": 5,
15 | "LongTap": 6,
16 | "TwoFingerTap": 7,
17 | "TapCancelled": 8,
18 | "PinchBegin": 9,
19 | "PinchUpdate": 10,
20 | "PinchEnd": 11,
21 | "FlingStart": 12,
22 | "FlingCancelled": 13,
23 |
24 | // Value-to-name mapping for convenience
25 | "0": "None",
26 | "1": "Touch",
27 | "2": "Tap",
28 | "3": "DoubleTap",
29 | "4": "ShortPress",
30 | "5": "LongPress",
31 | "6": "LongTap",
32 | "7": "TwoFingerTap",
33 | "8": "TapCancelled",
34 | "9": "PinchBegin",
35 | "10": "PinchUpdate",
36 | "11": "PinchEnd",
37 | "12": "FlingStart",
38 | "13": "FlingCancelled",
39 | };
40 |
41 | module.exports = ETouchGesture;
42 |
--------------------------------------------------------------------------------
/protobufs/steammessages_unified_base.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "google/protobuf/descriptor.proto";
2 |
3 | option optimize_for = SPEED;
4 | option cc_generic_services = false;
5 |
6 | extend .google.protobuf.FieldOptions {
7 | optional string description = 50000;
8 | }
9 |
10 | extend .google.protobuf.ServiceOptions {
11 | optional string service_description = 50000;
12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown];
13 | }
14 |
15 | extend .google.protobuf.MethodOptions {
16 | optional string method_description = 50000;
17 | }
18 |
19 | extend .google.protobuf.EnumOptions {
20 | optional string enum_description = 50000;
21 | }
22 |
23 | extend .google.protobuf.EnumValueOptions {
24 | optional string enum_value_description = 50000;
25 | }
26 |
27 | enum EProtoExecutionSite {
28 | k_EProtoExecutionSiteUnknown = 0;
29 | k_EProtoExecutionSiteSteamClient = 2;
30 | }
31 |
32 | message NoResponse {
33 | }
34 |
--------------------------------------------------------------------------------
/enums/EVoiceCallState.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EVoiceCallState = {
9 | "None": 0,
10 | "ScheduledInitiate": 1,
11 | "RequestedMicAccess": 2,
12 | "LocalMicOnly": 3,
13 | "CreatePeerConnection": 4,
14 | "InitatedWebRTCSession": 5,
15 | "WebRTCConnectedWaitingOnIceConnected": 6,
16 | "RequestedPermission": 7,
17 | "NotifyingVoiceChatOfWebRTCSession": 8,
18 | "Connected": 9,
19 |
20 | // Value-to-name mapping for convenience
21 | "0": "None",
22 | "1": "ScheduledInitiate",
23 | "2": "RequestedMicAccess",
24 | "3": "LocalMicOnly",
25 | "4": "CreatePeerConnection",
26 | "5": "InitatedWebRTCSession",
27 | "6": "WebRTCConnectedWaitingOnIceConnected",
28 | "7": "RequestedPermission",
29 | "8": "NotifyingVoiceChatOfWebRTCSession",
30 | "9": "Connected",
31 | };
32 |
33 | module.exports = EVoiceCallState;
34 |
--------------------------------------------------------------------------------
/enums/EFriendFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EFriendFlags = {
9 | "None": 0,
10 | "Blocked": 1,
11 | "FriendshipRequested": 2,
12 | "Immediate": 4,
13 | "ClanMember": 8,
14 | "OnGameServer": 16,
15 | "RequestingFriendship": 128,
16 | "RequestingInfo": 256,
17 | "Ignored": 512,
18 | "IgnoredFriend": 1024,
19 | "Suggested": 2048,
20 | "ChatMember": 4096,
21 | "FlagAll": 65535,
22 |
23 | // Value-to-name mapping for convenience
24 | "0": "None",
25 | "1": "Blocked",
26 | "2": "FriendshipRequested",
27 | "4": "Immediate",
28 | "8": "ClanMember",
29 | "16": "OnGameServer",
30 | "128": "RequestingFriendship",
31 | "256": "RequestingInfo",
32 | "512": "Ignored",
33 | "1024": "IgnoredFriend",
34 | "2048": "Suggested",
35 | "4096": "ChatMember",
36 | "65535": "FlagAll",
37 | };
38 |
39 | module.exports = EFriendFlags;
40 |
--------------------------------------------------------------------------------
/examples/licensesdumper.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SteamUser example - LicensesDumper
3 | *
4 | * Simply logs into Steam using account credentials and dumps your Steam licenses to file as JSON
5 | */
6 |
7 | const fs = require('fs');
8 | const SteamUser = require('../index.js'); // Replace this with `require('steam-user');` if used outside of the module directory
9 | const client = new SteamUser();
10 |
11 | client.logOn({
12 | accountName: 'username',
13 | password: 'password'
14 | });
15 |
16 | client.on('loggedOn', function() {
17 | console.log('Logged into Steam as ' + client.steamID.getSteam3RenderedID());
18 | });
19 |
20 | client.on('licenses', function(licenses) {
21 | console.log('Our account owns ' + licenses.length + ' license' + (licenses.length == 1 ? '' : 's') + '.');
22 | fs.writeFile('licenses.json', JSON.stringify(licenses, null, 4), 'utf8', function(error) {
23 | console.log(error || 'Successfully dumped our steam licenses to licenses.json');
24 | });
25 |
26 | client.logOff();
27 | });
28 |
--------------------------------------------------------------------------------
/components/08-machineauth.js:
--------------------------------------------------------------------------------
1 | const SteamUserWeb = require('./07-web.js');
2 |
3 | class SteamUserMachineAuth extends SteamUserWeb {
4 | _getMachineAuthFilename() {
5 | let accountName = (this._logOnDetails.account_name || this._logOnDetails._newAuthAccountName).toLowerCase();
6 | return `machineAuthToken.${accountName}.txt`;
7 | }
8 |
9 | _handleNewMachineToken(machineToken) {
10 | this._machineAuthToken = machineToken;
11 |
12 | this.emit('machineAuthToken', machineToken);
13 |
14 | // We should always have an account name available here since this is only possible when logging on using an
15 | // account name and password.
16 | if (!this._logOnDetails.account_name && !this._logOnDetails._newAuthAccountName) {
17 | this._warn('Received new machine token, but no account name is available. This should never happen. Please alert the developer.');
18 | return;
19 | }
20 |
21 | this._saveFile(this._getMachineAuthFilename(), Buffer.from(machineToken, 'utf8'));
22 | }
23 | }
24 |
25 | module.exports = SteamUserMachineAuth;
26 |
--------------------------------------------------------------------------------
/enums/EBroadcastWatchLocation.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EBroadcastWatchLocation = {
9 | "Invalid": 0,
10 | "SteamTV_Tab": 1,
11 | "SteamTV_WatchParty": 2,
12 | "Chat_Tab": 3,
13 | "Chat_WatchParty": 4,
14 | "CommunityPage": 5,
15 | "StoreAppPage": 6,
16 | "InGame": 7,
17 | "BigPicture": 8,
18 | "SalesPage": 9,
19 | "CuratorPage": 10,
20 | "DeveloperPage": 11,
21 | "Chat_Friends": 12,
22 | "SteamTV_Web": 13,
23 |
24 | // Value-to-name mapping for convenience
25 | "0": "Invalid",
26 | "1": "SteamTV_Tab",
27 | "2": "SteamTV_WatchParty",
28 | "3": "Chat_Tab",
29 | "4": "Chat_WatchParty",
30 | "5": "CommunityPage",
31 | "6": "StoreAppPage",
32 | "7": "InGame",
33 | "8": "BigPicture",
34 | "9": "SalesPage",
35 | "10": "CuratorPage",
36 | "11": "DeveloperPage",
37 | "12": "Chat_Friends",
38 | "13": "SteamTV_Web",
39 | };
40 |
41 | module.exports = EBroadcastWatchLocation;
42 |
--------------------------------------------------------------------------------
/enums/EChatRoomEnterResponse.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatRoomEnterResponse = {
9 | "Success": 1,
10 | "DoesntExist": 2,
11 | "NotAllowed": 3,
12 | "Full": 4,
13 | "Error": 5,
14 | "Banned": 6,
15 | "Limited": 7,
16 | "ClanDisabled": 8,
17 | "CommunityBan": 9,
18 | "MemberBlockedYou": 10,
19 | "YouBlockedMember": 11,
20 | "NoRankingDataLobby": 12, // removed
21 | "NoRankingDataUser": 13, // removed
22 | "RankOutOfRange": 14, // removed
23 |
24 | // Value-to-name mapping for convenience
25 | "1": "Success",
26 | "2": "DoesntExist",
27 | "3": "NotAllowed",
28 | "4": "Full",
29 | "5": "Error",
30 | "6": "Banned",
31 | "7": "Limited",
32 | "8": "ClanDisabled",
33 | "9": "CommunityBan",
34 | "10": "MemberBlockedYou",
35 | "11": "YouBlockedMember",
36 | "12": "NoRankingDataLobby",
37 | "13": "NoRankingDataUser",
38 | "14": "RankOutOfRange",
39 | };
40 |
41 | module.exports = EChatRoomEnterResponse;
42 |
--------------------------------------------------------------------------------
/protobufs/steammessages_sitelicenseclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 |
3 | option optimize_for = SPEED;
4 | option cc_generic_services = false;
5 |
6 | message CMsgClientSiteInfo {
7 | optional uint64 site_id = 1;
8 | optional string site_name = 2;
9 | optional bool allow_cached_credentials = 3;
10 | }
11 |
12 | message CMsgClientSiteLicenseCheckout {
13 | optional uint32 appid = 1;
14 | }
15 |
16 | message CMsgClientSiteLicenseCheckoutResponse {
17 | optional int32 eresult = 1 [default = 2];
18 | }
19 |
20 | message CMsgClientSiteLicenseGetAvailableSeats {
21 | optional uint32 appid = 1;
22 | }
23 |
24 | message CMsgClientSiteLicenseGetAvailableSeatsResponse {
25 | optional int32 eresult = 1 [default = 2];
26 | optional uint32 seats = 2;
27 | }
28 |
29 | message CMsgClientSiteLicenseGetContentCacheInfo {
30 | }
31 |
32 | message CMsgClientSiteLicenseGetContentCacheInfoResponse {
33 | optional bool use_cache = 1;
34 | optional uint32 ipv4_address = 2;
35 | optional uint32 port_number = 3;
36 | optional uint32 p2p_group = 4;
37 | optional string ip_address = 5;
38 | }
39 |
--------------------------------------------------------------------------------
/enums/EStreamGamepadInputType.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @enum EStreamGamepadInputType
3 | */
4 | module.exports = {
5 | Invalid: 0,
6 | DPadUp: 1,
7 | DPadDown: 2,
8 | DPadLeft: 4,
9 | DPadRight: 8,
10 | Start: 16,
11 | Back: 32,
12 | LeftThumb: 64,
13 | RightThumb: 128,
14 | LeftShoulder: 256,
15 | RightShoulder: 512,
16 | Guide: 1024,
17 | A: 4096,
18 | B: 8192,
19 | X: 16384,
20 | Y: 32768,
21 | LeftThumbX: 65536,
22 | LeftThumbY: 131072,
23 | RightThumbX: 262144,
24 | RightThumbY: 524288,
25 | LeftTrigger: 1048576,
26 | RightTrigger: 2097152,
27 |
28 | // Value-to-name mapping for convenience
29 | 0: 'Invalid',
30 | 1: 'DPadUp',
31 | 2: 'DPadDown',
32 | 4: 'DPadLeft',
33 | 8: 'DPadRight',
34 | 16: 'Start',
35 | 32: 'Back',
36 | 64: 'LeftThumb',
37 | 128: 'RightThumb',
38 | 256: 'LeftShoulder',
39 | 512: 'RightShoulder',
40 | 1024: 'Guide',
41 | 4096: 'A',
42 | 8192: 'B',
43 | 16384: 'X',
44 | 32768: 'Y',
45 | 65536: 'LeftThumbX',
46 | 131072: 'LeftThumbY',
47 | 262144: 'RightThumbX',
48 | 524288: 'RightThumbY',
49 | 1048576: 'LeftTrigger',
50 | 2097152: 'RightTrigger',
51 | };
52 |
--------------------------------------------------------------------------------
/enums/EChatAction.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatAction = {
9 | "InviteChat": 1,
10 | "Kick": 2,
11 | "Ban": 3,
12 | "UnBan": 4,
13 | "StartVoiceSpeak": 5,
14 | "EndVoiceSpeak": 6,
15 | "LockChat": 7,
16 | "UnlockChat": 8,
17 | "CloseChat": 9,
18 | "SetJoinable": 10,
19 | "SetUnjoinable": 11,
20 | "SetOwner": 12,
21 | "SetInvisibleToFriends": 13,
22 | "SetVisibleToFriends": 14,
23 | "SetModerated": 15,
24 | "SetUnmoderated": 16,
25 |
26 | // Value-to-name mapping for convenience
27 | "1": "InviteChat",
28 | "2": "Kick",
29 | "3": "Ban",
30 | "4": "UnBan",
31 | "5": "StartVoiceSpeak",
32 | "6": "EndVoiceSpeak",
33 | "7": "LockChat",
34 | "8": "UnlockChat",
35 | "9": "CloseChat",
36 | "10": "SetJoinable",
37 | "11": "SetUnjoinable",
38 | "12": "SetOwner",
39 | "13": "SetInvisibleToFriends",
40 | "14": "SetVisibleToFriends",
41 | "15": "SetModerated",
42 | "16": "SetUnmoderated",
43 | };
44 |
45 | module.exports = EChatAction;
46 |
--------------------------------------------------------------------------------
/enums/ERemoteDeviceStreamingResult.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERemoteDeviceStreamingResult = {
9 | "Success": 0,
10 | "Unauthorized": 1,
11 | "ScreenLocked": 2,
12 | "Failed": 3,
13 | "Busy": 4,
14 | "InProgress": 5,
15 | "Canceled": 6,
16 | "DriversNotInstalled": 7,
17 | "Disabled": 8,
18 | "BroadcastingActive": 9,
19 | "VRActive": 10,
20 | "PINRequired": 11,
21 | "TransportUnavailable": 12,
22 | "Invisible": 13,
23 | "GameLaunchFailed": 14,
24 |
25 | // Value-to-name mapping for convenience
26 | "0": "Success",
27 | "1": "Unauthorized",
28 | "2": "ScreenLocked",
29 | "3": "Failed",
30 | "4": "Busy",
31 | "5": "InProgress",
32 | "6": "Canceled",
33 | "7": "DriversNotInstalled",
34 | "8": "Disabled",
35 | "9": "BroadcastingActive",
36 | "10": "VRActive",
37 | "11": "PINRequired",
38 | "12": "TransportUnavailable",
39 | "13": "Invisible",
40 | "14": "GameLaunchFailed",
41 | };
42 |
43 | module.exports = ERemoteDeviceStreamingResult;
44 |
--------------------------------------------------------------------------------
/enums/EStoreDiscoveryQueueType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:46:03 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStoreDiscoveryQueueType = {
9 | "New": 0,
10 | "ComingSoon": 1,
11 | "Recommended": 2,
12 | "EveryNewRelease": 3,
13 | "MLRecommender": 5,
14 | "WishlistOnSale": 6,
15 | "DLC": 7,
16 | "DLCOnSale": 8,
17 | "RecommendedComingSoon": 9,
18 | "RecommendedFree": 10,
19 | "RecommendedOnSale": 11,
20 | "RecommendedDemos": 12,
21 | "DLCNewReleases": 13,
22 | "DLCTopSellers": 14,
23 | "MAX": 15,
24 |
25 | // Value-to-name mapping for convenience
26 | "0": "New",
27 | "1": "ComingSoon",
28 | "2": "Recommended",
29 | "3": "EveryNewRelease",
30 | "5": "MLRecommender",
31 | "6": "WishlistOnSale",
32 | "7": "DLC",
33 | "8": "DLCOnSale",
34 | "9": "RecommendedComingSoon",
35 | "10": "RecommendedFree",
36 | "11": "RecommendedOnSale",
37 | "12": "RecommendedDemos",
38 | "13": "DLCNewReleases",
39 | "14": "DLCTopSellers",
40 | "15": "MAX",
41 | };
42 |
43 | module.exports = EStoreDiscoveryQueueType;
44 |
--------------------------------------------------------------------------------
/components/classes/CMAuthTransport.js:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line
2 | const {ApiRequest, ApiResponse} = require('steam-session');
3 |
4 | const EMsg = require('../../enums/EMsg.js');
5 |
6 | class CMAuthTransport {
7 | /**
8 | * @param {SteamUserMessages} steamUser
9 | */
10 | constructor(steamUser) {
11 | this._user = steamUser;
12 | }
13 |
14 | /**
15 | *
16 | * @param {ApiRequest} request
17 | * @returns {Promise}
18 | */
19 | sendRequest(request) {
20 | return new Promise((resolve) => {
21 | this._user._send({
22 | msg: this._user.steamID ? EMsg.ServiceMethodCallFromClient : EMsg.ServiceMethodCallFromClientNonAuthed,
23 | proto: {
24 | target_job_name: `${request.apiInterface}.${request.apiMethod}#${request.apiVersion}`,
25 | realm: 1
26 | }
27 | }, request.requestData, (body, hdr) => {
28 | resolve({
29 | result: hdr.proto.eresult,
30 | errorMessage: hdr.proto.error_message,
31 | responseData: body.toBuffer()
32 | });
33 | });
34 | });
35 | }
36 |
37 | close() {
38 | // do nothing
39 | }
40 | }
41 |
42 | module.exports = CMAuthTransport;
43 |
--------------------------------------------------------------------------------
/examples/databasedownloader.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SteamUser example - DatabaseDownloader
3 | *
4 | * Logs onto Steam anonymously and downloads app data for Team Fortress 2 and Counter-Strike: Global Offensive.
5 | */
6 |
7 | const SteamUser = require('../index.js'); // Replace this with `require('steam-user');` if used outside of the module directory
8 | const FS = require('fs');
9 |
10 | let client = new SteamUser();
11 | client.logOn(); // Log onto Steam anonymously
12 |
13 | client.on('loggedOn', async (details) => {
14 | console.log('Logged onto Steam as ' + client.steamID.steam3());
15 |
16 | console.log('Requesting appinfo for TF2 and CS:GO...');
17 | let result = await client.getProductInfo([440, 730], [], true); // Passing true as the third argument automatically requests access tokens, which are required for some apps
18 |
19 | console.log('Got app info, writing to files');
20 | console.log(result);
21 |
22 | for (let appid in result.apps) {
23 | FS.writeFileSync(appid + '.json', JSON.stringify(result.apps[appid].appinfo, null, '\t'));
24 | }
25 |
26 | console.log('Logging off of Steam');
27 | client.logOff();
28 | });
29 |
--------------------------------------------------------------------------------
/enums/EChatEntryType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatEntryType = {
9 | "Invalid": 0,
10 | "ChatMsg": 1,
11 | "Typing": 2,
12 | "InviteGame": 3,
13 | "Emote": 4, // removed "No longer supported by clients"
14 | "LobbyGameStart": 5, // removed "Listen for LobbyGameCreated_t callback instead"
15 | "LeftConversation": 6,
16 | "Entered": 7,
17 | "WasKicked": 8,
18 | "WasBanned": 9,
19 | "Disconnected": 10,
20 | "HistoricalChat": 11,
21 | "Reserved1": 12,
22 | "Reserved2": 13,
23 | "LinkBlocked": 14,
24 |
25 | // Value-to-name mapping for convenience
26 | "0": "Invalid",
27 | "1": "ChatMsg",
28 | "2": "Typing",
29 | "3": "InviteGame",
30 | "4": "Emote",
31 | "5": "LobbyGameStart",
32 | "6": "LeftConversation",
33 | "7": "Entered",
34 | "8": "WasKicked",
35 | "9": "WasBanned",
36 | "10": "Disconnected",
37 | "11": "HistoricalChat",
38 | "12": "Reserved1",
39 | "13": "Reserved2",
40 | "14": "LinkBlocked",
41 | };
42 |
43 | module.exports = EChatEntryType;
44 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Alex Corn
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/components/store.js:
--------------------------------------------------------------------------------
1 | const StdLib = require('@doctormckay/stdlib');
2 |
3 | const SteamUserPubFiles = require('./pubfiles.js');
4 |
5 | class SteamUserStore extends SteamUserPubFiles {
6 | /**
7 | * Get the localized names for given store tags.
8 | * @param {string} language - The full name of the language you're interested in, e.g. "english" or "spanish"
9 | * @param {int[]} tagIDs - The IDs of the tags you're interested in
10 | * @param {function} [callback]
11 | * @return {Promise}
12 | */
13 | getStoreTagNames(language, tagIDs, callback) {
14 | return StdLib.Promises.timeoutCallbackPromise(10000, ['tags'], callback, (resolve, reject) => {
15 | this._sendUnified('Store.GetLocalizedNameForTags#1', {language, tagids: tagIDs}, (body) => {
16 | if (body.tags.length == 0) {
17 | return reject(new Error('Unable to get tag data; is your language correct?'));
18 | }
19 |
20 | let tags = {};
21 | body.tags.forEach((tag) => {
22 | tags[tag.tagid] = {name: tag.name, englishName: tag.english_name};
23 | });
24 |
25 | resolve({tags});
26 | });
27 | });
28 | }
29 | }
30 |
31 | module.exports = SteamUserStore;
32 |
--------------------------------------------------------------------------------
/protobufs/steammessages_gamenetworking.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | message CGameNetworking_AllocateFakeIP_Request {
7 | optional uint32 app_id = 1;
8 | optional uint32 num_fake_ports = 2;
9 | }
10 |
11 | message CGameNetworking_AllocateFakeIP_Response {
12 | optional fixed32 fake_ip = 1;
13 | repeated uint32 fake_ports = 2;
14 | }
15 |
16 | message CGameNetworking_ReleaseFakeIP_Notification {
17 | optional uint32 app_id = 1;
18 | optional fixed32 fake_ip = 2;
19 | repeated uint32 fake_ports = 3;
20 | }
21 |
22 | service GameNetworking {
23 | option (service_description) = "Services that support P2P networking";
24 |
25 | rpc AllocateFakeIP (.CGameNetworking_AllocateFakeIP_Request) returns (.CGameNetworking_AllocateFakeIP_Response) {
26 | option (method_description) = "Client is asking to lease a FakeIP.";
27 | }
28 |
29 | rpc NotifyReleaseFakeIP (.CGameNetworking_ReleaseFakeIP_Notification) returns (.NoResponse) {
30 | option (method_description) = "Client informs server it is done with the FakeIP.";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/protobufs/steammessages_lobbymatchmaking.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | enum ELobbyStatus {
7 | k_ELobbyStatusInvalid = 0;
8 | k_ELobbyStatusExists = 1;
9 | k_ELobbyStatusDoesNotExist = 2;
10 | k_ELobbyStatusNotAMember = 3;
11 | }
12 |
13 | message LobbyMatchmakingLegacy_GetLobbyStatus_Request {
14 | optional uint32 app_id = 1;
15 | optional fixed64 steamid_lobby = 2;
16 | optional bool claim_ownership = 3;
17 | optional bool claim_membership = 4;
18 | optional uint32 version_num = 5;
19 | }
20 |
21 | message LobbyMatchmakingLegacy_GetLobbyStatus_Response {
22 | optional uint32 app_id = 1;
23 | optional fixed64 steamid_lobby = 2;
24 | optional .ELobbyStatus lobby_status = 3 [default = k_ELobbyStatusInvalid];
25 | }
26 |
27 | service LobbyMatchmakingLegacy {
28 | option (service_description) = "Lobby matchmaking legacy service";
29 |
30 | rpc GetLobbyStatus (.LobbyMatchmakingLegacy_GetLobbyStatus_Request) returns (.LobbyMatchmakingLegacy_GetLobbyStatus_Response) {
31 | option (method_description) = "GetLobbyStatus";
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/enums/EAppType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppType = {
9 | "Invalid": 0,
10 | "Game": 1,
11 | "Application": 2,
12 | "Tool": 4,
13 | "Demo": 8,
14 | "Deprected": 16,
15 | "DLC": 32,
16 | "Guide": 64,
17 | "Driver": 128,
18 | "Config": 256,
19 | "Hardware": 512,
20 | "Franchise": 1024,
21 | "Video": 2048,
22 | "Plugin": 4096,
23 | "Music": 8192,
24 | "Series": 16384,
25 | "Comic": 32768,
26 | "Beta": 65536,
27 | "Shortcut": 1073741824,
28 | "DepotOnly": -2147483648,
29 |
30 | // Value-to-name mapping for convenience
31 | "0": "Invalid",
32 | "1": "Game",
33 | "2": "Application",
34 | "4": "Tool",
35 | "8": "Demo",
36 | "16": "Deprected",
37 | "32": "DLC",
38 | "64": "Guide",
39 | "128": "Driver",
40 | "256": "Config",
41 | "512": "Hardware",
42 | "1024": "Franchise",
43 | "2048": "Video",
44 | "4096": "Plugin",
45 | "8192": "Music",
46 | "16384": "Series",
47 | "32768": "Comic",
48 | "65536": "Beta",
49 | "1073741824": "Shortcut",
50 | "-2147483648": "DepotOnly",
51 | };
52 |
53 | module.exports = EAppType;
54 |
--------------------------------------------------------------------------------
/enums/EDenyReason.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EDenyReason = {
9 | "InvalidVersion": 1,
10 | "Generic": 2,
11 | "NotLoggedOn": 3,
12 | "NoLicense": 4,
13 | "Cheater": 5,
14 | "LoggedInElseWhere": 6,
15 | "UnknownText": 7,
16 | "IncompatibleAnticheat": 8,
17 | "MemoryCorruption": 9,
18 | "IncompatibleSoftware": 10,
19 | "SteamConnectionLost": 11,
20 | "SteamConnectionError": 12,
21 | "SteamResponseTimedOut": 13,
22 | "SteamValidationStalled": 14,
23 | "SteamOwnerLeftGuestUser": 15,
24 |
25 | // Value-to-name mapping for convenience
26 | "1": "InvalidVersion",
27 | "2": "Generic",
28 | "3": "NotLoggedOn",
29 | "4": "NoLicense",
30 | "5": "Cheater",
31 | "6": "LoggedInElseWhere",
32 | "7": "UnknownText",
33 | "8": "IncompatibleAnticheat",
34 | "9": "MemoryCorruption",
35 | "10": "IncompatibleSoftware",
36 | "11": "SteamConnectionLost",
37 | "12": "SteamConnectionError",
38 | "13": "SteamResponseTimedOut",
39 | "14": "SteamValidationStalled",
40 | "15": "SteamOwnerLeftGuestUser",
41 | };
42 |
43 | module.exports = EDenyReason;
44 |
--------------------------------------------------------------------------------
/enums/EPersonaStateFlag.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EPersonaStateFlag = {
9 | "HasRichPresence": 1,
10 | "InJoinableGame": 2,
11 | "Golden": 4,
12 | "RemotePlayTogether": 8,
13 | "OnlineUsingWeb": 256, // removed "renamed to ClientTypeWeb"
14 | "ClientTypeWeb": 256,
15 | "OnlineUsingMobile": 512, // removed "renamed to ClientTypeMobile"
16 | "ClientTypeMobile": 512,
17 | "OnlineUsingBigPicture": 1024, // removed "renamed to ClientTypeTenfoot"
18 | "ClientTypeTenfoot": 1024,
19 | "OnlineUsingVR": 2048, // removed "renamed to ClientTypeVR"
20 | "ClientTypeVR": 2048,
21 | "LaunchTypeGamepad": 4096,
22 | "LaunchTypeCompatTool": 8192,
23 |
24 | // Value-to-name mapping for convenience
25 | "1": "HasRichPresence",
26 | "2": "InJoinableGame",
27 | "4": "Golden",
28 | "8": "RemotePlayTogether",
29 | "256": "ClientTypeWeb",
30 | "512": "ClientTypeMobile",
31 | "1024": "ClientTypeTenfoot",
32 | "2048": "ClientTypeVR",
33 | "4096": "LaunchTypeGamepad",
34 | "8192": "LaunchTypeCompatTool",
35 | };
36 |
37 | module.exports = EPersonaStateFlag;
38 |
--------------------------------------------------------------------------------
/examples/lib/collect_credentials.js:
--------------------------------------------------------------------------------
1 | const {createInterface} = require('readline');
2 |
3 | /**
4 | * @returns {Promise<{accountName: string, password: string}>}
5 | */
6 | module.exports = async function collectCredentials() {
7 | let accountName = await promptAsync('Account Name: ');
8 | let password = await promptAsync('Password: ', true);
9 | return {accountName, password};
10 | };
11 |
12 | /**
13 | *
14 | * @param {string} question
15 | * @param {boolean} [sensitiveInput=false]
16 | * @return Promise
17 | */
18 | function promptAsync(question, sensitiveInput) {
19 | return new Promise((resolve) => {
20 | let rl = createInterface({
21 | input: process.stdin,
22 | output: sensitiveInput ? null : process.stdout,
23 | terminal: true
24 | });
25 |
26 | if (sensitiveInput) {
27 | // We have to write the question manually if we didn't give readline an output stream
28 | process.stdout.write(`${question.trim()} [masked] `);
29 | }
30 |
31 | rl.question(question, (result) => {
32 | if (sensitiveInput) {
33 | // We have to manually print a newline
34 | process.stdout.write('\n');
35 | }
36 |
37 | rl.close();
38 | resolve(result);
39 | });
40 | });
41 | }
42 |
--------------------------------------------------------------------------------
/enums/EBillingType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EBillingType = {
9 | "NoCost": 0,
10 | "BillOnceOnly": 1,
11 | "BillMonthly": 2,
12 | "ProofOfPrepurchaseOnly": 3,
13 | "GuestPass": 4,
14 | "HardwarePromo": 5,
15 | "Gift": 6,
16 | "AutoGrant": 7,
17 | "OEMTicket": 8,
18 | "RecurringOption": 9,
19 | "BillOnceOrCDKey": 10,
20 | "Repurchaseable": 11,
21 | "FreeOnDemand": 12,
22 | "Rental": 13,
23 | "CommercialLicense": 14,
24 | "FreeCommercialLicense": 15,
25 | "NumBillingTypes": 16,
26 |
27 | // Value-to-name mapping for convenience
28 | "0": "NoCost",
29 | "1": "BillOnceOnly",
30 | "2": "BillMonthly",
31 | "3": "ProofOfPrepurchaseOnly",
32 | "4": "GuestPass",
33 | "5": "HardwarePromo",
34 | "6": "Gift",
35 | "7": "AutoGrant",
36 | "8": "OEMTicket",
37 | "9": "RecurringOption",
38 | "10": "BillOnceOrCDKey",
39 | "11": "Repurchaseable",
40 | "12": "FreeOnDemand",
41 | "13": "Rental",
42 | "14": "CommercialLicense",
43 | "15": "FreeCommercialLicense",
44 | "16": "NumBillingTypes",
45 | };
46 |
47 | module.exports = EBillingType;
48 |
--------------------------------------------------------------------------------
/enums/EClientPersonaStateFlag.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EClientPersonaStateFlag = {
9 | "Status": 1,
10 | "PlayerName": 2,
11 | "QueryPort": 4,
12 | "SourceID": 8,
13 | "Presence": 16,
14 | "Metadata": 32, // removed
15 | "LastSeen": 64,
16 | "ClanInfo": 128, // obsolete "renamed to UserClanRank"
17 | "UserClanRank": 128,
18 | "GameExtraInfo": 256,
19 | "GameDataBlob": 512,
20 | "ClanTag": 1024, // obsolete "renamed to ClanData"
21 | "ClanData": 1024,
22 | "Facebook": 2048,
23 | "RichPresence": 4096,
24 | "Broadcast": 8192,
25 | "Watching": 16384,
26 |
27 | // Value-to-name mapping for convenience
28 | "1": "Status",
29 | "2": "PlayerName",
30 | "4": "QueryPort",
31 | "8": "SourceID",
32 | "16": "Presence",
33 | "32": "Metadata",
34 | "64": "LastSeen",
35 | "128": "UserClanRank",
36 | "256": "GameExtraInfo",
37 | "512": "GameDataBlob",
38 | "1024": "ClanData",
39 | "2048": "Facebook",
40 | "4096": "RichPresence",
41 | "8192": "Broadcast",
42 | "16384": "Watching",
43 | };
44 |
45 | module.exports = EClientPersonaStateFlag;
46 |
--------------------------------------------------------------------------------
/protobufs/steammessages_clientlanp2p.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 |
3 | option optimize_for = SPEED;
4 | option cc_generic_services = false;
5 |
6 | message CMsgClientLANP2PRequestChunks {
7 | message ChunkKey {
8 | optional uint32 depot_id = 1;
9 | optional bytes sha = 2;
10 | }
11 |
12 | repeated .CMsgClientLANP2PRequestChunks.ChunkKey chunk_keys = 1;
13 | }
14 |
15 | message CMsgClientLANP2PRequestChunksResponse {
16 | message ChunkData {
17 | optional uint32 result = 1;
18 | optional uint32 depot_id = 2;
19 | optional bytes sha = 3;
20 | optional bytes chunk_data = 4;
21 | optional bool encrypted = 5;
22 | optional bool compressed = 6;
23 | }
24 |
25 | repeated .CMsgClientLANP2PRequestChunksResponse.ChunkData chunk_responses = 1;
26 | }
27 |
28 | message CMsgClientPeerChunkRequest {
29 | optional uint32 app_id = 1;
30 | optional uint32 depot_id = 2;
31 | optional bytes sha = 3;
32 | }
33 |
34 | message CMsgClientPeerChunkResponse {
35 | optional uint32 result = 1;
36 | optional uint32 app_id = 2;
37 | optional uint32 depot_id = 3;
38 | optional bytes sha = 4;
39 | optional bool encrypted = 5;
40 | optional bool compressed = 6;
41 | optional bytes chunk_data = 7;
42 | }
43 |
--------------------------------------------------------------------------------
/components/04-utility.js:
--------------------------------------------------------------------------------
1 | const CurrencyData = require('../resources/CurrencyData.js');
2 |
3 | const SteamUserMessages = require('./03-messages.js');
4 |
5 | class SteamUserUtility extends SteamUserMessages {
6 | /**
7 | * @param {number} amount
8 | * @param {ECurrencyCode} currency
9 | * @returns {string}
10 | */
11 | static formatCurrency(amount, currency) {
12 | let amountString = amount.toFixed(2);
13 |
14 | if (!CurrencyData[currency]) {
15 | return amountString;
16 | }
17 |
18 | let data = CurrencyData[currency];
19 |
20 | if (data.whole) {
21 | amountString = amountString.replace('.00', '');
22 | }
23 |
24 | if (data.commas) {
25 | amountString = amountString.replace('.', ',');
26 | }
27 |
28 | return (data.prepend || '') + amountString + (data.append || '');
29 | }
30 |
31 | /**
32 | * Same as emit() except the second argument (the first provided to the callback function) is a SteamID and will be appended to the event name with a hash.
33 | * @protected
34 | */
35 | _emitIdEvent() {
36 | this.emit.apply(this, arguments);
37 | arguments[0] += '#' + arguments[1].getSteamID64();
38 | this.emit.apply(this, arguments);
39 | }
40 | }
41 |
42 | module.exports = SteamUserUtility;
43 |
--------------------------------------------------------------------------------
/enums/ECommunityItemClass.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ECommunityItemClass = {
9 | "Invalid": 0,
10 | "Badge": 1,
11 | "GameCard": 2,
12 | "ProfileBackground": 3,
13 | "Emoticon": 4,
14 | "BoosterPack": 5,
15 | "Consumable": 6,
16 | "GameGoo": 7,
17 | "ProfileModifier": 8,
18 | "Scene": 9,
19 | "SalienItem": 10,
20 | "Sticker": 11,
21 | "ChatEffect": 12,
22 | "MiniProfileBackground": 13,
23 | "AvatarFrame": 14,
24 | "AnimatedAvatar": 15,
25 | "SteamDeckKeyboardSkin": 16,
26 | "SteamDeckStartupMovie": 17,
27 |
28 | // Value-to-name mapping for convenience
29 | "0": "Invalid",
30 | "1": "Badge",
31 | "2": "GameCard",
32 | "3": "ProfileBackground",
33 | "4": "Emoticon",
34 | "5": "BoosterPack",
35 | "6": "Consumable",
36 | "7": "GameGoo",
37 | "8": "ProfileModifier",
38 | "9": "Scene",
39 | "10": "SalienItem",
40 | "11": "Sticker",
41 | "12": "ChatEffect",
42 | "13": "MiniProfileBackground",
43 | "14": "AvatarFrame",
44 | "15": "AnimatedAvatar",
45 | "16": "SteamDeckKeyboardSkin",
46 | "17": "SteamDeckStartupMovie",
47 | };
48 |
49 | module.exports = ECommunityItemClass;
50 |
--------------------------------------------------------------------------------
/enums/ERemoteClientBroadcastMsg.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Sun Aug 28 2022 18:40:14 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ERemoteClientBroadcastMsg = {
9 | "Discovery": 0,
10 | "Status": 1,
11 | "Offline": 2,
12 | "AuthorizationRequest": 3,
13 | "AuthorizationResponse": 4,
14 | "StreamingRequest": 5,
15 | "StreamingResponse": 6,
16 | "ProofRequest": 7,
17 | "ProofResponse": 8,
18 | "AuthorizationCancelRequest": 9,
19 | "StreamingCancelRequest": 10,
20 | "ClientIDDeconflict": 11,
21 | "StreamTransportSignal": 12,
22 | "StreamingProgress": 13,
23 | "AuthorizationConfirmed": 14,
24 |
25 | // Value-to-name mapping for convenience
26 | "0": "Discovery",
27 | "1": "Status",
28 | "2": "Offline",
29 | "3": "AuthorizationRequest",
30 | "4": "AuthorizationResponse",
31 | "5": "StreamingRequest",
32 | "6": "StreamingResponse",
33 | "7": "ProofRequest",
34 | "8": "ProofResponse",
35 | "9": "AuthorizationCancelRequest",
36 | "10": "StreamingCancelRequest",
37 | "11": "ClientIDDeconflict",
38 | "12": "StreamTransportSignal",
39 | "13": "StreamingProgress",
40 | "14": "AuthorizationConfirmed",
41 | };
42 |
43 | module.exports = ERemoteClientBroadcastMsg;
44 |
--------------------------------------------------------------------------------
/enums/EStreamFrameEvent.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EStreamFrameEvent = {
9 | "InputEventStart": 0,
10 | "InputEventSend": 1,
11 | "InputEventRecv": 2,
12 | "InputEventQueued": 3,
13 | "InputEventHandled": 4,
14 | "Start": 5,
15 | "CaptureBegin": 6,
16 | "CaptureEnd": 7,
17 | "ConvertBegin": 8,
18 | "ConvertEnd": 9,
19 | "EncodeBegin": 10,
20 | "EncodeEnd": 11,
21 | "Send": 12,
22 | "Recv": 13,
23 | "DecodeBegin": 14,
24 | "DecodeEnd": 15,
25 | "UploadBegin": 16,
26 | "UploadEnd": 17,
27 | "Complete": 18,
28 |
29 | // Value-to-name mapping for convenience
30 | "0": "InputEventStart",
31 | "1": "InputEventSend",
32 | "2": "InputEventRecv",
33 | "3": "InputEventQueued",
34 | "4": "InputEventHandled",
35 | "5": "Start",
36 | "6": "CaptureBegin",
37 | "7": "CaptureEnd",
38 | "8": "ConvertBegin",
39 | "9": "ConvertEnd",
40 | "10": "EncodeBegin",
41 | "11": "EncodeEnd",
42 | "12": "Send",
43 | "13": "Recv",
44 | "14": "DecodeBegin",
45 | "15": "DecodeEnd",
46 | "16": "UploadBegin",
47 | "17": "UploadEnd",
48 | "18": "Complete",
49 | };
50 |
51 | module.exports = EStreamFrameEvent;
52 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | test.js
3 | test/
4 | resources/servers.json
5 | dev_data.json
6 | dev/
7 |
8 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
9 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
10 |
11 | # User-specific stuff:
12 | .idea/**/workspace.xml
13 | .idea/**/tasks.xml
14 | .idea/dictionaries
15 | .idea/httpRequests/
16 |
17 | # Sensitive or high-churn files:
18 | .idea/**/dataSources/
19 | .idea/**/dataSources.ids
20 | .idea/**/dataSources.local.xml
21 | .idea/**/sqlDataSources.xml
22 | .idea/**/dynamic.xml
23 | .idea/**/uiDesigner.xml
24 |
25 | # Gradle:
26 | .idea/**/gradle.xml
27 | .idea/**/libraries
28 |
29 | # CMake
30 | cmake-build-debug/
31 | cmake-build-release/
32 |
33 | # Mongo Explorer plugin:
34 | .idea/**/mongoSettings.xml
35 |
36 | ## File-based project format:
37 | *.iws
38 |
39 | ## Plugin-specific files:
40 |
41 | # IntelliJ
42 | out/
43 |
44 | # mpeltonen/sbt-idea plugin
45 | .idea_modules/
46 |
47 | # JIRA plugin
48 | atlassian-ide-plugin.xml
49 |
50 | # Cursive Clojure plugin
51 | .idea/replstate.xml
52 |
53 | # Crashlytics plugin (for Android Studio and IntelliJ)
54 | com_crashlytics_export_strings.xml
55 | crashlytics.properties
56 | crashlytics-build.properties
57 | fabric.properties
58 |
--------------------------------------------------------------------------------
/protobufs/steamnetworkingsockets_messages_certs.proto:
--------------------------------------------------------------------------------
1 | option optimize_for = SPEED;
2 | option cc_generic_services = false;
3 |
4 | message CMsgSteamNetworkingIdentityLegacyBinary {
5 | optional fixed64 steam_id = 16;
6 | optional string xbox_pairwise_id = 17;
7 | optional bytes generic_bytes = 2;
8 | optional string generic_string = 3;
9 | optional bytes ipv6_and_port = 4;
10 | }
11 |
12 | message CMsgSteamDatagramCertificate {
13 | enum EKeyType {
14 | INVALID = 0;
15 | ED25519 = 1;
16 | }
17 |
18 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID];
19 | optional bytes key_data = 2;
20 | optional fixed64 legacy_steam_id = 4;
21 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11;
22 | optional string identity_string = 12;
23 | repeated fixed32 gameserver_datacenter_ids = 5;
24 | optional fixed32 time_created = 8;
25 | optional fixed32 time_expiry = 9;
26 | repeated uint32 app_ids = 10;
27 | repeated string ip_addresses = 13;
28 | }
29 |
30 | message CMsgSteamDatagramCertificateSigned {
31 | optional bytes cert = 4;
32 | optional fixed64 ca_key_id = 5;
33 | optional bytes ca_signature = 6;
34 | optional bytes private_key_data = 1;
35 | }
36 |
37 | message CMsgSteamDatagramCertificateRequest {
38 | optional .CMsgSteamDatagramCertificate cert = 1;
39 | }
40 |
--------------------------------------------------------------------------------
/protobufs/steammessages_secrets.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | enum EKeyEscrowUsage {
7 | k_EKeyEscrowUsageStreamingDevice = 0;
8 | }
9 |
10 | message CKeyEscrow_Request {
11 | optional bytes rsa_oaep_sha_ticket = 1;
12 | optional bytes password = 2;
13 | optional .EKeyEscrowUsage usage = 3 [default = k_EKeyEscrowUsageStreamingDevice];
14 | optional string device_name = 4;
15 | }
16 |
17 | message CKeyEscrow_Ticket {
18 | optional bytes password = 1;
19 | optional uint64 identifier = 2;
20 | optional bytes payload = 3;
21 | optional uint32 timestamp = 4;
22 | optional .EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice];
23 | optional string device_name = 6;
24 | optional string device_model = 7;
25 | optional string device_serial = 8;
26 | optional uint32 device_provisioning_id = 9;
27 | }
28 |
29 | message CKeyEscrow_Response {
30 | optional .CKeyEscrow_Ticket ticket = 1;
31 | }
32 |
33 | service Secrets {
34 | option (service_description) = "Service for accessing credentials and guarding secrets";
35 |
36 | rpc KeyEscrow (.CKeyEscrow_Request) returns (.CKeyEscrow_Response) {
37 | option (method_description) = "Service to perform authenticated key-exchange involving Steam Client";
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/protobufs/contenthubs.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 |
3 | option optimize_for = SPEED;
4 | option cc_generic_services = true;
5 | option (force_php_generation) = true;
6 |
7 | enum EContentHubDiscountFilterType {
8 | k_EContentHubDiscountFilterType_None = 0;
9 | k_EContentHubDiscountFilterType_DiscountsOnly = 1;
10 | k_EContentHubDiscountFilterType_PrioritizeDiscounts = 2;
11 | }
12 |
13 | message CStorePageFilter {
14 | message SalePageFilter {
15 | optional uint32 sale_tagid = 1;
16 | }
17 |
18 | message ContentHubFilter {
19 | message OptInInfo {
20 | optional string name = 1;
21 | optional uint32 optin_tagid = 2;
22 | optional uint32 prune_tagid = 3;
23 | optional bool optin_only = 4;
24 | }
25 |
26 | optional string hub_type = 1;
27 | optional string hub_category = 2;
28 | optional uint32 hub_tagid = 3;
29 | optional .EContentHubDiscountFilterType discount_filter = 4 [default = k_EContentHubDiscountFilterType_None];
30 | optional .CStorePageFilter.ContentHubFilter.OptInInfo optin = 5;
31 | }
32 |
33 | message StoreFilter {
34 | optional string filter_json = 1;
35 | optional string cache_key = 2;
36 | }
37 |
38 | optional .CStorePageFilter.SalePageFilter sale_filter = 1;
39 | optional .CStorePageFilter.ContentHubFilter content_hub_filter = 2;
40 | repeated .CStorePageFilter.StoreFilter store_filters = 3;
41 | }
42 |
--------------------------------------------------------------------------------
/enums/EAppInfoSection.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EAppInfoSection = {
9 | "Unknown": 0,
10 | "All": 1,
11 | "First": 2,
12 | "Common": 2,
13 | "Extended": 3,
14 | "Config": 4,
15 | "Stats": 5,
16 | "Install": 6,
17 | "Depots": 7,
18 | "VAC": 8, // removed
19 | "VAC_UNUSED": 8, // removed
20 | "DRM": 9, // removed
21 | "DRM_UNUSED": 9, // removed
22 | "UFS": 10,
23 | "OGG": 11,
24 | "Items": 12, // removed
25 | "ItemsUNUSED": 12, // removed
26 | "Policies": 13,
27 | "SysReqs": 14,
28 | "Community": 15,
29 | "Store": 16,
30 | "Localization": 17,
31 | "Broadcastgamedata": 18,
32 | "Computed": 19,
33 | "Albummetadata": 20,
34 |
35 | // Value-to-name mapping for convenience
36 | "0": "Unknown",
37 | "1": "All",
38 | "2": "Common",
39 | "3": "Extended",
40 | "4": "Config",
41 | "5": "Stats",
42 | "6": "Install",
43 | "7": "Depots",
44 | "8": "VAC_UNUSED",
45 | "9": "DRM_UNUSED",
46 | "10": "UFS",
47 | "11": "OGG",
48 | "12": "ItemsUNUSED",
49 | "13": "Policies",
50 | "14": "SysReqs",
51 | "15": "Community",
52 | "16": "Store",
53 | "17": "Localization",
54 | "18": "Broadcastgamedata",
55 | "19": "Computed",
56 | "20": "Albummetadata",
57 | };
58 |
59 | module.exports = EAppInfoSection;
60 |
--------------------------------------------------------------------------------
/enums/EChatPermission.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EChatPermission = {
9 | "Close": 1,
10 | "Invite": 2,
11 | "Talk": 8,
12 | "Kick": 16,
13 | "Mute": 32,
14 | "SetMetadata": 64,
15 | "ChangePermissions": 128,
16 | "Ban": 256,
17 | "ChangeAccess": 512,
18 | "Mask": 1019,
19 |
20 | // Value-to-name mapping for convenience
21 | "1": "Close",
22 | "2": "Invite",
23 | "8": "Talk",
24 | "16": "Kick",
25 | "32": "Mute",
26 | "64": "SetMetadata",
27 | "128": "ChangePermissions",
28 | "256": "Ban",
29 | "512": "ChangeAccess",
30 | "1019": "Mask",
31 | };
32 |
33 | module.exports = EChatPermission;
34 |
35 | module.exports.EveryoneNotInClanDefault = module.exports.Talk;
36 | module.exports.EveryoneDefault = module.exports.Talk | module.exports.Invite;
37 | module.exports.MemberDefault = module.exports.Ban | module.exports.Kick | module.exports.Talk | module.exports.Invite;
38 | module.exports.OfficerDefault = module.exports.Ban | module.exports.Kick | module.exports.Talk | module.exports.Invite;
39 | module.exports.OwnerDefault = module.exports.ChangeAccess | module.exports.Ban | module.exports.SetMetadata | module.exports.Mute | module.exports.Kick | module.exports.Talk | module.exports.Invite | module.exports.Close;
40 |
--------------------------------------------------------------------------------
/enums/ELicenseFlags.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Mon Sep 02 2024 23:48:07 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ELicenseFlags = {
9 | "None": 0,
10 | "Renew": 1,
11 | "RenewalFailed": 2,
12 | "Pending": 4,
13 | "Expired": 8,
14 | "CancelledByUser": 16,
15 | "CancelledByAdmin": 32,
16 | "LowViolenceContent": 64,
17 | "ImportedFromSteam2": 128,
18 | "ForceRunRestriction": 256,
19 | "RegionRestrictionExpired": 512,
20 | "CancelledByFriendlyFraudLock": 1024,
21 | "NotActivated": 2048,
22 | "PendingRefund": 8192,
23 | "Borrowed": 16384,
24 | "ReleaseStateOverride": 32768,
25 | "CancelledByPartner": 262144,
26 | "NonPermanent": 524288,
27 | "PreferredOwner": 1048576,
28 |
29 | // Value-to-name mapping for convenience
30 | "0": "None",
31 | "1": "Renew",
32 | "2": "RenewalFailed",
33 | "4": "Pending",
34 | "8": "Expired",
35 | "16": "CancelledByUser",
36 | "32": "CancelledByAdmin",
37 | "64": "LowViolenceContent",
38 | "128": "ImportedFromSteam2",
39 | "256": "ForceRunRestriction",
40 | "512": "RegionRestrictionExpired",
41 | "1024": "CancelledByFriendlyFraudLock",
42 | "2048": "NotActivated",
43 | "8192": "PendingRefund",
44 | "16384": "Borrowed",
45 | "32768": "ReleaseStateOverride",
46 | "262144": "CancelledByPartner",
47 | "524288": "NonPermanent",
48 | "1048576": "PreferredOwner",
49 | };
50 |
51 | module.exports = ELicenseFlags;
52 |
--------------------------------------------------------------------------------
/components/classes/HandlerManager.js:
--------------------------------------------------------------------------------
1 | class HandlerManager {
2 | constructor() {
3 | this._handlers = {};
4 | }
5 |
6 | hasHandler(msg) {
7 | return this._handlers[msg] && this._handlers[msg].length > 0;
8 | }
9 |
10 | add(msg, handler) {
11 | if (!this._handlers[msg]) {
12 | this._handlers[msg] = [];
13 | }
14 |
15 | if (this._handlers[msg].some(existingHandler => existingHandler.toString() == handler.toString())) {
16 | // This handler already exists
17 | // We can't check if the functions equal each other because anonymous functions won't, necessarily...
18 | // So instead we stringify the functions and if they're identical, then don't add them both. Probably going
19 | // to cause problems down the road, but whatever.
20 | return;
21 | }
22 |
23 | this._handlers[msg].push(handler);
24 | }
25 |
26 | emit(instance, msg, ...args) {
27 | this.checkMsgForLegacyHandlers(msg);
28 |
29 | let handlers = this._handlers[msg];
30 | if (!handlers || handlers.length == 0) {
31 | return;
32 | }
33 |
34 | handlers.forEach((handler) => {
35 | handler.apply(instance, args);
36 | });
37 | }
38 |
39 | checkMsgForLegacyHandlers(msg) {
40 | const SteamUser = require('../../index.js');
41 | if (typeof SteamUser.prototype._handlers[msg] === 'function') {
42 | this.add(msg, SteamUser.prototype._handlers[msg]);
43 | delete SteamUser.prototype._handlers[msg];
44 | }
45 | }
46 | }
47 |
48 | module.exports = HandlerManager;
49 |
--------------------------------------------------------------------------------
/components/05-filestorage.js:
--------------------------------------------------------------------------------
1 | const SteamUserUtility = require('./04-utility.js');
2 |
3 | class SteamUserFileStorage extends SteamUserUtility {
4 | /**
5 | * @param {string} filename
6 | * @param {Buffer|*} content
7 | * @return {Promise}
8 | * @protected
9 | */
10 | async _saveFile(filename, content) {
11 | try {
12 | if (this.storage) {
13 | await this.storage.saveFile(filename, content);
14 | }
15 | } catch (ex) {
16 | this.emit('debug', `Error saving file ${filename}: ${ex.message}`);
17 | }
18 | }
19 |
20 | /**
21 | * @param {string} filename
22 | * @returns {Promise}
23 | * @protected
24 | */
25 | async _readFile(filename) {
26 | let content = null;
27 |
28 | try {
29 | if (this.storage) {
30 | content = await this.storage.readFile(filename);
31 | }
32 | } catch (ex) {
33 | this.emit('debug', `Error reading file ${filename}: ${ex.message}`);
34 | }
35 |
36 | return content;
37 | }
38 |
39 | /**
40 | * @param {string[]} filenames
41 | * @returns {Promise<{filename: string, error?: Error, contents?: Buffer}[]>}
42 | * @protected
43 | */
44 | async _readFiles(filenames) {
45 | if (!this.storage) {
46 | return filenames.map(filename => ({filename, error: new Error('Storage system disabled')}));
47 | }
48 |
49 | // No need for a try/catch because readFiles can't reject
50 | return await this.storage.readFiles(filenames);
51 | }
52 | }
53 |
54 | module.exports = SteamUserFileStorage;
55 |
--------------------------------------------------------------------------------
/examples/tokendumper.js:
--------------------------------------------------------------------------------
1 | /**
2 | * SteamUser example - TokenDumper
3 | *
4 | * Dumps all access tokens available to anonymous user accounts.
5 | */
6 |
7 | const SteamUser = require('../index.js'); // Replace this with `require('steam-user');` if used outside of the module directory
8 |
9 | let client = new SteamUser();
10 | client.logOn(); // Log onto Steam anonymously
11 |
12 | client.on('loggedOn', (details) => {
13 | console.log('Logged onto Steam as ' + client.steamID.getSteam3RenderedID());
14 |
15 | let idList = [];
16 | for (let i = 0; i < 1000000; i++) {
17 | idList.push(i);
18 | }
19 |
20 | // doing this for packages just hangs forever
21 | client.getProductAccessToken(idList, [], (appTokens, packageTokens, appDeniedTokens, packageDeniedTokens) => {
22 | console.log('Tokens denied for ' + appDeniedTokens.length + ' apps and ' + packageDeniedTokens.length + ' packages');
23 |
24 | for (let appid in appTokens) {
25 | if (Object.hasOwnProperty.call(appTokens, appid) && appTokens[appid].toString() != '0') {
26 | console.log('App ' + appid + ': ' + appTokens[appid].toString());
27 | }
28 | }
29 |
30 | for (let packageid in packageTokens) {
31 | if (Object.hasOwnProperty.call(packageTokens, packageid) && packageTokens[packageid].toString() != '0') {
32 | console.log('Package ' + packageid + ': ' + packageTokens[packageid].toString());
33 | }
34 | }
35 |
36 | console.log('Logging off of Steam');
37 | client.logOff();
38 | });
39 | });
40 |
--------------------------------------------------------------------------------
/enums/EFrameAccumulatedStat.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EFrameAccumulatedStat = {
9 | "FPS": 0,
10 | "CaptureDurationMS": 1,
11 | "ConvertDurationMS": 2,
12 | "EncodeDurationMS": 3,
13 | "SteamDurationMS": 4,
14 | "ServerDurationMS": 5,
15 | "NetworkDurationMS": 6,
16 | "DecodeDurationMS": 7,
17 | "DisplayDurationMS": 8,
18 | "ClientDurationMS": 9,
19 | "FrameDurationMS": 10,
20 | "InputLatencyMS": 11,
21 | "GameLatencyMS": 12,
22 | "RoundTripLatencyMS": 13,
23 | "PingTimeMS": 14,
24 | "ServerBitrateKbitPerSec": 15,
25 | "ClientBitrateKbitPerSec": 16,
26 | "LinkBandwidthKbitPerSec": 17,
27 | "PacketLossPercentage": 18,
28 |
29 | // Value-to-name mapping for convenience
30 | "0": "FPS",
31 | "1": "CaptureDurationMS",
32 | "2": "ConvertDurationMS",
33 | "3": "EncodeDurationMS",
34 | "4": "SteamDurationMS",
35 | "5": "ServerDurationMS",
36 | "6": "NetworkDurationMS",
37 | "7": "DecodeDurationMS",
38 | "8": "DisplayDurationMS",
39 | "9": "ClientDurationMS",
40 | "10": "FrameDurationMS",
41 | "11": "InputLatencyMS",
42 | "12": "GameLatencyMS",
43 | "13": "RoundTripLatencyMS",
44 | "14": "PingTimeMS",
45 | "15": "ServerBitrateKbitPerSec",
46 | "16": "ClientBitrateKbitPerSec",
47 | "17": "LinkBandwidthKbitPerSec",
48 | "18": "PacketLossPercentage",
49 | };
50 |
51 | module.exports = EFrameAccumulatedStat;
52 |
--------------------------------------------------------------------------------
/protobufs/steammessages_offline.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 | import "offline_ticket.proto";
4 |
5 | option cc_generic_services = true;
6 |
7 | message COffline_GetOfflineLogonTicket_Request {
8 | optional uint32 priority = 1;
9 | optional bool perform_encryption = 2;
10 | }
11 |
12 | message COffline_GetOfflineLogonTicket_Response {
13 | optional bytes serialized_ticket = 1;
14 | optional bytes signature = 2;
15 | optional .Offline_Ticket encrypted_ticket = 3;
16 | }
17 |
18 | message COffline_GetUnsignedOfflineLogonTicket_Request {
19 | }
20 |
21 | message COffline_OfflineLogonTicket {
22 | optional uint32 accountid = 1;
23 | optional fixed32 rtime32_creation_time = 2;
24 | }
25 |
26 | message COffline_GetUnsignedOfflineLogonTicket_Response {
27 | optional .COffline_OfflineLogonTicket ticket = 1;
28 | }
29 |
30 | service Offline {
31 | option (service_description) = "Offline settings service";
32 |
33 | rpc GetOfflineLogonTicket (.COffline_GetOfflineLogonTicket_Request) returns (.COffline_GetOfflineLogonTicket_Response) {
34 | option (method_description) = "Get a serialized and signed offline logon ticket for the current user";
35 | }
36 |
37 | rpc GetUnsignedOfflineLogonTicket (.COffline_GetUnsignedOfflineLogonTicket_Request) returns (.COffline_GetUnsignedOfflineLogonTicket_Response) {
38 | option (method_description) = "Get an unsigned offline logon ticket for the current user";
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/protobufs/steammessages_vac.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | message CFileVerification_SignatureCheck_Request {
7 | optional fixed64 steamid = 1;
8 | optional uint32 appid = 2;
9 | optional uint64 file_size = 3;
10 | optional uint32 file_timestamp = 4;
11 | optional uint32 file_timestamp2 = 5;
12 | optional uint32 signature_result = 6;
13 | optional string filename = 7;
14 | optional uint32 client_package_version = 8;
15 | optional bytes sha1hash = 9;
16 | }
17 |
18 | message CFileVerification_SignatureCheck_Response {
19 | optional bool deny_operation = 1;
20 | }
21 |
22 | message CFileVerification_SteamServiceCheck_Request {
23 | optional uint32 service_status = 2;
24 | optional uint32 client_package_version = 3;
25 | optional uint32 launcher_type = 4;
26 | optional uint32 os_type = 5;
27 | optional uint32 service_repair = 6;
28 | }
29 |
30 | message CFileVerification_SteamServiceCheck_Response {
31 | optional bool attempt_repair = 1;
32 | }
33 |
34 | service FileVerification {
35 | option (service_description) = "File verification services";
36 |
37 | rpc SignatureCheck (.CFileVerification_SignatureCheck_Request) returns (.CFileVerification_SignatureCheck_Response) {
38 | option (method_description) = "File signature check was performed";
39 | }
40 |
41 | rpc SteamServiceCheck (.CFileVerification_SteamServiceCheck_Request) returns (.CFileVerification_SteamServiceCheck_Response) {
42 | option (method_description) = "Steam Service check was performed";
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/protobufs/clientmetrics.proto:
--------------------------------------------------------------------------------
1 | option optimize_for = SPEED;
2 | option cc_generic_services = false;
3 |
4 | message CClientMetrics_ClientBootstrap_RequestInfo {
5 | optional string original_hostname = 1;
6 | optional string actual_hostname = 2;
7 | optional string path = 3;
8 | optional string base_name = 4;
9 | optional bool success = 5;
10 | optional uint32 status_code = 6;
11 | optional string address_of_request_url = 7;
12 | optional uint32 response_time_ms = 8;
13 | optional uint64 bytes_received = 9;
14 | optional uint32 num_retries = 10;
15 | }
16 |
17 | message CClientMetrics_ClientBootstrap_Summary {
18 | optional uint32 launcher_type = 1;
19 | optional uint32 steam_realm = 2;
20 | optional string beta_name = 3;
21 | optional bool download_completed = 4;
22 | optional uint32 total_time_ms = 6;
23 | repeated .CClientMetrics_ClientBootstrap_RequestInfo manifest_requests = 7;
24 | repeated .CClientMetrics_ClientBootstrap_RequestInfo package_requests = 8;
25 | }
26 |
27 | message CClientMetrics_ContentDownloadResponse_Counts {
28 | optional uint32 class_100 = 1;
29 | optional uint32 class_200 = 2;
30 | optional uint32 class_300 = 3;
31 | optional uint32 class_400 = 4;
32 | optional uint32 class_500 = 5;
33 | optional uint32 no_response = 6;
34 | optional uint32 class_unknown = 7;
35 | }
36 |
37 | message CClientMetrics_ContentDownloadResponse_HostCounts {
38 | optional string hostname = 1;
39 | optional uint32 source_type = 2;
40 | optional .CClientMetrics_ContentDownloadResponse_Counts counts = 3;
41 | }
42 |
43 | message CClientMetrics_ContentDownloadResponse_Hosts {
44 | repeated .CClientMetrics_ContentDownloadResponse_HostCounts hosts = 1;
45 | }
46 |
--------------------------------------------------------------------------------
/protobufs/steammessages_market.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | message CEconMarket_IsMarketplaceAllowed_Request {
7 | optional string webcookie = 1 [(description) = "The user's Steam Guard machine auth cookie."];
8 | }
9 |
10 | message CEconMarket_IsMarketplaceAllowed_Response {
11 | optional bool allowed = 1 [(description) = "Whether or not the user is allowed to use the market"];
12 | optional uint32 reason = 2 [(description) = "The reason the user can't use the market, if applicable"];
13 | optional uint32 allowed_at_time = 3 [(description) = "The time the user will be allowed to use the market"];
14 | optional uint32 steamguard_required_days = 4 [(description) = "The number of days any user is required to have had Steam Guard before they can use the market"];
15 | optional bool forms_requested = 7 [(description) = "Whether or not we've requested the user fill out tax forms"];
16 | optional bool forms_require_verification = 8 [(description) = "True if we've received forms but they require verification first"];
17 | optional uint32 new_device_cooldown_days = 9 [(description) = "The number of days after initial device authorization a user must wait before using the market on that device"];
18 | }
19 |
20 | service EconMarket {
21 | option (service_description) = "A service to use market functions";
22 |
23 | rpc IsMarketplaceAllowed (.CEconMarket_IsMarketplaceAllowed_Request) returns (.CEconMarket_IsMarketplaceAllowed_Response) {
24 | option (method_description) = "Checks whether or not the authed account is allowed to use the market";
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/enums/EProfileCustomizationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Fri Jun 30 2023 01:09:35 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EProfileCustomizationType = {
9 | "Invalid": 0,
10 | "RareAchievementShowcase": 1,
11 | "GameCollector": 2,
12 | "ItemShowcase": 3,
13 | "TradeShowcase": 4,
14 | "Badges": 5,
15 | "FavoriteGame": 6,
16 | "ScreenshotShowcase": 7,
17 | "CustomText": 8,
18 | "FavoriteGroup": 9,
19 | "Recommendation": 10,
20 | "WorkshopItem": 11,
21 | "MyWorkshop": 12,
22 | "ArtworkShowcase": 13,
23 | "VideoShowcase": 14,
24 | "Guides": 15,
25 | "MyGuides": 16,
26 | "Achievements": 17,
27 | "Greenlight": 18,
28 | "MyGreenlight": 19,
29 | "Salien": 20,
30 | "LoyaltyRewardReactions": 21,
31 | "SingleArtworkShowcase": 22,
32 | "AchievementsCompletionist": 23,
33 | "Replay": 24,
34 |
35 | // Value-to-name mapping for convenience
36 | "0": "Invalid",
37 | "1": "RareAchievementShowcase",
38 | "2": "GameCollector",
39 | "3": "ItemShowcase",
40 | "4": "TradeShowcase",
41 | "5": "Badges",
42 | "6": "FavoriteGame",
43 | "7": "ScreenshotShowcase",
44 | "8": "CustomText",
45 | "9": "FavoriteGroup",
46 | "10": "Recommendation",
47 | "11": "WorkshopItem",
48 | "12": "MyWorkshop",
49 | "13": "ArtworkShowcase",
50 | "14": "VideoShowcase",
51 | "15": "Guides",
52 | "16": "MyGuides",
53 | "17": "Achievements",
54 | "18": "Greenlight",
55 | "19": "MyGreenlight",
56 | "20": "Salien",
57 | "21": "LoyaltyRewardReactions",
58 | "22": "SingleArtworkShowcase",
59 | "23": "AchievementsCompletionist",
60 | "24": "Replay",
61 | };
62 |
63 | module.exports = EProfileCustomizationType;
64 |
--------------------------------------------------------------------------------
/enums/EDRMBlobDownloadErrorDetail.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Thu Feb 24 2022 03:38:38 GMT-0500 (Eastern Standard Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const EDRMBlobDownloadErrorDetail = {
9 | "None": 0,
10 | "DownloadFailed": 1,
11 | "TargetLocked": 2,
12 | "OpenZip": 3,
13 | "ReadZipDirectory": 4,
14 | "UnexpectedZipEntry": 5,
15 | "UnzipFullFile": 6,
16 | "UnknownBlobType": 7,
17 | "UnzipStrips": 8,
18 | "UnzipMergeGuid": 9,
19 | "UnzipSignature": 10,
20 | "ApplyStrips": 11,
21 | "ApplyMergeGuid": 12,
22 | "ApplySignature": 13,
23 | "AppIdMismatch": 14,
24 | "AppIdUnexpected": 15,
25 | "AppliedSignatureCorrupt": 16,
26 | "ApplyValveSignatureHeader": 17,
27 | "UnzipValveSignatureHeader": 18,
28 | "PathManipulationError": 19,
29 | "TargetLocked_Base": 65536,
30 | "TargetLocked_Max": 131071,
31 | "NextBase": 131072,
32 |
33 | // Value-to-name mapping for convenience
34 | "0": "None",
35 | "1": "DownloadFailed",
36 | "2": "TargetLocked",
37 | "3": "OpenZip",
38 | "4": "ReadZipDirectory",
39 | "5": "UnexpectedZipEntry",
40 | "6": "UnzipFullFile",
41 | "7": "UnknownBlobType",
42 | "8": "UnzipStrips",
43 | "9": "UnzipMergeGuid",
44 | "10": "UnzipSignature",
45 | "11": "ApplyStrips",
46 | "12": "ApplyMergeGuid",
47 | "13": "ApplySignature",
48 | "14": "AppIdMismatch",
49 | "15": "AppIdUnexpected",
50 | "16": "AppliedSignatureCorrupt",
51 | "17": "ApplyValveSignatureHeader",
52 | "18": "UnzipValveSignatureHeader",
53 | "19": "PathManipulationError",
54 | "65536": "TargetLocked_Base",
55 | "131071": "TargetLocked_Max",
56 | "131072": "NextBase",
57 | };
58 |
59 | module.exports = EDRMBlobDownloadErrorDetail;
60 |
--------------------------------------------------------------------------------
/resources/default_options.js:
--------------------------------------------------------------------------------
1 | const EConnectionProtocol = require('./EConnectionProtocol.js');
2 | const EMachineIDType = require('./EMachineIDType.js');
3 |
4 | /**
5 | * @typedef {object} OptionsObject
6 | * @property {string|null} [dataDirectory]
7 | * @property {boolean} [autoRelogin=true]
8 | * @property {EMachineIDType} [machineIdType]
9 | * @property {string[]} [machineIdFormat]
10 | * @property {boolean} [enablePicsCache=false]
11 | * @property {boolean} [picsCacheAll=false]
12 | * @property {number} [changelistUpdateInterval=60000]
13 | * @property {PackageFilter|PackageFilterFunction|null} [ownershipFilter=null]
14 | * @property {object} [additionalHeaders={}]
15 | * @property {string|null} [localAddress=null]
16 | * @property {number|null} [localPort=null]
17 | * @property {string|null} [httpProxy=null]
18 | * @property {string|null} [socksProxy=null]
19 | * @property {EConnectionProtocol} [protocol]
20 | * @property {string} [language='english']
21 | * @property {boolean} [webCompatibilityMode=false]
22 | * @property {boolean} [saveAppTickets=true]
23 | * @property {boolean} [renewRefreshTokens=false]
24 | */
25 |
26 | module.exports = {
27 | autoRelogin: true,
28 | machineIdType: EMachineIDType.AccountNameGenerated,
29 | machineIdFormat: ['SteamUser Hash BB3 {account_name}', 'SteamUser Hash FF2 {account_name}', 'SteamUser Hash 3B3 {account_name}'],
30 | enablePicsCache: false,
31 | picsCacheAll: false,
32 | changelistUpdateInterval: 60000,
33 | additionalHeaders: {},
34 | localAddress: null,
35 | localPort: null,
36 | httpProxy: null,
37 | socksProxy: null,
38 | protocol: EConnectionProtocol.Auto,
39 | language: 'english',
40 | webCompatibilityMode: false,
41 | saveAppTickets: true,
42 | renewRefreshTokens: false
43 | };
44 |
--------------------------------------------------------------------------------
/enums/ESteamNotificationType.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | // Auto-generated by generate-enums script on Tue Sep 03 2024 00:00:33 GMT-0400 (Eastern Daylight Time)
3 |
4 | /**
5 | * @enum
6 | * @readonly
7 | */
8 | const ESteamNotificationType = {
9 | Invalid: 0,
10 | Test: 1,
11 | Gift: 2,
12 | Comment: 3,
13 | Item: 4,
14 | FriendInvite: 5,
15 | MajorSale: 6,
16 | PreloadAvailable: 7,
17 | Wishlist: 8,
18 | TradeOffer: 9,
19 | General: 10,
20 | HelpRequest: 11,
21 | AsyncGame: 12,
22 | ChatMsg: 13,
23 | ModeratorMsg: 14,
24 | ParentalFeatureAccessRequest: 15,
25 | FamilyInvite: 16,
26 | FamilyPurchaseRequest: 17,
27 | ParentalPlaytimeRequest: 18,
28 | FamilyPurchaseRequestResponse: 19,
29 | ParentalFeatureAccessResponse: 20,
30 | ParentalPlaytimeResponse: 21,
31 | RequestedGameAdded: 22,
32 | SendToPhone: 23,
33 | ClipDownloaded: 24,
34 | TwoFactorPrompt: 25,
35 | MobileConfirmation: 26,
36 | PartnerEvent: 27,
37 |
38 | // Value-to-name mapping for convenience
39 | 0: 'Invalid',
40 | 1: 'Test',
41 | 2: 'Gift',
42 | 3: 'Comment',
43 | 4: 'Item',
44 | 5: 'FriendInvite',
45 | 6: 'MajorSale',
46 | 7: 'PreloadAvailable',
47 | 8: 'Wishlist',
48 | 9: 'TradeOffer',
49 | 10: 'General',
50 | 11: 'HelpRequest',
51 | 12: 'AsyncGame',
52 | 13: 'ChatMsg',
53 | 14: 'ModeratorMsg',
54 | 15: 'ParentalFeatureAccessRequest',
55 | 16: 'FamilyInvite',
56 | 17: 'FamilyPurchaseRequest',
57 | 18: 'ParentalPlaytimeRequest',
58 | 19: 'FamilyPurchaseRequestResponse',
59 | 20: 'ParentalFeatureAccessResponse',
60 | 21: 'ParentalPlaytimeResponse',
61 | 22: 'RequestedGameAdded',
62 | 23: 'SendToPhone',
63 | 24: 'ClipDownloaded',
64 | 25: 'TwoFactorPrompt',
65 | 26: 'MobileConfirmation',
66 | 27: 'PartnerEvent',
67 | };
68 |
69 | module.exports = ESteamNotificationType;
70 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "steam-user",
3 | "version": "5.3.0",
4 | "description": "Steam client for Individual and AnonUser Steam account types",
5 | "keywords": [
6 | "steam",
7 | "steam client",
8 | "steam user"
9 | ],
10 | "homepage": "https://github.com/DoctorMcKay/node-steam-user",
11 | "bugs": {
12 | "url": "https://github.com/DoctorMcKay/node-steam-user/issues"
13 | },
14 | "license": "MIT",
15 | "author": {
16 | "name": "Alex Corn",
17 | "email": "mckay@doctormckay.com",
18 | "url": "https://www.doctormckay.com"
19 | },
20 | "repository": {
21 | "type": "git",
22 | "url": "https://github.com/DoctorMcKay/node-steam-user.git"
23 | },
24 | "dependencies": {
25 | "@bbob/parser": "^2.2.0",
26 | "@doctormckay/stdlib": "^2.9.1",
27 | "@doctormckay/steam-crypto": "^1.2.0",
28 | "adm-zip": "^0.5.10",
29 | "binarykvparser": "^2.2.0",
30 | "bytebuffer": "^5.0.0",
31 | "file-manager": "^2.0.0",
32 | "kvparser": "^1.0.1",
33 | "lzma": "^2.3.2",
34 | "protobufjs": "^7.2.4",
35 | "socks-proxy-agent": "^7.0.0",
36 | "steam-appticket": "^1.0.1",
37 | "steam-session": "^1.8.0",
38 | "steam-totp": "^2.0.1",
39 | "steamid": "^2.0.0",
40 | "websocket13": "^4.0.0",
41 | "zstddec": "^0.1.0"
42 | },
43 | "peerDependencies": {
44 | "lzma-native": "^8.0.0"
45 | },
46 | "peerDependenciesMeta": {
47 | "lzma-native": {"optional": true}
48 | },
49 | "devDependencies": {
50 | "eslint": "^8.57.0",
51 | "protobufjs-cli": "^1.1.3",
52 | "steamcommunity": "^3.39.0",
53 | "wtfnode": "^0.8.4"
54 | },
55 | "scripts": {
56 | "generate-enums": "node scripts/generate-enums.js",
57 | "generate-protos": "node scripts/generate-protos.js",
58 | "lint": "npx eslint . --ext .js,.jsx,.ts,.tsx"
59 | },
60 | "engines": {
61 | "node": ">=14.0.0"
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/protobufs/steammessages_timedtrial.steamclient.proto:
--------------------------------------------------------------------------------
1 | import "steammessages_base.proto";
2 | import "steammessages_unified_base.steamclient.proto";
3 |
4 | option cc_generic_services = true;
5 |
6 | message CTimedTrial_GetTimeRemaining_Request {
7 | optional uint32 appid = 1;
8 | }
9 |
10 | message CTimedTrial_GetTimeRemaining_Response {
11 | optional uint32 seconds_played = 1;
12 | optional uint32 seconds_allowed = 2;
13 | optional uint32 packageid = 3;
14 | optional uint32 mastersub_appid = 4;
15 | }
16 |
17 | message CTimedTrial_RecordPlaytime_Request {
18 | optional uint32 appid = 1;
19 | optional uint32 seconds_played = 2;
20 | }
21 |
22 | message CTimedTrial_RecordPlaytime_Response {
23 | optional uint32 seconds_played = 1;
24 | optional uint32 seconds_allowed = 2;
25 | }
26 |
27 | message CTimedTrial_ResetPlaytime_Request {
28 | optional uint32 appid = 1;
29 | }
30 |
31 | message CTimedTrial_ResetPlaytime_Response {
32 | optional uint32 seconds_played = 1;
33 | optional uint32 seconds_allowed = 2;
34 | }
35 |
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 | }
50 | }
51 |
--------------------------------------------------------------------------------
/protobufs/steammessages_gamenetworkingui.proto:
--------------------------------------------------------------------------------
1 | import "steamnetworkingsockets_messages.proto";
2 | import "steamdatagram_messages_sdr.proto";
3 |
4 | option optimize_for = SPEED;
5 | option cc_generic_services = true;
6 |
7 | message CGameNetworkingUI_GlobalState {
8 | }
9 |
10 | message CGameNetworkingUI_ConnectionState {
11 | optional string connection_key = 1;
12 | optional uint32 appid = 2;
13 | optional fixed32 connection_id_local = 3;
14 | optional string identity_local = 4;
15 | optional string identity_remote = 5;
16 | optional uint32 connection_state = 10;
17 | optional uint32 start_time = 12;
18 | optional uint32 close_time = 13;
19 | optional uint32 close_reason = 14;
20 | optional string close_message = 15;
21 | optional string status_loc_token = 16;
22 | optional uint32 transport_kind = 20;
23 | optional string sdrpopid_local = 21;
24 | optional string sdrpopid_remote = 22;
25 | optional string address_remote = 23;
26 | optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24;
27 | optional uint32 ping_interior = 25;
28 | optional uint32 ping_remote_front = 26;
29 | optional uint32 ping_default_internet_route = 27;
30 | optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30;
31 | optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31;
32 | optional uint64 e2e_quality_remote_instantaneous_time = 32;
33 | optional uint64 e2e_quality_remote_lifetime_time = 33;
34 | optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40;
35 | optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41;
36 | optional uint64 front_quality_remote_instantaneous_time = 42;
37 | optional uint64 front_quality_remote_lifetime_time = 43;
38 | }
39 |
40 | message CGameNetworkingUI_Message {
41 | repeated .CGameNetworkingUI_ConnectionState connection_state = 1;
42 | }
43 |
--------------------------------------------------------------------------------
/protobufs/content_manifest.proto:
--------------------------------------------------------------------------------
1 | option optimize_for = SPEED;
2 | option cc_generic_services = false;
3 |
4 | enum EContentDeltaChunkDataLocation {
5 | k_EContentDeltaChunkDataLocationInProtobuf = 0;
6 | k_EContentDeltaChunkDataLocationAfterProtobuf = 1;
7 | }
8 |
9 | message ContentManifestPayload {
10 | message FileMapping {
11 | message ChunkData {
12 | optional bytes sha = 1;
13 | optional fixed32 crc = 2;
14 | optional uint64 offset = 3;
15 | optional uint32 cb_original = 4;
16 | optional uint32 cb_compressed = 5;
17 | }
18 |
19 | optional string filename = 1;
20 | optional uint64 size = 2;
21 | optional uint32 flags = 3;
22 | optional bytes sha_filename = 4;
23 | optional bytes sha_content = 5;
24 | repeated .ContentManifestPayload.FileMapping.ChunkData chunks = 6;
25 | optional string linktarget = 7;
26 | }
27 |
28 | repeated .ContentManifestPayload.FileMapping mappings = 1;
29 | }
30 |
31 | message ContentManifestMetadata {
32 | optional uint32 depot_id = 1;
33 | optional uint64 gid_manifest = 2;
34 | optional uint32 creation_time = 3;
35 | optional bool filenames_encrypted = 4;
36 | optional uint64 cb_disk_original = 5;
37 | optional uint64 cb_disk_compressed = 6;
38 | optional uint32 unique_chunks = 7;
39 | optional uint32 crc_encrypted = 8;
40 | optional uint32 crc_clear = 9;
41 | }
42 |
43 | message ContentManifestSignature {
44 | optional bytes signature = 1;
45 | }
46 |
47 | message ContentDeltaChunks {
48 | message DeltaChunk {
49 | optional bytes sha_source = 1;
50 | optional bytes sha_target = 2;
51 | optional uint32 size_original = 3;
52 | optional uint32 patch_method = 4;
53 | optional bytes chunk = 5;
54 | optional uint32 size_delta = 6;
55 | }
56 |
57 | optional uint32 depot_id = 1;
58 | optional uint64 manifest_id_source = 2;
59 | optional uint64 manifest_id_target = 3;
60 | repeated .ContentDeltaChunks.DeltaChunk deltaChunks = 4;
61 | optional .EContentDeltaChunkDataLocation chunk_data_location = 5 [default = k_EContentDeltaChunkDataLocationInProtobuf];
62 | }
63 |
--------------------------------------------------------------------------------
/resources/CurrencyData.js:
--------------------------------------------------------------------------------
1 | const ECurrencyCode = require('../enums/ECurrencyCode.js');
2 |
3 | let CurrencyData = {};
4 | CurrencyData[ECurrencyCode.USD] = {prepend: '$'};
5 | CurrencyData[ECurrencyCode.GBP] = {prepend: '\u00a3'};
6 | CurrencyData[ECurrencyCode.EUR] = {append: '\u20ac', commas: true};
7 | CurrencyData[ECurrencyCode.CHF] = {append: ' CHF'};
8 | CurrencyData[ECurrencyCode.RUB] = {append: ' p\u0443\u0431.', commas: true, whole: true};
9 | CurrencyData[ECurrencyCode.PLN] = {append: ' PLN'};
10 | CurrencyData[ECurrencyCode.BRL] = {append: ' R$', commas: true};
11 | CurrencyData[ECurrencyCode.JPY] = {prepend: '\u00a5 ', whole: true};
12 | CurrencyData[ECurrencyCode.NOK] = {append: ' kr', commas: true};
13 | CurrencyData[ECurrencyCode.IDR] = {prepend: 'Rp '};
14 | CurrencyData[ECurrencyCode.MYR] = {prepend: 'RM '};
15 | CurrencyData[ECurrencyCode.PHP] = {prepend: 'P '};
16 | CurrencyData[ECurrencyCode.SGD] = {prepend: 'S$ '};
17 | CurrencyData[ECurrencyCode.THB] = {prepend: '\u0e3f '};
18 | CurrencyData[ECurrencyCode.VND] = {append: ' VND'};
19 | CurrencyData[ECurrencyCode.KRW] = {prepend: '\u20a9', whole: true};
20 | CurrencyData[ECurrencyCode.TRY] = {append: ' TRY'};
21 | CurrencyData[ECurrencyCode.UAH] = {append: ' UAH'};
22 | CurrencyData[ECurrencyCode.MXN] = {prepend: 'Mex$ '};
23 | CurrencyData[ECurrencyCode.CAD] = {prepend: 'CDN$ '};
24 | CurrencyData[ECurrencyCode.AUD] = {prepend: 'A$ '};
25 | CurrencyData[ECurrencyCode.NZD] = {prepend: 'NZ$ '};
26 | CurrencyData[ECurrencyCode.CNY] = {append: ' CNY'};
27 | CurrencyData[ECurrencyCode.INR] = {append: ' INR'};
28 | CurrencyData[ECurrencyCode.CLP] = {append: ' CLP'};
29 | CurrencyData[ECurrencyCode.PEN] = {append: ' PEN'};
30 | CurrencyData[ECurrencyCode.COP] = {append: ' COP'};
31 | CurrencyData[ECurrencyCode.ZAR] = {append: ' ZAR'};
32 | CurrencyData[ECurrencyCode.HKD] = {append: ' HKD'};
33 | CurrencyData[ECurrencyCode.TWD] = {append: ' TWD'};
34 | CurrencyData[ECurrencyCode.SAR] = {append: ' SAR'};
35 | CurrencyData[ECurrencyCode.AED] = {append: ' AED'};
36 |
37 | module.exports = CurrencyData;
38 |
--------------------------------------------------------------------------------