UNPKG

recoder-analytics

Version:

Comprehensive analytics and monitoring for the Recoder.xyz ecosystem

138 lines 6.44 kB
"use strict"; /** * Recoder.xyz Analytics Package * * Comprehensive analytics and monitoring for the Recoder ecosystem */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ABTestingSystem = exports.monitoringSystem = exports.getSystemHealthSummary = exports.initializeMonitoring = exports.qualityAssessor = exports.QualityAssessor = exports.RecoderAnalytics = exports.createExtensionAnalytics = exports.createWebAnalytics = exports.createCLIAnalytics = exports.UsageAnalytics = exports.monitoringDashboard = exports.MonitoringDashboard = exports.productionMonitoring = exports.ProductionMonitoring = void 0; // Core monitoring var production_monitoring_1 = require("./monitoring/production-monitoring"); Object.defineProperty(exports, "ProductionMonitoring", { enumerable: true, get: function () { return production_monitoring_1.ProductionMonitoring; } }); Object.defineProperty(exports, "productionMonitoring", { enumerable: true, get: function () { return production_monitoring_1.productionMonitoring; } }); // Dashboard var monitoring_dashboard_1 = require("./dashboard/monitoring-dashboard"); Object.defineProperty(exports, "MonitoringDashboard", { enumerable: true, get: function () { return monitoring_dashboard_1.MonitoringDashboard; } }); Object.defineProperty(exports, "monitoringDashboard", { enumerable: true, get: function () { return monitoring_dashboard_1.monitoringDashboard; } }); // Usage analytics var usage_analytics_1 = require("./tracking/usage-analytics"); Object.defineProperty(exports, "UsageAnalytics", { enumerable: true, get: function () { return usage_analytics_1.UsageAnalytics; } }); Object.defineProperty(exports, "createCLIAnalytics", { enumerable: true, get: function () { return usage_analytics_1.createCLIAnalytics; } }); Object.defineProperty(exports, "createWebAnalytics", { enumerable: true, get: function () { return usage_analytics_1.createWebAnalytics; } }); Object.defineProperty(exports, "createExtensionAnalytics", { enumerable: true, get: function () { return usage_analytics_1.createExtensionAnalytics; } }); const usage_analytics_2 = require("./tracking/usage-analytics"); // Analytics factory for different platforms class RecoderAnalytics { /** * Get analytics instance for platform */ static forPlatform(platform) { const key = `analytics-${platform}`; if (!this.instances.has(key)) { let analytics; switch (platform) { case 'cli': analytics = usage_analytics_2.UsageAnalytics.getInstance('cli'); break; case 'web': analytics = usage_analytics_2.UsageAnalytics.getInstance('web'); break; case 'extension': analytics = usage_analytics_2.UsageAnalytics.getInstance('extension'); break; default: throw new Error(`Unsupported platform: ${platform}`); } this.instances.set(key, analytics); } return this.instances.get(key); } /** * Get monitoring dashboard */ static getDashboard() { const key = 'dashboard'; if (!this.instances.has(key)) { const { monitoringDashboard } = require('./dashboard/monitoring-dashboard'); this.instances.set(key, monitoringDashboard); } return this.instances.get(key); } /** * Get production monitoring */ static getMonitoring() { const key = 'monitoring'; if (!this.instances.has(key)) { const { productionMonitoring } = require('./monitoring/production-monitoring'); this.instances.set(key, productionMonitoring); } return this.instances.get(key); } /** * Initialize analytics for platform */ static async initialize(platform, options = {}) { const analytics = this.forPlatform(platform); const dashboard = this.getDashboard(); const monitoring = this.getMonitoring(); // Initialize analytics if (options.enableAnalytics !== false) { await analytics.initializeAnalytics(); if (options.userId) { analytics.setUserId(options.userId); } } // Start monitoring if (options.enableMonitoring !== false) { monitoring.startMonitoring(); dashboard.start(); } return { analytics, dashboard, monitoring }; } /** * Shutdown all analytics */ static shutdown() { // Stop monitoring try { const { monitoringDashboard } = require('./dashboard/monitoring-dashboard'); const { productionMonitoring } = require('./monitoring/production-monitoring'); monitoringDashboard.stop(); productionMonitoring.stopMonitoring(); } catch (error) { console.warn('Error stopping monitoring:', error); } // Clear instances this.instances.clear(); } } exports.RecoderAnalytics = RecoderAnalytics; RecoderAnalytics.instances = new Map(); // Quality assessment var quality_assessor_1 = require("./quality/quality-assessor"); Object.defineProperty(exports, "QualityAssessor", { enumerable: true, get: function () { return quality_assessor_1.QualityAssessor; } }); Object.defineProperty(exports, "qualityAssessor", { enumerable: true, get: function () { return quality_assessor_1.qualityAssessor; } }); // System monitoring var index_1 = require("./monitoring/index"); Object.defineProperty(exports, "initializeMonitoring", { enumerable: true, get: function () { return index_1.initializeMonitoring; } }); Object.defineProperty(exports, "getSystemHealthSummary", { enumerable: true, get: function () { return index_1.getSystemHealthSummary; } }); Object.defineProperty(exports, "monitoringSystem", { enumerable: true, get: function () { return index_1.monitoringSystem; } }); // A/B Testing system placeholder - TODO: implement class ABTestingSystem { constructor() { // Placeholder implementation } async runTest(testId, variants) { return { testId, winner: variants[0], confidence: 0.95 }; } } exports.ABTestingSystem = ABTestingSystem; // Default export exports.default = RecoderAnalytics; //# sourceMappingURL=index.js.map