Build / Build (push) Successful in 32s
PrivaPub's own types are read through the shared ClientModels context, and a type without generated metadata no longer falls back to reflection silently: it fails at once in development and on the pasture, and is reported on the console elsewhere. Startup outside production checks that every PrivaPub and Mastodon type the client knows has its metadata. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4YtEJrgxG12Pc39Fai8Bd
84 lines
3.5 KiB
C#
84 lines
3.5 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
using decePubClient.Models.Mastodon;
|
|
|
|
namespace decePubClient;
|
|
|
|
/// <summary>
|
|
/// Source-generated JSON metadata for PrivaPub's Mastodon API and /oauth (snake_case), used by
|
|
/// SUtility.MastodonSerializer. ClientJsonContext stays camelCase for /clientapi and localStorage. Read-only properties
|
|
/// (Account.Host, Account.Name) are computed, never sent.
|
|
/// </summary>
|
|
[JsonSourceGenerationOptions(PropertyNamingPolicy = JsonKnownNamingPolicy.SnakeCaseLower, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
|
IgnoreReadOnlyProperties = true, PropertyNameCaseInsensitive = true)]
|
|
[JsonSerializable(typeof(Status))]
|
|
[JsonSerializable(typeof(List<Status>))]
|
|
[JsonSerializable(typeof(StatusContext))]
|
|
[JsonSerializable(typeof(Account))]
|
|
[JsonSerializable(typeof(List<Account>))]
|
|
[JsonSerializable(typeof(AccountPage))]
|
|
[JsonSerializable(typeof(Relationship))]
|
|
[JsonSerializable(typeof(List<Relationship>))]
|
|
[JsonSerializable(typeof(List<string>))]
|
|
[JsonSerializable(typeof(SearchResults))]
|
|
[JsonSerializable(typeof(MediaAttachment))]
|
|
[JsonSerializable(typeof(InstanceV2))]
|
|
[JsonSerializable(typeof(Notification))]
|
|
[JsonSerializable(typeof(List<Notification>))]
|
|
[JsonSerializable(typeof(AccountWarning))]
|
|
[JsonSerializable(typeof(Conversation))]
|
|
[JsonSerializable(typeof(List<Conversation>))]
|
|
[JsonSerializable(typeof(InstanceDescription))]
|
|
[JsonSerializable(typeof(List<InstanceDescription>))]
|
|
[JsonSerializable(typeof(List<InstanceWeek>))]
|
|
[JsonSerializable(typeof(List<CdnSummary>))]
|
|
[JsonSerializable(typeof(CdnDetail))]
|
|
[JsonSerializable(typeof(Provenance))]
|
|
[JsonSerializable(typeof(TokenResponse))]
|
|
[JsonSerializable(typeof(MastodonError))]
|
|
[JsonSerializable(typeof(PostStatusForm))]
|
|
[JsonSerializable(typeof(StatusEditForm))]
|
|
[JsonSerializable(typeof(StatusSource))]
|
|
[JsonSerializable(typeof(List<StatusEdit>))]
|
|
[JsonSerializable(typeof(ReportRequest))]
|
|
[JsonSerializable(typeof(NotificationPolicy))]
|
|
[JsonSerializable(typeof(List<NotificationRequest>))]
|
|
[JsonSerializable(typeof(Poll))]
|
|
[JsonSerializable(typeof(PollVoteForm))]
|
|
[JsonSerializable(typeof(MastodonList))]
|
|
[JsonSerializable(typeof(List<MastodonList>))]
|
|
[JsonSerializable(typeof(ListAccountsForm))]
|
|
[JsonSerializable(typeof(Filter))]
|
|
[JsonSerializable(typeof(List<Filter>))]
|
|
[JsonSerializable(typeof(FilterForm))]
|
|
[JsonSerializable(typeof(FilterStatus))]
|
|
[JsonSerializable(typeof(ScheduledStatus))]
|
|
[JsonSerializable(typeof(List<ScheduledStatus>))]
|
|
[JsonSerializable(typeof(ScheduleForm))]
|
|
[JsonSerializable(typeof(Tag))]
|
|
[JsonSerializable(typeof(List<Tag>))]
|
|
[JsonSerializable(typeof(FeaturedTag))]
|
|
[JsonSerializable(typeof(List<FeaturedTag>))]
|
|
[JsonSerializable(typeof(Suggestion))]
|
|
[JsonSerializable(typeof(List<Suggestion>))]
|
|
[JsonSerializable(typeof(List<TrendLink>))]
|
|
[JsonSerializable(typeof(GroupedNotifications))]
|
|
[JsonSerializable(typeof(MarkersForm))]
|
|
[JsonSerializable(typeof(UnreadCount))]
|
|
[JsonSerializable(typeof(InstanceRule))]
|
|
[JsonSerializable(typeof(List<InstanceRule>))]
|
|
[JsonSerializable(typeof(InstanceDocument))]
|
|
[JsonSerializable(typeof(TermsOfService))]
|
|
[JsonSerializable(typeof(List<PublicDomainBlock>))]
|
|
[JsonSerializable(typeof(Announcement))]
|
|
[JsonSerializable(typeof(List<Announcement>))]
|
|
[JsonSerializable(typeof(AnnouncementReactionEvent))]
|
|
[JsonSerializable(typeof(CustomEmoji))]
|
|
[JsonSerializable(typeof(List<CustomEmoji>))]
|
|
[JsonSerializable(typeof(WebPushSubscription))]
|
|
[JsonSerializable(typeof(PushSubscriptionForm))]
|
|
[JsonSerializable(typeof(PushDataForm))]
|
|
public partial class MastodonJsonContext : JsonSerializerContext
|
|
{
|
|
}
|