UNPKG

@teamsparta/cross-platform-logger

Version:

```typescript import * as CPL from "@teamsparta/cross-platform-logger";

218 lines (212 loc) 7.67 kB
import * as amplitude from '@amplitude/analytics-browser'; import { Types } from '@amplitude/analytics-browser'; interface SessionReplayConfig { recordingEndpoints?: string[]; sampleRate?: number; } declare class Braze { private static instance; private apiKey; private baseUrl; private enableLogging; private allowUserSuppliedJavascript; private isInitialized; private cookieMonitorInterval; private cookieCheckInterval; private lastUserId; private changeUserHistory; private constructor(); /** * Braze 인스턴스를 가져옵니다. (Singleton 패턴) * @param apiKey Braze API 키 * @param baseUrl Braze SDK 엔드포인트 * @param enableLogging 로깅 활성화 여부 * @param allowUserSuppliedJavascript 사용자 제공 JavaScript 허용 여부 * @returns Braze 인스턴스 */ static getInstance(apiKey?: string, baseUrl?: string, enableLogging?: boolean, allowUserSuppliedJavascript?: boolean): Braze; /** * 쿠키에서 user_id를 가져옵니다. * @returns user_id 값 또는 null */ private getUserIdFromCookie; /** * 쿠키 모니터링을 시작합니다. */ private startCookieMonitoring; /** * 쿠키 모니터링을 중지합니다. */ private stopCookieMonitoring; /** * 쿠키 모니터링 간격을 설정합니다. * @param interval 체크 간격 (밀리초) */ setCookieCheckInterval(interval: number): void; /** * changeUser 히스토리를 초기화합니다. * 로그아웃 후 새로운 사용자로 로그인할 때 사용합니다. */ resetChangeUserHistory(): void; /** * Braze SDK를 초기화합니다. */ initialize(): void; /** * 사용자 지정 이벤트를 로깅합니다. * @param eventName 이벤트 이름 * @param brazeProperties 이벤트 속성 */ logCustomEvent(eventName: string, brazeProperties: object): void; /** * 현재 사용자의 외부 ID를 설정합니다. * @param userIdentifier 사용자 식별자 */ changeUser(userIdentifier: string): void; /** * 사용자 커스텀 속성을 설정합니다. * @param attributeKey 속성 키 * @param attributeValue 속성 값 */ setCustomUserAttribute(attributeKey: string, attributeValue: any): void; /** * Braze 푸시 알림 권한을 요청합니다. * @returns Promise<boolean> 권한 허용 여부 */ requestNotificationPermission(): Promise<boolean>; /** * 초기화 상태를 확인합니다. */ private ensureInitialized; /** * Braze SDK를 비활성화합니다. * 탈퇴 시 사용자 데이터 수집을 중단합니다. */ disableSDK(): void; /** * Braze SDK를 다시 활성화합니다. */ enableSDK(): void; /** * Braze 인스턴스를 정리합니다. */ destroy(): void; /** * Braze의 디바이스 ID를 반환합니다. * @returns 디바이스 ID 문자열 또는 undefined */ getDeviceId(): string | undefined; } type BrowserOptions = Types.BrowserOptions; /** * Cross Platform Logger를 초기화합니다. * @param flounder_key Flounder API 키 * @param amplitude_key Amplitude API 키 * @param hackle_key Hackle API 키 * @param braze_key Braze API 키 (선택사항) * @param braze_endpoint Braze SDK 엔드포인트 (선택사항) * @param is_dev 개발 환경 여부 * @param amplitude_browser_options Amplitude 브라우저 옵션 */ declare const initCPLog: (flounder_key: string, amplitude_key: string, hackle_key: string, braze_key?: string, braze_endpoint?: string, is_dev?: boolean, amplitude_browser_options?: BrowserOptions) => void; /** * 이벤트를 모든 로거 서비스에 전송합니다. * @param key 이벤트 키 * @param data 이벤트 데이터 * @param is_gtm GTM 전송 여부 */ declare const sendCPLog: (key: string, data?: {}, is_gtm?: boolean) => void; /** * Amplitude 인스턴스를 반환합니다. * @returns Amplitude 인스턴스 */ declare const getAmplitudeInstance: () => typeof amplitude | null; /** * Amplitude 사용자 속성을 설정합니다. * @param key 속성 키 * @param value 속성 값 */ declare const setAmplitudeUserProperty: (key: string, value: any) => void; /** * Amplitude 사용자의 여러 속성을 설정합니다. * @param properties 사용자 속성 객체 */ declare const setAmplitudeUserProperties: (properties: Record<string, any>) => void; /** * Amplitude 사용자 속성을 배열에 추가합니다. * @param key 배열 속성 키 * @param value 추가할 값 */ declare const appendAmplitudeUserProperty: (key: string, value: any) => void; /** * Amplitude 사용자 속성을 배열에서 제거합니다. * @param key 배열 속성 키 * @param value 제거할 값 */ declare const removeAmplitudeUserProperty: (key: string, value: any) => void; /** * Amplitude 사용자 속성을 제거합니다. * @param key 제거할 속성 키 */ declare const unsetAmplitudeUserProperty: (key: string) => void; /** * Braze 인스턴스를 반환합니다. * @returns Braze 인스턴스 */ declare const getBrazeInstance: () => Braze | null; /** * Braze 인스턴스를 정리합니다. */ declare const destroyBrazeInstance: () => void; /** * Braze changeUser 히스토리를 초기화합니다. * 로그아웃 후 새로운 사용자로 로그인할 때 사용합니다. */ declare const resetBrazeChangeUserHistory: () => void; /** * Braze 웹 푸시 알림 권한을 요청합니다. * @returns Promise<boolean> 권한 허용 여부 */ declare const requestBrazeNotificationPermission: () => Promise<boolean>; /** * Braze SDK를 비활성화합니다. * 탈퇴 시 사용자 데이터 수집을 중단합니다. */ declare const disableBrazeSDK: () => void; /** * Braze SDK를 다시 활성화합니다. */ declare const enableBrazeSDK: () => void; /** * Amplitude Session Replay 설정을 구성합니다. * @param config Session Replay 설정 */ declare const setAmplitudeSessionReplayConfig: (config: SessionReplayConfig) => void; /** * Amplitude Session Replay를 시작합니다. */ declare const startAmplitudeSessionReplay: () => void; /** * Amplitude Session Replay를 중지합니다. */ declare const stopAmplitudeSessionReplay: () => void; /** * 특정 endpoint에서 Amplitude Session Replay를 시작합니다. * @param currentPath 현재 경로 */ declare const startAmplitudeSessionReplayForEndpoint: (currentPath: string) => void; /** * Amplitude 사용자 ID를 설정합니다. * @param userId 사용자 ID */ declare const setAmplitudeUserId: (userId: string) => void; /** * Amplitude 사용자 ID를 초기화합니다. (로그아웃 시 사용) */ declare const resetAmplitudeUserId: () => void; /** * Amplitude setUserId 히스토리를 초기화합니다. * 로그아웃 후 새로운 사용자로 로그인할 때 사용합니다. */ declare const resetAmplitudeSetUserIdHistory: () => void; export { type SessionReplayConfig, appendAmplitudeUserProperty, destroyBrazeInstance, disableBrazeSDK, enableBrazeSDK, getAmplitudeInstance, getBrazeInstance, initCPLog, removeAmplitudeUserProperty, requestBrazeNotificationPermission, resetAmplitudeSetUserIdHistory, resetAmplitudeUserId, resetBrazeChangeUserHistory, sendCPLog, setAmplitudeSessionReplayConfig, setAmplitudeUserId, setAmplitudeUserProperties, setAmplitudeUserProperty, startAmplitudeSessionReplay, startAmplitudeSessionReplayForEndpoint, stopAmplitudeSessionReplay, unsetAmplitudeUserProperty };