UNPKG

top-analyze-sdk

Version:

SDK for TOP analytics

89 lines (84 loc) 2.34 kB
import { TonConnectUI } from '@tonconnect/ui'; export { TonConnectUI } from '@tonconnect/ui'; import { TonConnect } from '@tonconnect/sdk'; export { TonConnect } from '@tonconnect/sdk'; interface TopAnalyzeConfig { appName: string; apiToken: string; onlyImportantClicks?: boolean; debug?: boolean; } declare class TopAnalyzeSDK { private readonly appName; private readonly userData; private readonly debug; private readonly maxBatchSize; private readonly batchInterval; private readonly onlyImportantClicks; private readonly apiToken; private sessionId; private sessionStartTime; private isStarted; private events; private batchTimer; private eventTransformer; private tonConnectAdapter; constructor(config: TopAnalyzeConfig); start(): void; stop(): void; attachTonConnect(tonConnect: TonConnectUI | TonConnect): void; /** * Send custom event */ track(eventName: string, payload?: Record<string, any>): void; getTonWalletInfo(): { client?: string; address?: string; } | null; getSessionInfo(): { sessionId: string; duration: number; isActive: boolean; }; getStatus(): { isInitialized: boolean; isStarted: boolean; isTonConnectAttached: boolean; appName: string; }; private initUserData; private generateSessionId; private setupEventListeners; private removeEventListeners; private handleClick; private handlePageView; private setupHistoryTracking; private sendEvent; private startBatchTimer; private flushEvents; private sendBatchToAPI; private setupTelegramEventListeners; private handleTelegramEvent; private setupPageUnloadHandlers; } /** * Top Analyze SDK - упрощенная аналитика для TON Mini Apps * * @example * ```typescript * import { TopAnalyzeSDK } from '@top/analyze-sdk' * * const analytics = new TopAnalyzeSDK({ * appName: 'MyTonApp', * debug: true * }) * analytics.start() * * // TON Connect * analytics.attachTonConnect(tonConnectInstance) * * // Кастомные события * analytics.track('game_score', { score: 1500, level: 3 }) * ``` */ export { type TopAnalyzeConfig, TopAnalyzeSDK, TopAnalyzeSDK as default };