UNPKG

@usercentrics/cmp-browser-sdk

Version:
130 lines (129 loc) 5.05 kB
import { AcmVendors, Consents, GraphQLQuery, LegacyHashService, LegacySettings, Ruleset, Translations, UserConsentResponse, UserConsentResponseV2 } from './interfaces'; import { CONSENT_ACTION, CONSENT_TYPE } from '../DataFacade/enums'; import { ConsentDTOV2, ConsentDTOV2Record } from '../DataFacade/interfaces/interfaces'; import { TrackEventParameters } from '../DataFacade/interfaces'; import { DataTransferSettings } from '../../modules/helpers'; import { HttpSuccess, RequestOptions } from '../../modules/http-client/interfaces'; import { ServiceHashArrayObject } from '../SettingsV2/interfaces/interfaces'; import { StorageTCF } from '../Storage/interfaces'; import { UcDomains } from '../../interfaces'; import { VendorList } from '../../../libs/@iabtcf/core'; declare global { interface Window { UC_AB_VARIANT?: string; } } export default class Api { private static instance; private API; private abTestVariant; private controllerIdInstance; private jsonCacheBustingString; private jsonFileLanguage; private jsonFileVersion; private settingsId; private rulesetId; private useEuCdn; private disableServerConsents; private aggregatedServicesCache; private translationsCache; private constructor(); static getInstance(): Api; static resetInstance(): void; resetAggregatedServicesCache(): void; resetTranslationsCache(): void; getAbTestVariant(): string; getJsonFileLanguage(): string; getJsonFileVersion(): string; getSettingsId(): string; getRulesetId(): string; getDisableServerConsents(): boolean; setJsonCacheBustingString(jsonCacheBustingString: string): void; setJsonFileLanguage(jsonFileLanguage: string): void; setJsonFileVersion(jsonFileVersion: string): void; setDisableServerConsents(disableServerConsents: boolean): void; /** * When activated, only servers inside of the EU will be used * * @param useSandbox * @param domains Optional whitelabeling domains given by clients */ setDomains(useSandbox: boolean, domains?: UcDomains | null): void; setSettingsId(settingsId: string): void; setRulesetId(rulesetId: string): void; /** * When activated, only servers inside of the EU will be used * * @param activate */ setEuMode(activate: boolean): void; /** * Determine if API service was initialized in EU servers mode */ isEuMode(): boolean; /** * Get the aggregator service URI * * @private */ private getAggregatorUri; /** * Get the CDN URI containing JSON config files * * @private */ private getCdnUri; /** * Get GraphQl URI * * @private */ private getGraphQLUri; /** * Get the tcf data URI (v2) * * @private */ private getTcfDataV2Uri; /** * Call aggregator service endpoint, which will return service */ fetchAggregatedServices(servicesHashArray: ServiceHashArrayObject[], useCache?: boolean): Promise<LegacyHashService[]>; fetchRuleset(): Promise<Ruleset>; fetchAvailableLanguages(): Promise<string[]>; fetchTranslations(): Promise<Translations | null>; mergeAbVariant(response: HttpSuccess): Promise<LegacySettings>; fetchAcmVendors(): Promise<AcmVendors>; fetchSettingsJson(): Promise<LegacySettings>; fetchUserConsents(): Promise<UserConsentResponse[]>; fetchUserConsentsV2(isTCF: boolean, isCCPA: boolean): Promise<UserConsentResponseV2 | null>; fetchUserTcfData(): Promise<StorageTCF | null>; fetchUserTcfDataV2(): Promise<StorageTCF>; fetchVendorsList(url: string, notAllowedPurposes?: number[]): Promise<VendorList>; saveTCFConsents(dataTransferSettings: DataTransferSettings, storageTCF: StorageTCF, consentAction: CONSENT_ACTION, consentType: CONSENT_TYPE, apiV2: { isAnalyticsEnabled: boolean; isConsentAPIv2Enabled: boolean; } | null, enableDeprecatedV1ConsentSaving?: boolean): Promise<void>; saveConsentsV1_DEPRECATED(consents: Consents): Promise<void>; saveConsents(consents: ConsentDTOV2): Promise<void>; sendConsents(query: GraphQLQuery, options: RequestOptions): Promise<unknown>; sendConsentsV2(body: ConsentDTOV2Record, options: RequestOptions): Promise<unknown>; saveConsentsFromBuffer(): Promise<void>; saveConsentsV2FromBuffer(): Promise<void>; setTrackingPixel(parameters: TrackEventParameters): void; updateTagLoggerData(targets: string[]): void; private addJsonCacheBustingString; private createAvailableLanguagesUrl; private createLanguagesUrl; private getSettingsUrl; private createSettingsJsonUrl; private createAcmVendorsJsonUrl; createSessionTrackingUrl(): string; private createFetchUserConsentsUrl; private createFetchUserConsentsV2Url; private createFetchUserTcfDataUrl; private createFetchUserTcfDataV2Url; private createRulesetUrl; private createSaveConsentsV2Url; private saveTagLoggerData; }