export const packedUserLiteSchema = { type: "object", properties: { id: { type: "string", nullable: false, optional: false, format: "id", example: "xxxxxxxxxx" }, name: { type: "string", nullable: true, optional: false, example: "藍" }, username: { type: "string", nullable: false, optional: false, example: "calc" }, host: { type: "string", nullable: true, optional: false, example: "misskey.example.com", description: "The local host is represented with `null`." }, avatarUrl: { type: "string", format: "url", nullable: true, optional: false }, avatarBlurhash: { type: "any", nullable: true, optional: false }, avatarColor: { type: "any", nullable: true, optional: false, default: null }, isAdmin: { type: "boolean", nullable: false, optional: true, default: false }, isModerator: { type: "boolean", nullable: false, optional: true, default: false }, isVerified: { type: "boolean", nullable: false, optional: true, default: false }, minorBadges: { type: "array", nullable: false, optional: true, maxItems: 1, items: { type: "string", nullable: false, optional: false, enum: [ "K", "T", "E" ] } }, plans: { type: "array", nullable: false, optional: true, items: { type: "object", nullable: false, optional: false, properties: { id: { type: "string", nullable: false, optional: false, format: "id" }, name: { type: "string", nullable: false, optional: false }, icon: { type: "string", nullable: false, optional: false }, description: { type: "string", nullable: false, optional: false } } } }, isBot: { type: "boolean", nullable: false, optional: true }, isCat: { type: "boolean", nullable: false, optional: true }, speakAsCat: { type: "boolean", nullable: false, optional: true }, emojis: { type: "array", nullable: false, optional: false, items: { type: "object", nullable: false, optional: false, properties: { name: { type: "string", nullable: false, optional: false }, url: { type: "string", nullable: false, optional: false, format: "url" } } } }, onlineStatus: { type: "string", format: "url", nullable: true, optional: false, enum: [ "unknown", "online", "active", "offline" ] }, canBite: { type: "string", enum: [ "anyone", "followers", "nobody" ] } } }; export const packedUserDetailedNotMeOnlySchema = { type: "object", properties: { url: { type: "string", format: "url", nullable: true, optional: false }, uri: { type: "string", format: "uri", nullable: true, optional: false }, movedToUri: { type: "string", format: "uri", nullable: true, optional: false }, alsoKnownAs: { type: "array", format: "uri", nullable: true, optional: false }, createdAt: { type: "string", nullable: false, optional: false, format: "date-time" }, updatedAt: { type: "string", nullable: true, optional: false, format: "date-time" }, lastFetchedAt: { type: "string", nullable: true, optional: false, format: "date-time" }, bannerUrl: { type: "string", format: "url", nullable: true, optional: false }, bannerBlurhash: { type: "any", nullable: true, optional: false }, bannerColor: { type: "any", nullable: true, optional: false, default: null }, isLocked: { type: "boolean", nullable: false, optional: false }, isSilenced: { type: "boolean", nullable: false, optional: false }, isSuspended: { type: "boolean", nullable: false, optional: false, example: false }, description: { type: "string", nullable: true, optional: false, example: "Hi masters, I am Ai!" }, location: { type: "string", nullable: true, optional: false }, birthday: { type: "string", nullable: true, optional: false, example: "2018-03-12" }, lang: { type: "string", nullable: true, optional: false, example: "ja-JP" }, fields: { type: "array", nullable: false, optional: false, items: { type: "object", nullable: false, optional: false, properties: { name: { type: "string", nullable: false, optional: false }, value: { type: "string", nullable: false, optional: false } }, maxLength: 4 } }, followersCount: { type: "number", nullable: false, optional: false }, followingCount: { type: "number", nullable: false, optional: false }, notesCount: { type: "number", nullable: false, optional: false }, pinnedNoteIds: { type: "array", nullable: false, optional: false, items: { type: "string", nullable: false, optional: false, format: "id" } }, pinnedNotes: { type: "array", nullable: false, optional: false, items: { type: "object", nullable: false, optional: false, ref: "Note" } }, pinnedPageId: { type: "string", nullable: true, optional: false }, pinnedPage: { type: "object", nullable: true, optional: false, ref: "Page" }, publicReactions: { type: "boolean", nullable: false, optional: false }, twoFactorEnabled: { type: "boolean", nullable: false, optional: false, default: false }, usePasswordLessLogin: { type: "boolean", nullable: false, optional: false, default: false }, securityKeys: { type: "boolean", nullable: false, optional: false, default: false }, pronouns: { type: "object" }, //#region relations isFollowing: { type: "boolean", nullable: false, optional: true }, isFollowed: { type: "boolean", nullable: false, optional: true }, hasPendingFollowRequestFromYou: { type: "boolean", nullable: false, optional: true }, hasPendingFollowRequestToYou: { type: "boolean", nullable: false, optional: true }, isBlocking: { type: "boolean", nullable: false, optional: true }, isBlocked: { type: "boolean", nullable: false, optional: true }, isMuted: { type: "boolean", nullable: false, optional: true }, isRenoteMuted: { type: "boolean", nullable: false, optional: true } } }; export const packedMeDetailedOnlySchema = { type: "object", properties: { avatarId: { type: "string", nullable: true, optional: false, format: "id" }, bannerId: { type: "string", nullable: true, optional: false, format: "id" }, injectFeaturedNote: { type: "boolean", nullable: true, optional: false }, receiveAnnouncementEmail: { type: "boolean", nullable: true, optional: false }, alwaysMarkNsfw: { type: "boolean", nullable: true, optional: false }, carefulBot: { type: "boolean", nullable: true, optional: false }, autoAcceptFollowed: { type: "boolean", nullable: true, optional: false }, noCrawle: { type: "boolean", nullable: true, optional: false }, preventAiLearning: { type: "boolean", nullable: true, optional: false }, isExplorable: { type: "boolean", nullable: false, optional: false }, isDeleted: { type: "boolean", nullable: false, optional: false }, hideOnlineStatus: { type: "boolean", nullable: false, optional: false }, allowCalls: { type: "boolean", nullable: false, optional: true }, symbolFileId: { type: "string", nullable: true, optional: true, format: "id" }, hasUnreadSpecifiedNotes: { type: "boolean", nullable: false, optional: false }, hasUnreadMentions: { type: "boolean", nullable: false, optional: false }, hasUnreadAnnouncement: { type: "boolean", nullable: false, optional: false }, hasUnreadAntenna: { type: "boolean", nullable: false, optional: false }, hasUnreadChannel: { type: "boolean", nullable: false, optional: false }, hasUnreadMessagingMessage: { type: "boolean", nullable: false, optional: false }, hasUnreadNotification: { type: "boolean", nullable: false, optional: false }, hasPendingReceivedFollowRequest: { type: "boolean", nullable: false, optional: false }, integrations: { type: "object", nullable: true, optional: false }, mutedWords: { type: "array", nullable: false, optional: false, items: { type: "array", nullable: false, optional: false, items: { type: "string", nullable: false, optional: false } } }, mutedInstances: { type: "array", nullable: true, optional: false, items: { type: "string", nullable: false, optional: false } }, mutingNotificationTypes: { type: "array", nullable: true, optional: false, items: { type: "string", nullable: false, optional: false } }, emailNotificationTypes: { type: "array", nullable: true, optional: false, items: { type: "string", nullable: false, optional: false } }, //#region secrets email: { type: "string", nullable: true, optional: true }, emailVerified: { type: "boolean", nullable: true, optional: true }, securityKeysList: { type: "array", nullable: false, optional: true, items: { type: "object", nullable: false, optional: false } } } }; export const packedUserDetailedNotMeSchema = { type: "object", allOf: [ { type: "object", ref: "UserLite" }, { type: "object", ref: "UserDetailedNotMeOnly" } ] }; export const packedMeDetailedSchema = { type: "object", allOf: [ { type: "object", ref: "UserLite" }, { type: "object", ref: "UserDetailedNotMeOnly" }, { type: "object", ref: "MeDetailedOnly" } ] }; export const packedUserDetailedSchema = { oneOf: [ { type: "object", ref: "UserDetailedNotMe" }, { type: "object", ref: "MeDetailed" } ] }; export const packedUserSchema = { oneOf: [ { type: "object", ref: "UserLite" }, { type: "object", ref: "UserDetailed" } ] };