UNPKG

@seckav/security-sdk

Version:

SecKav Security SDK - Enterprise-grade security platform with AI-powered threat detection, LLM-powered misconfiguration scanning (Gemini/GPT-4/Claude), end-to-end encryption, behavioral analysis, enhanced file scanning, adaptive rate limiting, GDPR/DPDP/C

322 lines 11.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecurityModule = void 0; const axios_1 = __importDefault(require("axios")); /** * Security Module for SecKav SDK * Handles security settings, IP filtering, user agent filtering, geo-location filtering, and security events */ class SecurityModule { constructor(config) { this.config = config; } /** * Get security settings */ async getSecuritySettings(token) { try { const response = await axios_1.default.get(`${this.config.apiUrl}/api/v1/security/settings`, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, settings: response.data.settings, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to get security settings', message: error.response?.data?.message || 'An error occurred', }; } } /** * Update security settings */ async updateSecuritySettings(token, settings) { try { const response = await axios_1.default.put(`${this.config.apiUrl}/api/v1/security/settings`, settings, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, settings: response.data.settings, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to update security settings', message: error.response?.data?.message || 'An error occurred', }; } } /** * Update IP whitelist */ async updateIpWhitelist(token, ipAddresses) { try { const response = await axios_1.default.put(`${this.config.apiUrl}/api/v1/security/ip-whitelist`, { ipAddresses }, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to update IP whitelist', message: error.response?.data?.message || 'An error occurred', }; } } /** * Update IP blacklist */ async updateIpBlacklist(token, ipAddresses) { try { const response = await axios_1.default.put(`${this.config.apiUrl}/api/v1/security/ip-blacklist`, { ipAddresses }, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to update IP blacklist', message: error.response?.data?.message || 'An error occurred', }; } } /** * Update user agent filtering */ async updateUserAgentFiltering(token, settings) { try { const response = await axios_1.default.put(`${this.config.apiUrl}/api/v1/security/user-agent-filtering`, settings, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to update user agent filtering', message: error.response?.data?.message || 'An error occurred', }; } } /** * Update geo-location filtering */ async updateGeoLocationFiltering(token, settings) { try { const response = await axios_1.default.put(`${this.config.apiUrl}/api/v1/security/geo-location-filtering`, settings, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to update geo-location filtering', message: error.response?.data?.message || 'An error occurred', }; } } /** * Get security events */ async getSecurityEvents(token, options) { try { const params = new URLSearchParams(); if (options?.page) params.append('page', options.page.toString()); if (options?.limit) params.append('limit', options.limit.toString()); if (options?.eventType) params.append('eventType', options.eventType); if (options?.severity) params.append('severity', options.severity); if (options?.startDate) params.append('startDate', options.startDate); if (options?.endDate) params.append('endDate', options.endDate); const response = await axios_1.default.get(`${this.config.apiUrl}/api/v1/security/events?${params.toString()}`, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, events: response.data.events, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to get security events', message: error.response?.data?.message || 'An error occurred', }; } } /** * Resolve security event */ async resolveSecurityEvent(token, eventId, resolution) { try { const response = await axios_1.default.post(`${this.config.apiUrl}/api/v1/security/resolve-event`, { eventId, resolution }, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to resolve security event', message: error.response?.data?.message || 'An error occurred', }; } } /** * Trigger alert check */ async triggerAlertCheck(token) { try { const response = await axios_1.default.post(`${this.config.apiUrl}/api/v1/security/trigger-alert-check`, {}, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to trigger alert check', message: error.response?.data?.message || 'An error occurred', }; } } /** * Test alert */ async testAlert(token, alertType, message) { try { const response = await axios_1.default.post(`${this.config.apiUrl}/api/v1/security/test-alert`, { type: alertType, message }, { headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', }, timeout: this.config.timeout || 5000, }); return { success: true, message: response.data.message, }; } catch (error) { if (this.config.onError) { this.config.onError(error); } return { success: false, error: error.response?.data?.error || 'Failed to test alert', message: error.response?.data?.message || 'An error occurred', }; } } /** * Get module information */ getInfo() { return { name: 'Security', version: '2.0.0', description: 'Security settings, filtering, and event management', apiUrl: this.config.apiUrl, }; } } exports.SecurityModule = SecurityModule; //# sourceMappingURL=Security.js.map