feat: Implement RSSI service for iOS and Web platforms

- Added IosRssiService to handle synthetic RSSI data for iOS.
- Created WebRssiService to simulate RSSI scanning on the web.
- Defined shared types for WifiNetwork and RssiService in rssi.service.ts.
- Introduced simulation service to generate synthetic sensing data.
- Implemented WebSocket service for real-time data handling with reconnection logic.
- Established Zustand stores for managing application state related to MAT and pose data.
- Developed theme context and utility functions for consistent styling and formatting.
- Added type definitions for various application entities including API responses and sensing data.
- Created utility functions for color mapping and URL validation.
- Configured TypeScript settings for the mobile application.
This commit is contained in:
ruv
2026-03-02 10:30:33 -05:00
parent 02192b0232
commit fdc7142dfa
131 changed files with 24090 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
const ALLOWED_PROTOCOLS = new Set(['http:', 'https:', 'ws:', 'wss:']);
export interface UrlValidationResult {
valid: boolean;
error?: string;
}
export function validateServerUrl(url: string): UrlValidationResult {
if (typeof url !== 'string' || !url.trim()) {
return { valid: false, error: 'URL must be a non-empty string.' };
}
try {
const parsed = new URL(url);
if (!ALLOWED_PROTOCOLS.has(parsed.protocol)) {
return { valid: false, error: 'URL must use http, https, ws, or wss.' };
}
if (!parsed.host) {
return { valid: false, error: 'URL must include a host.' };
}
return { valid: true };
} catch {
return { valid: false, error: 'Invalid URL format.' };
}
}