Files
photo-live/packages/contracts/src/errors.ts
T

27 lines
1.4 KiB
TypeScript
Raw Normal View History

// 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',
2026-09-18 08:18:30 +08:00
// P1a 终审修缮①(P1b Task 1 补登):框架级 404(未注册路由等)此前兜底映射
// ALBUM_NOT_FOUND,语义错位。业务 404 一律经 ApiException 显式携带域码;
// NOT_FOUND 仅代表"框架/路由层面的资源不存在"。与 openapi.yaml Error enum
// 同步增补。
NOT_FOUND: 'NOT_FOUND',
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];