/** * Error Tracking Module * * Provides centralized error tracking and reporting. * * Usage: * - Add data-module="error-tracking" to enable global error tracking * - Or import and use directly: import { ErrorTracker } from './modules/error-tracking/index.js' * * Features: * - Error collection and grouping * - Error reporting to backend * - Error analytics * - Integration with ErrorBoundary * - Source map support */ import { Logger } from '../../core/logger.js'; import { ErrorTracker, getGlobalErrorTracker } from './ErrorTracker.js'; const ErrorTrackingModule = { name: 'error-tracking', errorTracker: null, init(config = {}, state = null) { Logger.info('[ErrorTrackingModule] Module initialized'); // Create global error tracker this.errorTracker = getGlobalErrorTracker(config); // Expose globally for easy access if (typeof window !== 'undefined') { window.ErrorTracker = this.errorTracker; } return this; }, /** * Get error tracker instance */ getErrorTracker() { return this.errorTracker || getGlobalErrorTracker(); }, /** * Manually capture an error */ captureException(error, context = {}) { const tracker = this.getErrorTracker(); tracker.captureException(error, context); }, destroy() { if (this.errorTracker) { this.errorTracker.destroy(); this.errorTracker = null; } if (typeof window !== 'undefined' && window.ErrorTracker) { delete window.ErrorTracker; } Logger.info('[ErrorTrackingModule] Module destroyed'); } }; // Export for direct usage export { ErrorTracker, getGlobalErrorTracker }; // Export as default for module system export default ErrorTrackingModule; // Export init function for module system export const init = ErrorTrackingModule.init.bind(ErrorTrackingModule);