mirror of https://github.com/jetkvm/kvm.git
122 lines
4.8 KiB
TypeScript
122 lines
4.8 KiB
TypeScript
// Centralized configuration constants
|
|
|
|
// Network and API Configuration
|
|
export const NETWORK_CONFIG = {
|
|
WEBSOCKET_RECONNECT_INTERVAL: 3000,
|
|
LONG_PRESS_DURATION: 3000,
|
|
ERROR_MESSAGE_TIMEOUT: 3000,
|
|
AUDIO_TEST_DURATION: 5000,
|
|
BACKEND_RETRY_DELAY: 500,
|
|
RESET_DELAY: 200,
|
|
STATE_CHECK_DELAY: 100,
|
|
VERIFICATION_DELAY: 1000,
|
|
} as const;
|
|
|
|
// Default URLs and Endpoints
|
|
export const DEFAULT_URLS = {
|
|
JETKVM_PROD_API: "https://api.jetkvm.com",
|
|
JETKVM_PROD_APP: "https://app.jetkvm.com",
|
|
JETKVM_DOCS_TROUBLESHOOTING: "https://jetkvm.com/docs/getting-started/troubleshooting",
|
|
JETKVM_DOCS_REMOTE_ACCESS: "https://jetkvm.com/docs/networking/remote-access",
|
|
JETKVM_DOCS_LOCAL_ACCESS_RESET: "https://jetkvm.com/docs/networking/local-access#reset-password",
|
|
JETKVM_GITHUB: "https://github.com/jetkvm",
|
|
CRONTAB_GURU: "https://crontab.guru/examples.html",
|
|
} as const;
|
|
|
|
// Sample ISO URLs for mounting
|
|
export const SAMPLE_ISOS = {
|
|
UBUNTU_24_04: {
|
|
name: "Ubuntu 24.04.2 Desktop",
|
|
url: "https://releases.ubuntu.com/24.04.2/ubuntu-24.04.2-desktop-amd64.iso",
|
|
},
|
|
DEBIAN_13: {
|
|
name: "Debian 13.0.0 (Testing)",
|
|
url: "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.0.0-amd64-netinst.iso",
|
|
},
|
|
DEBIAN_12: {
|
|
name: "Debian 12.11.0 (Stable)",
|
|
url: "https://cdimage.debian.org/mirror/cdimage/archive/12.11.0/amd64/iso-cd/debian-12.11.0-amd64-netinst.iso",
|
|
},
|
|
FEDORA_41: {
|
|
name: "Fedora 41 Workstation",
|
|
url: "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-41-1.4.iso",
|
|
},
|
|
OPENSUSE_LEAP: {
|
|
name: "openSUSE Leap 15.6",
|
|
url: "https://download.opensuse.org/distribution/leap/15.6/iso/openSUSE-Leap-15.6-NET-x86_64-Media.iso",
|
|
},
|
|
OPENSUSE_TUMBLEWEED: {
|
|
name: "openSUSE Tumbleweed",
|
|
url: "https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso",
|
|
},
|
|
ARCH_LINUX: {
|
|
name: "Arch Linux",
|
|
url: "https://archlinux.doridian.net/iso/2025.02.01/archlinux-2025.02.01-x86_64.iso",
|
|
},
|
|
NETBOOT_XYZ: {
|
|
name: "netboot.xyz",
|
|
url: "https://boot.netboot.xyz/ipxe/netboot.xyz.iso",
|
|
},
|
|
} as const;
|
|
|
|
// Security and Access Configuration
|
|
export const SECURITY_CONFIG = {
|
|
LOCALHOST_ONLY_IP: "127.0.0.1",
|
|
LOCALHOST_HOSTNAME: "localhost",
|
|
HTTPS_PROTOCOL: "https:",
|
|
} as const;
|
|
|
|
// Default Hardware Configuration
|
|
export const HARDWARE_CONFIG = {
|
|
DEFAULT_OFF_AFTER: 50000,
|
|
SAMPLE_EDID: "00FFFFFFFFFFFF00047265058A3F6101101E0104A53420783FC125A8554EA0260D5054BFEF80714F8140818081C081008B009500B300283C80A070B023403020360006442100001A000000FD00304C575716010A202020202020000000FC0042323436574C0A202020202020000000FF0054384E4545303033383532320A01F802031CF14F90020304050607011112131415161F2309070783010000011D8018711C1620582C250006442100009E011D007251D01E206E28550006442100001E8C0AD08A20E02D10103E9600064421000018C344806E70B028401720A80406442100001E00000000000000000000000000000000000000000000000000000096",
|
|
} as const;
|
|
|
|
// Audio Configuration
|
|
export const AUDIO_CONFIG = {
|
|
// Audio Level Analysis
|
|
LEVEL_UPDATE_INTERVAL: 100, // ms - throttle audio level updates for performance
|
|
FFT_SIZE: 128, // reduced from 256 for better performance
|
|
SMOOTHING_TIME_CONSTANT: 0.8,
|
|
RELEVANT_FREQUENCY_BINS: 32, // focus on lower frequencies for voice
|
|
RMS_SCALING_FACTOR: 180, // for converting RMS to percentage
|
|
MAX_LEVEL_PERCENTAGE: 100,
|
|
|
|
// Microphone Configuration
|
|
SAMPLE_RATE: 48000, // Hz - high quality audio sampling
|
|
CHANNEL_COUNT: 1, // mono for microphone input
|
|
OPERATION_DEBOUNCE_MS: 1000, // debounce microphone operations
|
|
SYNC_DEBOUNCE_MS: 1000, // debounce state synchronization
|
|
AUDIO_TEST_TIMEOUT: 100, // ms - timeout for audio testing
|
|
|
|
// NOTE: Audio quality presets (bitrates, sample rates, channels, frame sizes)
|
|
// are now fetched dynamically from the backend API via audioQualityService
|
|
// to eliminate duplication with backend config_constants.go
|
|
|
|
// Default Quality Labels - will be updated dynamically by audioQualityService
|
|
DEFAULT_QUALITY_LABELS: {
|
|
0: "Low",
|
|
1: "Medium",
|
|
2: "High",
|
|
3: "Ultra",
|
|
} as const,
|
|
|
|
// Audio Analysis
|
|
ANALYSIS_FFT_SIZE: 256, // for detailed audio analysis
|
|
ANALYSIS_UPDATE_INTERVAL: 100, // ms - 10fps for audio level updates
|
|
LEVEL_SCALING_FACTOR: 255, // for RMS to percentage conversion
|
|
|
|
// Audio Metrics Thresholds
|
|
DROP_RATE_WARNING_THRESHOLD: 1, // percentage - yellow warning
|
|
DROP_RATE_CRITICAL_THRESHOLD: 5, // percentage - red critical
|
|
PERCENTAGE_MULTIPLIER: 100, // for converting ratios to percentages
|
|
PERCENTAGE_DECIMAL_PLACES: 2, // decimal places for percentage display
|
|
} as const;
|
|
|
|
// Placeholder URLs
|
|
export const PLACEHOLDERS = {
|
|
ISO_URL: "https://example.com/image.iso",
|
|
PROXY_URL: "http://proxy.example.com:8080/",
|
|
API_URL: "https://api.example.com",
|
|
APP_URL: "https://app.example.com",
|
|
} as const; |