@cookieyes/core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -595
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -584
- package/dist/index.js.map +1 -1
- package/package.json +9 -10
- package/dist/index.d.cts +0 -210
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cookie.ts","../src/translations/en.ts","../src/i18n.ts","../src/scripts.ts","../src/sync.ts","../src/manager.ts","../src/network-blocker.ts","../src/runtime.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { ConsentCategory, ConsentSnapshot, Regulation } from \"./types.js\";\n\nconst COOKIE_NAME = \"cookieyes-consent\";\nconst CONSENT_CATEGORIES: ConsentCategory[] = [\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n];\n\ntype RawCookieFields = {\n consentid?: string;\n consent?: string;\n action?: string;\n necessary?: string;\n functional?: string;\n analytics?: string;\n performance?: string;\n advertisement?: string;\n lastRenewedDate?: string;\n};\n\nexport function parseCookie(raw: string): RawCookieFields {\n const fields: RawCookieFields = {};\n const pairs = raw.split(\",\");\n for (const pair of pairs) {\n const colonIdx = pair.indexOf(\":\");\n if (colonIdx === -1) continue;\n const key = pair.slice(0, colonIdx).trim() as keyof RawCookieFields;\n const value = pair.slice(colonIdx + 1).trim();\n if (key in fields || VALID_KEYS.has(key)) {\n fields[key] = value;\n }\n }\n return fields;\n}\n\nconst VALID_KEYS = new Set<keyof RawCookieFields>([\n \"consentid\",\n \"consent\",\n \"action\",\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n \"lastRenewedDate\",\n]);\n\nexport function serializeCookie(snapshot: ConsentSnapshot): string {\n const parts: string[] = [\n `consentid:${snapshot.consentId}`,\n `consent:${snapshot.hasActed ? \"yes\" : \"no\"}`,\n `action:${snapshot.hasActed ? \"yes\" : \"no\"}`,\n ];\n for (const cat of CONSENT_CATEGORIES) {\n parts.push(`${cat}:${snapshot.categories[cat] ? \"yes\" : \"no\"}`);\n }\n parts.push(`lastRenewedDate:${snapshot.lastRenewed ?? Date.now()}`);\n return parts.join(\",\");\n}\n\nexport function readConsentCookie(): RawCookieFields | null {\n if (typeof document === \"undefined\") return null;\n const cookies = document.cookie.split(\";\");\n for (const cookie of cookies) {\n const trimmed = cookie.trim();\n const eqIdx = trimmed.indexOf(\"=\");\n if (eqIdx === -1) continue;\n const name = trimmed.slice(0, eqIdx).trim();\n if (name === COOKIE_NAME) {\n const value = trimmed.slice(eqIdx + 1).trim();\n return parseCookie(decodeURIComponent(value));\n }\n }\n return null;\n}\n\nexport function writeConsentCookie(snapshot: ConsentSnapshot): void {\n if (typeof document === \"undefined\") return;\n const value = encodeURIComponent(serializeCookie(snapshot));\n const maxAge = 365 * 24 * 60 * 60; // 1 year\n document.cookie = `${COOKIE_NAME}=${value}; max-age=${maxAge}; path=/; SameSite=Lax`;\n}\n\nexport function clearConsentCookie(): void {\n if (typeof document === \"undefined\") return;\n document.cookie = `${COOKIE_NAME}=; max-age=0; path=/`;\n}\n\nexport function generateConsentId(): string {\n const array = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n crypto.getRandomValues(array);\n } else {\n for (let i = 0; i < array.length; i++) {\n array[i] = Math.floor(Math.random() * 256);\n }\n }\n return btoa(String.fromCharCode(...array))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=/g, \"\")\n .slice(0, 44);\n}\n\nexport function rawFieldsToSnapshot(\n fields: RawCookieFields,\n regulation: Regulation,\n): ConsentSnapshot {\n const categories: Record<ConsentCategory, boolean> = {\n necessary: true,\n functional: fields.functional === \"yes\",\n analytics: fields.analytics === \"yes\",\n performance: fields.performance === \"yes\",\n advertisement: fields.advertisement === \"yes\",\n };\n\n return {\n consentId: fields.consentid ?? generateConsentId(),\n hasActed: fields.action === \"yes\",\n categories,\n regulation,\n lastRenewed: fields.lastRenewedDate ? Number(fields.lastRenewedDate) : undefined,\n };\n}\n\nexport function defaultSnapshot(consentId: string, regulation: Regulation): ConsentSnapshot {\n const isOptOut = regulation === \"CCPA\";\n return {\n consentId,\n hasActed: false,\n categories: {\n necessary: true,\n functional: isOptOut,\n analytics: isOptOut,\n performance: isOptOut,\n advertisement: isOptOut,\n },\n regulation,\n };\n}\n","import type { TranslationMap } from \"../types.js\";\n\nexport const en: TranslationMap = {\n bannerTitle: \"We value your privacy\",\n bannerDescription:\n \"We use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \\u201cAccept All\\u201d, you consent to our use of cookies.\",\n acceptAll: \"Accept All\",\n rejectAll: \"Reject All\",\n managePreferences: \"Customise\",\n savePreferences: \"Save My Preferences\",\n doNotSell: \"Do Not Sell or Share My Personal Information\",\n ccpaDescription:\n \"This website or its third-party tools process personal data. You can opt out of the sale of your personal information by clicking on the \\u201cDo Not Sell or Share My Personal Information\\u201d link.\",\n accept: \"Accept\",\n poweredBy: \"Powered by CookieYes\",\n preferencesTitle: \"Customise Consent Preferences\",\n preferencesIntro:\n \"We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\",\n categories: {\n necessary: {\n label: \"Necessary\",\n description:\n \"Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\",\n },\n functional: {\n label: \"Functional\",\n description:\n \"Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\",\n },\n analytics: {\n label: \"Analytics\",\n description:\n \"Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\",\n },\n performance: {\n label: \"Performance\",\n description:\n \"Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\",\n },\n advertisement: {\n label: \"Advertisement\",\n description:\n \"Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\",\n },\n },\n optOut: {\n title: \"Opt-out Preferences\",\n description:\n 'We use third-party cookies that help us analyse how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. However, you can opt out of these cookies by checking \"Do Not Sell or Share My Personal Information\" and clicking the \"Save My Preferences\" button. Once you opt out, you can opt in again at any time by unchecking \"Do Not Sell or Share My Personal Information\" and clicking the \"Save My Preferences\" button.',\n cancel: \"Cancel\",\n successText: \"Your opt-out preference has been honored.\",\n successCountdown: \"Banner closes automatically in {seconds} s...\",\n },\n};\n","import { en } from \"./translations/en.js\";\nimport type { I18nConfig, TranslationMap } from \"./types.js\";\n\nexport { en as defaultTranslations };\n\nexport function resolveTranslations(i18n?: I18nConfig): TranslationMap {\n const messages = i18n?.messages ?? {};\n const detect = i18n?.detectBrowserLanguage ?? true;\n\n const candidates: string[] = [];\n if (i18n?.locale) candidates.push(i18n.locale);\n if (detect && typeof navigator !== \"undefined\" && navigator.language) {\n candidates.push(navigator.language);\n }\n\n for (const tag of candidates) {\n const primary = tag.split(\"-\")[0]?.toLowerCase() ?? \"\";\n const hit = messages[tag] ?? (primary ? messages[primary] : undefined);\n if (hit) return hit;\n }\n return messages.en ?? en;\n}\n","import type { ConsentCategory, ScriptEntry } from \"./types.js\";\n\nconst registry = new Map<string, ScriptEntry>();\nconst loaded = new Set<string>();\nconst injected = new Map<string, HTMLScriptElement>();\n\nexport function registerScript(entry: ScriptEntry): void {\n registry.set(entry.id, entry);\n}\n\nexport function applyScripts(categories: Record<ConsentCategory, boolean>): void {\n if (typeof document === \"undefined\") return;\n\n for (const [id, entry] of registry) {\n const allowed = categories[entry.category] === true;\n const strategy = entry.strategy ?? \"afterConsent\";\n\n if (allowed) {\n if (strategy === \"lazyOnce\" && loaded.has(id)) continue;\n if (!injected.has(id)) {\n injectScript(id, entry);\n }\n } else {\n removeScript(id);\n }\n }\n}\n\nfunction injectScript(id: string, entry: ScriptEntry): void {\n const existing = document.getElementById(id);\n if (existing) return;\n\n const el = document.createElement(\"script\");\n el.id = id;\n el.src = entry.src;\n el.async = true;\n if (entry.onLoad) {\n el.addEventListener(\"load\", entry.onLoad, { once: true });\n }\n document.head.appendChild(el);\n injected.set(id, el);\n loaded.add(id);\n}\n\nfunction removeScript(id: string): void {\n const el = injected.get(id);\n if (el) {\n el.remove();\n injected.delete(id);\n }\n}\n","import type { ConsentPayload, ConsentSnapshot } from \"./types.js\";\n\nexport function buildConsentPayload(snapshot: ConsentSnapshot): ConsentPayload {\n return {\n consentId: snapshot.consentId,\n categories: snapshot.categories,\n regulation: snapshot.regulation,\n domain: typeof window !== \"undefined\" ? window.location.hostname : \"unknown\",\n };\n}\n\nexport async function pushConsent(\n apiUrl: string,\n apiKey: string | undefined,\n snapshot: ConsentSnapshot,\n): Promise<void> {\n const payload = buildConsentPayload(snapshot);\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n if (apiKey) headers.Authorization = `Bearer ${apiKey}`;\n\n try {\n await fetch(apiUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify(payload),\n keepalive: true,\n });\n } catch {\n // Backend sync is best-effort — never fail the consent flow\n }\n}\n","import {\n clearConsentCookie,\n defaultSnapshot,\n generateConsentId,\n rawFieldsToSnapshot,\n readConsentCookie,\n writeConsentCookie,\n} from \"./cookie.js\";\nimport { applyScripts, registerScript } from \"./scripts.js\";\nimport { buildConsentPayload, pushConsent } from \"./sync.js\";\nimport type {\n ConsentCategory,\n ConsentConfig,\n ConsentManager,\n ConsentSnapshot,\n ScriptEntry,\n} from \"./types.js\";\n\nconst ALL_CATEGORIES: ConsentCategory[] = [\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n];\n\nexport function createConsentManager(config: ConsentConfig): ConsentManager {\n const listeners = new Set<(state: ConsentSnapshot) => void>();\n\n let state: ConsentSnapshot;\n let isPreferencesOpen = false;\n let lastPersistedCategories: Record<ConsentCategory, boolean>;\n\n // --- Synchronous initialisation from cookie ---\n const rawFields = readConsentCookie();\n const savedRegulation = config.regulation ?? \"DEFAULT\";\n\n if (rawFields) {\n state = rawFieldsToSnapshot(rawFields, savedRegulation);\n } else {\n const consentId = generateConsentId();\n state = defaultSnapshot(consentId, savedRegulation);\n\n // CCPA is an opt-out model: consent is implicit from page load.\n // Write the cookie immediately so all-category values (yes) are available\n // to third-party scripts before the user has explicitly acted.\n if (state.regulation === \"CCPA\") {\n writeConsentCookie(state);\n }\n }\n lastPersistedCategories = { ...state.categories };\n\n // Fire onConsentReady synchronously on next tick.\n Promise.resolve().then(() => config.onConsentReady?.(state));\n\n function notify(): void {\n const snap = snapshot();\n for (const fn of listeners) fn(snap);\n applyScripts(state.categories);\n }\n\n function snapshot(): ConsentSnapshot {\n return {\n consentId: state.consentId,\n hasActed: state.hasActed,\n categories: { ...state.categories },\n regulation: state.regulation,\n lastRenewed: state.lastRenewed,\n };\n }\n\n function persist(): void {\n state = {\n ...state,\n hasActed: true,\n lastRenewed: Date.now(),\n };\n writeConsentCookie(state);\n if (config.backend) {\n // Best-effort: swallow both sync throws and async rejections so a\n // broken/missing backend never breaks the consent UX.\n try {\n Promise.resolve(config.backend.persist(buildConsentPayload(state))).catch(() => undefined);\n } catch {\n // sync throw from .persist itself\n }\n } else if (config.apiUrl) {\n void pushConsent(config.apiUrl, config.apiKey, state);\n }\n\n // Detect \"revoke\" — any category that was previously consented but now isn't.\n let didRevoke = false;\n for (const cat of ALL_CATEGORIES) {\n if (lastPersistedCategories[cat] && !state.categories[cat]) {\n didRevoke = true;\n break;\n }\n }\n lastPersistedCategories = { ...state.categories };\n\n notify();\n config.onConsentUpdate?.(state);\n\n // Reload after notify + callbacks fire so consumer code can observe the change.\n // pushConsent uses keepalive: true so it survives the navigation.\n if (didRevoke && config.reloadOnRevoke && typeof window !== \"undefined\") {\n window.location.reload();\n }\n }\n\n const manager: ConsentManager = {\n get consentId() {\n return state.consentId;\n },\n get hasActed() {\n return state.hasActed;\n },\n get categories() {\n return { ...state.categories };\n },\n get regulation() {\n return state.regulation;\n },\n get lastRenewed() {\n return state.lastRenewed;\n },\n get isPreferencesOpen() {\n return isPreferencesOpen;\n },\n\n acceptAll() {\n state = {\n ...state,\n categories: {\n necessary: true,\n functional: true,\n analytics: true,\n performance: true,\n advertisement: true,\n },\n };\n isPreferencesOpen = false;\n persist();\n },\n\n rejectAll() {\n state = {\n ...state,\n categories: {\n necessary: true,\n functional: false,\n analytics: false,\n performance: false,\n advertisement: false,\n },\n };\n isPreferencesOpen = false;\n persist();\n },\n\n acceptSelected(categories: ConsentCategory[]) {\n const cats = { ...state.categories };\n for (const cat of ALL_CATEGORIES) {\n if (cat === \"necessary\") continue;\n cats[cat] = categories.includes(cat);\n }\n state = { ...state, categories: cats };\n isPreferencesOpen = false;\n persist();\n },\n\n updateCategory(category: ConsentCategory, value: boolean) {\n if (category === \"necessary\") return;\n state = {\n ...state,\n categories: { ...state.categories, [category]: value },\n };\n notify();\n },\n\n savePreferences() {\n isPreferencesOpen = false;\n persist();\n },\n\n resetConsent() {\n clearConsentCookie();\n const consentId = generateConsentId();\n state = defaultSnapshot(consentId, state.regulation);\n isPreferencesOpen = false;\n notify();\n },\n\n showPreferences() {\n isPreferencesOpen = true;\n notify();\n },\n\n hidePreferences() {\n isPreferencesOpen = false;\n notify();\n },\n\n subscribe(listener: (state: ConsentSnapshot) => void) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n registerScript(entry: ScriptEntry) {\n registerScript(entry);\n applyScripts(state.categories);\n },\n };\n\n // Apply scripts for any that were already registered before manager created\n applyScripts(state.categories);\n\n return manager;\n}\n","import type { ConsentCategory } from \"./types.js\";\n\nexport type NetworkBlockerRule = {\n id: string;\n domain: string;\n pathIncludes?: string | undefined;\n methods?: string[] | undefined;\n category: ConsentCategory;\n};\n\nexport type BlockedRequestInfo = {\n rule: NetworkBlockerRule;\n url: string;\n method: string;\n};\n\nexport type NetworkBlockerConfig = {\n rules: NetworkBlockerRule[];\n onRequestBlocked?: ((info: BlockedRequestInfo) => void) | undefined;\n logBlockedRequests?: boolean | undefined;\n};\n\ntype ConsentChecker = (category: ConsentCategory) => boolean;\n\nfunction findBlockingRule(\n rules: NetworkBlockerRule[],\n url: string,\n method: string,\n hasConsent: ConsentChecker,\n): NetworkBlockerRule | null {\n let parsed: URL;\n try {\n const base = typeof window !== \"undefined\" ? window.location.href : \"http://localhost\";\n parsed = new URL(url, base);\n } catch {\n return null;\n }\n const host = parsed.hostname.toLowerCase();\n const path = parsed.pathname + parsed.search;\n const upperMethod = method.toUpperCase();\n\n for (const rule of rules) {\n const ruleHost = rule.domain.toLowerCase();\n if (host !== ruleHost && !host.endsWith(\".\" + ruleHost)) continue;\n if (rule.pathIncludes && !path.includes(rule.pathIncludes)) continue;\n if (rule.methods && !rule.methods.map((m) => m.toUpperCase()).includes(upperMethod)) {\n continue;\n }\n if (hasConsent(rule.category)) continue;\n return rule;\n }\n return null;\n}\n\ntype InstallationState = {\n originalFetch: typeof fetch;\n originalXhrOpen: typeof XMLHttpRequest.prototype.open;\n originalXhrSend: typeof XMLHttpRequest.prototype.send;\n};\n\nlet active: InstallationState | null = null;\n\nexport function installNetworkBlocker(\n config: NetworkBlockerConfig,\n hasConsent: ConsentChecker,\n): () => void {\n if (typeof window === \"undefined\") return () => undefined;\n if (active) return () => undefined;\n if (!config.rules.length) return () => undefined;\n\n const state: InstallationState = {\n originalFetch: window.fetch,\n originalXhrOpen: XMLHttpRequest.prototype.open,\n originalXhrSend: XMLHttpRequest.prototype.send,\n };\n active = state;\n\n const logBlocked = config.logBlockedRequests !== false;\n function notify(info: BlockedRequestInfo): void {\n if (logBlocked) {\n // eslint-disable-next-line no-console\n console.warn(\n `[cookieyes] blocked ${info.method} ${info.url} (rule \"${info.rule.id}\", category: ${info.rule.category})`,\n );\n }\n config.onRequestBlocked?.(info);\n }\n\n window.fetch = function patchedFetch(\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> {\n let url = \"\";\n let method = init?.method ?? \"GET\";\n if (typeof input === \"string\") {\n url = input;\n } else if (input instanceof URL) {\n url = input.toString();\n } else {\n url = (input as Request).url;\n method = init?.method ?? (input as Request).method;\n }\n const blockingRule = findBlockingRule(config.rules, url, method, hasConsent);\n if (blockingRule) {\n notify({ rule: blockingRule, url, method });\n return Promise.reject(\n new TypeError(\n `Blocked by consent (rule: ${blockingRule.id}, category: ${blockingRule.category})`,\n ),\n );\n }\n return state.originalFetch.call(window, input, init);\n };\n\n type XHRMeta = { _cyUrl?: string; _cyMethod?: string };\n XMLHttpRequest.prototype.open = function patchedOpen(\n this: XMLHttpRequest & XHRMeta,\n method: string,\n url: string | URL,\n ...rest: unknown[]\n ) {\n this._cyUrl = url.toString();\n this._cyMethod = method;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return state.originalXhrOpen.apply(this, [method, url, ...rest] as any);\n };\n\n XMLHttpRequest.prototype.send = function patchedSend(\n this: XMLHttpRequest & XHRMeta,\n body?: Document | XMLHttpRequestBodyInit | null,\n ) {\n const url = this._cyUrl ?? \"\";\n const method = this._cyMethod ?? \"GET\";\n const blockingRule = findBlockingRule(config.rules, url, method, hasConsent);\n if (blockingRule) {\n notify({ rule: blockingRule, url, method });\n this.abort();\n return;\n }\n return state.originalXhrSend.call(this, body);\n };\n\n return uninstallNetworkBlocker;\n}\n\nexport function uninstallNetworkBlocker(): void {\n if (!active) return;\n if (typeof window !== \"undefined\") {\n window.fetch = active.originalFetch;\n XMLHttpRequest.prototype.open = active.originalXhrOpen;\n XMLHttpRequest.prototype.send = active.originalXhrSend;\n }\n active = null;\n}\n","import { createConsentManager } from \"./manager.js\";\nimport { installNetworkBlocker } from \"./network-blocker.js\";\nimport type {\n ActiveUI,\n ConsentCategory,\n ConsentChangePayload,\n ConsentConfig,\n ConsentRuntime,\n ConsentRuntimeOptions,\n ConsentStore,\n ConsentStoreState,\n} from \"./types.js\";\n\nfunction splitCategories(categories: Record<ConsentCategory, boolean>): ConsentChangePayload {\n const allowed: ConsentCategory[] = [];\n const denied: ConsentCategory[] = [];\n for (const cat of Object.keys(categories) as ConsentCategory[]) {\n if (categories[cat]) allowed.push(cat);\n else denied.push(cat);\n }\n return { allowedCategories: allowed, deniedCategories: denied };\n}\n\nlet _runtime: ConsentRuntime | null = null;\n\nexport function getOrCreateConsentRuntime(options: ConsentRuntimeOptions): ConsentRuntime {\n if (_runtime) return _runtime;\n\n const changeListeners = new Set<(payload: ConsentChangePayload) => void>();\n const userOnConsentUpdate = options.onConsentUpdate;\n\n const cfg: ConsentConfig = {};\n if (options.mode === \"self-hosted\") {\n if (options.backend) cfg.backend = options.backend;\n else if (options.backendURL) cfg.apiUrl = options.backendURL;\n }\n if (options.apiKey) cfg.apiKey = options.apiKey;\n if (options.overrides?.regulation) cfg.regulation = options.overrides.regulation;\n if (options.colorScheme) cfg.colorScheme = options.colorScheme;\n if (options.theme) cfg.theme = options.theme;\n if (options.reloadOnRevoke) cfg.reloadOnRevoke = options.reloadOnRevoke;\n if (options.onConsentReady) cfg.onConsentReady = options.onConsentReady;\n\n cfg.onConsentUpdate = (snap) => {\n userOnConsentUpdate?.(snap);\n const payload = splitCategories(snap.categories);\n for (const fn of changeListeners) fn(payload);\n };\n\n const manager = createConsentManager(cfg);\n\n function activeUI(): ActiveUI {\n if (manager.isPreferencesOpen) return \"dialog\";\n if (!manager.hasActed) return \"banner\";\n return null;\n }\n\n function buildState(): ConsentStoreState {\n const categories = manager.categories;\n return {\n consentId: manager.consentId,\n hasActed: manager.hasActed,\n categories,\n consents: categories,\n regulation: manager.regulation,\n lastRenewed: manager.lastRenewed,\n activeUI: activeUI(),\n has: (category) => manager.categories[category] ?? false,\n saveConsents: async (target) => {\n if (target === \"all\") manager.acceptAll();\n else if (target === \"necessary\") manager.rejectAll();\n else manager.acceptSelected(target);\n },\n setConsent: (category, value) => manager.updateCategory(category, value),\n subscribeToConsentChanges: (listener) => {\n changeListeners.add(listener);\n return () => {\n changeListeners.delete(listener);\n };\n },\n };\n }\n\n const consentStore: ConsentStore = {\n subscribe: (listener) => manager.subscribe(() => listener(buildState())),\n getState: buildState,\n };\n\n if (options.networkBlocker && options.networkBlocker.rules.length > 0) {\n installNetworkBlocker(options.networkBlocker, (cat) => manager.categories[cat] === true);\n }\n\n _runtime = { consentManager: manager, consentStore };\n return _runtime;\n}\n\nexport function resetConsentRuntime(): void {\n _runtime = null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/cookie.ts","../src/translations/en.ts","../src/scripts.ts","../src/sync.ts","../src/manager.ts","../src/network-blocker.ts","../src/runtime.ts","../src/i18n.ts"],"sourcesContent":["import type { ConsentCategory, ConsentSnapshot, Regulation } from \"./types.js\";\n\nconst COOKIE_NAME = \"cookieyes-consent\";\nconst CONSENT_CATEGORIES: ConsentCategory[] = [\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n];\n\ntype RawCookieFields = {\n consentid?: string;\n consent?: string;\n action?: string;\n necessary?: string;\n functional?: string;\n analytics?: string;\n performance?: string;\n advertisement?: string;\n lastRenewedDate?: string;\n};\n\nexport function parseCookie(raw: string): RawCookieFields {\n const fields: RawCookieFields = {};\n const pairs = raw.split(\",\");\n for (const pair of pairs) {\n const colonIdx = pair.indexOf(\":\");\n if (colonIdx === -1) continue;\n const key = pair.slice(0, colonIdx).trim() as keyof RawCookieFields;\n const value = pair.slice(colonIdx + 1).trim();\n if (key in fields || VALID_KEYS.has(key)) {\n fields[key] = value;\n }\n }\n return fields;\n}\n\nconst VALID_KEYS = new Set<keyof RawCookieFields>([\n \"consentid\",\n \"consent\",\n \"action\",\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n \"lastRenewedDate\",\n]);\n\nexport function serializeCookie(snapshot: ConsentSnapshot): string {\n const parts: string[] = [\n `consentid:${snapshot.consentId}`,\n `consent:${snapshot.hasActed ? \"yes\" : \"no\"}`,\n `action:${snapshot.hasActed ? \"yes\" : \"no\"}`,\n ];\n for (const cat of CONSENT_CATEGORIES) {\n parts.push(`${cat}:${snapshot.categories[cat] ? \"yes\" : \"no\"}`);\n }\n parts.push(`lastRenewedDate:${snapshot.lastRenewed ?? Date.now()}`);\n return parts.join(\",\");\n}\n\nexport function readConsentCookie(): RawCookieFields | null {\n if (typeof document === \"undefined\") return null;\n const cookies = document.cookie.split(\";\");\n for (const cookie of cookies) {\n const trimmed = cookie.trim();\n const eqIdx = trimmed.indexOf(\"=\");\n if (eqIdx === -1) continue;\n const name = trimmed.slice(0, eqIdx).trim();\n if (name === COOKIE_NAME) {\n const value = trimmed.slice(eqIdx + 1).trim();\n return parseCookie(decodeURIComponent(value));\n }\n }\n return null;\n}\n\nexport function writeConsentCookie(snapshot: ConsentSnapshot): void {\n if (typeof document === \"undefined\") return;\n const value = encodeURIComponent(serializeCookie(snapshot));\n const maxAge = 365 * 24 * 60 * 60; // 1 year\n document.cookie = `${COOKIE_NAME}=${value}; max-age=${maxAge}; path=/; SameSite=Lax`;\n}\n\nexport function clearConsentCookie(): void {\n if (typeof document === \"undefined\") return;\n document.cookie = `${COOKIE_NAME}=; max-age=0; path=/`;\n}\n\nexport function generateConsentId(): string {\n const array = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n crypto.getRandomValues(array);\n } else {\n for (let i = 0; i < array.length; i++) {\n array[i] = Math.floor(Math.random() * 256);\n }\n }\n return btoa(String.fromCharCode(...array))\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=/g, \"\")\n .slice(0, 44);\n}\n\nexport function rawFieldsToSnapshot(\n fields: RawCookieFields,\n regulation: Regulation,\n): ConsentSnapshot {\n const categories: Record<ConsentCategory, boolean> = {\n necessary: true,\n functional: fields.functional === \"yes\",\n analytics: fields.analytics === \"yes\",\n performance: fields.performance === \"yes\",\n advertisement: fields.advertisement === \"yes\",\n };\n\n return {\n consentId: fields.consentid ?? generateConsentId(),\n hasActed: fields.action === \"yes\",\n categories,\n regulation,\n lastRenewed: fields.lastRenewedDate ? Number(fields.lastRenewedDate) : undefined,\n };\n}\n\nexport function defaultSnapshot(consentId: string, regulation: Regulation): ConsentSnapshot {\n const isOptOut = regulation === \"CCPA\";\n return {\n consentId,\n hasActed: false,\n categories: {\n necessary: true,\n functional: isOptOut,\n analytics: isOptOut,\n performance: isOptOut,\n advertisement: isOptOut,\n },\n regulation,\n };\n}\n","import type { TranslationMap } from \"../types.js\";\n\nexport const en: TranslationMap = {\n bannerTitle: \"We value your privacy\",\n bannerDescription:\n \"We use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \\u201cAccept All\\u201d, you consent to our use of cookies.\",\n acceptAll: \"Accept All\",\n rejectAll: \"Reject All\",\n managePreferences: \"Customise\",\n savePreferences: \"Save My Preferences\",\n doNotSell: \"Do Not Sell or Share My Personal Information\",\n ccpaDescription:\n \"This website or its third-party tools process personal data. You can opt out of the sale of your personal information by clicking on the \\u201cDo Not Sell or Share My Personal Information\\u201d link.\",\n accept: \"Accept\",\n poweredBy: \"Powered by CookieYes\",\n preferencesTitle: \"Customise Consent Preferences\",\n preferencesIntro:\n \"We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\",\n categories: {\n necessary: {\n label: \"Necessary\",\n description:\n \"Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\",\n },\n functional: {\n label: \"Functional\",\n description:\n \"Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\",\n },\n analytics: {\n label: \"Analytics\",\n description:\n \"Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\",\n },\n performance: {\n label: \"Performance\",\n description:\n \"Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\",\n },\n advertisement: {\n label: \"Advertisement\",\n description:\n \"Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\",\n },\n },\n optOut: {\n title: \"Opt-out Preferences\",\n description:\n 'We use third-party cookies that help us analyse how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. However, you can opt out of these cookies by checking \"Do Not Sell or Share My Personal Information\" and clicking the \"Save My Preferences\" button. Once you opt out, you can opt in again at any time by unchecking \"Do Not Sell or Share My Personal Information\" and clicking the \"Save My Preferences\" button.',\n cancel: \"Cancel\",\n successText: \"Your opt-out preference has been honored.\",\n successCountdown: \"Banner closes automatically in {seconds} s...\",\n },\n};\n","import type { ConsentCategory, ScriptEntry } from \"./types.js\";\n\nconst registry = new Map<string, ScriptEntry>();\nconst loaded = new Set<string>();\nconst injected = new Map<string, HTMLScriptElement>();\n\nexport function registerScript(entry: ScriptEntry): void {\n registry.set(entry.id, entry);\n}\n\nexport function applyScripts(categories: Record<ConsentCategory, boolean>): void {\n if (typeof document === \"undefined\") return;\n\n for (const [id, entry] of registry) {\n const allowed = categories[entry.category] === true;\n const strategy = entry.strategy ?? \"afterConsent\";\n\n if (allowed) {\n if (strategy === \"lazyOnce\" && loaded.has(id)) continue;\n if (!injected.has(id)) {\n injectScript(id, entry);\n }\n } else {\n removeScript(id);\n }\n }\n}\n\nfunction injectScript(id: string, entry: ScriptEntry): void {\n const existing = document.getElementById(id);\n if (existing) return;\n\n const el = document.createElement(\"script\");\n el.id = id;\n el.src = entry.src;\n el.async = true;\n if (entry.onLoad) {\n el.addEventListener(\"load\", entry.onLoad, { once: true });\n }\n document.head.appendChild(el);\n injected.set(id, el);\n loaded.add(id);\n}\n\nfunction removeScript(id: string): void {\n const el = injected.get(id);\n if (el) {\n el.remove();\n injected.delete(id);\n }\n}\n","import type { ConsentPayload, ConsentSnapshot } from \"./types.js\";\n\nexport function buildConsentPayload(snapshot: ConsentSnapshot): ConsentPayload {\n return {\n consentId: snapshot.consentId,\n categories: snapshot.categories,\n regulation: snapshot.regulation,\n domain: typeof window !== \"undefined\" ? window.location.hostname : \"unknown\",\n };\n}\n\nexport async function pushConsent(\n apiUrl: string,\n apiKey: string | undefined,\n snapshot: ConsentSnapshot,\n): Promise<void> {\n const payload = buildConsentPayload(snapshot);\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n if (apiKey) headers.Authorization = `Bearer ${apiKey}`;\n\n try {\n await fetch(apiUrl, {\n method: \"POST\",\n headers,\n body: JSON.stringify(payload),\n keepalive: true,\n });\n } catch {\n // Backend sync is best-effort — never fail the consent flow\n }\n}\n","import {\n clearConsentCookie,\n defaultSnapshot,\n generateConsentId,\n rawFieldsToSnapshot,\n readConsentCookie,\n writeConsentCookie,\n} from \"./cookie.js\";\nimport { applyScripts, registerScript } from \"./scripts.js\";\nimport { buildConsentPayload, pushConsent } from \"./sync.js\";\nimport type {\n ConsentCategory,\n ConsentConfig,\n ConsentManager,\n ConsentSnapshot,\n ScriptEntry,\n} from \"./types.js\";\n\nconst ALL_CATEGORIES: ConsentCategory[] = [\n \"necessary\",\n \"functional\",\n \"analytics\",\n \"performance\",\n \"advertisement\",\n];\n\nexport function createConsentManager(config: ConsentConfig): ConsentManager {\n const listeners = new Set<(state: ConsentSnapshot) => void>();\n\n let state: ConsentSnapshot;\n let isPreferencesOpen = false;\n let lastPersistedCategories: Record<ConsentCategory, boolean>;\n\n // --- Synchronous initialisation from cookie ---\n const rawFields = readConsentCookie();\n const savedRegulation = config.regulation ?? \"DEFAULT\";\n\n if (rawFields) {\n state = rawFieldsToSnapshot(rawFields, savedRegulation);\n } else {\n const consentId = generateConsentId();\n state = defaultSnapshot(consentId, savedRegulation);\n\n // CCPA is an opt-out model: consent is implicit from page load.\n // Write the cookie immediately so all-category values (yes) are available\n // to third-party scripts before the user has explicitly acted.\n if (state.regulation === \"CCPA\") {\n writeConsentCookie(state);\n }\n }\n lastPersistedCategories = { ...state.categories };\n\n // Fire onConsentReady synchronously on next tick.\n Promise.resolve().then(() => config.onConsentReady?.(state));\n\n function notify(): void {\n const snap = snapshot();\n for (const fn of listeners) fn(snap);\n applyScripts(state.categories);\n }\n\n function snapshot(): ConsentSnapshot {\n return {\n consentId: state.consentId,\n hasActed: state.hasActed,\n categories: { ...state.categories },\n regulation: state.regulation,\n lastRenewed: state.lastRenewed,\n };\n }\n\n function persist(): void {\n state = {\n ...state,\n hasActed: true,\n lastRenewed: Date.now(),\n };\n writeConsentCookie(state);\n if (config.backend) {\n // Best-effort: swallow both sync throws and async rejections so a\n // broken/missing backend never breaks the consent UX.\n try {\n Promise.resolve(config.backend.persist(buildConsentPayload(state))).catch(() => undefined);\n } catch {\n // sync throw from .persist itself\n }\n } else if (config.apiUrl) {\n void pushConsent(config.apiUrl, config.apiKey, state);\n }\n\n // Detect \"revoke\" — any category that was previously consented but now isn't.\n let didRevoke = false;\n for (const cat of ALL_CATEGORIES) {\n if (lastPersistedCategories[cat] && !state.categories[cat]) {\n didRevoke = true;\n break;\n }\n }\n lastPersistedCategories = { ...state.categories };\n\n notify();\n config.onConsentUpdate?.(state);\n\n // Reload after notify + callbacks fire so consumer code can observe the change.\n // pushConsent uses keepalive: true so it survives the navigation.\n if (didRevoke && config.reloadOnRevoke && typeof window !== \"undefined\") {\n window.location.reload();\n }\n }\n\n const manager: ConsentManager = {\n get consentId() {\n return state.consentId;\n },\n get hasActed() {\n return state.hasActed;\n },\n get categories() {\n return { ...state.categories };\n },\n get regulation() {\n return state.regulation;\n },\n get lastRenewed() {\n return state.lastRenewed;\n },\n get isPreferencesOpen() {\n return isPreferencesOpen;\n },\n\n acceptAll() {\n state = {\n ...state,\n categories: {\n necessary: true,\n functional: true,\n analytics: true,\n performance: true,\n advertisement: true,\n },\n };\n isPreferencesOpen = false;\n persist();\n },\n\n rejectAll() {\n state = {\n ...state,\n categories: {\n necessary: true,\n functional: false,\n analytics: false,\n performance: false,\n advertisement: false,\n },\n };\n isPreferencesOpen = false;\n persist();\n },\n\n acceptSelected(categories: ConsentCategory[]) {\n const cats = { ...state.categories };\n for (const cat of ALL_CATEGORIES) {\n if (cat === \"necessary\") continue;\n cats[cat] = categories.includes(cat);\n }\n state = { ...state, categories: cats };\n isPreferencesOpen = false;\n persist();\n },\n\n updateCategory(category: ConsentCategory, value: boolean) {\n if (category === \"necessary\") return;\n state = {\n ...state,\n categories: { ...state.categories, [category]: value },\n };\n notify();\n },\n\n savePreferences() {\n isPreferencesOpen = false;\n persist();\n },\n\n resetConsent() {\n clearConsentCookie();\n const consentId = generateConsentId();\n state = defaultSnapshot(consentId, state.regulation);\n isPreferencesOpen = false;\n notify();\n },\n\n showPreferences() {\n isPreferencesOpen = true;\n notify();\n },\n\n hidePreferences() {\n isPreferencesOpen = false;\n notify();\n },\n\n subscribe(listener: (state: ConsentSnapshot) => void) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n registerScript(entry: ScriptEntry) {\n registerScript(entry);\n applyScripts(state.categories);\n },\n };\n\n // Apply scripts for any that were already registered before manager created\n applyScripts(state.categories);\n\n return manager;\n}\n","import type { ConsentCategory } from \"./types.js\";\n\nexport type NetworkBlockerRule = {\n id: string;\n domain: string;\n pathIncludes?: string | undefined;\n methods?: string[] | undefined;\n category: ConsentCategory;\n};\n\nexport type BlockedRequestInfo = {\n rule: NetworkBlockerRule;\n url: string;\n method: string;\n};\n\nexport type NetworkBlockerConfig = {\n rules: NetworkBlockerRule[];\n onRequestBlocked?: ((info: BlockedRequestInfo) => void) | undefined;\n logBlockedRequests?: boolean | undefined;\n};\n\ntype ConsentChecker = (category: ConsentCategory) => boolean;\n\nfunction findBlockingRule(\n rules: NetworkBlockerRule[],\n url: string,\n method: string,\n hasConsent: ConsentChecker,\n): NetworkBlockerRule | null {\n let parsed: URL;\n try {\n const base = typeof window !== \"undefined\" ? window.location.href : \"http://localhost\";\n parsed = new URL(url, base);\n } catch {\n return null;\n }\n const host = parsed.hostname.toLowerCase();\n const path = parsed.pathname + parsed.search;\n const upperMethod = method.toUpperCase();\n\n for (const rule of rules) {\n const ruleHost = rule.domain.toLowerCase();\n if (host !== ruleHost && !host.endsWith(\".\" + ruleHost)) continue;\n if (rule.pathIncludes && !path.includes(rule.pathIncludes)) continue;\n if (rule.methods && !rule.methods.map((m) => m.toUpperCase()).includes(upperMethod)) {\n continue;\n }\n if (hasConsent(rule.category)) continue;\n return rule;\n }\n return null;\n}\n\ntype InstallationState = {\n originalFetch: typeof fetch;\n originalXhrOpen: typeof XMLHttpRequest.prototype.open;\n originalXhrSend: typeof XMLHttpRequest.prototype.send;\n};\n\nlet active: InstallationState | null = null;\n\nexport function installNetworkBlocker(\n config: NetworkBlockerConfig,\n hasConsent: ConsentChecker,\n): () => void {\n if (typeof window === \"undefined\") return () => undefined;\n if (active) return () => undefined;\n if (!config.rules.length) return () => undefined;\n\n const state: InstallationState = {\n originalFetch: window.fetch,\n originalXhrOpen: XMLHttpRequest.prototype.open,\n originalXhrSend: XMLHttpRequest.prototype.send,\n };\n active = state;\n\n const logBlocked = config.logBlockedRequests !== false;\n function notify(info: BlockedRequestInfo): void {\n if (logBlocked) {\n // eslint-disable-next-line no-console\n console.warn(\n `[cookieyes] blocked ${info.method} ${info.url} (rule \"${info.rule.id}\", category: ${info.rule.category})`,\n );\n }\n config.onRequestBlocked?.(info);\n }\n\n window.fetch = function patchedFetch(\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> {\n let url = \"\";\n let method = init?.method ?? \"GET\";\n if (typeof input === \"string\") {\n url = input;\n } else if (input instanceof URL) {\n url = input.toString();\n } else {\n url = (input as Request).url;\n method = init?.method ?? (input as Request).method;\n }\n const blockingRule = findBlockingRule(config.rules, url, method, hasConsent);\n if (blockingRule) {\n notify({ rule: blockingRule, url, method });\n return Promise.reject(\n new TypeError(\n `Blocked by consent (rule: ${blockingRule.id}, category: ${blockingRule.category})`,\n ),\n );\n }\n return state.originalFetch.call(window, input, init);\n };\n\n type XHRMeta = { _cyUrl?: string; _cyMethod?: string };\n XMLHttpRequest.prototype.open = function patchedOpen(\n this: XMLHttpRequest & XHRMeta,\n method: string,\n url: string | URL,\n ...rest: unknown[]\n ) {\n this._cyUrl = url.toString();\n this._cyMethod = method;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return state.originalXhrOpen.apply(this, [method, url, ...rest] as any);\n };\n\n XMLHttpRequest.prototype.send = function patchedSend(\n this: XMLHttpRequest & XHRMeta,\n body?: Document | XMLHttpRequestBodyInit | null,\n ) {\n const url = this._cyUrl ?? \"\";\n const method = this._cyMethod ?? \"GET\";\n const blockingRule = findBlockingRule(config.rules, url, method, hasConsent);\n if (blockingRule) {\n notify({ rule: blockingRule, url, method });\n this.abort();\n return;\n }\n return state.originalXhrSend.call(this, body);\n };\n\n return uninstallNetworkBlocker;\n}\n\nexport function uninstallNetworkBlocker(): void {\n if (!active) return;\n if (typeof window !== \"undefined\") {\n window.fetch = active.originalFetch;\n XMLHttpRequest.prototype.open = active.originalXhrOpen;\n XMLHttpRequest.prototype.send = active.originalXhrSend;\n }\n active = null;\n}\n","import { createConsentManager } from \"./manager.js\";\nimport { installNetworkBlocker } from \"./network-blocker.js\";\nimport type {\n ActiveUI,\n ConsentCategory,\n ConsentChangePayload,\n ConsentConfig,\n ConsentRuntime,\n ConsentRuntimeOptions,\n ConsentStore,\n ConsentStoreState,\n} from \"./types.js\";\n\nfunction splitCategories(categories: Record<ConsentCategory, boolean>): ConsentChangePayload {\n const allowed: ConsentCategory[] = [];\n const denied: ConsentCategory[] = [];\n for (const cat of Object.keys(categories) as ConsentCategory[]) {\n if (categories[cat]) allowed.push(cat);\n else denied.push(cat);\n }\n return { allowedCategories: allowed, deniedCategories: denied };\n}\n\nlet _runtime: ConsentRuntime | null = null;\n\nexport function getOrCreateConsentRuntime(options: ConsentRuntimeOptions): ConsentRuntime {\n if (_runtime) return _runtime;\n\n const changeListeners = new Set<(payload: ConsentChangePayload) => void>();\n const userOnConsentUpdate = options.onConsentUpdate;\n\n const cfg: ConsentConfig = {};\n if (options.mode === \"self-hosted\") {\n if (options.backend) cfg.backend = options.backend;\n else if (options.backendURL) cfg.apiUrl = options.backendURL;\n }\n if (options.apiKey) cfg.apiKey = options.apiKey;\n if (options.overrides?.regulation) cfg.regulation = options.overrides.regulation;\n if (options.colorScheme) cfg.colorScheme = options.colorScheme;\n if (options.theme) cfg.theme = options.theme;\n if (options.reloadOnRevoke) cfg.reloadOnRevoke = options.reloadOnRevoke;\n if (options.onConsentReady) cfg.onConsentReady = options.onConsentReady;\n\n cfg.onConsentUpdate = (snap) => {\n userOnConsentUpdate?.(snap);\n const payload = splitCategories(snap.categories);\n for (const fn of changeListeners) fn(payload);\n };\n\n const manager = createConsentManager(cfg);\n\n function activeUI(): ActiveUI {\n if (manager.isPreferencesOpen) return \"dialog\";\n if (!manager.hasActed) return \"banner\";\n return null;\n }\n\n function buildState(): ConsentStoreState {\n const categories = manager.categories;\n return {\n consentId: manager.consentId,\n hasActed: manager.hasActed,\n categories,\n consents: categories,\n regulation: manager.regulation,\n lastRenewed: manager.lastRenewed,\n activeUI: activeUI(),\n has: (category) => manager.categories[category] ?? false,\n saveConsents: async (target) => {\n if (target === \"all\") manager.acceptAll();\n else if (target === \"necessary\") manager.rejectAll();\n else manager.acceptSelected(target);\n },\n setConsent: (category, value) => manager.updateCategory(category, value),\n subscribeToConsentChanges: (listener) => {\n changeListeners.add(listener);\n return () => {\n changeListeners.delete(listener);\n };\n },\n };\n }\n\n const consentStore: ConsentStore = {\n subscribe: (listener) => manager.subscribe(() => listener(buildState())),\n getState: buildState,\n };\n\n if (options.networkBlocker && options.networkBlocker.rules.length > 0) {\n installNetworkBlocker(options.networkBlocker, (cat) => manager.categories[cat] === true);\n }\n\n _runtime = { consentManager: manager, consentStore };\n return _runtime;\n}\n\nexport function resetConsentRuntime(): void {\n _runtime = null;\n}\n","import { en } from \"./translations/en.js\";\nimport type { I18nConfig, TranslationMap } from \"./types.js\";\n\nexport { en as defaultTranslations };\n\nexport function resolveTranslations(i18n?: I18nConfig): TranslationMap {\n const messages = i18n?.messages ?? {};\n const detect = i18n?.detectBrowserLanguage ?? true;\n\n const candidates: string[] = [];\n if (i18n?.locale) candidates.push(i18n.locale);\n if (detect && typeof navigator !== \"undefined\" && navigator.language) {\n candidates.push(navigator.language);\n }\n\n for (const tag of candidates) {\n const primary = tag.split(\"-\")[0]?.toLowerCase() ?? \"\";\n const hit = messages[tag] ?? (primary ? messages[primary] : undefined);\n if (hit) return hit;\n }\n return messages.en ?? en;\n}\n"],"names":["COOKIE_NAME","CONSENT_CATEGORIES","parseCookie","raw","fields","pairs","split","pair","colonIdx","indexOf","key","slice","trim","value","VALID_KEYS","has","Set","serializeCookie","snapshot","parts","consentId","hasActed","cat","push","categories","lastRenewed","Date","now","join","writeConsentCookie","document","encodeURIComponent","cookie","generateConsentId","array","Uint8Array","crypto","getRandomValues","i","length","Math","floor","random","btoa","String","fromCharCode","replace","defaultSnapshot","regulation","isOptOut","necessary","functional","analytics","performance","advertisement","en","bannerTitle","bannerDescription","acceptAll","rejectAll","managePreferences","savePreferences","doNotSell","ccpaDescription","accept","poweredBy","preferencesTitle","preferencesIntro","label","description","optOut","title","cancel","successText","successCountdown","registry","Map","loaded","injected","applyScripts","id","entry","allowed","category","strategy","injectScript","removeScript","getElementById","el","createElement","src","async","onLoad","addEventListener","once","head","appendChild","set","add","get","remove","delete","buildConsentPayload","domain","window","location","hostname","ALL_CATEGORIES","createConsentManager","config","listeners","state","lastPersistedCategories","isPreferencesOpen","rawFields","cookies","trimmed","eqIdx","decodeURIComponent","readConsentCookie","savedRegulation","consentid","action","lastRenewedDate","Number","rawFieldsToSnapshot","notify","snap","fn","persist","backend","Promise","resolve","catch","apiUrl","apiKey","payload","headers","Authorization","fetch","method","body","JSON","stringify","keepalive","pushConsent","didRevoke","onConsentUpdate","reloadOnRevoke","reload","then","onConsentReady","manager","acceptSelected","cats","includes","updateCategory","resetConsent","showPreferences","hidePreferences","subscribe","listener","registerScript","findBlockingRule","rules","url","hasConsent","parsed","base","href","URL","host","toLowerCase","path","pathname","search","upperMethod","toUpperCase","rule","ruleHost","endsWith","pathIncludes","methods","map","m","active","installNetworkBlocker","originalFetch","originalXhrOpen","XMLHttpRequest","prototype","open","originalXhrSend","send","logBlocked","logBlockedRequests","info","console","warn","onRequestBlocked","input","init","toString","blockingRule","reject","TypeError","call","rest","this","_cyUrl","_cyMethod","apply","abort","uninstallNetworkBlocker","_runtime","options","changeListeners","userOnConsentUpdate","cfg","mode","backendURL","overrides","colorScheme","theme","denied","Object","keys","allowedCategories","deniedCategories","splitCategories","buildState","consents","activeUI","saveConsents","target","setConsent","subscribeToConsentChanges","consentStore","getState","networkBlocker","consentManager","i18n","messages","detect","detectBrowserLanguage","candidates","locale","navigator","language","tag","primary","hit"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -207,4 +207,5 @@ declare function createConsentManager(config: ConsentConfig): ConsentManager;
|
|
|
207
207
|
declare function getOrCreateConsentRuntime(options: ConsentRuntimeOptions): ConsentRuntime;
|
|
208
208
|
declare function resetConsentRuntime(): void;
|
|
209
209
|
|
|
210
|
-
export {
|
|
210
|
+
export { createConsentManager, en as defaultTranslations, generateConsentId, getOrCreateConsentRuntime, installNetworkBlocker, parseCookie, resetConsentRuntime, resolveTranslations, serializeCookie, uninstallNetworkBlocker };
|
|
211
|
+
export type { ActiveUI, BlockedRequestInfo, ConsentBackend, ConsentCategory, ConsentChangePayload, ConsentConfig, ConsentManager, ConsentPayload, ConsentRuntime, ConsentRuntimeMode, ConsentRuntimeOptions, ConsentSnapshot, ConsentStore, ConsentStoreState, I18nConfig, NetworkBlockerConfig, NetworkBlockerRule, Regulation, ScriptEntry, ThemeConfig, TranslationMap };
|