@usercentrics/cmp-browser-sdk
Version:
Usercentrics CMP Browser SDK
130 lines (129 loc) • 5.05 kB
TypeScript
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;
}