UNPKG

@flamesshield/rules-engine

Version:

Independent rules engine for security analysis of Firebase

44 lines 1.66 kB
import { SECURITY_ANALYSIS_API_ENDPOINT } from '../config.js'; export class SecurityAnalysisClient { async analyzeFirestoreRules(rules) { try { if (!rules) { return []; } const payload = { filename: 'firestore.rules', content: rules }; // Create an AbortController for timeout handling const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout try { const response = await fetch(SECURITY_ANALYSIS_API_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), signal: controller.signal }); if (!response.ok) { console.error(`API request failed with status ${response.status}`); return []; } const data = (await response.json()); return data.vulnerabilities || []; } finally { clearTimeout(timeoutId); } } catch (error) { if (error && typeof error === 'object' && 'name' in error && error.name === 'AbortError') { console.error('Request timed out after 10 seconds'); } else { console.error('Error analyzing Firestore rules:', error); } return []; } } } //# sourceMappingURL=SecurityAnalysisClient.js.map