c15t
Version:
Headless JavaScript consent management platform for cookie banners, privacy preferences, consent storage, and script gating.
45 lines (44 loc) • 1.62 kB
TypeScript
/**
* @packageDocumentation
* Cookie storage utilities for consent data persistence.
*
* @remarks
* This module handles dual storage of consent in both localStorage and cookies
* to ensure persistence across different scenarios.
*
* The implementation is split into several focused modules:
* - `types`: Type definitions and interfaces
* - `domain-utils`: Domain and configuration helpers
* - `key-mapping`: Cookie key compression for size optimization
* - `serialization`: Flattening/unflattening of nested objects
* - `operations`: Low-level cookie CRUD operations
* - `storage`: High-level storage functions for consent data
*
* @example
* ```typescript
* import {
* saveConsentToStorage,
* getConsentFromStorage,
* deleteConsentFromStorage,
* getRootDomain
* } from '@/libs/cookie';
*
* // Save consent
* saveConsentToStorage({
* consents: { necessary: true, analytics: false },
* consentInfo: { time: Date.now(), type: 'custom' }
* });
*
* // Retrieve consent
* const consent = getConsentFromStorage();
*
* // Delete consent
* deleteConsentFromStorage();
* ```
*/
export { getDefaultCookieOptions, getRootDomain } from './domain-utils';
export { COOKIE_KEY_MAP, expandFlatKeys, REVERSE_COOKIE_KEY_MAP, shortenFlatKeys, } from './key-mapping';
export { deleteCookie, getCookie, setCookie } from './operations';
export { flatToString, flattenObject, stringToFlat, unflattenObject, } from './serialization';
export { deleteConsentFromStorage, getConsentFromStorage, saveConsentToStorage, } from './storage';
export type { CookieOptions, StorageConfig } from './types';