com.beamable 5.0.1 → 5.1.0-PREVIEW.RC2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.attestation.p7m +0 -0
- package/CHANGELOG.md +24 -1
- package/Common/README.md +16 -3
- package/Common/Runtime/AgnosticAttribute.cs +2 -2
- package/Common/Runtime/Api/AliasHelper.cs +2 -2
- package/Common/Runtime/Api/Analytics/AnalyticsEventRequest.cs +2 -2
- package/Common/Runtime/Api/Analytics/AnalyticsService.cs +2 -2
- package/Common/Runtime/Api/Analytics/IBeamAnalyticsService.cs +2 -2
- package/Common/Runtime/Api/Analytics/Models/CoreEvent.cs +2 -2
- package/Common/Runtime/Api/Analytics/Models/IAnalyticsEvent.cs +2 -2
- package/Common/Runtime/Api/Analytics/Models/SampleCustomEvent.cs +2 -2
- package/Common/Runtime/Api/Announcements/AbsAnnouncementsApi.cs +2 -2
- package/Common/Runtime/Api/Announcements/IAnnouncementsApi.cs +2 -2
- package/Common/Runtime/Api/Auth/AuthApi.cs +2 -2
- package/Common/Runtime/Api/Auth/IAuthApi.cs +2 -2
- package/Common/Runtime/Api/Calendars/AbsCalendarApi.cs +2 -2
- package/Common/Runtime/Api/Calendars/ICalendarApi.cs +2 -2
- package/Common/Runtime/Api/Chat/ChatApi.cs +2 -2
- package/Common/Runtime/Api/Chat/IChatApi.cs +2 -2
- package/Common/Runtime/Api/CloudData/CloudDataApi.cs +2 -2
- package/Common/Runtime/Api/CloudData/ICloudDataApi.cs +2 -2
- package/Common/Runtime/Api/CometClientData.cs +2 -2
- package/Common/Runtime/Api/Commerce/ICommerceApi.cs +2 -2
- package/Common/Runtime/Api/Content/IContentApi.cs +2 -2
- package/Common/Runtime/Api/Events/AbsEventsApi.cs +23 -26
- package/Common/Runtime/Api/Events/IEventsApi.cs +2 -2
- package/Common/Runtime/Api/Groups/GroupsApi.cs +2 -2
- package/Common/Runtime/Api/Groups/IGroupsApi.cs +2 -2
- package/Common/Runtime/Api/IAccessToken.cs +2 -2
- package/Common/Runtime/Api/IBeamableFilesystemAccessor.cs +2 -2
- package/Common/Runtime/Api/IBeamableRequester.cs +2 -2
- package/Common/Runtime/Api/IConnectivityChecker.cs +2 -2
- package/Common/Runtime/Api/IHasBeamableRequester.cs +2 -2
- package/Common/Runtime/Api/IServiceRoutingStrategy.cs +2 -2
- package/Common/Runtime/Api/ISupportsGet.cs +2 -2
- package/Common/Runtime/Api/IUserContext.cs +2 -2
- package/Common/Runtime/Api/IUserDataCache.cs +2 -2
- package/Common/Runtime/Api/Inventory/IInventoryApi.cs +71 -4
- package/Common/Runtime/Api/Inventory/InventoryApi.cs +136 -37
- package/Common/Runtime/Api/Inventory/InventoryUpdateBuilder.cs +2 -2
- package/Common/Runtime/Api/Leaderboards/ILeaderboardApi.cs +2 -2
- package/Common/Runtime/Api/Leaderboards/LeaderboardApi.cs +2 -2
- package/Common/Runtime/Api/Lobbies/ILobbyApi.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Lobby.cs +2 -2
- package/Common/Runtime/Api/Lobbies/LobbyNotification.cs +2 -2
- package/Common/Runtime/Api/Lobbies/LobbyPlayer.cs +2 -2
- package/Common/Runtime/Api/Lobbies/LobbyRestriction.cs +2 -2
- package/Common/Runtime/Api/Lobbies/LobbyService.cs +2 -2
- package/Common/Runtime/Api/Lobbies/LobbyUtils.cs +2 -2
- package/Common/Runtime/Api/Lobbies/NotInLobby.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/AddTagsRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/CreateLobbyRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/JoinByPasscodeRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/JoinLobbyRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/LobbyQueryRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/LobbyQueryResponse.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/RemoveFromLobbyRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/RemoveTagsRequest.cs +2 -2
- package/Common/Runtime/Api/Lobbies/Requests/UpdateLobbyRequest.cs +2 -2
- package/Common/Runtime/Api/Mail/AbsMailApi.cs +2 -2
- package/Common/Runtime/Api/Mail/IMailApi.cs +2 -2
- package/Common/Runtime/Api/Notifications/INotificationService.cs +2 -2
- package/Common/Runtime/Api/Notifications/PrimitiveStringPayload.cs +2 -2
- package/Common/Runtime/Api/Parties/IPartyApi.cs +2 -2
- package/Common/Runtime/Api/Parties/NotInParty.cs +2 -2
- package/Common/Runtime/Api/Parties/Party.cs +2 -2
- package/Common/Runtime/Api/Parties/PartyNotifications.cs +2 -2
- package/Common/Runtime/Api/Parties/PartyRestriction.cs +2 -2
- package/Common/Runtime/Api/Parties/PartyService.cs +2 -2
- package/Common/Runtime/Api/Parties/Requests/CreatePartyRequest.cs +2 -2
- package/Common/Runtime/Api/Parties/Requests/PartyQueryResponse.cs +2 -2
- package/Common/Runtime/Api/Parties/Requests/PlayerRequest.cs +2 -2
- package/Common/Runtime/Api/Parties/Requests/UpdatePartyRequest.cs +2 -2
- package/Common/Runtime/Api/Payments/IPaymentsApi.cs +2 -2
- package/Common/Runtime/Api/Payments/PaymentsApi.cs +2 -2
- package/Common/Runtime/Api/Presence/IPresenceApi.cs +2 -2
- package/Common/Runtime/Api/Presence/PresenceService.cs +2 -2
- package/Common/Runtime/Api/Push/IPushApi.cs +2 -2
- package/Common/Runtime/Api/QueryBuilder.cs +2 -2
- package/Common/Runtime/Api/Realms/IAliasService.cs +2 -2
- package/Common/Runtime/Api/Realms/IRealmApi.cs +2 -2
- package/Common/Runtime/Api/Realms/RealmService.cs +2 -2
- package/Common/Runtime/Api/SignedRequesterHelper.cs +2 -2
- package/Common/Runtime/Api/Social/ISocialApi.cs +2 -2
- package/Common/Runtime/Api/Social/SocialApi.cs +2 -2
- package/Common/Runtime/Api/Stats/AbsStatsApi.cs +2 -2
- package/Common/Runtime/Api/Stats/IStatsApi.cs +2 -2
- package/Common/Runtime/Api/Stats/StatsAccessType.cs +2 -2
- package/Common/Runtime/Api/Stats/StatsApiHelper.cs +2 -2
- package/Common/Runtime/Api/Stats/StatsDomainType.cs +2 -2
- package/Common/Runtime/Api/Tournaments/ITournamentApi.cs +2 -2
- package/Common/Runtime/Api/Tournaments/TournamentApi.cs +2 -2
- package/Common/Runtime/BeamCli/CliContractTypeAttribute.cs +2 -2
- package/Common/Runtime/BeamCli/CliOtelData.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/CliLogMessage.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/CollectorStatus.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/Constants.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/AutoSnapshotActionType.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/AutoSnapshotType.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/ContentSnapshotType.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/ContentStatus.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/LocalContentManifest.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/LocalContentManifestEntry.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/ManifestAuthor.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/ManifestProjectData.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ContentService/TagStatus.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/EnvironmentVersionData.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/GenerateEnvOutput.cs +2 -2
- package/Common/Runtime/BeamCli/Contracts/ServiceInfo.cs +2 -2
- package/Common/Runtime/BeamCli/ErrorOutput.cs +2 -2
- package/Common/Runtime/BeamCli/IBeamCommand.cs +2 -2
- package/Common/Runtime/BeamCli/Reporting.cs +2 -2
- package/Common/Runtime/BeamCli/ServiceInfoHelper.cs +2 -2
- package/Common/Runtime/BeamGenerateSchemaAttribute.cs +2 -2
- package/Common/Runtime/BeamableColorUtil.cs +2 -2
- package/Common/Runtime/BeamableEnumExtensions.cs +2 -2
- package/Common/Runtime/BeamableTaskExtensions.cs +2 -2
- package/Common/Runtime/Collections/ConcurrentBag.cs +2 -2
- package/Common/Runtime/Collections/ConcurrentDictionary.cs +2 -2
- package/Common/Runtime/Constants/Constants.cs +3 -3
- package/Common/Runtime/Constants/Implementations/ArchiveConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ConfigConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ContentConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ContentManagerConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/CronConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/DockerConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/EnvironmentConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/LoginBaseConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/MigrationConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/NotificationConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/OtelConstants.cs +32 -2
- package/Common/Runtime/Constants/Implementations/PortalExtensionConstants.cs +18 -0
- package/Common/Runtime/{OpenApi/BeamServiceplan.gs.cs.meta → Constants/Implementations/PortalExtensionConstants.cs.meta} +1 -1
- package/Common/Runtime/Constants/Implementations/RequesterConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/SchedulesConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ServiceConstants.cs +9 -2
- package/Common/Runtime/Constants/Implementations/SpewConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/TestingToolConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ToolbarConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/ToolboxConstants.cs +2 -2
- package/Common/Runtime/Constants/Implementations/TooltipConstants.cs +2 -2
- package/Common/Runtime/Content/ClientContentSerializer.cs +13 -2
- package/Common/Runtime/Content/ClientManifest.cs +2 -2
- package/Common/Runtime/Content/ClientPermissions.cs +2 -2
- package/Common/Runtime/Content/ContentCorruptedException.cs +2 -2
- package/Common/Runtime/Content/ContentDataInfo.cs +2 -2
- package/Common/Runtime/Content/ContentDeserializationException.cs +2 -2
- package/Common/Runtime/Content/ContentFieldAttribute.cs +2 -2
- package/Common/Runtime/Content/ContentFilterType.cs +2 -2
- package/Common/Runtime/Content/ContentNotFoundException.cs +2 -2
- package/Common/Runtime/Content/ContentObject.cs +47 -8
- package/Common/Runtime/Content/ContentQuery.cs +2 -2
- package/Common/Runtime/Content/ContentQueryExtensions.cs +2 -2
- package/Common/Runtime/Content/ContentRef.cs +2 -2
- package/Common/Runtime/Content/ContentSerializer.cs +2 -2
- package/Common/Runtime/Content/ContentTypeAttribute.cs +2 -2
- package/Common/Runtime/Content/ContentTypeReflectionCache.cs +2 -2
- package/Common/Runtime/Content/ContentVisibility.cs +2 -2
- package/Common/Runtime/Content/Federation.cs +2 -2
- package/Common/Runtime/Content/IContentObject.cs +2 -2
- package/Common/Runtime/Content/IContentService.cs +2 -2
- package/Common/Runtime/Content/IIgnoreSerializationCallbacks.cs +2 -2
- package/Common/Runtime/Content/IgnoreContentFieldAttribute.cs +2 -2
- package/Common/Runtime/Content/Optionals.cs +2 -2
- package/Common/Runtime/Content/PropertyAttributes/FilePathSelectorAttribute.cs +2 -2
- package/Common/Runtime/Content/PropertyAttributes/HideUnlessServerPackageInstalled.cs +2 -2
- package/Common/Runtime/Content/PropertyAttributes/ReadonlyIfAttribute.cs +2 -2
- package/Common/Runtime/Content/PropertyAttributes/ShowOnlyAttribute.cs +2 -2
- package/Common/Runtime/Content/RenderAsRefAttribute.cs +2 -2
- package/Common/Runtime/Content/SerializableDictionary.cs +2 -2
- package/Common/Runtime/Content/Utility/DateUtility.cs +2 -2
- package/Common/Runtime/Content/Validation/AggregateContentValidationException.cs +2 -2
- package/Common/Runtime/Content/Validation/CannotBeBlank.cs +2 -2
- package/Common/Runtime/Content/Validation/CannotBeEmpty.cs +2 -2
- package/Common/Runtime/Content/Validation/ContentValidationException.cs +2 -2
- package/Common/Runtime/Content/Validation/FederationMustBeValid.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeComparatorString.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeCurrency.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeCurrencyOrItem.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeDateString.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeItem.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeLeaderboard.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeNonDefault.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeNonNegative.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeOneOf.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBePositive.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeSlugString.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeTimeSpanDuration.cs +2 -2
- package/Common/Runtime/Content/Validation/MustBeValidCron.cs +2 -2
- package/Common/Runtime/Content/Validation/MustContain.cs +2 -2
- package/Common/Runtime/Content/Validation/MustReferenceContent.cs +2 -2
- package/Common/Runtime/Content/Validation/RouteParametersMustBeValid.cs +2 -2
- package/Common/Runtime/Content/Validation/ServiceRouteMustBeValid.cs +2 -2
- package/Common/Runtime/Content/Validation/TimeSpanDisplayAttribute.cs +2 -2
- package/Common/Runtime/Content/Validation/ValidationAttribute.cs +2 -2
- package/Common/Runtime/Content/Validation/ValidationContext.cs +2 -2
- package/Common/Runtime/CronExpression/CronLocale.cs +2 -2
- package/Common/Runtime/CronExpression/ErrorData.cs +2 -2
- package/Common/Runtime/CronExpression/ExpressionParser.cs +2 -2
- package/Common/Runtime/CronExpression/Options.cs +2 -2
- package/Common/Runtime/Debug.cs +2 -2
- package/Common/Runtime/DefaultQuery.cs +2 -2
- package/Common/Runtime/Dependencies/DependencyBuilder.cs +2 -2
- package/Common/Runtime/Dependencies/DependencyProvider.cs +12 -2
- package/Common/Runtime/Dependencies/Exceptions.cs +2 -2
- package/Common/Runtime/Dependencies/IDependencyList.cs +2 -2
- package/Common/Runtime/Dependencies/IDependencyNameProvider.cs +2 -2
- package/Common/Runtime/Dependencies/RegisterBeamableDependenciesAttribute.cs +2 -2
- package/Common/Runtime/Dependencies/ServiceStorage.cs +2 -2
- package/Common/Runtime/Dependencies/Utils.cs +2 -2
- package/Common/Runtime/DocUtils.cs +2 -2
- package/Common/Runtime/Environment/PackageVersion.cs +2 -2
- package/Common/Runtime/Federation/FederatedGameServer.cs +2 -2
- package/Common/Runtime/Federation/FederatedInventory.cs +2 -2
- package/Common/Runtime/Federation/FederatedLogin.cs +2 -2
- package/Common/Runtime/Federation/FederatedPlayerInit.cs +2 -2
- package/Common/Runtime/Federation/Federation.cs +2 -2
- package/Common/Runtime/IRuntimeConfigProvider.cs +2 -2
- package/Common/Runtime/ISearchableElement.cs +2 -2
- package/Common/Runtime/JsonSerializable/DeleteStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/DiffStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/JsonData.cs +2 -2
- package/Common/Runtime/JsonSerializable/JsonSaveStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/JsonSerializable.cs +2 -2
- package/Common/Runtime/JsonSerializable/LoadStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/MessagePackStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/SaveStream.cs +2 -2
- package/Common/Runtime/JsonSerializable/TypeLookupFactory.cs +2 -2
- package/Common/Runtime/Modules/Announcements/AnnouncementApiContent.cs +2 -2
- package/Common/Runtime/Modules/Announcements/AnnouncementContent.cs +2 -2
- package/Common/Runtime/Modules/Announcements/AnnouncementRef.cs +2 -2
- package/Common/Runtime/Modules/Calendars/CalendarContent.cs +2 -2
- package/Common/Runtime/Modules/Calendars/CalendarRef.cs +2 -2
- package/Common/Runtime/Modules/Groups/GroupDonationContentRef.cs +2 -2
- package/Common/Runtime/Modules/Groups/GroupDonationsContent.cs +2 -2
- package/Common/Runtime/Modules/Inventory/CurrencyContent.cs +2 -2
- package/Common/Runtime/Modules/Inventory/CurrencyRef.cs +2 -2
- package/Common/Runtime/Modules/Inventory/ItemContent.cs +2 -2
- package/Common/Runtime/Modules/Inventory/ItemRef.cs +2 -2
- package/Common/Runtime/Modules/Inventory/VipContent.cs +2 -2
- package/Common/Runtime/Modules/Leaderboards/LeaderboardContent.cs +2 -2
- package/Common/Runtime/Modules/Leaderboards/LeaderboardRef.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/ApiContent.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/EmailContent.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/EventContent.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/PlayerReward.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/ScheduleDefinition.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/ScheduleExtensions.cs +2 -2
- package/Common/Runtime/Modules/SharedContent/SimGameType.cs +2 -2
- package/Common/Runtime/Modules/Shop/ListingContent.cs +2 -2
- package/Common/Runtime/Modules/Shop/ListingLink.cs +2 -2
- package/Common/Runtime/Modules/Shop/ListingRef.cs +2 -2
- package/Common/Runtime/Modules/Shop/SKUContent.cs +2 -2
- package/Common/Runtime/Modules/Shop/SKURef.cs +2 -2
- package/Common/Runtime/Modules/Shop/StoreContent.cs +2 -2
- package/Common/Runtime/Modules/Shop/StoreRef.cs +2 -2
- package/Common/Runtime/Modules/Steam/ISteamService.cs +2 -2
- package/Common/Runtime/Modules/Tournaments/TournamentColorConstants.cs +2 -2
- package/Common/Runtime/Modules/Tournaments/TournamentContent.cs +2 -2
- package/Common/Runtime/ObjectExtensions.cs +2 -2
- package/Common/Runtime/OpenApi/AccountsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AccountsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AccountsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AnnouncementsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AnnouncementsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AnnouncementsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AuthBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/AuthBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamAuth.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamAuthCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamBeamo.gs.cs +136 -38
- package/Common/Runtime/OpenApi/BeamBeamoCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamBeamootel.gs.cs +32 -8
- package/Common/Runtime/OpenApi/BeamBeamootelCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamBilling.gs.cs +45 -0
- package/Common/Runtime/OpenApi/{BeamAdmin.gs.cs.meta → BeamBilling.gs.cs.meta} +1 -1
- package/Common/Runtime/OpenApi/BeamBillingCommon.gs.cs +45 -0
- package/Common/Runtime/OpenApi/{BeamServiceplanCommon.gs.cs.meta → BeamBillingCommon.gs.cs.meta} +1 -1
- package/Common/Runtime/OpenApi/BeamCustomer.gs.cs +198 -124
- package/Common/Runtime/OpenApi/BeamCustomerCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamLobby.gs.cs +4 -4
- package/Common/Runtime/OpenApi/BeamLobbyCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamMailbox.gs.cs +6 -2
- package/Common/Runtime/OpenApi/BeamMailboxCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamMatchmaking.gs.cs +4 -4
- package/Common/Runtime/OpenApi/BeamMatchmakingCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamParty.gs.cs +6 -6
- package/Common/Runtime/OpenApi/BeamPartyCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayer.gs.cs +20 -8
- package/Common/Runtime/OpenApi/BeamPlayerCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayerlobby.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayerlobbyCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayerparty.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayerpartyCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayersession.gs.cs +110 -0
- package/Common/Runtime/OpenApi/{BeamAdminCommon.gs.cs.meta → BeamPlayersession.gs.cs.meta} +1 -1
- package/Common/Runtime/OpenApi/BeamPlayersessionCommon.gs.cs +45 -0
- package/Common/Runtime/OpenApi/BeamPlayersessionCommon.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamPlayerstats.gs.cs +159 -0
- package/Common/Runtime/OpenApi/BeamPlayerstats.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/{BeamServiceplanCommon.gs.cs → BeamPlayerstatsCommon.gs.cs} +6 -6
- package/Common/Runtime/OpenApi/BeamPlayerstatsCommon.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamPlayerticket.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPlayerticketCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamPresence.gs.cs +6 -2
- package/Common/Runtime/OpenApi/BeamPresenceCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamRealmsecrets.gs.cs +255 -0
- package/Common/Runtime/OpenApi/BeamRealmsecrets.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamRealmsecretsCommon.gs.cs +45 -0
- package/Common/Runtime/OpenApi/BeamRealmsecretsCommon.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamScheduler.gs.cs +90 -42
- package/Common/Runtime/OpenApi/BeamSchedulerCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamSession.gs.cs +114 -0
- package/Common/Runtime/OpenApi/BeamSession.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamSessionCommon.gs.cs +45 -0
- package/Common/Runtime/OpenApi/BeamSessionCommon.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamStats.gs.cs +308 -0
- package/Common/Runtime/OpenApi/BeamStats.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/{BeamAdminCommon.gs.cs → BeamStatsCommon.gs.cs} +6 -6
- package/Common/Runtime/OpenApi/BeamStatsCommon.gs.cs.meta +11 -0
- package/Common/Runtime/OpenApi/BeamoBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/BeamoBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CalendarsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CalendarsObjectCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CloudsavingBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CloudsavingBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CommerceBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CommerceBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/CommerceObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/ContentBasic.gs.cs +21 -2
- package/Common/Runtime/OpenApi/ContentBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/Event-playersObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/Event-playersObjectCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/EventsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/EventsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/EventsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/Group-usersObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/Group-usersObjectCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/GroupsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/GroupsObjectCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/InventoryBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/InventoryBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/InventoryObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/LeaderboardsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/LeaderboardsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/LeaderboardsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/MailBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/MailBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/MailObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/Models.gs.cs +1489 -410
- package/Common/Runtime/OpenApi/NotificationBasic.gs.cs +21 -2
- package/Common/Runtime/OpenApi/NotificationBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/PaymentsBasic.gs.cs +160 -2
- package/Common/Runtime/OpenApi/PaymentsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/PaymentsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/PushBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/PushBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/RealmsBasic.gs.cs +12 -12
- package/Common/Runtime/OpenApi/RealmsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/SessionBasic.gs.cs +16 -16
- package/Common/Runtime/OpenApi/SessionBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/SocialBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/SocialBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/StatsBasic.gs.cs +9 -9
- package/Common/Runtime/OpenApi/StatsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/StatsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/TournamentsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/TournamentsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApi/TournamentsObject.gs.cs +2 -2
- package/Common/Runtime/OpenApi/TrialsBasic.gs.cs +2 -2
- package/Common/Runtime/OpenApi/TrialsBasicCommon.gs.cs +2 -2
- package/Common/Runtime/OpenApiExtensions/BeamoExtensions.cs +2 -2
- package/Common/Runtime/OpenApiExtensions/LegacyConverterExtensions.cs +189 -2
- package/Common/Runtime/OpenApiSystem.cs +2 -2
- package/Common/Runtime/Player/Lazy.cs +2 -2
- package/Common/Runtime/Player/Observables.cs +2 -2
- package/Common/Runtime/Pooling/ClassPool.cs +2 -2
- package/Common/Runtime/Pooling/StringBuilderPool.cs +2 -2
- package/Common/Runtime/Promise.cs +66 -43
- package/Common/Runtime/ReflectionCache/BeamContextSystemAttribute.cs +2 -2
- package/Common/Runtime/ReflectionCache/INamingAttribute.cs +2 -2
- package/Common/Runtime/ReflectionCache/IReflectionAttribute.cs +2 -2
- package/Common/Runtime/ReflectionCache/PreserveAttribute.cs +2 -2
- package/Common/Runtime/ReflectionCache/ReflectionCache.cs +2 -2
- package/Common/Runtime/ReflectionCache/ReflectionCache_Attributes.cs +2 -2
- package/Common/Runtime/ReflectionCache/ReflectionCache_BaseTypes.cs +2 -2
- package/Common/Runtime/ReflectionCache/ReflectionCache_SignatureMatching.cs +2 -2
- package/Common/Runtime/Scheduler/BeamScheduler.cs +2 -2
- package/Common/Runtime/Scheduler/Cron.cs +2 -2
- package/Common/Runtime/Scheduler/CronValidation.cs +2 -2
- package/Common/Runtime/Semantics/BeamAccountId.cs +91 -0
- package/Common/Runtime/Semantics/BeamAccountId.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamCid.cs +89 -0
- package/Common/Runtime/Semantics/BeamCid.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamContentId.cs +55 -0
- package/Common/Runtime/Semantics/BeamContentId.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamContentManifestId.cs +49 -0
- package/Common/Runtime/Semantics/BeamContentManifestId.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamGamerTag.cs +90 -0
- package/Common/Runtime/Semantics/BeamGamerTag.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamPid.cs +49 -0
- package/Common/Runtime/Semantics/BeamPid.cs.meta +11 -0
- package/Common/Runtime/Semantics/BeamStats.cs +62 -0
- package/Common/Runtime/Semantics/BeamStats.cs.meta +11 -0
- package/Common/Runtime/Semantics/IBeamSemanticType.cs +16 -0
- package/Common/Runtime/Semantics/IBeamSemanticType.cs.meta +11 -0
- package/Common/Runtime/Semantics/ServiceName.cs +25 -4
- package/Common/Runtime/SmallerJSON/IRawJsonProvider.cs +2 -2
- package/Common/Runtime/SmallerJSON/SmallerJSON.ArrayDict.cs +2 -2
- package/Common/Runtime/SmallerJSON/SmallerJSON.FromString.cs +2 -2
- package/Common/Runtime/SmallerJSON/SmallerJSON.cs +226 -2
- package/Common/Runtime/Spew/Logger.cs +2 -2
- package/Common/Runtime/Spew/SpewLoggerAttribute.cs +2 -2
- package/Common/Runtime/Trie.cs +2 -2
- package/Common/Runtime/TypeExtensions.cs +2 -2
- package/Common/Runtime/Util/BeamAssemblyVersionUtil.cs +2 -2
- package/Common/Runtime/Util/BeamFileUtil.cs +2 -2
- package/Common/Runtime/Util/DocsPageHelper.cs +2 -2
- package/Common/Runtime/Util/NaturalStringComparer.cs +2 -2
- package/Editor/BeamCli/BeamCliUtil.cs +165 -18
- package/Editor/BeamCli/BeamCommand.cs +0 -6
- package/Editor/BeamCli/BeamWebCommand.cs +38 -8
- package/Editor/BeamCli/Commands/Beam.cs +7 -0
- package/Editor/BeamCli/Commands/BeamBeamableTypesSchema.cs +17 -0
- package/Editor/BeamCli/Commands/BeamBeamableTypesSchema.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamComponentExtensionOption.cs +13 -0
- package/Editor/BeamCli/Commands/BeamComponentExtensionOption.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamComponentSelectorOption.cs +13 -0
- package/Editor/BeamCli/Commands/BeamComponentSelectorOption.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentFieldEntry.cs +14 -0
- package/Editor/BeamCli/Commands/BeamContentFieldEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistory.cs +97 -0
- package/Editor/BeamCli/Commands/BeamContentHistory.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelist.cs +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelist.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelistEntry.cs +23 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelistEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelistPage.cs +12 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryChangelistPage.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryCommandEvent.cs +16 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryCommandEvent.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryEntriesPage.cs +15 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryEntriesPage.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryEntry.cs +16 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryRestoreCommandOutput.cs +12 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryRestoreCommandOutput.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryRestoreContent.cs +82 -0
- package/Editor/BeamCli/Commands/BeamContentHistoryRestoreContent.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncChangelist.cs +71 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncChangelist.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncChangelistCommandOutput.cs +12 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncChangelistCommandOutput.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncContent.cs +82 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncContent.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncContentCommandOutput.cs +12 -0
- package/Editor/BeamCli/Commands/BeamContentHistorySyncContentCommandOutput.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamContentSync.cs +7 -0
- package/Editor/BeamCli/Commands/BeamContentTypeEntry.cs +18 -0
- package/Editor/BeamCli/Commands/BeamContentTypeEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamDeployablePlan.cs +2 -0
- package/Editor/BeamCli/Commands/BeamDeploymentDiffSummary.cs +3 -0
- package/Editor/BeamCli/Commands/BeamDeploymentPlan.cs +7 -0
- package/Editor/BeamCli/Commands/BeamDeploymentRelease.cs +7 -0
- package/Editor/BeamCli/Commands/BeamFederationMethodEntry.cs +15 -0
- package/Editor/BeamCli/Commands/BeamFederationMethodEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamFederationMethodParam.cs +13 -0
- package/Editor/BeamCli/Commands/BeamFederationMethodParam.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamFederationTypeEntry.cs +17 -0
- package/Editor/BeamCli/Commands/BeamFederationTypeEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamGameWithRealms.cs +14 -0
- package/Editor/BeamCli/Commands/BeamGameWithRealms.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamGenerateSkillDocs.cs +57 -0
- package/Editor/BeamCli/Commands/BeamGenerateSkillDocs.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamGenerateSkillDocsCommandResult.cs +12 -0
- package/Editor/BeamCli/Commands/BeamGenerateSkillDocsCommandResult.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamGenerateTypeSchema.cs +64 -0
- package/Editor/BeamCli/Commands/BeamGenerateTypeSchema.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamHostServiceDescriptor.cs +1 -0
- package/Editor/BeamCli/Commands/BeamInitGetRealms.cs +73 -0
- package/Editor/BeamCli/Commands/BeamInitGetRealms.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamInitGetRealmsResult.cs +12 -0
- package/Editor/BeamCli/Commands/BeamInitGetRealmsResult.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamInstallAISkillsCommandResult.cs +17 -0
- package/Editor/BeamCli/Commands/BeamInstallAISkillsCommandResult.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamInstallAiSkill.cs +85 -0
- package/Editor/BeamCli/Commands/BeamInstallAiSkill.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamListMountSitesCommandResults.cs +12 -0
- package/Editor/BeamCli/Commands/BeamListMountSitesCommandResults.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamListReplacementTypeCommandOutput.cs +12 -0
- package/Editor/BeamCli/Commands/BeamListReplacementTypeCommandOutput.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamMcpSetup.cs +58 -0
- package/Editor/BeamCli/Commands/BeamMcpSetup.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamMcpSetupCommandResult.cs +12 -0
- package/Editor/BeamCli/Commands/BeamMcpSetupCommandResult.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamMountSiteConfig.cs +14 -0
- package/Editor/BeamCli/Commands/BeamMountSiteConfig.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamMountSiteSelector.cs +13 -0
- package/Editor/BeamCli/Commands/BeamMountSiteSelector.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPageExtensionOption.cs +13 -0
- package/Editor/BeamCli/Commands/BeamPageExtensionOption.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionAddMicroservice.cs +55 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionAddMicroservice.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionFileUploadInfo.cs +16 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionFileUploadInfo.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionListExtensionOptions.cs +51 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionListExtensionOptions.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionListMountSites.cs +51 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionListMountSites.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionOptionsResult.cs +13 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionOptionsResult.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionPlanFileReference.cs +14 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionPlanFileReference.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionPlanReference.cs +16 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionPlanReference.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionSetConfig.cs +63 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionSetConfig.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionUploadInfo.cs +15 -0
- package/Editor/BeamCli/Commands/BeamPortalExtensionUploadInfo.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamProjectAddReplacementType.cs +81 -0
- package/Editor/BeamCli/Commands/BeamProjectAddReplacementType.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamProjectBuild.cs +7 -0
- package/Editor/BeamCli/Commands/BeamProjectGenerateClientOapi.cs +14 -0
- package/Editor/BeamCli/Commands/BeamProjectListReplacementType.cs +58 -0
- package/Editor/BeamCli/Commands/BeamProjectListReplacementType.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamProjectNewPortalExtension.cs +121 -0
- package/Editor/BeamCli/Commands/BeamProjectNewPortalExtension.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamProjectRemoveReplacementType.cs +60 -0
- package/Editor/BeamCli/Commands/BeamProjectRemoveReplacementType.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamRealmOption.cs +16 -0
- package/Editor/BeamCli/Commands/BeamRealmOption.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamRemotePortalConfiguration.cs +12 -0
- package/Editor/BeamCli/Commands/BeamRemotePortalConfiguration.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamRemotePortalExtensionDescriptor.cs +15 -0
- package/Editor/BeamCli/Commands/BeamRemotePortalExtensionDescriptor.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamReplacementTypeInfo.cs +15 -0
- package/Editor/BeamCli/Commands/BeamReplacementTypeInfo.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamServiceInstance.cs +1 -0
- package/Editor/BeamCli/Commands/BeamSetPortalExtensionConfigCommandResults.cs +11 -0
- package/Editor/BeamCli/Commands/BeamSetPortalExtensionConfigCommandResults.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamUnrealTypeMappingEntry.cs +14 -0
- package/Editor/BeamCli/Commands/BeamUnrealTypeMappingEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamUtilityMemberEntry.cs +16 -0
- package/Editor/BeamCli/Commands/BeamUtilityMemberEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamUtilityMethodEntry.cs +16 -0
- package/Editor/BeamCli/Commands/BeamUtilityMethodEntry.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamUtilityParam.cs +13 -0
- package/Editor/BeamCli/Commands/BeamUtilityParam.cs.meta +11 -0
- package/Editor/BeamCli/Commands/BeamUtilityTypeEntry.cs +19 -0
- package/Editor/BeamCli/Commands/BeamUtilityTypeEntry.cs.meta +11 -0
- package/Editor/BeamCli/UI/LogUtil/LogViewUtil.cs +2 -0
- package/Editor/Config/ConsoleConfiguration.asset +5 -1
- package/Editor/ContentService/CliContentService.cs +125 -9
- package/Editor/LibraryService.cs +25 -2
- package/Editor/Modules/Content/DefaultAssets~/currency/icon.png +0 -0
- package/Editor/Modules/Content/UI/ContentObjectEditor.cs +3 -2
- package/Editor/Server/MicroserviceConfiguration.cs +3 -0
- package/Editor/Server/UI/PublishWindow/UsamPublishWindow.cs +5 -1
- package/Editor/Server/Usam/UsamService_GenerateClient.cs +6 -1
- package/Editor/Toolbar/MenuItems/OpenToolboxWindowMenuItem.asset +1 -1
- package/Editor/UI/AccountWindow/AccountWindow_SignedIn.cs +1 -1
- package/Editor/UI/ContentWindow/ContentWindow.cs +8 -1
- package/Editor/UI/ContentWindow/ContentWindow_ContentActions.cs +50 -9
- package/Editor/UI/ContentWindow/ContentWindow_Header.cs +17 -6
- package/Editor/UI/ContentWindow/ContentWindow_ItemsPanel.cs +3 -0
- package/Editor/UI/LibraryWindow/BeamLibraryWindow.cs +2 -2
- package/Editor/UI/LibraryWindow/BeamLibraryWindow_Main.cs +0 -21
- package/Editor/UI/LibraryWindow/BeamLibraryWindow_Samples.cs +98 -38
- package/Editor/UI/McpMenuItems.cs +47 -0
- package/Editor/UI/McpMenuItems.cs.meta +11 -0
- package/Runtime/Beam.cs +2 -0
- package/Runtime/BeamContext.cs +9 -2
- package/Runtime/Core/Platform/SDK/Events/EventsService.cs +8 -2
- package/Runtime/Core/Platform/SDK/Inventory/InventoryService.cs +7 -3
- package/Runtime/Environment/Resources/env-default.json +3 -3
- package/Runtime/Environment/Resources/versions-default.json +1 -1
- package/Runtime/Modules/Console/BeamableAdminConsole.cs +696 -0
- package/Runtime/Modules/Console/BeamableAdminConsole.cs.meta +3 -0
- package/Runtime/Modules/Console/ConsoleConfiguration.cs +5 -3
- package/Runtime/Modules/Console/ConsoleFlow.cs +3 -0
- package/Runtime/Modules/Content/ContentConfiguration.cs +11 -1
- package/Runtime/Modules/Content/ContentParameterProvider.cs +2 -0
- package/Runtime/Modules/Content/ContentService.cs +13 -4
- package/Runtime/Server/MicroserviceClient.cs +5 -2
- package/Runtime/UI/Lightbeam/LightBeam.cs +18 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/BeamLogo.PNG +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/BeamLogo.PNG.meta +325 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/Bg.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/Bg.png.meta +143 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/BtBase.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/BtBase.png.meta +143 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/IconInfo.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/IconInfo.png.meta +143 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/Icon_Link.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/Icon_Link.png.meta +169 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/UIBase.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/UIBase.png.meta +143 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/UIBaseWhite.png +0 -0
- package/Runtime/UI/Lightbeam/Sprites_v1/UIBaseWhite.png.meta +143 -0
- package/Runtime/UI/Lightbeam/Sprites_v1.meta +8 -0
- package/Runtime/Unity.Beamable.asmdef +2 -1
- package/Samples~/LightBeamSamples/AccountManager/AccountExampleConfig.cs +1 -1
- package/Samples~/LightBeamSamples/AccountManager/AccountManager.cs +7 -2
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/{AccountDetailsBehaviour → AccountDetailsPage}/AccountDetails.prefab +148 -214
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/{AccountDetailsBehaviour/AccountDetailsBehaviour.cs → AccountDetailsPage/AccountDetailsPage.cs} +8 -2
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/AccountDisplayBehaviour/AccountDisplay.prefab +551 -76
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/AccountSwitchPage/AccountSwitchPage.prefab +324 -88
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/HomePage/HomePage.cs +7 -2
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/HomePage/HomePage.prefab +469 -280
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/RecoverEmailPage/RecoverAccountPage.prefab +183 -110
- package/Samples~/LightBeamSamples/AccountManager/Prefabs/RegisterEmailPage/RegisterEmailPage.prefab +157 -84
- package/Samples~/LightBeamSamples/AccountManager/Sample_AccountManager.unity +1913 -24
- package/Samples~/LightBeamSamples/CloudSaving/CloudSavingManager.cs +4 -0
- package/Samples~/LightBeamSamples/CloudSaving/Prefabs/BytePage/BytePage.prefab +1699 -423
- package/Samples~/LightBeamSamples/CloudSaving/Prefabs/HomePage/HomePage.cs +4 -1
- package/Samples~/LightBeamSamples/CloudSaving/Prefabs/HomePage/HomePage.prefab +740 -342
- package/Samples~/LightBeamSamples/CloudSaving/Prefabs/JsonPage/JsonPage.prefab +3448 -1303
- package/Samples~/LightBeamSamples/CloudSaving/Prefabs/StringPage/StringPage.prefab +168 -184
- package/Samples~/LightBeamSamples/CloudSaving/Sample_CloudSaving.unity +1387 -30
- package/Samples~/LightBeamSamples/FriendsManager/FriendsManager.cs +4 -0
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/BlockedDisplay/BlockedDisplay.prefab +71 -29
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/FriendDisplay/FriendDisplay.prefab +84 -31
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/HomePage/HomePage.prefab +446 -182
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/PlayerFriendsDisplay/PlayerDisplay.prefab +349 -127
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/ReceivedInvitesDisplay/ReceivedInviteDisplay.prefab +89 -36
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/SelectorButton.prefab +16 -12
- package/Samples~/LightBeamSamples/FriendsManager/Prefabs/SentInvitesDisplay/SentInviteDisplay.prefab +81 -30
- package/Samples~/LightBeamSamples/FriendsManager/Sample_FriendsManager.unity +2113 -41
- package/Samples~/LightBeamSamples/Inventory/InventoryManager.cs +4 -0
- package/Samples~/LightBeamSamples/Inventory/Prefabs/CurrencyDisplay/CurrencyDisplay.prefab +180 -29
- package/Samples~/LightBeamSamples/Inventory/Prefabs/CurrencyDisplay/CurrencyDisplayBehaviour.cs +7 -2
- package/Samples~/LightBeamSamples/Inventory/Prefabs/CurrencyInfoPage/CurrencyInfoBehaviour.cs +7 -2
- package/Samples~/LightBeamSamples/Inventory/Prefabs/CurrencyInfoPage/CurrencyInfoDisplay.prefab +434 -97
- package/Samples~/LightBeamSamples/Inventory/Prefabs/HomePage/HomePage.prefab +1300 -279
- package/Samples~/LightBeamSamples/Inventory/Prefabs/ItemDisplay/ItemDisplay.prefab +182 -62
- package/Samples~/LightBeamSamples/Inventory/Prefabs/ItemDisplay/ItemDisplayBehaviour.cs +7 -2
- package/Samples~/LightBeamSamples/Inventory/Prefabs/ItemInfoPage/ItemInfoPage.cs +2 -2
- package/Samples~/LightBeamSamples/Inventory/Prefabs/ItemInfoPage/ItemInfoPage.prefab +240 -105
- package/Samples~/LightBeamSamples/Inventory/Prefabs/PropertyDisplay/PropertyDisplay.prefab +16 -13
- package/Samples~/LightBeamSamples/Inventory/Sample_InventoryManager.unity +1865 -41
- package/Samples~/LightBeamSamples/LobbyManager/LobbyManager.cs +4 -0
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/CreateLobbyDisplay/CreateLobbyDisplay.prefab +261 -268
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/FindLobbyDisplay/FindLobbyDisplay.prefab +44 -64
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/HomePage/HomePage.prefab +2337 -185
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/JoinLobbyDisplay/JoinLobbyDisplay.prefab +221 -233
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/LobbyDetailsDisplay/LobbyDetailsDisplay.prefab +273 -440
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/LobbyDisplay/LobbyDisplay.prefab +24 -47
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/PlayerDisplay/PlayerIdDisplay.prefab +18 -14
- package/Samples~/LightBeamSamples/LobbyManager/Prefabs/PlayerLobby/PlayerLobby.prefab +234 -238
- package/Samples~/LightBeamSamples/LobbyManager/Sample_LobbyManager.unity +1567 -41
- package/Samples~/LightBeamSamples/LootBox/Prefabs/LootBoxPage/LootBoxPage.prefab +19 -186
- package/Samples~/LightBeamSamples/LootBox/Sample_LootBox.unity +651 -49
- package/Samples~/LightBeamSamples/LootBox/Shared/LootboxConstants.cs +1 -1
- package/Samples~/LightBeamSamples/SceneLoader/Editor/LightBeamBuilds.cs +16 -6
- package/Tests/Runtime/Beamable/Environment/PackageVersionTests/ImplicitConversionTest.cs +2 -2
- package/Tests/Runtime/Beamable/Platform/Inventory/InventoryServiceTests/UpdateTests.cs +4 -2
- package/Tests/Runtime/Beamable/Player/Inventory/GetItemTests.cs +16 -9
- package/package.json +8 -15
- package/Common/Runtime/OpenApi/BeamAdmin.gs.cs +0 -77
- package/Common/Runtime/OpenApi/BeamServiceplan.gs.cs +0 -96
- package/Editor/ContentService/ContentUtils.cs +0 -79
- package/Editor/ContentService/ContentUtils.cs.meta +0 -11
- /package/Samples~/LightBeamSamples/AccountManager/Prefabs/{AccountDetailsBehaviour → AccountDetailsPage}/AccountDetails.prefab.meta +0 -0
- /package/Samples~/LightBeamSamples/AccountManager/Prefabs/{AccountDetailsBehaviour/AccountDetailsBehaviour.cs.meta → AccountDetailsPage/AccountDetailsPage.cs.meta} +0 -0
- /package/Samples~/LightBeamSamples/AccountManager/Prefabs/{AccountDetailsBehaviour.meta → AccountDetailsPage.meta} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
* Simplified fork of MiniJSON optimized to minimize heap allocations
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
* Simplified fork of MiniJSON optimized to minimize heap allocations
|
|
@@ -80,6 +80,35 @@ namespace Beamable.Serialization.SmallerJSON
|
|
|
80
80
|
return obj;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
|
|
84
|
+
/// <summary>
|
|
85
|
+
/// Deserialize JSON into a concrete type. Unlike Unity JsonUtility, this supports
|
|
86
|
+
/// custom semantic wrapper types (ex: types implementing IBeamSemanticType<T>)
|
|
87
|
+
/// even when JSON contains only the primitive token (string/number).
|
|
88
|
+
/// </summary>
|
|
89
|
+
public static T Deserialize<T>(string json)
|
|
90
|
+
{
|
|
91
|
+
return (T)Deserialize(json, typeof(T));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/// <summary>
|
|
95
|
+
/// Deserialize JSON into a concrete type (runtime type overload).
|
|
96
|
+
/// </summary>
|
|
97
|
+
public static object Deserialize(string json, Type targetType)
|
|
98
|
+
{
|
|
99
|
+
if (json == null) return null;
|
|
100
|
+
|
|
101
|
+
// First parse into SmallerJSON's object model (ArrayDict/List/primitives).
|
|
102
|
+
object root;
|
|
103
|
+
using (var parser = new StringBasedParser(json))
|
|
104
|
+
{
|
|
105
|
+
root = parser.ParseValue();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Then materialize into the requested type.
|
|
109
|
+
return ObjectMapper.ConvertToType(root, targetType);
|
|
110
|
+
}
|
|
111
|
+
|
|
83
112
|
|
|
84
113
|
public static bool IsValidJson(string strInput)
|
|
85
114
|
{
|
|
@@ -1052,5 +1081,200 @@ namespace Beamable.Serialization.SmallerJSON
|
|
|
1052
1081
|
}
|
|
1053
1082
|
}
|
|
1054
1083
|
}
|
|
1084
|
+
|
|
1085
|
+
private static class ObjectMapper
|
|
1086
|
+
{
|
|
1087
|
+
private static readonly Type SerializeFieldType = typeof(SerializeField);
|
|
1088
|
+
|
|
1089
|
+
// NOTE: We cannot reference Beamable.Common.Semantics directly from this folder.
|
|
1090
|
+
// We detect semantic types via reflection by interface full name instead
|
|
1091
|
+
private const string BeamSemanticInterfaceFullName = "Beamable.Common.Semantics.IBeamSemanticType`1";
|
|
1092
|
+
|
|
1093
|
+
public static object ConvertToType(object node, Type targetType)
|
|
1094
|
+
{
|
|
1095
|
+
if (targetType == null) throw new ArgumentNullException(nameof(targetType));
|
|
1096
|
+
|
|
1097
|
+
// Null handling
|
|
1098
|
+
if (node == null)
|
|
1099
|
+
{
|
|
1100
|
+
targetType = Nullable.GetUnderlyingType(targetType) ?? targetType;
|
|
1101
|
+
return targetType.IsValueType ? Activator.CreateInstance(targetType) : null;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
// Unwrap nullable
|
|
1105
|
+
targetType = Nullable.GetUnderlyingType(targetType) ?? targetType;
|
|
1106
|
+
|
|
1107
|
+
// Semantic types: construct from primitive JSON tokens
|
|
1108
|
+
if (TryGetSemanticPrimitiveType(targetType, out var primitiveType))
|
|
1109
|
+
{
|
|
1110
|
+
return ConstructSemantic(targetType, primitiveType, node);
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
// Direct assign
|
|
1114
|
+
if (targetType.IsInstanceOfType(node))
|
|
1115
|
+
{
|
|
1116
|
+
return node;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
// Enums
|
|
1120
|
+
if (targetType.IsEnum)
|
|
1121
|
+
{
|
|
1122
|
+
if (node is string s) return Enum.Parse(targetType, s, ignoreCase: true);
|
|
1123
|
+
if (node is long l) return Enum.ToObject(targetType, (int)l);
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
// Common scalars
|
|
1127
|
+
if (targetType == typeof(string)) return node.ToString();
|
|
1128
|
+
if (targetType == typeof(bool)) return Convert.ToBoolean(node);
|
|
1129
|
+
if (targetType == typeof(long)) return Convert.ToInt64(node);
|
|
1130
|
+
if (targetType == typeof(int)) return Convert.ToInt32(node);
|
|
1131
|
+
if (targetType == typeof(double)) return Convert.ToDouble(node);
|
|
1132
|
+
if (targetType == typeof(float)) return Convert.ToSingle(node);
|
|
1133
|
+
if (targetType == typeof(decimal)) return Convert.ToDecimal(node);
|
|
1134
|
+
|
|
1135
|
+
// Dictionaries (only generic Dictionary<string, TValue> supported here)
|
|
1136
|
+
if (typeof(IDictionary).IsAssignableFrom(targetType) && targetType.IsGenericType)
|
|
1137
|
+
{
|
|
1138
|
+
var genArgs = targetType.GetGenericArguments();
|
|
1139
|
+
if (genArgs.Length == 2 && genArgs[0] == typeof(string) && node is ArrayDict dictNode)
|
|
1140
|
+
{
|
|
1141
|
+
var valueType = genArgs[1];
|
|
1142
|
+
var dict = (IDictionary)Activator.CreateInstance(targetType);
|
|
1143
|
+
foreach (var kvp in dictNode)
|
|
1144
|
+
{
|
|
1145
|
+
dict[kvp.Key] = ConvertToType(kvp.Value, valueType);
|
|
1146
|
+
}
|
|
1147
|
+
return dict;
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
// Arrays
|
|
1152
|
+
if (targetType.IsArray && node is IList listNodeForArray)
|
|
1153
|
+
{
|
|
1154
|
+
var elemType = targetType.GetElementType();
|
|
1155
|
+
var arr = Array.CreateInstance(elemType!, listNodeForArray.Count);
|
|
1156
|
+
for (int i = 0; i < listNodeForArray.Count; i++)
|
|
1157
|
+
{
|
|
1158
|
+
arr.SetValue(ConvertToType(listNodeForArray[i], elemType!), i);
|
|
1159
|
+
}
|
|
1160
|
+
return arr;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
// Lists
|
|
1164
|
+
if (typeof(IList).IsAssignableFrom(targetType) && node is IList listNode)
|
|
1165
|
+
{
|
|
1166
|
+
var elemType = targetType.IsGenericType ? targetType.GetGenericArguments()[0] : typeof(object);
|
|
1167
|
+
var list = (IList)Activator.CreateInstance(targetType);
|
|
1168
|
+
foreach (var elem in listNode)
|
|
1169
|
+
{
|
|
1170
|
+
list.Add(ConvertToType(elem, elemType));
|
|
1171
|
+
}
|
|
1172
|
+
return list;
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
// POCO object
|
|
1176
|
+
if (node is ArrayDict objNode)
|
|
1177
|
+
{
|
|
1178
|
+
var instance = Activator.CreateInstance(targetType);
|
|
1179
|
+
|
|
1180
|
+
// Mirror existing Serializer rules: fields only, allow [SerializeField] privates,
|
|
1181
|
+
// skip [NonSerialized] fields.
|
|
1182
|
+
var fields = targetType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
|
|
1183
|
+
for (int i = 0; i < fields.Length; i++)
|
|
1184
|
+
{
|
|
1185
|
+
var field = fields[i];
|
|
1186
|
+
|
|
1187
|
+
var hasSerializeField = field.GetCustomAttribute(SerializeFieldType) != null;
|
|
1188
|
+
var canBeSerialized = (hasSerializeField || !field.IsNotSerialized);
|
|
1189
|
+
if (!canBeSerialized) continue;
|
|
1190
|
+
|
|
1191
|
+
if (!objNode.TryGetValue(field.Name, out var rawValue)) continue;
|
|
1192
|
+
|
|
1193
|
+
var converted = ConvertToType(rawValue, field.FieldType);
|
|
1194
|
+
field.SetValue(instance, converted);
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
// If the target uses Unity callbacks, respect them (parity with existing Serializer behavior)
|
|
1198
|
+
if (instance is ISerializationCallbackReceiver receiver)
|
|
1199
|
+
{
|
|
1200
|
+
receiver.OnAfterDeserialize();
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
return instance;
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
throw new InvalidOperationException(
|
|
1207
|
+
$"SmallerJSON cannot convert node type [{node.GetType().FullName}] to [{targetType.FullName}].");
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
private static bool TryGetSemanticPrimitiveType(Type semanticType, out Type primitiveType)
|
|
1211
|
+
{
|
|
1212
|
+
var iface = semanticType.GetInterfaces()
|
|
1213
|
+
.FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition().FullName == BeamSemanticInterfaceFullName);
|
|
1214
|
+
|
|
1215
|
+
if (iface == null)
|
|
1216
|
+
{
|
|
1217
|
+
primitiveType = null;
|
|
1218
|
+
return false;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
primitiveType = iface.GetGenericArguments()[0];
|
|
1222
|
+
return true;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
private static object ConstructSemantic(Type semanticType, Type primitiveType, object node)
|
|
1226
|
+
{
|
|
1227
|
+
// Prefer ctor(string) when JSON is a string. Many long-backed semantic types accept string too
|
|
1228
|
+
// and preserve formatting (leading zeros etc) or validate (ServiceName).
|
|
1229
|
+
if (node is string s)
|
|
1230
|
+
{
|
|
1231
|
+
var stringCtor = semanticType.GetConstructor(new[] { typeof(string) });
|
|
1232
|
+
if (stringCtor != null) return stringCtor.Invoke(new object[] { s });
|
|
1233
|
+
|
|
1234
|
+
if (primitiveType == typeof(long))
|
|
1235
|
+
{
|
|
1236
|
+
if (!long.TryParse(s, System.Globalization.NumberStyles.Integer,
|
|
1237
|
+
System.Globalization.CultureInfo.InvariantCulture, out var parsed))
|
|
1238
|
+
{
|
|
1239
|
+
throw new FormatException($"Cannot parse '{s}' as long for semantic type [{semanticType.FullName}].");
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
var longCtor = semanticType.GetConstructor(new[] { typeof(long) });
|
|
1243
|
+
if (longCtor != null) return longCtor.Invoke(new object[] { parsed });
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
throw new MissingMethodException(
|
|
1247
|
+
$"Semantic type [{semanticType.FullName}] has no public ctor(string) and cannot be built from JSON string.");
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
// If JSON is numeric and semantic primitive is long
|
|
1251
|
+
if (primitiveType == typeof(long))
|
|
1252
|
+
{
|
|
1253
|
+
var l = Convert.ToInt64(node, System.Globalization.CultureInfo.InvariantCulture);
|
|
1254
|
+
var longCtor = semanticType.GetConstructor(new[] { typeof(long) });
|
|
1255
|
+
if (longCtor != null) return longCtor.Invoke(new object[] { l });
|
|
1256
|
+
|
|
1257
|
+
// Some semantic types might only expose ctor(string); allow numeric -> string as fallback.
|
|
1258
|
+
var stringCtor = semanticType.GetConstructor(new[] { typeof(string) });
|
|
1259
|
+
if (stringCtor != null) return stringCtor.Invoke(new object[] { l.ToString(System.Globalization.CultureInfo.InvariantCulture) });
|
|
1260
|
+
|
|
1261
|
+
throw new MissingMethodException($"Semantic type [{semanticType.FullName}] must have ctor(long) or ctor(string).");
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
// If semantic primitive is string, coerce to string
|
|
1265
|
+
if (primitiveType == typeof(string))
|
|
1266
|
+
{
|
|
1267
|
+
var stringCtor = semanticType.GetConstructor(new[] { typeof(string) });
|
|
1268
|
+
if (stringCtor == null)
|
|
1269
|
+
throw new MissingMethodException($"Semantic type [{semanticType.FullName}] must have ctor(string).");
|
|
1270
|
+
|
|
1271
|
+
return stringCtor.Invoke(new object[] { node.ToString() });
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
throw new NotSupportedException(
|
|
1275
|
+
$"Semantic type [{semanticType.FullName}] uses unsupported primitive [{primitiveType.FullName}].");
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1055
1279
|
}
|
|
1056
1280
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
//#define PREPEND_SPEW_METADATA
|
|
5
5
|
// With PREPEND_SPEW_METADATA defined, all spew logs will have frame # and time prepended.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
using System;
|
|
5
5
|
using System.Diagnostics;
|
package/Common/Runtime/Trie.cs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
using System;
|
|
5
5
|
using System.Collections.Generic;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
using System;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
using Beamable.Common.Spew;
|
|
5
5
|
using System;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
using System;
|
|
5
5
|
using System.IO;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
namespace Beamable.Common.Util
|
|
5
5
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// this file was copied from nuget package Beamable.Common@7.0.
|
|
2
|
-
// https://www.nuget.org/packages/Beamable.Common/7.0.
|
|
1
|
+
// this file was copied from nuget package Beamable.Common@7.2.0-PREVIEW.RC2
|
|
2
|
+
// https://www.nuget.org/packages/Beamable.Common/7.2.0-PREVIEW.RC2
|
|
3
3
|
|
|
4
4
|
using System.Collections.Generic;
|
|
5
5
|
|
|
@@ -135,34 +135,30 @@ namespace Beamable.Editor.BeamCli
|
|
|
135
135
|
return true;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
var proc = new Process();
|
|
139
138
|
var installCommand = $"tool install Beamable.Tools --create-manifest-if-needed --allow-downgrade";
|
|
140
139
|
|
|
141
|
-
|
|
140
|
+
// Only add the local folder feed for the local dev version (0.0.123.*). For a published
|
|
141
|
+
// version, installing from a local folder feed extracts into the global packages folder
|
|
142
|
+
// without copying the .nupkg, which then crashes finalization; let it resolve from nuget.org.
|
|
143
|
+
if (Application.isBatchMode && BeamableEnvironment.NugetPackageVersion.ToString().StartsWith("0.0.123"))
|
|
142
144
|
{
|
|
143
145
|
installCommand += " --add-source BeamableNugetSource ";
|
|
144
146
|
}
|
|
145
147
|
|
|
146
|
-
|
|
148
|
+
// Lowercase the version: dotnet tool install builds the global-packages path from the raw --version string, so an uppercase pre-release label (7.2.0-PREVIEW.RC1) mismatches NuGet's lowercased cache folder on case-sensitive (Linux) filesystems.
|
|
149
|
+
var versionArg = BeamableEnvironment.NugetPackageVersion.ToString().ToLowerInvariant();
|
|
150
|
+
if (!versionArg.Equals("0.0.123"))
|
|
147
151
|
{
|
|
148
|
-
installCommand += $" --version {
|
|
152
|
+
installCommand += $" --version {versionArg}";
|
|
149
153
|
}
|
|
150
154
|
else
|
|
151
155
|
{
|
|
152
|
-
installCommand += $" --version {
|
|
156
|
+
installCommand += $" --version {versionArg}.*";
|
|
153
157
|
}
|
|
154
158
|
|
|
155
|
-
proc
|
|
156
|
-
{
|
|
157
|
-
|
|
158
|
-
WorkingDirectory = Path.GetFullPath("."),
|
|
159
|
-
Arguments = installCommand,
|
|
160
|
-
UseShellExecute = false,
|
|
161
|
-
CreateNoWindow = true,
|
|
162
|
-
RedirectStandardOutput = true,
|
|
163
|
-
RedirectStandardError = true
|
|
164
|
-
};
|
|
165
|
-
proc.StartInfo.Environment.Add("DOTNET_CLI_UI_LANGUAGE", "en");
|
|
159
|
+
var proc = NewInstallProcess();
|
|
160
|
+
Debug.Log($"[BeamCLI] Installing Beam CLI version [{BeamableEnvironment.NugetPackageVersion}]. " +
|
|
161
|
+
$"Command: [dotnet {installCommand}]. A first-time install with a cold NuGet cache can be slow while packages download.");
|
|
166
162
|
TryRunWithTimeout(1);
|
|
167
163
|
|
|
168
164
|
const string errorGuide =
|
|
@@ -170,6 +166,22 @@ namespace Beamable.Editor.BeamCli
|
|
|
170
166
|
|
|
171
167
|
var output = proc.StandardOutput.ReadToEnd();
|
|
172
168
|
var error = proc.StandardError.ReadToEnd();
|
|
169
|
+
|
|
170
|
+
// On some SDKs the local tool installer caches the package without its .nupkg and then crashes finalizing it. Only when we see that exact failure, pre-download the package via a normal restore (which keeps the .nupkg) and retry once, so unaffected SDKs never pay the cost.
|
|
171
|
+
var installLog = (output ?? string.Empty) + (error ?? string.Empty);
|
|
172
|
+
if (proc.ExitCode != 0 && installLog.Contains(".nupkg") &&
|
|
173
|
+
(installLog.Contains("Could not find file") || installLog.Contains("FileNotFoundException")))
|
|
174
|
+
{
|
|
175
|
+
Debug.LogWarning("[BeamCLI] Install failed with a missing .nupkg in the global packages cache (known local tool-install issue). Healing the cache and pre-downloading the package, then retrying once.");
|
|
176
|
+
HealCorruptGlobalPackagesEntry();
|
|
177
|
+
WarmGlobalPackagesCache();
|
|
178
|
+
|
|
179
|
+
proc = NewInstallProcess();
|
|
180
|
+
TryRunWithTimeout(1);
|
|
181
|
+
output = proc.StandardOutput.ReadToEnd();
|
|
182
|
+
error = proc.StandardError.ReadToEnd();
|
|
183
|
+
}
|
|
184
|
+
|
|
173
185
|
if (!string.IsNullOrWhiteSpace(error) || proc.ExitCode != 0)
|
|
174
186
|
{
|
|
175
187
|
StringBuilder message = new StringBuilder("Unable to install BeamCLI");
|
|
@@ -180,6 +192,7 @@ namespace Beamable.Editor.BeamCli
|
|
|
180
192
|
|
|
181
193
|
message.AppendLine($"Error: {error}");
|
|
182
194
|
message.Append(errorGuide);
|
|
195
|
+
Debug.Log("Failed Install Command: " + installCommand);
|
|
183
196
|
Debug.LogError(message.ToString());
|
|
184
197
|
var tryAgainButtonInfo = new OptionDialogWindow.ButtonInfo()
|
|
185
198
|
{
|
|
@@ -218,16 +231,55 @@ namespace Beamable.Editor.BeamCli
|
|
|
218
231
|
|
|
219
232
|
return proc.ExitCode == 0;
|
|
220
233
|
|
|
234
|
+
Process NewInstallProcess()
|
|
235
|
+
{
|
|
236
|
+
var p = new Process
|
|
237
|
+
{
|
|
238
|
+
StartInfo = new ProcessStartInfo
|
|
239
|
+
{
|
|
240
|
+
FileName = "dotnet",
|
|
241
|
+
WorkingDirectory = Path.GetFullPath("."),
|
|
242
|
+
Arguments = installCommand,
|
|
243
|
+
UseShellExecute = false,
|
|
244
|
+
CreateNoWindow = true,
|
|
245
|
+
RedirectStandardOutput = true,
|
|
246
|
+
RedirectStandardError = true
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
p.StartInfo.Environment.Add("DOTNET_CLI_UI_LANGUAGE", "en");
|
|
250
|
+
return p;
|
|
251
|
+
}
|
|
252
|
+
|
|
221
253
|
bool TryRunWithTimeout(int currentTry)
|
|
222
254
|
{
|
|
255
|
+
var timeoutMs = 30 * 1000 * currentTry;
|
|
256
|
+
Debug.Log($"[BeamCLI] Install attempt {currentTry} starting (timeout {timeoutMs / 1000}s)...");
|
|
257
|
+
var stopwatch = Stopwatch.StartNew();
|
|
223
258
|
proc.Start();
|
|
224
|
-
if (proc.WaitForExit(
|
|
259
|
+
if (proc.WaitForExit(timeoutMs))
|
|
225
260
|
{
|
|
261
|
+
Debug.Log($"[BeamCLI] Install attempt {currentTry} exited with code {proc.ExitCode} after {stopwatch.Elapsed.TotalSeconds:0.#}s.");
|
|
226
262
|
return true;
|
|
227
263
|
}
|
|
228
264
|
|
|
265
|
+
// Kill the still-running process before retrying; a concurrent retry corrupts the NuGet cache (a version folder left without its .nupkg), which then fails every later restore.
|
|
229
266
|
Debug.LogError(
|
|
230
|
-
"
|
|
267
|
+
$"[BeamCLI] Install attempt {currentTry} did not finish within {timeoutMs / 1000}s. " +
|
|
268
|
+
"Killing the dotnet process before retrying to avoid corrupting the NuGet cache.");
|
|
269
|
+
try
|
|
270
|
+
{
|
|
271
|
+
if (!proc.HasExited)
|
|
272
|
+
{
|
|
273
|
+
proc.Kill();
|
|
274
|
+
}
|
|
275
|
+
proc.WaitForExit();
|
|
276
|
+
Debug.Log($"[BeamCLI] Killed the timed-out dotnet process from attempt {currentTry}.");
|
|
277
|
+
}
|
|
278
|
+
catch (Exception killEx)
|
|
279
|
+
{
|
|
280
|
+
Debug.LogWarning($"[BeamCLI] Failed to kill the timed-out dotnet install process: {killEx.Message}");
|
|
281
|
+
}
|
|
282
|
+
|
|
231
283
|
const int maxRetries = 5;
|
|
232
284
|
if (currentTry > maxRetries)
|
|
233
285
|
{
|
|
@@ -245,9 +297,104 @@ namespace Beamable.Editor.BeamCli
|
|
|
245
297
|
return false;
|
|
246
298
|
}
|
|
247
299
|
|
|
300
|
+
Debug.Log($"[BeamCLI] Retrying install with a longer timeout (attempt {currentTry + 1}).");
|
|
248
301
|
return TryRunWithTimeout(++currentTry);
|
|
249
302
|
|
|
250
303
|
}
|
|
304
|
+
|
|
305
|
+
void WarmGlobalPackagesCache()
|
|
306
|
+
{
|
|
307
|
+
var version = BeamableEnvironment.NugetPackageVersion.ToString();
|
|
308
|
+
// The local dev flow installs 0.0.123.* from the local folder feed, which already
|
|
309
|
+
// lands the .nupkg in the cache, so there is nothing to warm (and it is not on nuget.org).
|
|
310
|
+
if (version.StartsWith("0.0.123"))
|
|
311
|
+
{
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
try
|
|
316
|
+
{
|
|
317
|
+
var warmDir = Path.Combine(Path.GetFullPath("Library/BeamableEditor"), "cli-cache-warm");
|
|
318
|
+
Directory.CreateDirectory(warmDir);
|
|
319
|
+
var csprojPath = Path.Combine(warmDir, "warm.csproj");
|
|
320
|
+
File.WriteAllText(csprojPath,
|
|
321
|
+
"<Project Sdk=\"Microsoft.NET.Sdk\">\n" +
|
|
322
|
+
" <PropertyGroup><TargetFramework>net8.0</TargetFramework></PropertyGroup>\n" +
|
|
323
|
+
$" <ItemGroup><PackageDownload Include=\"Beamable.Tools\" Version=\"[{version}]\" /></ItemGroup>\n" +
|
|
324
|
+
"</Project>\n");
|
|
325
|
+
|
|
326
|
+
var warm = new Process
|
|
327
|
+
{
|
|
328
|
+
StartInfo = new ProcessStartInfo
|
|
329
|
+
{
|
|
330
|
+
FileName = "dotnet",
|
|
331
|
+
WorkingDirectory = warmDir,
|
|
332
|
+
Arguments = $"restore \"{csprojPath}\"",
|
|
333
|
+
UseShellExecute = false,
|
|
334
|
+
CreateNoWindow = true,
|
|
335
|
+
RedirectStandardOutput = true,
|
|
336
|
+
RedirectStandardError = true
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
warm.StartInfo.Environment.Add("DOTNET_CLI_UI_LANGUAGE", "en");
|
|
340
|
+
Debug.Log($"[BeamCLI] Warming the NuGet cache with Beamable.Tools [{version}] via PackageDownload restore...");
|
|
341
|
+
warm.Start();
|
|
342
|
+
if (!warm.WaitForExit(120 * 1000))
|
|
343
|
+
{
|
|
344
|
+
try { if (!warm.HasExited) warm.Kill(); }
|
|
345
|
+
catch { /* ignore */ }
|
|
346
|
+
Debug.LogWarning("[BeamCLI] Cache-warm restore timed out; continuing to the install anyway.");
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
var output = warm.StandardOutput.ReadToEnd();
|
|
351
|
+
var error = warm.StandardError.ReadToEnd();
|
|
352
|
+
Debug.Log($"[BeamCLI] Cache-warm restore exited with code {warm.ExitCode}. {output} {error}");
|
|
353
|
+
}
|
|
354
|
+
catch (Exception warmEx)
|
|
355
|
+
{
|
|
356
|
+
Debug.LogWarning($"[BeamCLI] Cache-warm failed (continuing to the install anyway): {warmEx.Message}");
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
void HealCorruptGlobalPackagesEntry()
|
|
361
|
+
{
|
|
362
|
+
try
|
|
363
|
+
{
|
|
364
|
+
var packageId = "beamable.tools";
|
|
365
|
+
var version = BeamableEnvironment.NugetPackageVersion.ToString().ToLowerInvariant();
|
|
366
|
+
var globalPackages = System.Environment.GetEnvironmentVariable("NUGET_PACKAGES");
|
|
367
|
+
if (string.IsNullOrEmpty(globalPackages))
|
|
368
|
+
{
|
|
369
|
+
var home = System.Environment.GetEnvironmentVariable("HOME");
|
|
370
|
+
if (string.IsNullOrEmpty(home))
|
|
371
|
+
{
|
|
372
|
+
home = System.Environment.GetFolderPath(System.Environment.SpecialFolder.UserProfile);
|
|
373
|
+
}
|
|
374
|
+
globalPackages = Path.Combine(home, ".nuget", "packages");
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
var packageDir = Path.Combine(globalPackages, packageId, version);
|
|
378
|
+
if (!Directory.Exists(packageDir))
|
|
379
|
+
{
|
|
380
|
+
Debug.Log($"[BeamCLI] No pre-existing global-packages entry at [{packageDir}].");
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
var nupkgCount = Directory.GetFiles(packageDir, "*.nupkg").Length;
|
|
385
|
+
var totalFiles = Directory.GetFiles(packageDir, "*", SearchOption.AllDirectories).Length;
|
|
386
|
+
Debug.Log($"[BeamCLI] Found global-packages entry [{packageDir}]: {nupkgCount} .nupkg, {totalFiles} total files.");
|
|
387
|
+
if (nupkgCount == 0)
|
|
388
|
+
{
|
|
389
|
+
Debug.LogWarning($"[BeamCLI] Entry [{packageDir}] is missing its .nupkg (corrupt). Deleting it so the install can re-download a complete copy.");
|
|
390
|
+
Directory.Delete(packageDir, true);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
catch (Exception healEx)
|
|
394
|
+
{
|
|
395
|
+
Debug.LogWarning($"[BeamCLI] Auto-heal of the global-packages cache failed: {healEx.Message}");
|
|
396
|
+
}
|
|
397
|
+
}
|
|
251
398
|
}
|
|
252
399
|
}
|
|
253
400
|
}
|
|
@@ -444,9 +444,6 @@ namespace Beamable.Editor.BeamCli
|
|
|
444
444
|
{
|
|
445
445
|
CliLogger.Log("stdout", args.Data, System.Environment.NewLine + System.Environment.NewLine,
|
|
446
446
|
_command);
|
|
447
|
-
});
|
|
448
|
-
_dispatcher.Schedule(() =>
|
|
449
|
-
{
|
|
450
447
|
try
|
|
451
448
|
{
|
|
452
449
|
ProcessStandardOut(args.Data);
|
|
@@ -469,9 +466,6 @@ namespace Beamable.Editor.BeamCli
|
|
|
469
466
|
{
|
|
470
467
|
CliLogger.Log("stderr", args.Data, System.Environment.NewLine + System.Environment.NewLine,
|
|
471
468
|
_command);
|
|
472
|
-
});
|
|
473
|
-
_dispatcher.Schedule(() =>
|
|
474
|
-
{
|
|
475
469
|
try
|
|
476
470
|
{
|
|
477
471
|
ProcessStandardErr(args.Data);
|
|
@@ -135,6 +135,22 @@ namespace Beamable.Editor.BeamCli
|
|
|
135
135
|
_serverCommand = null;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
public void InvalidateServer(Exception cause)
|
|
139
|
+
{
|
|
140
|
+
// Marshal back to the editor coroutine thread — port, _serverCommand,
|
|
141
|
+
// and discoveryRequest are all touched by ServerDiscoveryLoop and
|
|
142
|
+
// shouldn't race with an async continuation.
|
|
143
|
+
dispatcher.Schedule(() =>
|
|
144
|
+
{
|
|
145
|
+
_history.AddServerEvent(
|
|
146
|
+
$"Server invalidated: {cause.GetType().Name}: {cause.Message}");
|
|
147
|
+
|
|
148
|
+
KillServer();
|
|
149
|
+
port = _options.startPortOverride.GetOrElse(8432);
|
|
150
|
+
discoveryRequest++;
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
138
154
|
public string GetServerProcess()
|
|
139
155
|
{
|
|
140
156
|
|
|
@@ -399,8 +415,8 @@ namespace Beamable.Editor.BeamCli
|
|
|
399
415
|
{
|
|
400
416
|
if (!_cts.IsCancellationRequested)
|
|
401
417
|
{
|
|
402
|
-
var client = new HttpClient() {Timeout = TimeSpan.FromDays(7),};
|
|
403
|
-
var sendTask = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead);
|
|
418
|
+
using var client = new HttpClient() {Timeout = TimeSpan.FromDays(7),};
|
|
419
|
+
var sendTask = client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead, _cts.Token);
|
|
404
420
|
_history.AddCustomLog(id, "[Unity] sent request...");
|
|
405
421
|
|
|
406
422
|
using HttpResponseMessage response = await sendTask;
|
|
@@ -420,13 +436,10 @@ namespace Beamable.Editor.BeamCli
|
|
|
420
436
|
}
|
|
421
437
|
|
|
422
438
|
readTask = reader.ReadLineAsync();
|
|
423
|
-
|
|
439
|
+
var cancelTcs = new TaskCompletionSource<bool>();
|
|
440
|
+
using (_cts.Token.Register(() => cancelTcs.TrySetResult(true)))
|
|
424
441
|
{
|
|
425
|
-
await Task.WhenAny(readTask, Task
|
|
426
|
-
if (_cts.Token.IsCancellationRequested)
|
|
427
|
-
{
|
|
428
|
-
break;
|
|
429
|
-
}
|
|
442
|
+
await Task.WhenAny(readTask, cancelTcs.Task);
|
|
430
443
|
}
|
|
431
444
|
if (_cts.Token.IsCancellationRequested)
|
|
432
445
|
{
|
|
@@ -464,6 +477,15 @@ namespace Beamable.Editor.BeamCli
|
|
|
464
477
|
}
|
|
465
478
|
|
|
466
479
|
}
|
|
480
|
+
catch (Exception ex) when (IsTransportFailure(ex) && !_cts.IsCancellationRequested)
|
|
481
|
+
{
|
|
482
|
+
// The loopback connection to the CLI server is unhealthy
|
|
483
|
+
// (server died, port stale, half-closed socket). Tear down
|
|
484
|
+
// the cached server state so the next attempt rediscovers
|
|
485
|
+
// before we keep hammering a dead endpoint.
|
|
486
|
+
_factory.InvalidateServer(ex);
|
|
487
|
+
throw;
|
|
488
|
+
}
|
|
467
489
|
finally
|
|
468
490
|
{
|
|
469
491
|
_history.AddCustomLog(id, "[Unity] ending...");
|
|
@@ -484,6 +506,14 @@ namespace Beamable.Editor.BeamCli
|
|
|
484
506
|
_cts.Cancel();
|
|
485
507
|
}
|
|
486
508
|
|
|
509
|
+
private static bool IsTransportFailure(Exception ex)
|
|
510
|
+
{
|
|
511
|
+
return ex is HttpRequestException
|
|
512
|
+
|| ex is SocketException
|
|
513
|
+
|| ex is ObjectDisposedException
|
|
514
|
+
|| ex is IOException;
|
|
515
|
+
}
|
|
516
|
+
|
|
487
517
|
public IBeamCommand On<T>(Func<ReportDataPointDescription, bool> predicate, Action<ReportDataPoint<T>> cb)
|
|
488
518
|
{
|
|
489
519
|
On(desc =>
|