// packages/contracts/src/errors.ts export const ErrorCodes = { AUTH_INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS', AUTH_TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED', // Task 13 契约修订(已登记):登录失败基础限速(总纲 P1)需要一个区别于 // 凭据错误的错误码——429 若复用 AUTH_INVALID_CREDENTIALS 会向客户端撒谎, // 复用 VALIDATION_FAILED 则语义错位。与 openapi.yaml Error enum 同步增补。 AUTH_RATE_LIMITED: 'AUTH_RATE_LIMITED', AUTH_FORBIDDEN: 'AUTH_FORBIDDEN', ALBUM_NOT_FOUND: 'ALBUM_NOT_FOUND', ALBUM_NOT_PUBLIC: 'ALBUM_NOT_PUBLIC', ALBUM_UPLOAD_DISABLED: 'ALBUM_UPLOAD_DISABLED', MEMBER_CONFLICT: 'MEMBER_CONFLICT', UPLOAD_SESSION_CONFLICT: 'UPLOAD_SESSION_CONFLICT', UPLOAD_VERIFY_FAILED: 'UPLOAD_VERIFY_FAILED', PHOTO_NOT_FOUND: 'PHOTO_NOT_FOUND', PHOTO_NOT_PUBLIC: 'PHOTO_NOT_PUBLIC', VALIDATION_FAILED: 'VALIDATION_FAILED', INTERNAL_ERROR: 'INTERNAL_ERROR', } as const; export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];