c15t
Version:
Headless JavaScript consent management platform for cookie banners, privacy preferences, consent storage, and script gating.
66 lines (65 loc) • 1.91 kB
TypeScript
import type { IABModule } from '../../libs/iab-tcf/types';
import type { GlobalVendorList } from '../../types/iab-tcf';
/**
* IAB configuration for offline/fallback mode GVL fetching.
*/
export interface IABFallbackConfig {
/**
* Whether IAB mode is enabled on the client.
*/
enabled: boolean;
/**
* Vendor IDs to fetch from GVL endpoint.
*/
vendorIds?: number[];
/**
* Pre-loaded Global Vendor List for testing or SSR.
* When provided, skips network fetch entirely.
*/
gvl?: GlobalVendorList;
/**
* Injected IAB module for GVL fetching.
* @internal
*/
_module?: IABModule;
}
/**
* Configuration options for the c15t backend client
*/
export interface C15tInternalClientOptions {
/**
* Backend URL for API endpoints. Can be absolute or relative.
*
* @default '/api/c15t'
*/
backendURL: string;
/**
* Additional HTTP headers to include in all API requests.
*/
headers?: Record<string, string>;
/**
* A custom fetch implementation to use instead of the global fetch.
*/
customFetch?: typeof fetch;
/**
* CORS mode for fetch requests.
* @default 'cors'
*/
corsMode?: RequestMode;
/**
* Global retry configuration for fetch requests.
* Can be overridden per request in `FetchOptions`.
* @default { maxRetries: 3, initialDelayMs: 100, backoffFactor: 2, retryableStatusCodes: [500, 502, 503, 504] }
*/
retryConfig?: import('../types').RetryConfig;
/**
* Storage configuration for offline fallback
*/
storageConfig?: import('../../libs/cookie').StorageConfig;
/**
* IAB configuration for offline/fallback mode.
* When the backend is unavailable and IAB is enabled,
* the client will fetch GVL from gvl.inth.app with these settings.
*/
iabConfig?: IABFallbackConfig;
}