top-analyze-sdk
Version:
SDK for TOP analytics
89 lines (84 loc) • 2.34 kB
TypeScript
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 };