@teamsparta/cross-platform-logger
Version:
```typescript import * as CPL from "@teamsparta/cross-platform-logger";
218 lines (212 loc) • 7.67 kB
TypeScript
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 };