UNPKG

tracker-api

Version:

A comprehensive JavaScript/TypeScript library for user behavior tracking and analytics

84 lines 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TrackerEnum = exports.AnalyticsClient = exports.UserClient = exports.TrackingClient = exports.APIKeyClient = exports.WebsiteClient = exports.CustomerClient = exports.TrackingAPI = void 0; const customer_client_1 = require("./customer-client"); const website_client_1 = require("./website-client"); const apikey_client_1 = require("./apikey-client"); const tracking_client_1 = require("./tracking-client"); const user_client_1 = require("./user-client"); const analytics_client_1 = require("./analytics-client"); class TrackingAPI { constructor(options = {}) { this.token = null; // Initialize all client modules this.customers = new customer_client_1.CustomerClient(options); this.websites = new website_client_1.WebsiteClient(options); this.apiKeys = new apikey_client_1.APIKeyClient(options); this.tracking = new tracking_client_1.TrackingClient(options); this.users = new user_client_1.UserClient(options); this.analytics = new analytics_client_1.AnalyticsClient(options); } /** * Set authentication token for API calls */ setToken(token) { this.token = token; } /** * Get current authentication token */ getToken() { return this.token; } /** * Clear authentication token */ clearToken() { this.token = null; } /** * Check API health */ async healthCheck() { return this.tracking.healthCheck(); } // Convenience methods that delegate to tracking client async track(eventData, immediate) { return this.tracking.trackEvent(eventData, immediate); } async trackBatch(events) { return this.tracking.trackBatch(events); } async trackPageView(pageUrl, sessionId, metadata) { return this.tracking.trackPageView(pageUrl, sessionId, metadata); } async trackClick(elementType, pageUrl, elementId, sessionId, metadata) { return this.tracking.trackClick(elementType, pageUrl, elementId, sessionId, metadata); } async trackScroll(pageUrl, scrollPercentage, sessionId, metadata) { return this.tracking.trackScroll(pageUrl, scrollPercentage, sessionId, metadata); } async trackCustomEvent(eventType, pageUrl, sessionId, metadata) { return this.tracking.trackCustomEvent(eventType, pageUrl, sessionId, metadata); } async flush() { return this.tracking.flush(); } } exports.TrackingAPI = TrackingAPI; // Export individual clients for advanced usage var customer_client_2 = require("./customer-client"); Object.defineProperty(exports, "CustomerClient", { enumerable: true, get: function () { return customer_client_2.CustomerClient; } }); var website_client_2 = require("./website-client"); Object.defineProperty(exports, "WebsiteClient", { enumerable: true, get: function () { return website_client_2.WebsiteClient; } }); var apikey_client_2 = require("./apikey-client"); Object.defineProperty(exports, "APIKeyClient", { enumerable: true, get: function () { return apikey_client_2.APIKeyClient; } }); var tracking_client_2 = require("./tracking-client"); Object.defineProperty(exports, "TrackingClient", { enumerable: true, get: function () { return tracking_client_2.TrackingClient; } }); var user_client_2 = require("./user-client"); Object.defineProperty(exports, "UserClient", { enumerable: true, get: function () { return user_client_2.UserClient; } }); var analytics_client_2 = require("./analytics-client"); Object.defineProperty(exports, "AnalyticsClient", { enumerable: true, get: function () { return analytics_client_2.AnalyticsClient; } }); var tracker_enum_1 = require("./tracker.enum"); Object.defineProperty(exports, "TrackerEnum", { enumerable: true, get: function () { return tracker_enum_1.TrackerEnum; } }); //# sourceMappingURL=tracking-api.js.map