/** * Web-Stub. Ergibt im Browser keinen funktionalen Schutz — der Filter ist * inhärent device-bound. Verhindert nur dass Imports auf Web crashen. */ import { registerWebModule, NativeModule } from 'expo'; import type { ActivateResult, DeviceLayers, DisableResult, HealthProbeResult, RebreakProtectionEvents, SyncBlocklistResult, } from './RebreakProtection.types'; class RebreakProtectionModuleWeb extends NativeModule { async activate(): Promise { return { allLayersOn: false, missingLayers: [] }; } async disable(): Promise { return { allLayersOff: true }; } async getDeviceState(): Promise { return { blocklistCount: 0, blocklistLastSyncAt: null }; } // iOS Layer 2 — webContent-Filter. Auf Web inhärent ohne Funktion. async applyWebContentFilter() { return { enabled: false, appliedCount: 0, region: '', error: 'web_stub' }; } async clearWebContentFilter() { return { cleared: false, error: 'web_stub' }; } async syncWebContentDomains() { return { updated: false }; } async syncBlocklist(): Promise { return { updated: false, count: 0 }; } async runHealthProbe(): Promise { return { outcome: 'offline', reason: 'web_stub', durationMs: 0, target: '', }; } async openSystemSettings(): Promise { // no-op } // Android-only stubs (Web nutzt keinen davon, aber Type-Compat). async isAccessibilityEnabled() { return { enabled: false }; } async openAccessibilitySettings() { return { opened: false }; } async dismissAccessibilityHint() { // no-op } async openPowerDialog() { return { opened: false }; } async armTamperLock() { return { armed: false }; } async disarmTamperLock() { return { armed: false }; } async getProtectionStatus() { return { vpnEnabled: false, accessibilityEnabled: false, blocklistCount: 0, tamperArmed: false, }; } async reconcileVpn() { return { restarted: false }; } async reconcileUrlFilter() { return { recreated: false }; } async requestDeviceAdmin() { return { launched: false }; } async isDeviceAdminActive() { return { active: false }; } async removeDeviceAdmin() { return { removed: false }; } async probeContentFilter() { return { enabled: false, error: 'web_stub' }; } async isNeFilterActive() { return { enabled: false }; } } export default registerWebModule(RebreakProtectionModuleWeb, 'RebreakProtection');