| import type { AudioQuality } from './types.js' |
|
|
| export const LIMITS = { |
| ROOM_PASSWORD_MAX_LENGTH: 32, |
| ROOM_NAME_MAX_LENGTH: 30, |
| NICKNAME_MAX_LENGTH: 20, |
| CHAT_CONTENT_MAX_LENGTH: 500, |
| CHAT_HISTORY_MAX: 200, |
| CHAT_RATE_LIMIT_PER_SECOND: 5, |
| QUEUE_MAX_SIZE: 1000, |
| QUEUE_BATCH_MAX_SIZE: 200, |
| PLAYLIST_PAGE_SIZE: 100, |
| SEARCH_KEYWORD_MAX_LENGTH: 100, |
| BILIBILI_SEARCH_INPUT_MAX_LENGTH: 2000, |
| SEARCH_PAGE_SIZE_MAX: 50, |
| SEARCH_PAGE_MAX: 100, |
| PLAYLIST_ID_MAX_LENGTH: 200, |
| } as const |
|
|
| |
| export const HIGHEST_AUDIO_QUALITY: AudioQuality = 'highest' |
|
|
| export const TIMING = { |
| ROOM_GRACE_PERIOD_MS: 60_000, |
| STREAM_URL_REFRESH_INTERVAL_MS: 30 * 60_000, |
| STREAM_URL_REFRESH_RETRY_INTERVAL_MS: 60_000, |
| WEBSOCKET_HEARTBEAT_INTERVAL_MS: 25_000, |
| PLAYER_NEXT_DEBOUNCE_MS: 500, |
| VOTE_TIMEOUT_MS: 30_000, |
| } as const |
|
|
| |
| export const QR_STATUS = { |
| EXPIRED: 800, |
| WAITING_SCAN: 801, |
| SCANNED: 802, |
| SUCCESS: 803, |
| } as const |
|
|
| |
| export const QR_TIMING = { |
| POLL_INTERVAL_MS: 2_000, |
| SUCCESS_CLOSE_DELAY_MS: 1_000, |
| } as const |
|
|
| |
| export const NTP = { |
| |
| INITIAL_INTERVAL_MS: 50, |
| |
| STEADY_STATE_INTERVAL_MS: 3_000, |
| |
| MAX_INITIAL_SAMPLES: 20, |
| |
| MAX_MEASUREMENTS: 60, |
| |
| MIN_SCHEDULE_DELAY_MS: 300, |
| |
| MAX_SCHEDULE_DELAY_MS: 3_000, |
| } as const |
|
|