diff --git a/package-lock.json b/package-lock.json index 048a39a..13b274c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ubisoft-demux", - "version": "1.10824.0", + "version": "1.10836.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1784,6 +1784,12 @@ "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", "dev": true }, + "case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "dev": true + }, "centra": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/centra/-/centra-2.5.0.tgz", @@ -4689,25 +4695,26 @@ } }, "ts-poet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.1.0.tgz", - "integrity": "sha512-PFwbNJjGrb44wzHUGQicG2/nhjR+3+k7zYLDTa8D61NVUitl7K/JgIc9/P+8oMNenntKzLc8tjLDOkPrxIhm6A==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz", + "integrity": "sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==", "dev": true, "requires": { "dprint-node": "^1.0.7" } }, "ts-proto": { - "version": "1.126.1", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.126.1.tgz", - "integrity": "sha512-PKrcgd0mCQJDY7tp+th349uYhnjs2Tz7wSqm9+DBcodl3YCKPt1pFtFmApOZdQ8WlghhgKAuJDIRQJBd6jD5YA==", + "version": "1.141.1", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.141.1.tgz", + "integrity": "sha512-1b7Ka6R96FvFZldHnYPTFy4rzwOo+OTpIP1mBFW0dDwq4WWtSkIVlZ+SokOQSC1TiccNshOJwQC9soVyWfQ7Zg==", "dev": true, "requires": { "@types/object-hash": "^1.3.0", + "case-anything": "^2.1.10", "dataloader": "^1.4.0", "object-hash": "^1.3.1", "protobufjs": "^6.11.3", - "ts-poet": "^6.1.0", + "ts-poet": "^6.2.0", "ts-proto-descriptors": "1.7.1" }, "dependencies": { diff --git a/package.json b/package.json index 9bf6687..0fd5863 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ubisoft-demux", - "version": "1.10824.0", + "version": "1.10836.0", "description": "A Node.js client to interact with Ubisoft Connect's protobuf demux API", "main": "dist/src/index.js", "scripts": { @@ -67,7 +67,7 @@ "rimraf": "^3.0.2", "ts-jest": "^29.0.2", "ts-node": "^10.9.1", - "ts-proto": "^1.126.1", + "ts-proto": "^1.141.1", "typed-emitter": "^2.1.0", "typescript": "^4.8.3", "yaml": "^2.1.1" diff --git a/proto/proto_download/download.proto b/proto/proto_download/download.proto index 11af363..f677b99 100644 --- a/proto/proto_download/download.proto +++ b/proto/proto_download/download.proto @@ -97,8 +97,9 @@ message File { required bool isDir = 3; repeated bytes slices = 4; optional uint32 version = 5; - optional uint64 paddedSize = 6; repeated Slice sliceList = 7; + + reserved 6; } message Chunk { @@ -122,8 +123,9 @@ message MetaDataChunk { optional uint32 uplayId = 1; optional string language = 2; required uint64 bytesOnDisk = 3; - optional uint64 paddedBytesOnDisk = 4; repeated uint32 uplayIds = 5; + + reserved 4; } message TextFileEntry { @@ -168,8 +170,6 @@ message Manifest { repeated InstallCompatibility installCompatibility = 11; optional string legacyInstaller = 12; repeated string deprecatedLanguages = 13; - optional bool isEncryptedDeprecated = 14; - optional uint32 paddedSliceSizeDeprecated = 15; optional bool patchRequired = 16; optional bool isCompressed = 17; optional TextFileList readmeFiles = 18; @@ -179,6 +179,8 @@ message Manifest { optional uint32 version = 22; repeated Language languages = 23; optional SlicerConfig slicerConfig = 24; + + reserved 14, 15; } message ManifestLicenses { @@ -193,8 +195,9 @@ message ManifestMetaData { optional uint32 chunksVersion = 6; repeated uint32 uplayIds = 7; repeated MetaDataChunk chunks = 8; - optional uint64 paddedBytesOnDisk = 9; repeated Language languages = 10; + + reserved 9; } enum LicenseFormat { diff --git a/proto/proto_download_cache/download_cache.proto b/proto/proto_download_cache/download_cache.proto index a848951..a42918a 100644 --- a/proto/proto_download_cache/download_cache.proto +++ b/proto/proto_download_cache/download_cache.proto @@ -40,6 +40,7 @@ message Download { InstallProtocol = 3; InstallProtocolRetail = 4; BetaClient = 5; + XboxApp = 6; } optional string branded_installer_id = 9; diff --git a/proto/proto_download_install_state/download_install_state.proto b/proto/proto_download_install_state/download_install_state.proto index 0c9b1fc..2072bdf 100644 --- a/proto/proto_download_install_state/download_install_state.proto +++ b/proto/proto_download_install_state/download_install_state.proto @@ -70,4 +70,5 @@ message DownloadInstallState { optional bool invalidate_game_token_required = 29; optional bool epic_run_installation = 30 [default = false]; optional bool force_check_licenses_on_next_launch = 31 [default = false]; + optional uint64 install_date = 32; } diff --git a/proto/proto_game_catalog_extension/game_catalog_extension.proto b/proto/proto_game_catalog_extension/game_catalog_extension.proto new file mode 100644 index 0000000..64a7d73 --- /dev/null +++ b/proto/proto_game_catalog_extension/game_catalog_extension.proto @@ -0,0 +1,278 @@ +syntax = "proto3"; + +package mg.protocol.game_catalog_extension; + +message AuthDetails { + TokenPlatform token_platform = 1; + enum TokenPlatform { + Ubisoft = 0; + XSTS = 1; + } + + string token = 2; +} + +message InitializeReq { + AuthDetails auth_details = 1; + bool do_activation = 2; +} + +message IdMappingElement { + uint32 ubi_product_id = 1; + string ms_product_id = 2; +} + +message InitializeRsp { + Result result = 1; + enum Result { + Failure = 0; + Success = 1; + AuthenticationFailed = 2; + MissingOwnership = 3; + } + + repeated IdMappingElement id_mapping = 2; +} + +message LinkAccountReq { + AuthDetails auth_details = 1; +} + +message LinkAccountRsp { + bool is_linked = 1; +} + +message LaunchGameReq { + uint32 product_id = 1; + uint32 executable_id = 2; +} + +message LaunchGameRsp { + Result result = 1; + enum Result { + InternalError = 0; + Success = 1; + } + + string reason = 2; +} + +message GameRuntimeReq { + oneof request { + LaunchGameReq launch_game = 1; + } +} + +message GameRuntimeRsp { + oneof response { + LaunchGameRsp launch_game = 1; + } +} + +message GetProductActionsReq { + uint32 product_id = 1; +} + +message ProductActions { + uint32 product_id = 1; + repeated ProductAction actions = 2; +} + +message GetProductActionsRsp { + ProductActions product_actions = 1; +} + +message GetLocalProductDetailsReq { + uint32 product_id = 1; +} + +message LocalProductDetails { + uint32 product_id = 1; + uint64 current_bytes_on_disc = 2; + string install_path = 3; + + PatchState patch_state = 4; + enum PatchState { + Undefined = 0; + FullyPatched = 1; + PatchRequired = 2; + } + + uint64 installed_date_since_epoch = 5; + uint64 last_played_date_since_epoch = 6; +} + +message GetLocalProductDetailsRsp { + Result result = 1; + enum Result { + Undefined = 0; + Success = 1; + NoDataAvailable = 2; + } + + LocalProductDetails product_details = 2; +} + +message StartGameDownloadReq { + uint32 product_id = 1; + string installation_path = 2; + repeated uint32 addons = 3; + repeated string locales = 4; + string main_locale = 5; + repeated uint32 accepted_licenses_ids = 6; +} + +message StartGameDownloadRsp { + Result result = 1; + enum Result { + Undefined = 0; + Success = 1; + Aborted = 2; + FailedGenericError = 10; + FailedDownloadNotPermitted = 11; + FailedDownloadPermissionsNotAvailable = 12; + FailedOwnershipTokenNotAvailable = 13; + } + + string reason = 2; +} + +message UninstallProductReq { + uint32 product_id = 1; +} + +message UninstallProductRsp { + Result result = 1; + enum Result { + InternalError = 0; + Success = 1; + } +} + +message PauseProductReq { + uint32 product_id = 1; +} + +message PauseProductRsp { + Result result = 1; + enum Result { + InternalError = 0; + Success = 1; + } +} + +message ProductManagementReq { + oneof request { + GetProductActionsReq get_product_actions = 1; + GetLocalProductDetailsReq get_local_product_details = 2; + StartGameDownloadReq start_game_download = 3; + UninstallProductReq uninstall_product = 4; + PauseProductReq pause_product = 5; + } +} + +message ProductManagementRsp { + oneof response { + GetProductActionsRsp get_product_actions = 1; + GetLocalProductDetailsRsp get_local_product_details = 2; + StartGameDownloadRsp start_game_download = 3; + UninstallProductRsp uninstall_product = 4; + PauseProductRsp pause_product = 5; + } +} + +message ProductActionsUpdated { + uint32 product_id = 1; + repeated ProductAction actions = 2; +} + +message ProductDownloadStarted { + uint32 product_id = 1; +} + +message ProductDownloadUpdated { + uint32 product_id = 1; + uint64 downloaded_bytes = 2; + uint64 total_bytes = 10; + uint64 required_bytes = 11; + uint64 bytes_per_second = 12; +} + +message ProductDownloadCompleted { + uint32 product_id = 1; + + Result result = 2; + enum Result { + Undefined = 0; + Completed = 1; + Paused = 2; + Cancelled = 3; + Failed = 4; + } +} + +message ProductUninstallStarted { + uint32 product_id = 1; +} + +message ProductUninstallCompleted { + uint32 product_id = 1; + + Result result = 2; + enum Result { + Undefined = 0; + Completed = 1; + Failed = 2; + } +} + +message Req { + uint32 request_id = 1; + + oneof request { + InitializeReq initialize = 2; + GameRuntimeReq game_run_time = 3; + ProductManagementReq product_management = 4; + LinkAccountReq link_account = 536870910; + } +} + +message Rsp { + uint32 request_id = 1; + + oneof response { + InitializeRsp initialize = 2; + GameRuntimeRsp game_run_time = 3; + ProductManagementRsp product_management = 4; + LinkAccountRsp link_account = 536870910; + } +} + +message Push { + oneof push { + ProductActionsUpdated product_actions_updated = 201; + ProductDownloadStarted product_download_started = 211; + ProductDownloadUpdated product_download_updated = 212; + ProductDownloadCompleted product_download_completed = 213; + ProductUninstallStarted product_uninstall_started = 221; + ProductUninstallCompleted product_uninstall_completed = 222; + } +} + +message Upstream { + Req req = 1; +} + +message Downstream { + oneof message { + Rsp rsp = 1; + Push push = 2; + } +} + +enum ProductAction { + NonAction = 0; + Download = 1; + Launch = 2; + Uninstall = 3; +} diff --git a/proto/proto_overlay/overlay.proto b/proto/proto_overlay/overlay.proto index 40503ac..8591cef 100644 --- a/proto/proto_overlay/overlay.proto +++ b/proto/proto_overlay/overlay.proto @@ -321,6 +321,12 @@ message StreamingHostSignalErrorReq { required uint32 error_code = 1; } +message StreamingHostSDKEventReq { + required uint32 severity = 1; + required string message = 2; + required string host_peer_id = 3; +} + message ScreenshotReadyReq { required bool isVulkanHDR = 1; } @@ -398,6 +404,7 @@ message Req { optional StreamingHostUpdateGuestRemainingTimeReq streaming_host_update_guest_remaining_time_req = 38; optional StreamingHostReadyReq streaming_host_ready_req = 39; optional StreamingHostSignalErrorReq streaming_host_signal_error_req = 40; + optional StreamingHostSDKEventReq streaming_host_sdk_event_req = 41; } message Rsp { diff --git a/proto/proto_wegame_service/wegame_service.proto b/proto/proto_wegame_service/wegame_service.proto index 3221808..2a33fd5 100644 --- a/proto/proto_wegame_service/wegame_service.proto +++ b/proto/proto_wegame_service/wegame_service.proto @@ -88,6 +88,7 @@ message GetIngameItemCheckoutUrlReq { uint64 wegame_product_id = 3; uint32 ingame_item_package_id = 4; string url_redirect = 5; + string zone_id = 6; } message GetIngameItemCheckoutUrlRsp { diff --git a/src/constants.ts b/src/constants.ts index 3099d72..c88d771 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,4 +1,4 @@ /** * The launcher version sent to the demux API on startup. It can be found in the upc.exe file properties (e.g. File version: 132.2.0.10690) */ -export const API_VERSION = 10824; +export const API_VERSION = 10836; diff --git a/src/generated/authfiles/remember_device_file.ts b/src/generated/authfiles/remember_device_file.ts index cef5ba1..a98e663 100644 --- a/src/generated/authfiles/remember_device_file.ts +++ b/src/generated/authfiles/remember_device_file.ts @@ -3,12 +3,12 @@ export const protobufPackage = "mg.protocol.remember_device_file"; export interface User { - accountId: string | undefined; - emailHash: string | undefined; - rdTicket: string | undefined; + accountId?: string | undefined; + emailHash?: string | undefined; + rdTicket?: string | undefined; } export interface UserLoginCache { users: User[]; - version: number | undefined; + version?: number | undefined; } diff --git a/src/generated/authfiles/user_dat_file.ts b/src/generated/authfiles/user_dat_file.ts index c33e683..2f29d90 100644 --- a/src/generated/authfiles/user_dat_file.ts +++ b/src/generated/authfiles/user_dat_file.ts @@ -3,15 +3,15 @@ export const protobufPackage = "mg.protocol.user_dat_file"; export interface UserInfo { - username: string | undefined; - ubiAccountId: string | undefined; - email: string | undefined; - name: string | undefined; - passwordSalt: Buffer | undefined; - passwordHash: Buffer | undefined; - migrationEmailHash: string | undefined; - rememberMeTicket: string | undefined; - hashIterationsOffset: number | undefined; + username?: string | undefined; + ubiAccountId?: string | undefined; + email?: string | undefined; + name?: string | undefined; + passwordSalt?: Buffer | undefined; + passwordHash?: Buffer | undefined; + migrationEmailHash?: string | undefined; + rememberMeTicket?: string | undefined; + hashIterationsOffset?: number | undefined; } export interface LegacyVulnerableUnversionedCache { @@ -19,9 +19,9 @@ export interface LegacyVulnerableUnversionedCache { } export interface StartupEntry { - isRememberMe: boolean | undefined; - isRestartCredentials: boolean | undefined; - userIndex: number | undefined; + isRememberMe?: boolean | undefined; + isRestartCredentials?: boolean | undefined; + userIndex?: number | undefined; } export interface EnvironmentCache { diff --git a/src/generated/proto_download/download.ts b/src/generated/proto_download/download.ts index dce4a09..12525d5 100644 --- a/src/generated/proto_download/download.ts +++ b/src/generated/proto_download/download.ts @@ -140,7 +140,6 @@ export interface File { isDir: boolean; slices: Buffer[]; version: number; - paddedSize: number; sliceList: Slice[]; } @@ -165,7 +164,6 @@ export interface MetaDataChunk { uplayId: number; language: string; bytesOnDisk: number; - paddedBytesOnDisk: number; uplayIds: number[]; } @@ -212,8 +210,6 @@ export interface Manifest { installCompatibility: InstallCompatibility[]; legacyInstaller: string; deprecatedLanguages: string[]; - isEncryptedDeprecated: boolean; - paddedSliceSizeDeprecated: number; patchRequired: boolean; isCompressed: boolean; readmeFiles?: TextFileList; @@ -237,6 +233,5 @@ export interface ManifestMetaData { chunksVersion: number; uplayIds: number[]; chunks: MetaDataChunk[]; - paddedBytesOnDisk: number; languages: Language[]; } diff --git a/src/generated/proto_download_cache/download_cache.ts b/src/generated/proto_download_cache/download_cache.ts index b80482d..6f5a076 100644 --- a/src/generated/proto_download_cache/download_cache.ts +++ b/src/generated/proto_download_cache/download_cache.ts @@ -43,6 +43,7 @@ export enum Download_DownloadInitiator { InstallProtocol = 3, InstallProtocolRetail = 4, BetaClient = 5, + XboxApp = 6, UNRECOGNIZED = -1, } diff --git a/src/generated/proto_download_install_state/download_install_state.ts b/src/generated/proto_download_install_state/download_install_state.ts index 871f012..666371d 100644 --- a/src/generated/proto_download_install_state/download_install_state.ts +++ b/src/generated/proto_download_install_state/download_install_state.ts @@ -70,4 +70,5 @@ export interface DownloadInstallState { invalidateGameTokenRequired: boolean; epicRunInstallation: boolean; forceCheckLicensesOnNextLaunch: boolean; + installDate: number; } diff --git a/src/generated/proto_game_catalog_extension/game_catalog_extension.ts b/src/generated/proto_game_catalog_extension/game_catalog_extension.ts new file mode 100644 index 0000000..3543dc5 --- /dev/null +++ b/src/generated/proto_game_catalog_extension/game_catalog_extension.ts @@ -0,0 +1,272 @@ +/* eslint-disable */ + +export const protobufPackage = "mg.protocol.game_catalog_extension"; + +export enum ProductAction { + NonAction = 0, + Download = 1, + Launch = 2, + Uninstall = 3, + UNRECOGNIZED = -1, +} + +export interface AuthDetails { + tokenPlatform: AuthDetails_TokenPlatform; + token: string; +} + +export enum AuthDetails_TokenPlatform { + Ubisoft = 0, + XSTS = 1, + UNRECOGNIZED = -1, +} + +export interface InitializeReq { + authDetails?: AuthDetails; + doActivation: boolean; +} + +export interface IdMappingElement { + ubiProductId: number; + msProductId: string; +} + +export interface InitializeRsp { + result: InitializeRsp_Result; + idMapping: IdMappingElement[]; +} + +export enum InitializeRsp_Result { + Failure = 0, + Success = 1, + AuthenticationFailed = 2, + MissingOwnership = 3, + UNRECOGNIZED = -1, +} + +export interface LinkAccountReq { + authDetails?: AuthDetails; +} + +export interface LinkAccountRsp { + isLinked: boolean; +} + +export interface LaunchGameReq { + productId: number; + executableId: number; +} + +export interface LaunchGameRsp { + result: LaunchGameRsp_Result; + reason: string; +} + +export enum LaunchGameRsp_Result { + InternalError = 0, + Success = 1, + UNRECOGNIZED = -1, +} + +export interface GameRuntimeReq { + launchGame?: LaunchGameReq | undefined; +} + +export interface GameRuntimeRsp { + launchGame?: LaunchGameRsp | undefined; +} + +export interface GetProductActionsReq { + productId: number; +} + +export interface ProductActions { + productId: number; + actions: ProductAction[]; +} + +export interface GetProductActionsRsp { + productActions?: ProductActions; +} + +export interface GetLocalProductDetailsReq { + productId: number; +} + +export interface LocalProductDetails { + productId: number; + currentBytesOnDisc: number; + installPath: string; + patchState: LocalProductDetails_PatchState; + installedDateSinceEpoch: number; + lastPlayedDateSinceEpoch: number; +} + +export enum LocalProductDetails_PatchState { + Undefined = 0, + FullyPatched = 1, + PatchRequired = 2, + UNRECOGNIZED = -1, +} + +export interface GetLocalProductDetailsRsp { + result: GetLocalProductDetailsRsp_Result; + productDetails?: LocalProductDetails; +} + +export enum GetLocalProductDetailsRsp_Result { + Undefined = 0, + Success = 1, + NoDataAvailable = 2, + UNRECOGNIZED = -1, +} + +export interface StartGameDownloadReq { + productId: number; + installationPath: string; + addons: number[]; + locales: string[]; + mainLocale: string; + acceptedLicensesIds: number[]; +} + +export interface StartGameDownloadRsp { + result: StartGameDownloadRsp_Result; + reason: string; +} + +export enum StartGameDownloadRsp_Result { + Undefined = 0, + Success = 1, + Aborted = 2, + FailedGenericError = 10, + FailedDownloadNotPermitted = 11, + FailedDownloadPermissionsNotAvailable = 12, + FailedOwnershipTokenNotAvailable = 13, + UNRECOGNIZED = -1, +} + +export interface UninstallProductReq { + productId: number; +} + +export interface UninstallProductRsp { + result: UninstallProductRsp_Result; +} + +export enum UninstallProductRsp_Result { + InternalError = 0, + Success = 1, + UNRECOGNIZED = -1, +} + +export interface PauseProductReq { + productId: number; +} + +export interface PauseProductRsp { + result: PauseProductRsp_Result; +} + +export enum PauseProductRsp_Result { + InternalError = 0, + Success = 1, + UNRECOGNIZED = -1, +} + +export interface ProductManagementReq { + getProductActions?: GetProductActionsReq | undefined; + getLocalProductDetails?: GetLocalProductDetailsReq | undefined; + startGameDownload?: StartGameDownloadReq | undefined; + uninstallProduct?: UninstallProductReq | undefined; + pauseProduct?: PauseProductReq | undefined; +} + +export interface ProductManagementRsp { + getProductActions?: GetProductActionsRsp | undefined; + getLocalProductDetails?: GetLocalProductDetailsRsp | undefined; + startGameDownload?: StartGameDownloadRsp | undefined; + uninstallProduct?: UninstallProductRsp | undefined; + pauseProduct?: PauseProductRsp | undefined; +} + +export interface ProductActionsUpdated { + productId: number; + actions: ProductAction[]; +} + +export interface ProductDownloadStarted { + productId: number; +} + +export interface ProductDownloadUpdated { + productId: number; + downloadedBytes: number; + totalBytes: number; + requiredBytes: number; + bytesPerSecond: number; +} + +export interface ProductDownloadCompleted { + productId: number; + result: ProductDownloadCompleted_Result; +} + +export enum ProductDownloadCompleted_Result { + Undefined = 0, + Completed = 1, + Paused = 2, + Cancelled = 3, + Failed = 4, + UNRECOGNIZED = -1, +} + +export interface ProductUninstallStarted { + productId: number; +} + +export interface ProductUninstallCompleted { + productId: number; + result: ProductUninstallCompleted_Result; +} + +export enum ProductUninstallCompleted_Result { + Undefined = 0, + Completed = 1, + Failed = 2, + UNRECOGNIZED = -1, +} + +export interface Req { + requestId: number; + initialize?: InitializeReq | undefined; + gameRunTime?: GameRuntimeReq | undefined; + productManagement?: ProductManagementReq | undefined; + linkAccount?: LinkAccountReq | undefined; +} + +export interface Rsp { + requestId: number; + initialize?: InitializeRsp | undefined; + gameRunTime?: GameRuntimeRsp | undefined; + productManagement?: ProductManagementRsp | undefined; + linkAccount?: LinkAccountRsp | undefined; +} + +export interface Push { + productActionsUpdated?: ProductActionsUpdated | undefined; + productDownloadStarted?: ProductDownloadStarted | undefined; + productDownloadUpdated?: ProductDownloadUpdated | undefined; + productDownloadCompleted?: ProductDownloadCompleted | undefined; + productUninstallStarted?: ProductUninstallStarted | undefined; + productUninstallCompleted?: ProductUninstallCompleted | undefined; +} + +export interface Upstream { + req?: Req; +} + +export interface Downstream { + rsp?: Rsp | undefined; + push?: Push | undefined; +} diff --git a/src/generated/proto_overlay/overlay.ts b/src/generated/proto_overlay/overlay.ts index 76d20b6..c9490a9 100644 --- a/src/generated/proto_overlay/overlay.ts +++ b/src/generated/proto_overlay/overlay.ts @@ -311,6 +311,12 @@ export interface StreamingHostSignalErrorReq { errorCode: number; } +export interface StreamingHostSDKEventReq { + severity: number; + message: string; + hostPeerId: string; +} + export interface ScreenshotReadyReq { isVulkanHDR: boolean; } @@ -385,6 +391,7 @@ export interface Req { streamingHostUpdateGuestRemainingTimeReq?: StreamingHostUpdateGuestRemainingTimeReq; streamingHostReadyReq?: StreamingHostReadyReq; streamingHostSignalErrorReq?: StreamingHostSignalErrorReq; + streamingHostSdkEventReq?: StreamingHostSDKEventReq; } export interface Rsp { diff --git a/src/generated/proto_wegame_service/wegame_service.ts b/src/generated/proto_wegame_service/wegame_service.ts index 8bd68d9..e84e152 100644 --- a/src/generated/proto_wegame_service/wegame_service.ts +++ b/src/generated/proto_wegame_service/wegame_service.ts @@ -101,6 +101,7 @@ export interface GetIngameItemCheckoutUrlReq { wegameProductId: number; ingameItemPackageId: number; urlRedirect: string; + zoneId: string; } export interface GetIngameItemCheckoutUrlRsp { diff --git a/test/file-parser.test.ts b/test/file-parser.test.ts index fb14355..f2f2ce5 100644 --- a/test/file-parser.test.ts +++ b/test/file-parser.test.ts @@ -85,11 +85,10 @@ describe('UbisoftFileParser', () => { bytesOnDisk: '2325238421', bytesToDownload: '1953149568', chunks: [ - { language: '', bytesOnDisk: '244440828', paddedBytesOnDisk: '244552956' }, - { language: '', bytesOnDisk: '168166654', paddedBytesOnDisk: '168243454' }, - { language: '', bytesOnDisk: '1912630939', paddedBytesOnDisk: '1913561755' }, + { language: '', bytesOnDisk: '244440828' }, + { language: '', bytesOnDisk: '168166654' }, + { language: '', bytesOnDisk: '1912630939' }, ], - paddedBytesOnDisk: '2326358165', languages: [ { code: 'cs-CZ' }, { code: 'de-DE' }, @@ -160,8 +159,6 @@ describe('UbisoftFileParser', () => { }, ], legacyInstaller: '', - isEncryptedDeprecated: false, - paddedSliceSizeDeprecated: 3147264, patchRequired: false, isCompressed: true, compressionMethod: 'CompressionMethod_Zstd',