recoder-analytics
Version:
Comprehensive analytics and monitoring for the Recoder.xyz ecosystem
138 lines • 6.44 kB
JavaScript
/**
* 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
;