UNPKG

@flagship.io/js-sdk

Version:
79 lines (78 loc) 4.61 kB
import { primitive, IHit, VisitorCacheDTO, IFSFlagMetadata, CampaignDTO, EAIScore } from '../types'; import { IVisitor } from './IVisitor'; import { VisitorAbstract } from './VisitorAbstract'; import { DecisionMode, IConfigManager, IFlagshipConfig } from '../config/index'; import { IDecisionManager } from '../decision/IDecisionManager'; import { BatchDTO } from '../hit/Batch'; import { ITrackingManager } from '../api/ITrackingManager'; import { Troubleshooting } from '../hit/Troubleshooting'; import { MurmurHash } from '../utils/MurmurHash'; import { UsageHit } from '../hit/UsageHit'; import { GetFlagMetadataParam, GetFlagValueParam, VisitorExposedParam } from '../type.local'; import { IVisitorEvent } from '../emotionAI/hit/IVisitorEvent'; import { IPageView } from '../emotionAI/hit/IPageView'; import { type HitAbstract } from '../hit/HitAbstract'; import { IVisitorCacheImplementation } from '../cache/IVisitorCacheImplementation'; export declare const LOOKUP_HITS_JSON_ERROR = "JSON DATA must be an array of object"; export declare const LOOKUP_HITS_JSON_OBJECT_ERROR = "JSON DATA must fit the type HitCacheDTO"; export declare const VISITOR_ID_MISMATCH_ERROR = "Visitor ID mismatch: {0} vs {1}"; export type StrategyAbstractConstruct = { visitor: VisitorAbstract; murmurHash: MurmurHash; }; export declare abstract class StrategyAbstract implements Omit<IVisitor, 'visitorId' | 'anonymousId' | 'flagsStatus' | 'flagsData' | 'context' | 'hasConsented' | 'getFlagsDataArray' | 'getFlag' | 'getFlags' | 'cleanup'> { protected visitor: VisitorAbstract; protected get configManager(): IConfigManager; protected get trackingManager(): ITrackingManager; protected get decisionManager(): IDecisionManager; get config(): IFlagshipConfig; protected _murmurHash: MurmurHash; constructor(param: StrategyAbstractConstruct); collectEAIEventsAsync(currentPage?: Omit<IPageView, 'toApiKeys'>): Promise<void>; reportEaiVisitorEvent(event: IVisitorEvent): void; reportEaiPageView(pageView: IPageView): void; onEAICollectStatusChange(callback: (status: boolean) => void): void; cleanup(): void; updateCampaigns(campaigns: CampaignDTO[]): void; protected hasTrackingManager(process: string): boolean; setConsent(hasConsented: boolean): void; protected checKLookupVisitorDataV1(item: VisitorCacheDTO): boolean; protected checKLookupVisitorData(item: VisitorCacheDTO): boolean; private tryLookupCache; private processValidCache; lookupVisitor(): Promise<void>; protected createVisitorCacheDTO(eAIScore?: EAIScore, isEAIDataCollected?: boolean): VisitorCacheDTO; protected cacheAnonymousVisitor(visitorCacheInstance: IVisitorCacheImplementation, visitorCacheDTO: VisitorCacheDTO): Promise<void>; cacheVisitor(eAIScore?: EAIScore, isEAIDataCollected?: boolean): Promise<void>; protected flushVisitor(): Promise<void>; addInTrackingManager(hit: HitAbstract): Promise<void>; abstract updateContext(key: string, value: primitive): void; abstract updateContext(context: Record<string, primitive>): void; abstract updateContext(context: Record<string, primitive> | string, value?: primitive): void; abstract clearContext(): void; abstract sendHit(hit: HitAbstract): Promise<void>; abstract sendHit(hit: IHit): Promise<void>; abstract sendHit(hit: IHit | HitAbstract | BatchDTO): Promise<void>; abstract sendHits(hit: HitAbstract[]): Promise<void>; abstract sendHits(hit: IHit[]): Promise<void>; abstract sendHits(hits: HitAbstract[] | IHit[] | BatchDTO[]): Promise<void>; abstract authenticate(visitorId: string): void; abstract unauthenticate(): void; abstract fetchFlags(): Promise<void>; abstract visitorExposed(param: VisitorExposedParam): Promise<void>; abstract getFlagValue<T>(param: GetFlagValueParam<T>): T extends null ? unknown : T; abstract getFlagMetadata(param: GetFlagMetadataParam): IFSFlagMetadata; abstract sendVisitorAllocatedVariations(): void; sendTroubleshootingHit(hit: Troubleshooting): Promise<void>; sendUsageHit(hit: UsageHit): Promise<void>; getCurrentDateTime(): Date; protected getSdkConfigDecisionMode(): DecisionMode.BUCKETING | DecisionMode.BUCKETING_EDGE | 'DECISION_API' | undefined; sendSdkConfigAnalyticHit(): Promise<void>; sendFetchFlagsTroubleshooting({ isFromCache, campaigns, now }: { isFromCache: boolean; campaigns: CampaignDTO[]; now: number; }): Promise<void>; sendConsentHitTroubleshooting(): void; sendSegmentHitTroubleshooting(): void; }