UNPKG

@nekofar/warpcast

Version:

TypeScript client for interacting with Warpcast APIs

2,399 lines 65.3 kB
// src/client/schemas.gen.ts var ProfilePictureSchema = { type: "object", properties: { url: { type: "string", format: "uri" }, verified: { type: "boolean" } } }; var BioSchema = { type: "object", properties: { text: { type: "string" }, mentions: { type: "array", items: {} }, channelMentions: { type: "array", items: {} } } }; var LocationSchema = { type: "object", properties: { placeId: { type: "string" }, description: { type: "string" } } }; var ProfileSchema = { type: "object", properties: { bio: { $ref: "#/components/schemas/Bio" }, location: { $ref: "#/components/schemas/Location" } } }; var ViewerContextSchema = { type: "object", properties: { following: { type: "boolean" }, followedBy: { type: "boolean" }, enableNotifications: { type: "boolean" }, canSendDirectCasts: { type: "boolean" }, hasUploadedInboxKeys: { type: "boolean" } } }; var UserSchema = { type: "object", required: ["fid", "displayName", "username"], properties: { fid: { type: "integer" }, username: { type: "string" }, displayName: { type: "string" }, pfp: { $ref: "#/components/schemas/ProfilePicture" }, profile: { $ref: "#/components/schemas/Profile" }, followerCount: { type: "integer" }, followingCount: { type: "integer" }, viewerContext: { $ref: "#/components/schemas/ViewerContext" } } }; var OnboardingStateSchema = { type: "object", properties: { id: { type: "string", format: "uuid" }, email: { type: "string", format: "email" }, user: { $ref: "#/components/schemas/User" }, hasOnboarding: { type: "boolean" }, hasConfirmedEmail: { type: "boolean" }, handledConnectAddress: { type: "boolean" }, canRegisterUsername: { type: "boolean" }, needsRegistrationPayment: { type: "boolean" }, hasFid: { type: "boolean" }, hasFname: { type: "boolean" }, hasDelegatedSigner: { type: "boolean" }, hasSetupProfile: { type: "boolean" }, hasCompletedRegistration: { type: "boolean" }, hasStorage: { type: "boolean" }, handledPushNotificationsNudge: { type: "boolean" }, handledContactsNudge: { type: "boolean" }, handledInterestsNudge: { type: "boolean" }, hasValidPaidInvite: { type: "boolean" }, hasWarpcastWalletAddress: { type: "boolean" }, hasPhone: { type: "boolean" }, needsPhone: { type: "boolean" }, sponsoredRegisterEligible: { type: "boolean" }, geoRestricted: { type: "boolean" } } }; var OnboardingStateResponseSchema = { type: "object", properties: { result: { type: "object", properties: { state: { $ref: "#/components/schemas/OnboardingState" } } } } }; var ErrorResponseSchema = { type: "object", properties: { errors: { type: "array", items: { type: "object", properties: { message: { type: "string", description: "Error message describing the issue" } } } } } }; var UserWithExtrasSchema = { allOf: [ { $ref: "#/components/schemas/User" }, { type: "object", properties: { connectedAccounts: { type: "array", items: {} } } } ] }; var UserExtrasSchema = { type: "object", properties: { fid: { type: "integer" }, custodyAddress: { type: "string" }, ethWallets: { type: "array", items: { type: "string" } }, solanaWallets: { type: "array", items: { type: "string" } }, walletLabels: { type: "array", items: { type: "object", properties: { address: { type: "string" }, labels: { type: "array", items: { type: "string" } } } } }, v2: { type: "boolean" }, publicSpamLabel: { type: "string" } } }; var UserByFidResponseSchema = { type: "object", properties: { result: { type: "object", properties: { user: { $ref: "#/components/schemas/UserWithExtras" }, collectionsOwned: { type: "array", items: {} }, extras: { $ref: "#/components/schemas/UserExtras" } } } } }; var ValidationErrorSchema = { type: "object", description: "Represents a single validation error", properties: { instancePath: { type: "string", description: "JSON Pointer to the part of the request that failed validation", example: "/fid" }, schemaPath: { type: "string", description: "JSON Schema path that was violated", example: "ApiFid/type" }, keyword: { type: "string", description: "The JSON Schema keyword that failed", example: "type" }, params: { type: "object", description: "Additional parameters describing the validation error", additionalProperties: true, example: { type: "integer" } }, message: { type: "string", description: "Human-readable error description", example: "must be integer" } }, required: ["instancePath", "schemaPath", "keyword", "message"] }; var BadRequestErrorSchema = { type: "object", description: "Standard 400 Bad Request error response", properties: { errors: { type: "array", description: "Array of validation errors", items: { $ref: "#/components/schemas/ValidationError" } } }, required: ["errors"] }; var DirectCastMessageReactionSchema = { type: "object", required: ["reaction", "count"], properties: { reaction: { type: "string", description: "Emoji used for the reaction", example: "\u{1F525}" }, count: { type: "integer", minimum: 1, description: "Number of users who reacted with this emoji", example: 3 }, emoji: { type: "string", description: "Emoji used for the reaction (legacy field)" }, userFids: { type: "array", items: { type: "integer" }, description: "List of Farcaster IDs who reacted" } } }; var DirectCastMessageViewerContextSchema = { type: "object", properties: { isLastReadMessage: { type: "boolean", description: "Whether this is the last read message", example: false }, focused: { type: "boolean", description: "Whether the message is focused", example: false }, reactions: { type: "array", items: { type: "string" }, description: "User's reactions to this message" } } }; var DirectCastMessageSchema = { type: "object", required: [ "conversationId", "senderFid", "messageId", "serverTimestamp", "type", "message", "hasMention", "reactions", "isPinned", "isDeleted", "senderContext" ], properties: { conversationId: { type: "string", description: "ID of the conversation this message belongs to" }, senderFid: { type: "integer", description: "Farcaster ID of the message sender" }, messageId: { type: "string", description: "Unique identifier for the message" }, serverTimestamp: { type: "integer", format: "int64", description: "Server timestamp when message was sent (Unix milliseconds)", example: 1753112479748 }, type: { type: "string", enum: [ "text", "image", "reaction", "link", "group_membership_addition", "pin_message", "message_ttl_change" ], description: "Type of the message", example: "text" }, message: { type: "string", description: "Content of the message" }, hasMention: { type: "boolean", description: "Whether the message contains mentions", example: false }, reactions: { type: "array", items: { $ref: "#/components/schemas/DirectCastMessageReaction" }, description: "List of reactions to the message" }, isPinned: { type: "boolean", description: "Whether the message is pinned", example: false }, isDeleted: { type: "boolean", description: "Whether the message is deleted", example: false }, senderContext: { $ref: "#/components/schemas/User" }, viewerContext: { $ref: "#/components/schemas/DirectCastMessageViewerContext" }, inReplyTo: { $ref: "#/components/schemas/DirectCastMessage" }, metadata: { $ref: "#/components/schemas/DirectCastMessageMetadata" }, actionTargetUserContext: { $ref: "#/components/schemas/User" }, isProgrammatic: { type: "boolean", description: "Whether the message was sent programmatically", example: false }, mentions: { type: "array", items: { $ref: "#/components/schemas/DirectCastMessageMention" }, description: "List of mentions in the message" } } }; var DirectCastMessageMetadataSchema = { type: "object", properties: { casts: { type: "array", items: { type: "object", additionalProperties: true }, description: "Cast metadata if message contains cast references" }, urls: { type: "array", items: { type: "object", additionalProperties: true }, description: "URL metadata if message contains links" }, medias: { type: "array", items: { type: "object", additionalProperties: true }, description: "Media metadata if message contains media" } } }; var DirectCastMessageMentionSchema = { type: "object", required: ["user", "textIndex", "length"], properties: { user: { $ref: "#/components/schemas/User" }, textIndex: { type: "integer", description: "Starting index of the mention in the message text", example: 19 }, length: { type: "integer", description: "Length of the mention text", example: 8 } } }; var DirectCastConversationViewerContextSchema = { type: "object", properties: { access: { type: "string", enum: ["read-write", "read-only"], description: "Access level for the conversation", example: "read-write" }, category: { type: "string", description: "Category of the conversation", example: "default" }, archived: { type: "boolean", description: "Whether the conversation is archived", example: false }, lastReadAt: { type: "integer", format: "int64", description: "Timestamp of last read (Unix milliseconds)", example: 1753650746109 }, muted: { type: "boolean", description: "Whether the conversation is muted", example: false }, manuallyMarkedUnread: { type: "boolean", description: "Whether the conversation is manually marked as unread", example: false }, pinned: { type: "boolean", description: "Whether the conversation is pinned", example: false }, unreadCount: { type: "integer", minimum: 0, description: "Number of unread messages", example: 0 }, unreadMentionsCount: { type: "integer", minimum: 0, description: "Number of unread mentions", example: 0 }, counterParty: { $ref: "#/components/schemas/User", description: "The other participant in a 1:1 conversation" }, tag: { type: "string", description: "Tag associated with the conversation", example: "automated" } } }; var DirectCastConversationSchema = { type: "object", required: [ "conversationId", "isGroup", "createdAt", "viewerContext", "adminFids", "lastReadTime" ], properties: { conversationId: { type: "string", description: "Unique identifier for the conversation" }, name: { type: "string", description: "Name of the conversation (for group conversations)" }, description: { type: "string", description: "Description of the conversation" }, photoUrl: { type: "string", format: "uri", description: "URL of the conversation photo" }, adminFids: { type: "array", items: { type: "integer" }, description: "List of admin Farcaster IDs" }, removedFids: { type: "array", items: { type: "integer" }, description: "List of removed Farcaster IDs" }, participants: { type: "array", items: { $ref: "#/components/schemas/User" }, description: "List of conversation participants" }, lastReadTime: { type: "integer", format: "int64", description: "Timestamp of last read time (Unix milliseconds)", example: 1741871452933 }, selfLastReadTime: { type: "integer", format: "int64", description: "Timestamp of viewer's last read time (Unix milliseconds)", example: 1753650746109 }, pinnedMessages: { type: "array", items: { $ref: "#/components/schemas/DirectCastMessage" }, description: "List of pinned messages in the conversation" }, hasPinnedMessages: { type: "boolean", description: "Whether the conversation has pinned messages", example: false }, isGroup: { type: "boolean", description: "Whether this is a group conversation", example: true }, isCollectionTokenGated: { type: "boolean", description: "Whether the conversation is collection token gated", example: false }, activeParticipantsCount: { type: "integer", minimum: 0, description: "Number of active participants in the conversation", example: 2 }, messageTTLDays: { oneOf: [ { type: "integer", minimum: 0, description: "Number of days until message expires" }, { type: "string", enum: ["Infinity"], description: "Messages never expire" } ], description: 'Message time-to-live in days, or "Infinity" for no expiration', examples: [365, "Infinity"] }, createdAt: { type: "integer", format: "int64", description: "Timestamp when conversation was created (Unix milliseconds)", example: 1709952982363 }, unreadCount: { type: "integer", minimum: 0, description: "Number of unread messages", example: 0 }, muted: { type: "boolean", description: "Whether the conversation is muted", example: false }, hasMention: { type: "boolean", description: "Whether the conversation has mentions", example: false }, lastMessage: { $ref: "#/components/schemas/DirectCastMessage" }, viewerContext: { $ref: "#/components/schemas/DirectCastConversationViewerContext" } } }; var DirectCastInboxResultSchema = { type: "object", required: [ "hasArchived", "hasUnreadRequests", "requestsCount", "conversations" ], properties: { hasArchived: { type: "boolean", description: "Whether user has archived conversations", example: false }, hasUnreadRequests: { type: "boolean", description: "Whether user has unread conversation requests", example: false }, requestsCount: { type: "integer", minimum: 0, description: "Total number of conversation requests", example: 12 }, conversations: { type: "array", items: { $ref: "#/components/schemas/DirectCastConversation" } } } }; var PaginationCursorSchema = { type: "object", properties: { cursor: { type: "string", description: "Base64 encoded cursor for pagination" } }, additionalProperties: true }; var DirectCastInboxResponseSchema = { type: "object", required: ["result"], properties: { result: { $ref: "#/components/schemas/DirectCastInboxResult" }, next: { $ref: "#/components/schemas/PaginationCursor" } } }; var CastActionSchema = { type: "object", properties: { id: { type: "string" }, name: { type: "string" }, octicon: { type: "string" }, actionUrl: { type: "string" }, action: { type: "object", properties: { actionType: { type: "string" }, postUrl: { type: "string" } } } } }; var UserAppContextResponseSchema = { type: "object", properties: { result: { type: "object", properties: { context: { type: "object", properties: { canAddLinks: { type: "boolean" }, showConnectedApps: { type: "boolean" }, signerRequestsEnabled: { type: "boolean" }, prompts: { type: "array", items: {} }, adminForChannelKeys: { type: "array", items: { type: "string" } }, modOfChannelKeys: { type: "array", items: { type: "string" } }, memberOfChannelKeys: { type: "array", items: { type: "string" } }, canEditAllChannels: { type: "boolean" }, canUploadVideo: { type: "boolean" }, statsigEnabled: { type: "boolean" }, shouldPromptForPushNotifications: { type: "boolean" }, shouldPromptForUserFollowsSyncContacts: { type: "boolean" }, castActions: { type: "array", items: { $ref: "#/components/schemas/CastAction" } }, canAddCastAction: { type: "boolean" }, enabledCastAction: { $ref: "#/components/schemas/CastAction" }, notificationTabsV2: { type: "array", items: { type: "object", properties: { id: { type: "string" }, name: { type: "string" } } } }, enabledVideoAutoplay: { type: "boolean" }, regularCastByteLimit: { type: "integer" }, longCastByteLimit: { type: "integer" }, newUserStatus: { type: "object" }, country: { type: "string" }, higherClientEventSamplingRateEnabled: { type: "boolean" } } } } } } }; var UserPreferencesResponseSchema = { type: "object", properties: { result: { type: "object", properties: { preferences: { type: "object", additionalProperties: true } } } } }; var ChannelSchema = { type: "object", properties: { type: { type: "string" }, key: { type: "string" }, name: { type: "string" }, imageUrl: { type: "string" }, fastImageUrl: { type: "string" }, feeds: { type: "array", items: { type: "object", properties: { name: { type: "string" }, type: { type: "string" } } } }, description: { type: "string" }, followerCount: { type: "integer" }, memberCount: { type: "integer" }, showCastSourceLabels: { type: "boolean" }, showCastTags: { type: "boolean" }, sectionRank: { type: "integer" }, subscribable: { type: "boolean" }, publicCasting: { type: "boolean" }, inviteCode: { type: "string" }, headerImageUrl: { type: "string" }, headerAction: { type: "object", properties: { title: { type: "string" }, target: { type: "string" } } }, headerActionMetadata: { type: "object", additionalProperties: true }, viewerContext: { type: "object", properties: { following: { type: "boolean" }, isMember: { type: "boolean" }, hasUnseenItems: { type: "boolean" }, favoritePosition: { type: "integer" }, activityRank: { type: "integer" }, canCast: { type: "boolean" } } } } }; var HighlightedChannelsResponseSchema = { type: "object", properties: { result: { type: "object", properties: { channels: { type: "array", items: { $ref: "#/components/schemas/Channel" } }, viewerContext: { type: "object", properties: { defaultFeed: { type: "string" } } } } } } }; var ImageEmbedSchema = { type: "object", properties: { type: { type: "string", enum: ["image"] }, url: { type: "string" }, sourceUrl: { type: "string" }, media: { type: "object", properties: { version: { type: "string" }, width: { type: "integer" }, height: { type: "integer" }, staticRaster: { type: "string" }, mimeType: { type: "string" } } }, alt: { type: "string" } } }; var UrlEmbedSchema = { type: "object", required: ["type", "openGraph"], properties: { type: { type: "string", enum: ["url"] }, openGraph: { type: "object", required: ["url"], properties: { url: { type: "string" }, sourceUrl: { type: "string" }, title: { type: "string" }, description: { type: "string" }, domain: { type: "string" }, image: { type: "string" }, useLargeImage: { type: "boolean" } } } } }; var VideoEmbedSchema = { type: "object", properties: { type: { type: "string", enum: ["video"] } } }; var RecasterSchema = { type: "object", properties: { fid: { type: "integer" }, username: { type: "string" }, displayName: { type: "string" }, recastHash: { type: "string" } } }; var CastSchema = { type: "object", required: [ "hash", "author", "text", "timestamp", "replies", "reactions", "recasts", "watches", "processedCastText" ], properties: { hash: { type: "string", description: "Unique hash identifier for the cast" }, threadHash: { type: "string", description: "Hash identifier for the thread this cast belongs to" }, parentHash: { type: "string", description: "Hash identifier of the parent cast (if this is a reply)" }, parentSource: { type: "object", properties: { type: { type: "string", enum: ["url"] }, url: { type: "string" } } }, author: { $ref: "#/components/schemas/User" }, text: { type: "string", description: "The text content of the cast" }, timestamp: { type: "integer", format: "int64", description: "Unix timestamp in milliseconds" }, mentions: { type: "array", items: { $ref: "#/components/schemas/User" } }, embeds: { type: "object", properties: { images: { type: "array", items: { $ref: "#/components/schemas/ImageEmbed" } }, urls: { type: "array", items: { $ref: "#/components/schemas/UrlEmbed" } }, videos: { type: "array", items: { $ref: "#/components/schemas/VideoEmbed" } }, unknowns: { type: "array", items: { type: "object" } }, processedCastText: { type: "string" }, groupInvites: { type: "array", items: { type: "object" } } } }, replies: { type: "object", required: ["count"], properties: { count: { type: "integer" } } }, reactions: { type: "object", required: ["count"], properties: { count: { type: "integer" } } }, recasts: { type: "object", required: ["count"], properties: { count: { type: "integer" }, recasters: { type: "array", items: { $ref: "#/components/schemas/Recaster" } } } }, watches: { type: "object", required: ["count"], properties: { count: { type: "integer" } } }, recast: { type: "boolean" }, tags: { type: "array", items: { type: "object", properties: { type: { type: "string" }, id: { type: "string" }, name: { type: "string" }, imageUrl: { type: "string" } } } }, quoteCount: { type: "integer" }, combinedRecastCount: { type: "integer" }, channel: { type: "object", properties: { key: { type: "string" }, name: { type: "string" }, imageUrl: { type: "string" }, authorContext: { type: "object", properties: { role: { type: "string" }, restricted: { type: "boolean" }, banned: { type: "boolean" } } }, authorRole: { type: "string" } } }, viewerContext: { type: "object", properties: { reacted: { type: "boolean" }, recast: { type: "boolean" }, bookmarked: { type: "boolean" } } } } }; var FeedItemsResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["items", "replaceFeed"], properties: { items: { type: "array", items: { type: "object", required: ["id", "timestamp", "cast"], properties: { id: { type: "string" }, timestamp: { type: "integer" }, cast: { $ref: "#/components/schemas/Cast" }, otherParticipants: { type: "array", items: { $ref: "#/components/schemas/User" } } } } }, latestMainCastTimestamp: { type: "integer" }, feedTopSeenAtTimestamp: { type: "integer" }, replaceFeed: { type: "boolean" } } } } }; var GenericResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", additionalProperties: true } } }; var UserResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", required: ["result"], properties: { result: { type: "object", properties: { user: { $ref: "#/components/schemas/UserWithExtras" }, collectionsOwned: { type: "array", items: { type: "object" } }, extras: { $ref: "#/components/schemas/UserExtras" } } } } } ] }; var PaginatedResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", additionalProperties: true }, next: { $ref: "#/components/schemas/PaginationCursor" } } }; var SuggestedUsersResponseSchema = { allOf: [ { $ref: "#/components/schemas/PaginatedResponse" }, { type: "object", properties: { result: { type: "object", properties: { users: { type: "array", items: { type: "object", additionalProperties: true } } } } } } ] }; var FavoriteFramesResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["frames"], properties: { frames: { type: "array", items: { type: "object", additionalProperties: true } } } } } }; var ChannelStreaksResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", additionalProperties: true } } }; var UnseenCountsResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", properties: { notificationsCount: { type: "integer" }, notificationTabs: { type: "array", items: { type: "object", required: ["tab", "unseenCount"], properties: { tab: { type: "string" }, unseenCount: { type: "integer" } } } }, inboxCount: { type: "integer" }, channelFeeds: { type: "array", items: { type: "object", required: ["channelKey", "feedType", "hasNewItems"], properties: { channelKey: { type: "string" }, feedType: { type: "string" }, hasNewItems: { type: "boolean" } } } }, warpTransactionCount: { type: "integer" } } } } }; var UserThreadCastsResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["casts"], properties: { casts: { type: "array", items: { type: "object", additionalProperties: true } } } } } }; var ChannelFollowersYouKnowResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["users", "totalCount"], properties: { users: { type: "array", items: { type: "object", additionalProperties: true } }, totalCount: { type: "integer" } } } } }; var SuccessResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", properties: { result: { type: "object", required: ["success"], properties: { success: { type: "boolean", description: "Whether the operation was successful" } } } } } ] }; var NotificationsResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", properties: { notifications: { type: "array", items: { type: "object", additionalProperties: true } } } } } }; var DirectCastConversationResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", properties: { result: { type: "object", required: ["conversation"], properties: { conversation: { $ref: "#/components/schemas/DirectCastConversation" } } } } } ] }; var DirectCastConversationCategorizationRequestSchema = { type: "object", required: ["conversationId", "category"], properties: { conversationId: { type: "string", description: "ID of the conversation to categorize", example: "17838-20146" }, category: { type: "string", description: "Category to assign to the conversation", example: "archived" } } }; var DirectCastConversationMessagesResponseSchema = { allOf: [ { $ref: "#/components/schemas/PaginatedResponse" }, { type: "object", properties: { result: { type: "object", required: ["messages"], properties: { messages: { type: "array", items: { $ref: "#/components/schemas/DirectCastMessage" } } } } } } ] }; var DirectCastConversationMessageTtlRequestSchema = { type: "object", required: ["conversationId", "ttl"], properties: { conversationId: { type: "string", description: "ID of the conversation to set message TTL for", example: "12590-20146" }, ttl: { type: "integer", description: "Time to live for messages in days", example: 365 } } }; var DirectCastConversationNotificationsRequestSchema = { type: "object", required: ["conversationId", "muted"], properties: { conversationId: { type: "string", description: "ID of the conversation to update notification settings for", example: "17838-20146" }, muted: { type: "boolean", description: "Whether to mute notifications for this conversation", example: false } } }; var DirectCastSendRequestSchema = { type: "object", required: ["conversationId", "recipientFids", "messageId", "type", "message"], properties: { conversationId: { type: "string", description: "ID of the conversation to send the message to" }, recipientFids: { type: "array", items: { type: "integer" }, description: "Array of Farcaster IDs of message recipients", example: [17838, 861305] }, messageId: { type: "string", description: "Unique identifier for the message" }, type: { type: "string", enum: ["text", "image", "reaction", "link"], description: "Type of the message", example: "text" }, message: { type: "string", description: "Content of the message" }, inReplyToId: { type: "string", description: "ID of the message this is replying to (optional)" } } }; var DirectCastManuallyMarkUnreadRequestSchema = { type: "object", required: ["conversationId"], properties: { conversationId: { type: "string", description: "ID of the conversation to mark as unread" } } }; var DirectCastMessageReactionRequestSchema = { type: "object", required: ["conversationId", "messageId", "reaction"], properties: { conversationId: { type: "string", description: "ID of the conversation containing the message", example: "12590-20146" }, messageId: { type: "string", description: "ID of the message to react to", example: "17c7f0b459ff8f625fc35bba6a89c817" }, reaction: { type: "string", description: "Emoji reaction to add or remove", example: "\u{1F44D}" } } }; var DirectCastPinConversationRequestSchema = { type: "object", required: ["conversationId"], properties: { conversationId: { type: "string", description: "ID of the conversation to pin" } } }; var DiscoverChannelsResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", properties: { result: { type: "object", properties: { channels: { type: "array", items: { type: "object", additionalProperties: true } } } } } } ] }; var InvitesAvailableResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", properties: { result: { type: "object", required: ["allocatedInvitesCount", "availableInvitesCount"], properties: { allocatedInvitesCount: { type: "integer", description: "Total number of invites allocated to the user" }, availableInvitesCount: { type: "integer", description: "Number of invites currently available to send" } } } } } ] }; var SponsoredInvitesResponseSchema = { allOf: [ { $ref: "#/components/schemas/GenericResponse" }, { type: "object", properties: { result: { type: "object", properties: { invites: { type: "array", items: { type: "object" } } } } }, additionalProperties: true } ] }; var RewardsLeaderboardResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["leaderboard"], properties: { leaderboard: { type: "object", required: ["type", "users"], properties: { type: { type: "string" }, users: { type: "array", items: { type: "object", properties: { user: { type: "object", additionalProperties: true }, score: { type: "integer" }, rank: { type: "integer" } } } } } } } } } }; var RewardsScoresResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["scores"], properties: { scores: { type: "array", items: { type: "object", properties: { type: { type: "string" }, user: { type: "object", additionalProperties: true }, allTimeScore: { type: "integer" }, currentPeriodScore: { type: "integer" }, previousPeriodScore: { type: "integer" } } } } } } } }; var RewardsMetadataResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: [ "type", "lastUpdateTimestamp", "currentPeriodStartTimestamp", "currentPeriodEndTimestamp" ], properties: { metadata: { type: "object", properties: { type: { type: "string" }, lastUpdateTimestamp: { type: "integer" }, currentPeriodStartTimestamp: { type: "integer" }, currentPeriodEndTimestamp: { type: "integer" }, tiers: { type: "array", items: { type: "object", additionalProperties: true } }, proportionalPayout: { type: "object", properties: { numWinners: { type: "integer" }, totalRewardCents: { type: "integer" } } } } } } } } }; var BookmarkedCastSchema = { type: "object", additionalProperties: true }; var BookmarkedCastsResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", properties: { bookmarks: { type: "array", items: { $ref: "#/components/schemas/BookmarkedCast" } } } } } }; var StarterPackSchema = { type: "object", required: ["id"], properties: { id: { type: "string", description: "Unique identifier for the starter pack" }, creator: { $ref: "#/components/schemas/User" }, name: { type: "string", description: "Display name of the starter pack" }, description: { type: "string", description: "Description of the starter pack" }, openGraphImageUrl: { type: "string", format: "uri", description: "URL for OG image preview" }, itemCount: { type: "integer", description: "Number of items in the starter pack" }, items: { type: "array", items: { type: "object", additionalProperties: true }, description: "Items contained in the starter pack" }, labels: { type: "array", items: { type: "string" }, description: "Labels/tags for the starter pack" } }, additionalProperties: true }; var StarterPacksResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["starterPacks"], properties: { starterPacks: { type: "array", items: { $ref: "#/components/schemas/StarterPack" } } } } } }; var StarterPackResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["starterPack"], properties: { starterPack: { $ref: "#/components/schemas/StarterPack" } } } } }; var StarterPackUpdateRequestSchema = { type: "object", required: ["id", "name", "description", "fids", "labels"], properties: { id: { type: "string", description: "Unique identifier for the starter pack to update" }, name: { type: "string", description: "Display name of the starter pack" }, description: { type: "string", description: "Description of the starter pack" }, fids: { type: "array", description: "List of FIDs included in the starter pack", items: { type: "integer" } }, labels: { type: "array", description: "Labels/tags for the starter pack", items: { type: "string" } } } }; var StarterPackUsersResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["users"], properties: { users: { type: "array", items: { $ref: "#/components/schemas/User" } } } } } }; var ChannelResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", properties: { channel: { $ref: "#/components/schemas/Channel" } } } } }; var ChannelUsersResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", properties: { users: { type: "array", items: { $ref: "#/components/schemas/User" } } } } } }; var UsersResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["users"], properties: { users: { type: "array", items: { $ref: "#/components/schemas/User" } } } } } }; var UsersWithCountResponseSchema = { type: "object", required: ["result"], properties: { result: { type: "object", required: ["users", "totalCount"], properties: { users: { type: "array", items: { $ref: "#/components/schemas/User" } }, totalCount: { type: "integer" } } } } }; var FrameAppSchema = { type: "object", additionalProperties: true }; var FrameAppsResponseSchema = { type: "object", properties: { result: { type: "object", properties: { frames: { type: "array", items: { $ref: "#/components/schemas/FrameApp" } } } } } }; var mini_app_ViewerContextSchema = { type: "object", properties: {}, description: "Context information for the viewer" }; var MiniAppSchema = { type: "object", properties: { domain: { type: "string", description: "The domain of the mini app" }, name: { type: "string", description: "The name of the mini app" }, iconUrl: { type: "string", description: "URL to the mini app's icon" }, homeUrl: { type: "string", description: "The home URL of the mini app" }, author: { $ref: "#/components/schemas/User" }, supportsNotifications: { type: "boolean", description: "Whether the mini app supports notifications" }, id: { type: "string", description: "Unique identifier for the mini app" }, shortId: { type: "string", description: "Short identifier for the mini app" }, imageUrl: { type: "string", description: "URL to the mini app's main image" }, buttonTitle: { type: "string", description: "Title for the action button" }, splashImageUrl: { type: "string", description: "URL to the splash screen image" }, splashBackgroundColor: { type: "string", description: "Background color for the splash screen" }, castShareUrl: { type: "string", description: "URL for sharing casts" }, subtitle: { type: "string", description: "Subtitle of the mini app" }, description: { type: "string", description: "Description of the mini app" }, tagline: { type: "string", description: "Tagline of the mini app" }, heroImageUrl: { type: "string", description: "URL to the hero image" }, primaryCategory: { type: "string", description: "Primary category of the mini app" }, tags: { type: "array", items: { type: "string" }, description: "Tags associated with the mini app" }, screenshotUrls: { type: "array", items: { type: "string" }, description: "URLs to screenshot images" }, noindex: { type: "boolean", description: "Whether the mini app should be indexed" }, ogTitle: { type: "string", description: "Open Graph title" }, ogDescription: { type: "string", description: "Open Graph description" }, ogImageUrl: { type: "string", description: "Open Graph image URL" }, requiredCapabilities: { type: "array", items: { type: "string" }, description: "Required capabilities for the mini app" }, requiredChains: { type: "array", items: { type: "string" }, description: "Required blockchain chains" }, viewerContext: { $ref: "#/components/schemas/