fluxer/packages/constants/src/ValidationErrorCodesDescriptions.tsx
2026-02-17 12:22:36 +00:00

257 lines
16 KiB
TypeScript

/*
* Copyright (C) 2026 Fluxer Contributors
*
* This file is part of Fluxer.
*
* Fluxer is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Fluxer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
*/
import type {ValidationErrorCodes} from '@fluxer/constants/src/ValidationErrorCodes';
export const ValidationErrorCodesDescriptions: Record<keyof typeof ValidationErrorCodes, string> = {
ACCENT_COLOR_CHANGED_TOO_MANY_TIMES: 'Accent colour has been changed too many times recently',
ACCOUNT_ALREADY_VERIFIED: 'Account is already verified',
AFK_CHANNEL_MUST_BE_IN_GUILD: 'AFK channel must be in the same guild',
AFK_CHANNEL_MUST_BE_VOICE: 'AFK channel must be a voice channel',
ALL_CHANNELS_MUST_BELONG_TO_GUILD: 'All channels must belong to the same guild',
ANIMATED_AVATARS_REQUIRE_PREMIUM: 'Animated avatars require premium',
ANIMATED_GUILD_BANNER_REQUIRES_FEATURE: 'Animated guild banners require the feature to be enabled',
AT_LEAST_ONE_ENTRY_IS_REQUIRED: 'At least one entry is required',
AT_LEAST_ONE_RECIPIENT_REQUIRED: 'At least one recipient is required',
ATTACHMENT_FIELDS_REQUIRED: 'Attachment fields are required',
ATTACHMENT_ID_NOT_FOUND_IN_MESSAGE: 'Attachment ID was not found in the message',
ATTACHMENT_IDS_MUST_BE_VALID_INTEGERS: 'Attachment IDs must be valid integers',
ATTACHMENT_METADATA_WITHOUT_FILES: 'Attachment metadata provided without files',
ATTACHMENT_MUST_BE_IMAGE: 'Attachment must be an image',
ATTACHMENTS_METADATA_REQUIRED_WHEN_UPLOADING: 'Attachments metadata is required when uploading files',
ATTACHMENTS_NOT_ALLOWED_FOR_MESSAGE: 'Attachments are not allowed for this message type',
AVATAR_CHANGED_TOO_MANY_TIMES: 'Avatar has been changed too many times recently',
BANNER_CHANGED_TOO_MANY_TIMES: 'Banner has been changed too many times recently',
BANNERS_REQUIRE_PREMIUM: 'Banners require premium',
BASE64_LENGTH_INVALID: 'Invalid base64 length',
BIO_CHANGED_TOO_MANY_TIMES: 'Bio has been changed too many times recently',
BUCKET_IS_REQUIRED: 'Bucket is required',
CANNOT_ADD_YOURSELF_TO_GROUP_DM: 'Cannot add yourself to a group DM',
CANNOT_DELETE_MORE_THAN_100_MESSAGES: 'Cannot delete more than 100 messages at once',
CANNOT_DM_YOURSELF: 'Cannot send a direct message to yourself',
CANNOT_EDIT_ATTACHMENT_METADATA:
'Users with MANAGE_MESSAGES can only edit attachment descriptions, not other metadata',
CANNOT_LEAVE_GUILD_AS_OWNER: 'Cannot leave guild as the owner',
CANNOT_POSITION_CHANNEL_RELATIVE_TO_ITSELF: 'Cannot position channel relative to itself',
CANNOT_PRELOAD_MORE_THAN_100_CHANNELS: 'Cannot preload more than 100 channels',
CANNOT_REFERENCE_ATTACHMENTS_WITHOUT_ATTACHMENTS: 'Cannot reference attachments without providing attachments',
CANNOT_REORDER_EVERYONE_ROLE: 'Cannot reorder the everyone role',
CANNOT_REPLY_TO_SYSTEM_MESSAGE: 'Cannot reply to a system message',
CANNOT_SET_HOIST_FOR_EVERYONE_ROLE: 'Cannot set hoist for the everyone role',
CANNOT_SPECIFY_BOTH_BEFORE_AND_AFTER: 'Cannot specify both before and after parameters',
CANNOT_USE_SAME_ROLE_AS_PRECEDING: 'Cannot use the same role as preceding',
CATEGORIES_CANNOT_HAVE_PARENT_CHANNEL: 'Categories cannot have a parent channel',
CATEGORIES_CANNOT_HAVE_PARENTS: 'Categories cannot have parents',
CHANGING_DISCRIMINATOR_REQUIRES_PREMIUM: 'Changing discriminator requires premium',
CHANNEL_DOES_NOT_EXIST: 'Channel does not exist',
CHANNEL_ID_IS_REQUIRED: 'Channel ID is required',
CHANNEL_MUST_BE_DM_OR_GROUP_DM: 'Channel must be a DM or group DM',
CHANNEL_MUST_BE_VOICE: 'Channel must be a voice channel',
CHANNEL_NAME_EMPTY_AFTER_NORMALIZATION: 'Channel name is empty after normalisation',
CHANNEL_NOT_FOUND: 'Channel was not found',
COLOR_VALUE_TOO_HIGH: 'Colour value is too high',
COLOR_VALUE_TOO_LOW: 'Colour value is too low',
CONTENT_EXCEEDS_MAX_LENGTH: 'Content exceeds maximum length',
CONTEXT_CHANNEL_OR_GUILD_ID_REQUIRED: 'Context channel or guild ID is required',
CUSTOM_EMOJI_NOT_FOUND: 'Custom emoji was not found',
CUSTOM_EMOJIS_REQUIRE_PREMIUM_OUTSIDE_SOURCE: 'Custom emojis require premium when used outside their source',
CUSTOM_STICKER_NOT_FOUND: 'Custom sticker was not found',
CUSTOM_STICKERS_IN_DMS_REQUIRE_PREMIUM: 'Custom stickers in DMs require premium',
CUSTOM_STICKERS_REQUIRE_PREMIUM_OUTSIDE_SOURCE: 'Custom stickers require premium when used outside their source',
DISCRIMINATOR_INVALID_FORMAT: 'Discriminator has an invalid format',
DISCRIMINATOR_OUT_OF_RANGE: 'Discriminator is out of valid range',
DUPLICATE_ATTACHMENT_IDS_NOT_ALLOWED: 'Duplicate attachment IDs are not allowed',
DUPLICATE_FILE_INDEX: 'Duplicate file index',
DUPLICATE_RECIPIENTS_NOT_ALLOWED: 'Duplicate recipients are not allowed',
VOICE_MESSAGES_ATTACHMENT_MUST_BE_AUDIO: 'Voice message attachment must be audio',
VOICE_MESSAGES_ATTACHMENT_WAVEFORM_REQUIRED: 'Voice message attachment waveform is required',
VOICE_MESSAGES_ATTACHMENT_DURATION_REQUIRED: 'Voice message attachment duration is required',
VOICE_MESSAGES_CANNOT_HAVE_CONTENT: 'Voice messages cannot have content',
VOICE_MESSAGES_CANNOT_HAVE_EMBEDS: 'Voice messages cannot have embeds',
VOICE_MESSAGES_CANNOT_HAVE_FAVORITE_MEMES: 'Voice messages cannot have favourite memes',
VOICE_MESSAGES_CANNOT_HAVE_STICKERS: 'Voice messages cannot have stickers',
VOICE_MESSAGES_DURATION_EXCEEDS_LIMIT: 'Voice message duration exceeds limit',
VOICE_MESSAGES_REQUIRE_SINGLE_ATTACHMENT: 'Voice messages require a single attachment',
EMAIL_ALREADY_IN_USE: 'Email address is already in use',
EMAIL_IS_REQUIRED: 'Email address is required',
EMAIL_LENGTH_INVALID: 'Email address length is invalid',
EMAIL_MUST_BE_CHANGED_VIA_TOKEN: 'Email must be changed via verification token',
EMAIL_TOKEN_EXPIRED: 'Email verification token has expired',
EMBED_INDEX_OUT_OF_BOUNDS: 'Embed index is out of bounds',
EMBED_SPLASH_REQUIRES_FEATURE: 'Embed splash requires the feature to be enabled',
EMBEDS_EXCEED_MAX_CHARACTERS: 'Embeds exceed maximum character count',
EMOJI_REQUIRES_GUILD_OR_PACK_ACCESS: 'Emoji requires guild or pack access',
FAILED_TO_PARSE_MULTIPART_FORM_DATA: 'Failed to parse multipart form data',
FAILED_TO_PARSE_MULTIPART_PAYLOAD: 'Failed to parse multipart payload',
FAILED_TO_UPLOAD_IMAGE: 'Failed to upload image',
FAVORITE_MEME_NAME_REQUIRED: 'Favourite meme name is required',
FAVORITE_MEME_NOT_FOUND: 'Favourite meme was not found',
FILE_INDEX_EXCEEDS_MAXIMUM: 'File index exceeds maximum',
FILE_NOT_FOUND_FOR_SCANNING: 'File not found for scanning',
FILE_NOT_FOUND: 'File was not found',
FILENAME_EMPTY_AFTER_NORMALIZATION: 'Filename is empty after normalisation',
FILENAME_INVALID_CHARACTERS: 'Filename contains invalid characters',
FILENAME_LENGTH_INVALID: 'Filename length is invalid',
FILENAME_MISMATCH_FOR_ATTACHMENT: 'Filename mismatch for attachment',
FORWARD_MESSAGES_CANNOT_CONTAIN_CONTENT: 'Forward messages cannot contain content',
FORWARD_REFERENCE_REQUIRES_CHANNEL_AND_MESSAGE: 'Forward reference requires channel and message',
GLOBAL_NAME_CANNOT_CONTAIN_RESERVED_TERMS: 'Display name cannot contain reserved terms',
GLOBAL_NAME_LENGTH_INVALID: 'Display name length is invalid',
GLOBAL_NAME_RESERVED_VALUE: 'Display name is a reserved value',
GUILD_BANNER_REQUIRES_FEATURE: 'Guild banner requires the feature to be enabled',
GUILD_ID_MUST_MATCH_REFERENCED_MESSAGE: 'Guild ID must match referenced message',
IMAGE_SIZE_EXCEEDS_LIMIT: 'Image size exceeds limit',
INTEGER_OUT_OF_INT64_RANGE: 'Integer is out of 64-bit range',
SNOWFLAKE_OUT_OF_RANGE: 'Snowflake is out of valid range',
INVALID_AUDIT_LOG_REASON: 'Invalid audit log reason',
INVALID_BASE64_FORMAT: 'Invalid base64 format',
INVALID_CHANNEL_ID: 'Invalid channel ID',
INVALID_CHANNEL: 'Invalid channel',
INVALID_CODE: 'Invalid code',
INVALID_CURRENT_PASSWORD: 'Invalid current password',
INVALID_DATE_OF_BIRTH_FORMAT: 'Invalid date of birth format',
INVALID_DATETIME_FOR_SCHEDULED_SEND: 'Invalid datetime for scheduled send',
INVALID_EMAIL_ADDRESS: 'Invalid email address',
INVALID_EMAIL_FORMAT: 'Invalid email format',
INVALID_EMAIL_LOCAL_PART: 'Invalid email local part',
INVALID_EMAIL_OR_PASSWORD: 'Invalid email or password',
INVALID_EMAIL_TOKEN: 'Invalid email verification token',
INVALID_FILE_FIELD_NAME: 'Invalid file field name',
INVALID_FORMAT: 'Invalid format',
INVALID_IMAGE_DATA: 'Invalid image data',
INVALID_IMAGE_FORMAT: 'Invalid image format',
INVALID_INTEGER_FORMAT: 'Invalid integer format',
INVALID_SNOWFLAKE_FORMAT: 'Invalid snowflake format',
INVALID_ISO_TIMESTAMP: 'Invalid ISO timestamp',
INVALID_JOB_ID: 'Invalid job ID',
INVALID_JSON_IN_PAYLOAD_JSON: 'Invalid JSON in payload_json field',
INVALID_MESSAGE_DATA: 'Invalid message data',
INVALID_MFA_CODE: 'Invalid MFA code',
INVALID_OR_EXPIRED_AUTHORIZATION_TICKET: 'Invalid or expired authorisation ticket',
INVALID_OR_EXPIRED_AUTHORIZATION_TOKEN: 'Invalid or expired authorisation token',
INVALID_OR_EXPIRED_RESET_TOKEN: 'Invalid or expired password reset token',
INVALID_OR_EXPIRED_REVERT_TOKEN: 'Invalid or expired revert token',
INVALID_OR_EXPIRED_TICKET: 'Invalid or expired ticket',
INVALID_OR_EXPIRED_VERIFICATION_TOKEN: 'Invalid or expired verification token',
INVALID_OR_RESTRICTED_RTC_REGION: 'Invalid or restricted RTC region',
INVALID_PARENT_CHANNEL: 'Invalid parent channel',
INVALID_PASSWORD: 'Invalid password',
INVALID_PROOF_TOKEN: 'Invalid proof token',
INVALID_ROLE_ID: 'Invalid role ID',
INVALID_RTC_REGION: 'Invalid RTC region',
INVALID_SCHEDULED_MESSAGE_PAYLOAD: 'Invalid scheduled message payload',
INVALID_SNOWFLAKE: 'Invalid snowflake',
INVALID_TIMEOUT_VALUE: 'Invalid timeout value',
INVALID_TIMEZONE_IDENTIFIER: 'Invalid timezone identifier',
INVALID_URL_FORMAT: 'Invalid URL format',
INVALID_URL_OR_ATTACHMENT_FORMAT: 'Invalid URL or attachment format',
INVALID_VERIFICATION_CODE: 'Invalid verification code',
INVITE_SPLASH_REQUIRES_FEATURE: 'Invite splash requires the feature to be enabled',
JOB_ID_IS_REQUIRED: 'Job ID is required',
JOB_IS_ALREADY_PROCESSED: 'Job has already been processed',
JOB_NOT_FOUND: 'Job was not found',
MEDIA_ALREADY_IN_FAVORITE_MEMES: 'Media is already in favourite memes',
MESSAGE_HISTORY_CUTOFF_BEFORE_GUILD_CREATION: 'Message history cutoff cannot be before the guild was created',
MESSAGE_HISTORY_CUTOFF_IN_FUTURE: 'Message history cutoff cannot be in the future',
MESSAGE_IDS_CANNOT_BE_EMPTY: 'Message IDs cannot be empty',
MESSAGE_TOTAL_ATTACHMENT_SIZE_TOO_LARGE: 'Total attachment size exceeds the maximum allowed',
MESSAGES_ARRAY_REQUIRED_AND_NOT_EMPTY: 'Messages array is required and cannot be empty',
MESSAGES_WITH_SNAPSHOTS_CANNOT_BE_EDITED: 'Messages with snapshots cannot be edited',
MULTIPLE_FILES_FOR_INDEX_NOT_ALLOWED: 'Multiple files for the same index are not allowed',
MUST_AGREE_TO_TOS_AND_PRIVACY_POLICY: 'Must agree to terms of service and privacy policy',
MUST_BE_MINIMUM_AGE: 'Must be minimum age to use this service',
MUST_ENABLE_2FA_BEFORE_REQUIRING_FOR_MODS: 'Must enable 2FA before requiring it for moderators',
MUST_HAVE_EMAIL_TO_CHANGE_IT: 'Must have an email to change it',
MUST_START_SESSION_BEFORE_SENDING: 'Must start session before sending',
NAME_EMPTY_AFTER_NORMALIZATION: 'Name is empty after normalisation',
NEW_EMAIL_MUST_BE_DIFFERENT: 'New email must be different from current email',
NO_FILE_FOR_ATTACHMENT_METADATA: 'No file provided for attachment metadata',
NO_FILE_FOR_ATTACHMENT: 'No file provided for attachment',
NO_METADATA_FOR_FILE: 'No metadata provided for file',
NO_NEW_EMAIL_REQUESTED: 'No new email has been requested',
NO_ORIGINAL_EMAIL_ON_RECORD: 'No original email on record',
NO_VALID_MEDIA_IN_MESSAGE: 'No valid media in message',
NOT_A_VALID_UNICODE_EMOJI: 'Not a valid Unicode emoji',
ORIGINAL_EMAIL_ALREADY_VERIFIED: 'Original email is already verified',
ORIGINAL_EMAIL_MUST_BE_VERIFIED_FIRST: 'Original email must be verified first',
ORIGINAL_VERIFICATION_NOT_REQUIRED: 'Original verification is not required',
PARENT_CHANNEL_NOT_IN_GUILD: 'Parent channel is not in the guild',
PARENT_MUST_BE_CATEGORY: 'Parent channel must be a category',
PARSE_AND_USERS_OR_ROLES_CANNOT_BE_USED_TOGETHER: 'Parse and users/roles cannot be used together',
PASSWORD_IS_TOO_COMMON: 'Password is too common',
PASSWORD_LENGTH_INVALID: 'Password length is invalid',
PASSWORD_NOT_SET: 'Password is not set',
PAYLOAD_JSON_REQUIRED_FOR_MULTIPART: 'payload_json is required for multipart requests',
PHONE_NUMBER_INVALID_FORMAT: 'Phone number has an invalid format',
PRECEDING_CHANNEL_MUST_SHARE_PARENT: 'Preceding channel must share the same parent',
PRECEDING_CHANNEL_NOT_IN_GUILD: 'Preceding channel is not in the guild',
PRECEDING_ROLE_NOT_IN_GUILD: 'Preceding role is not in the guild',
PREMIUM_REQUIRED_FOR_CUSTOM_EMOJI: 'Premium is required for custom emoji',
PRONOUNS_CHANGED_TOO_MANY_TIMES: 'Pronouns have been changed too many times recently',
RECIPIENT_IDS_CANNOT_BE_EMPTY: 'Recipient IDs cannot be empty',
RECIPIENT_IDS_MUST_BE_STRINGS: 'Recipient IDs must be strings',
RECIPIENT_IDS_MUST_BE_VALID_SNOWFLAKES: 'Recipient IDs must be valid snowflakes',
REFERENCED_ATTACHMENT_NOT_FOUND: 'Referenced attachment was not found',
ROWS_IS_REQUIRED: 'Rows field is required',
SCHEDULED_MESSAGES_MAX_30_DAYS: 'Scheduled messages must be within 30 days',
SCHEDULED_TIME_MUST_BE_FUTURE: 'Scheduled time must be in the future',
SESSION_TIMEOUT: 'Session has timed out',
SIZE_BYTES_MUST_BE_VALID_INTEGER: 'Size in bytes must be a valid integer',
STRING_LENGTH_EXACT: 'String must be exactly the required length',
STRING_LENGTH_INVALID: 'String length is invalid',
SYSTEM_CHANNEL_MUST_BE_IN_GUILD: 'System channel must be in the guild',
SYSTEM_CHANNEL_MUST_BE_TEXT: 'System channel must be a text channel',
TAG_ALREADY_TAKEN: 'Tag is already taken',
THIS_VANITY_URL_IS_ALREADY_TAKEN: 'This vanity URL is already taken',
TICKET_ALREADY_COMPLETED: 'Ticket has already been completed',
TIMEOUT_CANNOT_EXCEED_365_DAYS: 'Timeout cannot exceed 365 days',
TOO_MANY_EMBEDS: 'Too many embeds',
TOO_MANY_FILES: 'Too many files',
TOO_MANY_USERS_WITH_THIS_USERNAME: 'Too many users with this username',
TOO_MANY_USERS_WITH_USERNAME_TRY_DIFFERENT: 'Too many users with this username, try a different one',
UNCLAIMED_ACCOUNTS_CAN_ONLY_SET_EMAIL_VIA_TOKEN: 'Unclaimed accounts can only set email via verification token',
UNKNOWN_IMAGE_FORMAT: 'Unknown image format',
UNRESOLVED_ATTACHMENT_URL: 'Unresolved attachment URL',
UPLOADED_ATTACHMENT_NOT_FOUND: 'Uploaded attachment was not found',
URL_LENGTH_INVALID: 'URL length is invalid',
USER_DOES_NOT_HAVE_AN_EMAIL_ADDRESS: 'User does not have an email address',
USER_IS_NOT_BANNED: 'User is not banned',
USER_MUST_BE_A_BOT_TO_BE_MARKED_AS_A_SYSTEM_USER: 'User must be a bot to be marked as a system user',
USER_NOT_IN_CHANNEL: 'User is not in the channel',
USERNAME_CANNOT_CONTAIN_RESERVED_TERMS: 'Username cannot contain reserved terms',
USERNAME_CHANGED_TOO_MANY_TIMES: 'Username has been changed too many times recently',
USERNAME_INVALID_CHARACTERS: 'Username contains invalid characters',
USERNAME_LENGTH_INVALID: 'Username length is invalid',
USERNAME_RESERVED_VALUE: 'Username is a reserved value',
VALUE_MUST_BE_INTEGER_IN_RANGE: 'Value must be an integer in the valid range',
VALUE_TOO_SMALL: 'Value is too small',
VANITY_URL_CODE_ALREADY_TAKEN: 'Vanity URL code is already taken',
VANITY_URL_CODE_CANNOT_CONTAIN_FLUXER: 'Vanity URL code cannot contain fluxer',
VANITY_URL_CODE_LENGTH_INVALID: 'Vanity URL code length is invalid',
VANITY_URL_INVALID_CHARACTERS: 'Vanity URL contains invalid characters',
VANITY_URL_REQUIRES_FEATURE: 'Vanity URL requires the feature to be enabled',
VERIFICATION_CODE_EXPIRED: 'Verification code has expired',
VERIFICATION_CODE_NOT_ISSUED: 'Verification code was not issued',
VISIONARY_REQUIRED_FOR_BOT_DISCRIMINATOR: 'Visionary subscription required for bot discriminator',
VISIONARY_REQUIRED_FOR_DISCRIMINATOR: 'Visionary subscription required for discriminator',
BOT_DISCRIMINATOR_CANNOT_BE_CHANGED: 'Bot discriminator cannot be changed',
VOICE_CHANNELS_CANNOT_BE_ABOVE_TEXT_CHANNELS: 'Voice channels cannot be positioned above text channels',
WEBHOOK_NAME_LENGTH_INVALID: 'Webhook name length is invalid',
};