UNPKG

@iota-big3/sdk-security

Version:

Advanced security features including zero trust, quantum-safe crypto, and ML threat detection

68 lines 2.25 kB
"use strict"; /** * Event Bus Adapter for SDK Security * Adapts the actual EventBus to match our SecurityEventBusContract */ Object.defineProperty(exports, "__esModule", { value: true }); exports.EventsAdapter = void 0; class EventsAdapter { constructor(eventBus) { this.eventBus = eventBus; } /** * Emit adapter - converts (event, data) to Event object and handles Promise */ emit(event, data) { // Create Event object as expected by sdk-events const eventObject = { id: `${event}-${Date.now()}-${Math.random()}`, // Generate unique ID type: event, data: data, // sdk-events expects JsonValue metadata: { timestamp: Date.now(), version: '1.0.0', source: 'sdk-security' } }; // Fire and forget the Promise since security expects void this.eventBus.emit(eventObject).catch(error => { console.error(`Failed to emit event ${event}:`, error); }); } /** * On adapter - wraps handler to extract data from Event object */ on(event, handler) { // Create wrapper that extracts data from Event object const wrappedHandler = (eventData) => { // Handle both direct data and Event object formats if (eventData && typeof eventData === 'object' && 'data' in eventData) { handler(eventData.data); } else { handler(eventData); } }; this.eventBus.on(event, wrappedHandler); } /** * Off adapter - not implemented as sdk-events has different signature */ off(event, handler) { // This would need the exact same handler reference // For now, we can use removeAllListeners if available if ('removeAllListeners' in this.eventBus) { this.eventBus.removeAllListeners(event); } } /** * Initialize if the event bus supports it */ async initialize() { if (this.eventBus.initialize) { return this.eventBus.initialize(); } } } exports.EventsAdapter = EventsAdapter; //# sourceMappingURL=events.adapter.js.map