import {z} from 'zod' export type GetApiChannelsChannelIdPinsOptions = {baseUrl?: string | undefined, BotToken?: string | undefined, fetch?: typeof fetch | undefined}; export const messageType = z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8), z.literal(9), z.literal(10), z.literal(11), z.literal(12), z.literal(14), z.literal(15), z.literal(16), z.literal(17), z.literal(18), z.literal(19), z.literal(20), z.literal(21), z.literal(22), z.literal(23), z.literal(24), z.literal(25), z.literal(26), z.literal(27), z.literal(28), z.literal(29), z.literal(31), z.literal(32), z.literal(36), z.literal(37), z.literal(38), z.literal(39), z.literal(46), z.literal(55)]); export const snowflakeType = z.string(); export const int53Type = z.number().int().gte(-9007199254740991).lte(9007199254740991); export const userAvatarDecorationResponse = z.object({asset: z.string(), sku_id: snowflakeType.nullable()}); export const nameplatePalette = z.union([z.literal("crimson"), z.literal("berry"), z.literal("sky"), z.literal("teal"), z.literal("forest"), z.literal("bubble_gum"), z.literal("violet"), z.literal("cobalt"), z.literal("clover"), z.literal("lemon"), z.literal("white"), z.literal("black")]); export const userNameplateResponse = z.object({sku_id: snowflakeType.nullable(), asset: z.string(), label: z.string(), palette: nameplatePalette}); export const userCollectiblesResponse = z.object({nameplate: userNameplateResponse.nullable()}); export const userPrimaryGuildResponse = z.object({identity_guild_id: snowflakeType.nullable(), identity_enabled: z.boolean().nullable(), tag: z.string().nullable(), badge: z.string().nullable()}); export const userResponse = z.object({id: snowflakeType, username: z.string(), avatar: z.string().nullable(), discriminator: z.string(), public_flags: z.number().int(), flags: int53Type, bot: z.boolean().optional(), system: z.boolean().optional(), banner: z.string().nullable().optional(), accent_color: z.number().int().nullable().optional(), global_name: z.string().nullable(), avatar_decoration_data: userAvatarDecorationResponse.nullable().optional(), collectibles: userCollectiblesResponse.nullable().optional(), primary_guild: userPrimaryGuildResponse.nullable()}); export const applicationTypes = z.literal(4); export const oAuth2Scopes = z.union([z.literal("identify"), z.literal("email"), z.literal("connections"), z.literal("guilds"), z.literal("guilds.join"), z.literal("guilds.members.read"), z.literal("gdm.join"), z.literal("bot"), z.literal("rpc"), z.literal("rpc.notifications.read"), z.literal("rpc.voice.read"), z.literal("rpc.voice.write"), z.literal("rpc.video.read"), z.literal("rpc.video.write"), z.literal("rpc.screenshare.read"), z.literal("rpc.screenshare.write"), z.literal("rpc.activities.write"), z.literal("webhook.incoming"), z.literal("messages.read"), z.literal("applications.builds.upload"), z.literal("applications.builds.read"), z.literal("applications.commands"), z.literal("applications.commands.permissions.update"), z.literal("applications.commands.update"), z.literal("applications.store.update"), z.literal("applications.entitlements"), z.literal("activities.read"), z.literal("activities.write"), z.literal("activities.invites.write"), z.literal("relationships.read"), z.literal("voice"), z.literal("dm_channels.read"), z.literal("role_connections.write"), z.literal("openid")]); export const applicationOAuth2InstallParamsResponse = z.object({scopes: z.array(oAuth2Scopes), permissions: z.string()}); export const applicationIntegrationTypeConfigurationResponse = z.object({oauth2_install_params: applicationOAuth2InstallParamsResponse.optional()}); export const applicationResponse = z.object({id: snowflakeType, name: z.string(), icon: z.string().nullable(), description: z.string(), type: applicationTypes.nullable(), cover_image: z.string().optional(), primary_sku_id: snowflakeType.optional(), flags: z.number().int(), flags_new: z.string(), bot: userResponse.optional(), slug: z.string().optional(), conjure_project_id: snowflakeType.optional(), vibegrations_project_id: snowflakeType.optional(), guild_id: snowflakeType.optional(), rpc_origins: z.array(z.string()).optional(), bot_public: z.boolean().optional(), bot_require_code_grant: z.boolean().optional(), terms_of_service_url: z.string().optional(), privacy_policy_url: z.string().optional(), custom_install_url: z.string().optional(), install_params: applicationOAuth2InstallParamsResponse.optional(), integration_types_config: z.record(z.string(), applicationIntegrationTypeConfigurationResponse).optional(), verify_key: z.string(), max_participants: z.number().int().nullable().optional(), tags: z.array(z.string()).optional()}); export const messageAttachmentResponse = z.object({id: snowflakeType, filename: z.string(), size: z.number().int(), url: z.string(), proxy_url: z.string(), width: z.number().int().optional(), height: z.number().int().optional(), duration_secs: z.number().optional(), waveform: z.string().optional(), description: z.string().optional(), content_type: z.string().optional(), ephemeral: z.boolean().optional(), flags: z.number().int().optional(), placeholder: z.string().optional(), placeholder_version: z.number().int().optional(), title: z.string().nullable().optional(), application: applicationResponse.optional(), clip_created_at: z.string().optional(), clip_participants: z.array(userResponse).optional()}); export const messageEmbedFieldResponse = z.object({name: z.string(), value: z.string(), inline: z.boolean()}); export const messageEmbedAuthorResponse = z.object({name: z.string(), url: z.string().optional(), icon_url: z.string().optional(), proxy_icon_url: z.string().optional()}); export const messageEmbedProviderResponse = z.object({name: z.string(), url: z.string().optional()}); export const uInt32Type = z.number().int().gte(0).lte(4294967295); export const messageEmbedImageResponse = z.object({url: z.string().optional(), proxy_url: z.string().optional(), width: uInt32Type.optional(), height: uInt32Type.optional(), content_type: z.string().optional(), placeholder: z.string().optional(), placeholder_version: uInt32Type.optional(), description: z.string().optional(), flags: uInt32Type.optional()}); export const messageEmbedVideoResponse = z.object({url: z.string().optional(), proxy_url: z.string().optional(), width: uInt32Type.optional(), height: uInt32Type.optional(), content_type: z.string().optional(), placeholder: z.string().optional(), placeholder_version: uInt32Type.optional(), description: z.string().optional(), flags: uInt32Type.optional()}); export const messageEmbedAudioResponse = z.object({url: z.string().optional(), proxy_url: z.string().optional(), content_type: z.string().optional(), description: z.string().optional()}); export const messageEmbedFooterResponse = z.object({text: z.string(), icon_url: z.string().optional(), proxy_icon_url: z.string().optional()}); export const messageComponentTypes = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8), z.literal(9), z.literal(10), z.literal(11), z.literal(12), z.literal(13), z.literal(14), z.literal(17), z.literal(18), z.literal(19), z.literal(21), z.literal(22), z.literal(23)]); export const buttonStyleTypes = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]); export const componentEmojiResponse = z.object({id: snowflakeType.optional(), name: z.string(), animated: z.boolean().optional()}); export const buttonComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string().optional(), style: buttonStyleTypes, label: z.string().optional(), disabled: z.boolean().optional(), emoji: componentEmojiResponse.optional(), url: z.string().max(2048).nullable().optional(), sku_id: snowflakeType.optional()}); export const channelTypes = z.union([z.literal(1), z.literal(3), z.literal(0), z.literal(2), z.literal(4), z.literal(5), z.literal(10), z.literal(11), z.literal(12), z.literal(13), z.literal(14), z.literal(15)]); export const snowflakeSelectDefaultValueTypes = z.union([z.literal("user"), z.literal("role"), z.literal("channel")]); export const channelSelectDefaultValueResponse = z.object({type: snowflakeSelectDefaultValueTypes, id: snowflakeType}); export const channelSelectComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), placeholder: z.string().optional(), min_values: z.number().int(), max_values: z.number().int(), disabled: z.boolean().optional(), channel_types: z.array(channelTypes).optional(), default_values: z.array(channelSelectDefaultValueResponse).optional()}); export const roleSelectDefaultValueResponse = z.object({type: snowflakeSelectDefaultValueTypes, id: snowflakeType}); export const userSelectDefaultValueResponse = z.object({type: snowflakeSelectDefaultValueTypes, id: snowflakeType}); export const mentionableSelectComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), placeholder: z.string().optional(), min_values: z.number().int(), max_values: z.number().int(), disabled: z.boolean().optional(), default_values: z.array(z.union([roleSelectDefaultValueResponse, userSelectDefaultValueResponse])).optional()}); export const roleSelectComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), placeholder: z.string().optional(), min_values: z.number().int(), max_values: z.number().int(), disabled: z.boolean().optional(), default_values: z.array(roleSelectDefaultValueResponse).optional()}); export const stringSelectOptionResponse = z.object({label: z.string(), value: z.string(), description: z.string().optional(), emoji: componentEmojiResponse.optional(), default: z.boolean().optional()}); export const stringSelectComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), placeholder: z.string().optional(), min_values: z.number().int(), max_values: z.number().int(), disabled: z.boolean().optional(), options: z.array(stringSelectOptionResponse)}); export const textInputStyleTypes = z.union([z.literal(1), z.literal(2)]); export const textInputComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), style: textInputStyleTypes, label: z.string().nullable(), value: z.string().optional(), placeholder: z.string().optional(), required: z.boolean().optional(), min_length: z.number().int().nullable(), max_length: z.number().int().nullable()}); export const userSelectComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), custom_id: z.string(), placeholder: z.string().optional(), min_values: z.number().int(), max_values: z.number().int(), disabled: z.boolean().optional(), default_values: z.array(userSelectDefaultValueResponse).optional()}); export const actionRowComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), components: z.array(z.union([buttonComponentResponse, channelSelectComponentResponse, mentionableSelectComponentResponse, roleSelectComponentResponse, stringSelectComponentResponse, textInputComponentResponse, userSelectComponentResponse]))}); export const contentScanMetadataResponse = z.object({flags: z.number().int()}); export const unfurledMediaResponse = z.object({id: snowflakeType, url: z.string(), proxy_url: z.string().optional(), width: z.number().int().nullable().optional(), height: z.number().int().nullable().optional(), placeholder: z.string().nullable().optional(), placeholder_version: z.number().int().nullable().optional(), content_scan_metadata: contentScanMetadataResponse.optional(), content_type: z.string().nullable().optional(), flags: z.number().int().optional(), attachment_id: snowflakeType.optional()}); export const fileComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), file: unfurledMediaResponse, name: z.string().nullable(), size: z.number().int().nullable(), spoiler: z.boolean()}); export const mediaGalleryItemResponse = z.object({media: unfurledMediaResponse, description: z.string().nullable(), spoiler: z.boolean()}); export const mediaGalleryComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), items: z.array(mediaGalleryItemResponse)}); export const textDisplayComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), content: z.string()}); export const thumbnailComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), media: unfurledMediaResponse, description: z.string().nullable(), spoiler: z.boolean()}); export const sectionComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), components: z.array(textDisplayComponentResponse), accessory: z.union([buttonComponentResponse, thumbnailComponentResponse])}); export const messageComponentSeparatorSpacingSize = z.union([z.literal(1), z.literal(2)]); export const separatorComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), spacing: messageComponentSeparatorSpacingSize, divider: z.boolean()}); export const containerComponentResponse = z.object({type: messageComponentTypes, id: z.number().int(), accent_color: z.number().int().nullable(), components: z.array(z.union([actionRowComponentResponse, fileComponentResponse, mediaGalleryComponentResponse, sectionComponentResponse, separatorComponentResponse, textDisplayComponentResponse])), spoiler: z.boolean()}); export const messageEmbedResponse = z.object({type: z.string(), url: z.string().optional(), title: z.string().optional(), description: z.string().optional(), color: z.number().int().optional(), timestamp: z.string().optional(), fields: z.array(messageEmbedFieldResponse).optional(), author: messageEmbedAuthorResponse.optional(), provider: messageEmbedProviderResponse.optional(), image: messageEmbedImageResponse.optional(), thumbnail: messageEmbedImageResponse.optional(), video: messageEmbedVideoResponse.optional(), audio: messageEmbedAudioResponse.optional(), footer: messageEmbedFooterResponse.optional(), flags: z.number().int().nullable().optional(), components: z.array(containerComponentResponse).optional()}); export const stickerTypes = z.union([z.literal(1), z.literal(2)]); export const stickerFormatTypes = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]); export const guildStickerResponse = z.object({id: snowflakeType, name: z.string(), tags: z.string(), type: stickerTypes, format_type: stickerFormatTypes.nullable(), description: z.string().nullable(), available: z.boolean(), guild_id: snowflakeType, user: userResponse.optional()}); export const standardStickerResponse = z.object({id: snowflakeType, name: z.string(), tags: z.string(), type: stickerTypes, format_type: stickerFormatTypes.nullable(), description: z.string().nullable(), pack_id: snowflakeType, sort_value: z.number().int()}); export const messageStickerItemResponse = z.object({id: snowflakeType, name: z.string(), format_type: stickerFormatTypes}); export const messageCallResponse = z.object({ended_timestamp: z.string().nullable().optional(), participants: z.array(snowflakeType)}); export const activityActionTypes = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(5), z.literal(6)]); export const messageActivityResponse = z.object({type: activityActionTypes, party_id: z.string().optional()}); export const basicApplicationResponseWithBot = z.object({id: snowflakeType, name: z.string(), icon: z.string().nullable(), description: z.string(), type: applicationTypes.nullable(), cover_image: z.string().optional(), primary_sku_id: snowflakeType.optional(), flags: z.number().int(), flags_new: z.string(), bot: userResponse.optional()}); export const interactionTypes = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]); export const messageInteractionResponse = z.object({id: snowflakeType, type: interactionTypes, name: z.string(), user: userResponse.optional(), name_localized: z.string().optional()}); export const messageReferenceType = z.literal(0); export const messageReferenceResponse = z.object({type: messageReferenceType, channel_id: snowflakeType, message_id: snowflakeType.optional(), guild_id: snowflakeType.optional()}); export const videoQualityModes = z.union([z.literal(1), z.literal(2)]); export const threadAutoArchiveDuration = z.union([z.literal(60), z.literal(1440), z.literal(4320), z.literal(10080)]); export const threadMetadataResponse = z.object({archived: z.boolean(), archive_timestamp: z.string().nullable(), auto_archive_duration: threadAutoArchiveDuration, locked: z.boolean(), create_timestamp: z.string().optional(), invitable: z.boolean().optional()}); export const guildMemberResponse = z.object({avatar: z.string().nullable(), avatar_decoration_data: userAvatarDecorationResponse.nullable().optional(), banner: z.string().nullable(), communication_disabled_until: z.string().nullable(), flags: z.number().int(), joined_at: z.string(), nick: z.string().nullable(), pending: z.boolean(), premium_since: z.string().nullable(), roles: z.array(snowflakeType), collectibles: userCollectiblesResponse.nullable().optional(), user: userResponse, mute: z.boolean(), deaf: z.boolean()}); export const threadMemberResponse = z.object({id: snowflakeType, user_id: snowflakeType, join_timestamp: z.string(), flags: z.number().int(), member: guildMemberResponse.optional()}); export const threadResponse = z.object({id: snowflakeType, type: channelTypes, last_message_id: snowflakeType.nullable().optional(), flags: z.number().int(), last_pin_timestamp: z.string().nullable().optional(), guild_id: snowflakeType, name: z.string(), parent_id: snowflakeType.nullable().optional(), rate_limit_per_user: z.number().int().optional(), bitrate: z.number().int().optional(), user_limit: z.number().int().optional(), rtc_region: z.string().nullable().optional(), video_quality_mode: videoQualityModes.optional(), permissions: z.string().optional(), owner_id: snowflakeType, thread_metadata: threadMetadataResponse, message_count: z.number().int(), member_count: z.number().int(), total_message_sent: z.number().int(), applied_tags: z.array(snowflakeType).optional(), member: threadMemberResponse.optional()}); export const messageMentionChannelResponse = z.object({id: snowflakeType, name: z.string(), type: channelTypes, guild_id: snowflakeType}); export const messageRoleSubscriptionDataResponse = z.object({role_subscription_listing_id: snowflakeType, tier_name: z.string(), total_months_subscribed: z.number().int(), is_renewal: z.boolean()}); export const purchaseType = z.literal(0); export const guildProductPurchaseResponse = z.object({listing_id: snowflakeType, product_name: z.string()}); export const purchaseNotificationResponse = z.object({type: purchaseType, guild_product_purchase: guildProductPurchaseResponse.optional()}); export const basicGuildMemberResponse = z.object({avatar: z.string().nullable(), avatar_decoration_data: userAvatarDecorationResponse.nullable().optional(), banner: z.string().nullable(), communication_disabled_until: z.string().nullable(), flags: z.number().int(), joined_at: z.string(), nick: z.string().nullable(), pending: z.boolean(), premium_since: z.string().nullable(), roles: z.array(snowflakeType), collectibles: userCollectiblesResponse.nullable().optional()}); export const channelPermissionOverwrites = z.union([z.literal(0), z.literal(1)]); export const channelPermissionOverwriteResponse = z.object({id: snowflakeType, type: channelPermissionOverwrites, allow: z.string(), deny: z.string()}); export const forumTagResponse = z.object({id: snowflakeType, name: z.string(), moderated: z.boolean(), emoji_id: snowflakeType.nullable(), emoji_name: z.string().nullable()}); export const defaultReactionEmojiResponse = z.object({emoji_id: snowflakeType.nullable(), emoji_name: z.string().nullable()}); export const threadSortOrder = z.union([z.literal(0), z.literal(1)]); export const forumLayout = z.union([z.literal(0), z.literal(1), z.literal(2)]); export const threadSearchTagSetting = z.union([z.literal("match_all"), z.literal("match_some")]); export const guildChannelResponse = z.object({id: snowflakeType, type: channelTypes, last_message_id: snowflakeType.nullable().optional(), flags: z.number().int(), last_pin_timestamp: z.string().nullable().optional(), guild_id: snowflakeType, name: z.string(), parent_id: snowflakeType.nullable().optional(), rate_limit_per_user: z.number().int().optional(), bitrate: z.number().int().optional(), user_limit: z.number().int().optional(), rtc_region: z.string().nullable().optional(), video_quality_mode: videoQualityModes.optional(), permissions: z.string().optional(), topic: z.string().nullable().optional(), default_auto_archive_duration: threadAutoArchiveDuration.optional(), default_thread_rate_limit_per_user: z.number().int().optional(), position: z.number().int(), permission_overwrites: z.array(channelPermissionOverwriteResponse).optional(), nsfw: z.boolean().optional(), available_tags: z.array(forumTagResponse).optional(), default_reaction_emoji: defaultReactionEmojiResponse.nullable().optional(), default_sort_order: threadSortOrder.nullable().optional(), default_forum_layout: forumLayout.optional(), default_tag_setting: threadSearchTagSetting.nullable().optional()}); export const privateChannelResponse = z.object({id: snowflakeType, type: channelTypes, last_message_id: snowflakeType.nullable().optional(), flags: z.number().int(), last_pin_timestamp: z.string().nullable().optional(), recipients: z.array(userResponse)}); export const privateGroupChannelResponse = z.object({id: snowflakeType, type: channelTypes, last_message_id: snowflakeType.nullable().optional(), flags: z.number().int(), last_pin_timestamp: z.string().nullable().optional(), recipients: z.array(userResponse), name: z.string().nullable(), icon: z.string().nullable(), owner_id: snowflakeType, managed: z.boolean().optional(), application_id: snowflakeType.optional()}); export const guildRoleColorsResponse = z.object({primary_color: z.number().int(), secondary_color: z.number().int().nullable(), tertiary_color: z.number().int().nullable()}); export const guildRoleTagsResponse = z.object({premium_subscriber: z.unknown(), bot_id: snowflakeType.optional(), integration_id: snowflakeType.optional(), subscription_listing_id: snowflakeType.optional(), available_for_purchase: z.unknown(), guild_connections: z.unknown()}); export const guildRoleResponse = z.object({id: snowflakeType, name: z.string(), permissions: z.string(), position: z.number().int(), color: z.number().int(), colors: guildRoleColorsResponse, hoist: z.boolean(), managed: z.boolean(), mentionable: z.boolean(), icon: z.string().nullable(), unicode_emoji: z.string().nullable(), tags: guildRoleTagsResponse.optional(), flags: z.number().int()}); export const resolvedObjectsResponse = z.object({users: z.record(z.string(), userResponse).nullable().optional(), members: z.record(z.string(), basicGuildMemberResponse).nullable().optional(), channels: z.record(z.string(), z.union([guildChannelResponse, privateChannelResponse, privateGroupChannelResponse, threadResponse])).nullable().optional(), roles: z.record(z.string(), guildRoleResponse).nullable().optional()}); export const messageReactionEmojiResponse = z.object({id: snowflakeType.nullable(), name: z.string().nullable(), animated: z.boolean().optional()}); export const pollMediaResponse = z.object({text: z.string().optional(), emoji: messageReactionEmojiResponse.optional()}); export const pollAnswerResponse = z.object({answer_id: z.number().int(), poll_media: pollMediaResponse}); export const pollLayoutTypes = z.literal(1); export const pollResultsEntryResponse = z.object({id: z.number().int(), count: z.number().int(), me_voted: z.boolean()}); export const pollResultsResponse = z.object({answer_counts: z.array(pollResultsEntryResponse), is_finalized: z.boolean()}); export const pollResponse = z.object({question: pollMediaResponse, answers: z.array(pollAnswerResponse), expiry: z.string(), allow_multiselect: z.boolean(), layout_type: pollLayoutTypes, results: pollResultsResponse}); export const messageShareCustomUserThemeBaseTheme = z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3), z.literal(4)]); export const customClientThemeResponse = z.object({colors: z.array(z.string()), gradient_angle: z.number().int(), base_mix: z.number().int(), base_theme: messageShareCustomUserThemeBaseTheme}); export const applicationCommandInteractionMetadataResponse = z.object({id: snowflakeType, type: interactionTypes, user: userResponse.optional(), authorizing_integration_owners: z.record(z.string(), snowflakeType), original_response_message_id: snowflakeType.optional(), target_user: userResponse.optional(), target_message_id: snowflakeType.optional()}); export const messageComponentInteractionMetadataResponse = z.object({id: snowflakeType, type: interactionTypes, user: userResponse.optional(), authorizing_integration_owners: z.record(z.string(), snowflakeType), original_response_message_id: snowflakeType.optional(), interacted_message_id: snowflakeType}); export const modalSubmitInteractionMetadataResponse = z.object({id: snowflakeType, type: interactionTypes, user: userResponse.optional(), authorizing_integration_owners: z.record(z.string(), snowflakeType), original_response_message_id: snowflakeType.optional(), triggering_interaction_metadata: z.union([applicationCommandInteractionMetadataResponse, messageComponentInteractionMetadataResponse])}); export const minimalContentMessageResponse = z.object({type: messageType, content: z.string(), mentions: z.array(userResponse), mention_roles: z.array(snowflakeType), attachments: z.array(messageAttachmentResponse), embeds: z.array(messageEmbedResponse), timestamp: z.string(), edited_timestamp: z.string().nullable(), flags: z.number().int(), components: z.array(z.union([actionRowComponentResponse, containerComponentResponse, fileComponentResponse, mediaGalleryComponentResponse, sectionComponentResponse, separatorComponentResponse, textDisplayComponentResponse])), stickers: z.array(z.union([guildStickerResponse, standardStickerResponse])).optional(), sticker_items: z.array(messageStickerItemResponse).optional()}); export const messageSnapshotResponse = z.object({message: minimalContentMessageResponse}); export const messageLobbyMemberResponse = z.object({additional_name: z.string()}); export const messageReactionCountDetailsResponse = z.object({burst: z.number().int(), normal: z.number().int()}); export const messageReactionResponse = z.object({emoji: messageReactionEmojiResponse, count: z.number().int(), count_details: messageReactionCountDetailsResponse, burst_colors: z.array(z.string()), me_burst: z.boolean(), me: z.boolean()}); export const basicMessageResponse = z.object({type: messageType, content: z.string(), mentions: z.array(userResponse), mention_roles: z.array(snowflakeType), attachments: z.array(messageAttachmentResponse), embeds: z.array(messageEmbedResponse), timestamp: z.string(), edited_timestamp: z.string().nullable(), flags: z.number().int(), components: z.array(z.union([actionRowComponentResponse, containerComponentResponse, fileComponentResponse, mediaGalleryComponentResponse, sectionComponentResponse, separatorComponentResponse, textDisplayComponentResponse])), stickers: z.array(z.union([guildStickerResponse, standardStickerResponse])).optional(), sticker_items: z.array(messageStickerItemResponse).optional(), id: snowflakeType, channel_id: snowflakeType, author: userResponse, pinned: z.boolean(), mention_everyone: z.boolean(), tts: z.boolean(), call: messageCallResponse.optional(), activity: messageActivityResponse.optional(), application: basicApplicationResponseWithBot.optional(), application_id: snowflakeType.optional(), interaction: messageInteractionResponse.optional(), nonce: z.union([z.number().int().gte(-9223372036854776000).lte(9223372036854776000), z.string().max(25)]).optional(), webhook_id: snowflakeType.optional(), message_reference: messageReferenceResponse.optional(), thread: threadResponse.optional(), mention_channels: z.array(messageMentionChannelResponse).optional(), role_subscription_data: messageRoleSubscriptionDataResponse.optional(), purchase_notification: purchaseNotificationResponse.optional(), position: z.number().int().optional(), resolved: resolvedObjectsResponse.optional(), poll: pollResponse.optional(), shared_client_theme: customClientThemeResponse.optional(), interaction_metadata: z.union([applicationCommandInteractionMetadataResponse, messageComponentInteractionMetadataResponse, modalSubmitInteractionMetadataResponse]).optional(), message_snapshots: z.array(messageSnapshotResponse).optional(), lobby_member: messageLobbyMemberResponse.optional(), actor: userResponse.optional()}); export const messageResponse = z.object({type: messageType, content: z.string(), mentions: z.array(userResponse), mention_roles: z.array(snowflakeType), attachments: z.array(messageAttachmentResponse), embeds: z.array(messageEmbedResponse), timestamp: z.string(), edited_timestamp: z.string().nullable(), flags: z.number().int(), components: z.array(z.union([actionRowComponentResponse, containerComponentResponse, fileComponentResponse, mediaGalleryComponentResponse, sectionComponentResponse, separatorComponentResponse, textDisplayComponentResponse])), stickers: z.array(z.union([guildStickerResponse, standardStickerResponse])).optional(), sticker_items: z.array(messageStickerItemResponse).optional(), id: snowflakeType, channel_id: snowflakeType, author: userResponse, pinned: z.boolean(), mention_everyone: z.boolean(), tts: z.boolean(), call: messageCallResponse.optional(), activity: messageActivityResponse.optional(), application: basicApplicationResponseWithBot.optional(), application_id: snowflakeType.optional(), interaction: messageInteractionResponse.optional(), nonce: z.union([z.number().int().gte(-9223372036854776000).lte(9223372036854776000), z.string().max(25)]).optional(), webhook_id: snowflakeType.optional(), message_reference: messageReferenceResponse.optional(), thread: threadResponse.optional(), mention_channels: z.array(messageMentionChannelResponse).optional(), role_subscription_data: messageRoleSubscriptionDataResponse.optional(), purchase_notification: purchaseNotificationResponse.optional(), position: z.number().int().optional(), resolved: resolvedObjectsResponse.optional(), poll: pollResponse.optional(), shared_client_theme: customClientThemeResponse.optional(), interaction_metadata: z.union([applicationCommandInteractionMetadataResponse, messageComponentInteractionMetadataResponse, modalSubmitInteractionMetadataResponse]).optional(), message_snapshots: z.array(messageSnapshotResponse).optional(), lobby_member: messageLobbyMemberResponse.optional(), actor: userResponse.optional(), reactions: z.array(messageReactionResponse).optional(), referenced_message: basicMessageResponse.nullable().optional()}); export const getApiChannelsChannelIdPinsResponse = z.array(messageResponse).nullable(); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * GET /channels/{channel_id}/pins */ export const getApiChannelsChannelIdPins = async (options?: GetApiChannelsChannelIdPinsOptions) => { const {baseUrl = "https://discord.com/api/v10", fetch: fetchFn = fetch, BotToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (BotToken !== undefined) headers.set("Authorization", BotToken) const url = `${baseUrl.replace(/\/+$/, '')}/channels/${encodeURIComponent(String(args.channel_id))}/pins${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiChannelsChannelIdPinsResponse, await res.json()) };