@easy-cookie/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/README.md +4 -0
- package/dist/catalog.cjs +2 -2
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +1 -1
- package/dist/catalog.d.ts +1 -1
- package/dist/catalog.js +2 -2
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-5YF2UROU.js → chunk-LUBO6KZ2.js} +2 -2
- package/dist/easy-cookie.iife.js +3 -3
- package/dist/easy-cookie.iife.js.map +1 -1
- package/dist/index.cjs +17 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +18 -4
- package/dist/index.js.map +1 -1
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +2 -2
- package/dist/shared.d.ts +2 -2
- package/dist/shared.js +2 -2
- package/dist/{types-CvWqxzmv.d.cts → types-B6QEQkj-.d.cts} +6 -2
- package/dist/{types-CvWqxzmv.d.ts → types-B6QEQkj-.d.ts} +6 -2
- package/package.json +9 -1
- /package/dist/{chunk-5YF2UROU.js.map → chunk-LUBO6KZ2.js.map} +0 -0
package/README.md
CHANGED
|
@@ -120,6 +120,10 @@ When the visitor makes a first choice or changes it, the runtime calls `gtag('co
|
|
|
120
120
|
|
|
121
121
|
> **GTM setup:** a tag blocked by consent on `gtm.init` / `All Pages` is **not** fired again by a later consent update. Add a *Custom Event* trigger `easy_cookie_update` to your GA4 / Ads / Meta base tags, next to their page-view trigger.
|
|
122
122
|
|
|
123
|
+
The event name is `googleConsentMode.eventName` (default `easy_cookie_update`). When migrating, set it to the event your GTM triggers already listen to (e.g. `cookie_consent_update`) and nothing changes in GTM. The payload is always `easyCookie.categories.<id>`. If a GTM variable read other keys (`analytics`, `marketing`…), point it there.
|
|
124
|
+
|
|
125
|
+
Category ids are yours too: `measurement`, `marketing`, `functionality` and `experience` only come with default titles and Consent Mode signals. A category such as `analytics` works the same with `gcm: ['analytics_storage']`.
|
|
126
|
+
|
|
123
127
|
Page loads with a stored choice do **not** push the event (the head snippet already set the right default), so tags never fire twice.
|
|
124
128
|
|
|
125
129
|
## API
|
package/dist/catalog.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @easy-cookie/core 0.1.
|
|
1
|
+
/*! @easy-cookie/core 0.1.1 | MIT | includes vanilla-cookieconsent v3.3.0 (c) Orest Bida, MIT */
|
|
2
2
|
"use strict";
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -615,7 +615,7 @@ var ENTRIES = [
|
|
|
615
615
|
},
|
|
616
616
|
{
|
|
617
617
|
id: "easy-cookie",
|
|
618
|
-
label: "
|
|
618
|
+
label: "easy-cookie",
|
|
619
619
|
provider: "",
|
|
620
620
|
privacyUrl: "",
|
|
621
621
|
group: "infrastructure",
|
package/dist/catalog.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/catalog/index.ts","../src/catalog/entries.ts"],"sourcesContent":["import type { ServiceDeclaration } from '../shared/types';\nimport { ENTRIES } from './entries';\nimport type { CatalogEntry, CatalogGroup } from './types';\n\nexport type { CatalogEntry, CatalogGroup } from './types';\n\n/** Catalog groups in display order. */\nexport const CATALOG_GROUPS: CatalogGroup[] = [\n 'analytics',\n 'advertising',\n 'tag-management',\n 'embeds',\n 'support',\n 'payments',\n 'security',\n 'infrastructure',\n];\n\n/** Every ready-made service, sorted by group (CATALOG_GROUPS order) then label. */\nexport const CATALOG: CatalogEntry[] = [...ENTRIES].sort(\n (a, b) => CATALOG_GROUPS.indexOf(a.group) - CATALOG_GROUPS.indexOf(b.group) || a.label.localeCompare(b.label, 'en'),\n);\n\n/** The catalog entry with this id, or undefined. */\nexport function findCatalogEntry(id: string): CatalogEntry | undefined {\n return CATALOG.find((e) => e.id === id);\n}\n\nconst clone = <T>(v: T): T => JSON.parse(JSON.stringify(v));\n\n/**\n * A `ServiceDeclaration` built from a catalog entry, ready to add to\n * `config.services[entry.id]`. The result is a deep copy (editing it never\n * changes the catalog) and records its origin in `from`.\n */\nexport function catalogToService(entry: CatalogEntry): ServiceDeclaration {\n return {\n category: entry.category,\n label: entry.label,\n ...(entry.provider ? { provider: entry.provider } : {}),\n ...(entry.privacyUrl ? { privacyUrl: entry.privacyUrl } : {}),\n purpose: clone(entry.purpose),\n cookies: clone(entry.cookies),\n from: entry.id,\n };\n}\n","import type { CookieDeclaration, Localized } from '../shared/types';\nimport type { CatalogEntry } from './types';\n\n/*\n * Ready-made service declarations. Data checked against each provider's public\n * cookie / privacy documentation (November 2026). Durations are omitted where\n * the provider does not document them or makes them configurable without a\n * stable default. Site owners must still review every entry: providers change\n * their cookies, and the transfer section depends on the owner's contracts.\n */\n\nconst t = (it: string, en: string): Record<'it' | 'en', string> => ({ it, en });\n\nfunction ck(\n name: string,\n duration: Record<'it' | 'en', string> | undefined,\n description: Record<'it' | 'en', string>,\n extra: Partial<CookieDeclaration> = {},\n): CookieDeclaration {\n return { name, ...extra, ...(duration ? { duration } : {}), description };\n}\n\nconst pattern = { pattern: true } as const;\n\n// Durations.\nconst SESSION = t('sessione', 'session');\nconst MIN30 = t('30 minuti', '30 minutes');\nconst DAY1 = t('1 giorno', '1 day');\nconst DAYS7 = t('7 giorni', '7 days');\nconst DAYS30 = t('30 giorni', '30 days');\nconst MONTHS3 = t('3 mesi', '3 months');\nconst MONTHS6 = t('6 mesi', '6 months');\nconst MONTHS9 = t('9 mesi', '9 months');\nconst YEAR1 = t('1 anno', '1 year');\nconst MONTHS13 = t('13 mesi', '13 months');\nconst YEARS2 = t('2 anni', '2 years');\n\n// Transfer safeguards.\nconst DPF = t('EU-US Data Privacy Framework', 'EU-US Data Privacy Framework');\nconst SCC = t('Clausole contrattuali standard', 'Standard contractual clauses');\nconst BCR = t('Norme vincolanti d’impresa (BCR)', 'Binding corporate rules (BCR)');\nconst us = (safeguard: Localized) => ({ countries: ['US'], safeguard });\n\nconst GOOGLE = 'Google Ireland Ltd';\nconst GOOGLE_PRIVACY = 'https://policies.google.com/privacy';\nconst MICROSOFT = 'Microsoft Ireland Operations Ltd';\nconst MICROSOFT_PRIVACY = 'https://privacy.microsoft.com/privacystatement';\n\nexport const ENTRIES: CatalogEntry[] = [\n // ---- analytics ------------------------------------------------------------\n {\n id: 'ga4',\n label: 'Google Analytics 4',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche sulle visite e sull’uso del sito (pagine viste, sorgenti di traffico, eventi).',\n 'Statistics about visits and site usage (page views, traffic sources, events).',\n ),\n cookies: [\n ck('_ga', YEARS2, t('Distingue i visitatori con un identificativo casuale.', 'Distinguishes visitors with a random identifier.')),\n ck('^_ga_', YEARS2, t('Mantiene lo stato della sessione per la proprietà GA4.', 'Keeps the session state for the GA4 property.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Senza consenso Google Analytics non deve impostare cookie: abilita Consent Mode v2. Nel contratto con Google valuta le impostazioni di condivisione dei dati.',\n 'Without consent Google Analytics must not set cookies: enable Consent Mode v2. Review the data-sharing settings in your Google agreement.',\n ),\n keywords: ['google analytics', 'gtag', 'analytics'],\n },\n {\n id: 'gtm',\n label: 'Google Tag Manager',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'tag-management',\n category: 'necessary',\n purpose: t(\n 'Carica gli script configurati nel contenitore; da solo non imposta cookie.',\n 'Loads the scripts configured in the container; on its own it sets no cookies.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'GTM non imposta cookie, ma i tag che carica sì: dichiara ogni tag (GA4, Ads, Meta…) come servizio separato e attivali solo col consenso tramite Consent Mode.',\n 'GTM sets no cookies, but the tags it loads do: declare each tag (GA4, Ads, Meta…) as its own service and fire them only with consent through Consent Mode.',\n ),\n keywords: ['gtm', 'tag manager'],\n },\n {\n id: 'posthog',\n label: 'PostHog',\n provider: 'PostHog Inc.',\n privacyUrl: 'https://posthog.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Analisi del prodotto: eventi, funnel, registrazioni di sessione e feature flag.',\n 'Product analytics: events, funnels, session recordings and feature flags.',\n ),\n cookies: [\n ck('^ph_.*_posthog$', YEAR1, t('Identificativo anonimo del visitatore e stato della sessione.', 'Anonymous visitor identifier and session state.'), pattern),\n ],\n transfer: us(SCC),\n note: t(\n 'Con PostHog EU Cloud (eu.posthog.com) i dati restano nell’UE: aggiorna la sezione trasferimenti. Senza consenso usa persistence: \"memory\" (con @easy-cookie/posthog).',\n 'With PostHog EU Cloud (eu.posthog.com) data stays in the EU: update the transfer section. Without consent use persistence: \"memory\" (with @easy-cookie/posthog).',\n ),\n keywords: ['product analytics', 'session replay'],\n },\n {\n id: 'matomo',\n label: 'Matomo',\n provider: 'InnoCraft Ltd (Matomo Cloud)',\n privacyUrl: 'https://matomo.org/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Statistiche sulle visite e sull’uso del sito.', 'Statistics about visits and site usage.'),\n cookies: [\n ck('^_pk_id\\\\.', MONTHS13, t('Identificativo del visitatore.', 'Visitor identifier.'), pattern),\n ck('^_pk_ses\\\\.', MIN30, t('Dati temporanei della visita in corso.', 'Temporary data for the current visit.'), pattern),\n ],\n note: t(\n 'Se Matomo è installato sul tuo server, il fornitore sei tu: modifica il campo. Con IP mascherato, senza incrocio con altri dati e con cookie disattivati o di prima parte, le linee guida del Garante (2021) lo equiparano a un cookie tecnico: puoi spostarlo tra i necessari.',\n 'If Matomo runs on your own server, you are the provider: edit the field. With masked IPs, no cross-referencing with other data and cookies disabled or first-party, the Italian Garante guidelines (2021) treat it like a technical cookie: you may move it to necessary.',\n ),\n keywords: ['piwik', 'self-hosted'],\n },\n {\n id: 'plausible',\n label: 'Plausible Analytics',\n provider: 'Plausible Insights OÜ',\n privacyUrl: 'https://plausible.io/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche aggregate sulle visite, senza cookie e senza identificativi persistenti.',\n 'Aggregate visit statistics, without cookies or persistent identifiers.',\n ),\n cookies: [],\n note: t(\n 'Plausible non imposta cookie: potresti non aver bisogno del consenso. Valuta di spostarlo tra i necessari o di elencarlo solo nella privacy policy.',\n 'Plausible sets no cookies: you may not need consent. Consider moving it to necessary or listing it only in the privacy policy.',\n ),\n keywords: ['cookieless', 'privacy-friendly'],\n },\n {\n id: 'hotjar',\n label: 'Hotjar',\n provider: 'Hotjar Ltd',\n privacyUrl: 'https://www.hotjar.com/legal/policies/privacy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Mappe di calore, registrazioni delle sessioni e sondaggi sull’uso del sito.',\n 'Heatmaps, session recordings and surveys about site usage.',\n ),\n cookies: [\n ck('^_hjSessionUser_', YEAR1, t('Identificativo del visitatore per il sito.', 'Visitor identifier for the site.'), pattern),\n ck('^_hjSession_', MIN30, t('Dati della sessione in corso.', 'Current session data.'), pattern),\n ],\n keywords: ['heatmap', 'session recording', 'contentsquare'],\n },\n {\n id: 'clarity',\n label: 'Microsoft Clarity',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t('Mappe di calore e registrazioni delle sessioni.', 'Heatmaps and session recordings.'),\n cookies: [\n ck('_clck', YEAR1, t('Identificativo del visitatore e preferenze di Clarity.', 'Visitor identifier and Clarity preferences.')),\n ck('_clsk', DAY1, t('Collega le pagine viste in una stessa sessione.', 'Links page views into one session.')),\n ck('CLID', YEAR1, t('Identifica il primo accesso del browser a Clarity.', 'Identifies the browser’s first visit to Clarity.'), { domain: 'clarity.ms' }),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'clarity.ms' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Dal 2025 Clarity richiede di inviare il segnale di consenso (Consent API) per i visitatori del SEE.',\n 'Since 2025 Clarity requires the consent signal (Consent API) for EEA visitors.',\n ),\n keywords: ['heatmap', 'session recording'],\n },\n {\n id: 'mixpanel',\n label: 'Mixpanel',\n provider: 'Mixpanel Inc.',\n privacyUrl: 'https://mixpanel.com/legal/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^mp_.*_mixpanel$', YEAR1, t('Identificativo del visitatore e proprietà dell’evento.', 'Visitor identifier and event properties.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con la residenza dei dati UE di Mixpanel i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Mixpanel EU data residency data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n {\n id: 'amplitude',\n label: 'Amplitude',\n provider: 'Amplitude Inc.',\n privacyUrl: 'https://amplitude.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^AMP_', YEAR1, t('Identificativo del visitatore e della sessione.', 'Visitor and session identifier.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con il data center UE di Amplitude i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Amplitude’s EU data center data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n\n // ---- advertising ----------------------------------------------------------\n {\n id: 'google-ads',\n label: 'Google Ads',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne e mostra annunci personalizzati (remarketing).',\n 'Measures campaign conversions and shows personalised ads (remarketing).',\n ),\n cookies: [\n ck('_gcl_au', MONTHS3, t('Memorizza le informazioni sui clic sugli annunci per misurare le conversioni.', 'Stores ad-click information to measure conversions.')),\n ck('^_gcl_', MONTHS3, t('Altri cookie di misurazione delle conversioni (es. _gcl_aw).', 'Other conversion-measurement cookies (e.g. _gcl_aw).'), pattern),\n ck('IDE', MONTHS13, t('Pubblicità personalizzata e misurazione su siti di terze parti.', 'Personalised advertising and measurement across third-party sites.'), { domain: 'doubleclick.net' }),\n ],\n transfer: us(DPF),\n keywords: ['adwords', 'remarketing', 'conversion', 'doubleclick'],\n },\n {\n id: 'meta-pixel',\n label: 'Meta Pixel',\n provider: 'Meta Platforms Ireland Ltd',\n privacyUrl: 'https://www.facebook.com/privacy/policy/',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne su Facebook e Instagram e crea pubblici per gli annunci.',\n 'Measures Facebook and Instagram campaign conversions and builds ad audiences.',\n ),\n cookies: [\n ck('_fbp', MONTHS3, t('Identifica il browser per la pubblicità di Meta.', 'Identifies the browser for Meta advertising.')),\n ck('_fbc', MONTHS3, t('Memorizza l’ultimo clic su un annuncio di Meta.', 'Stores the last click on a Meta ad.')),\n ck('fr', MONTHS3, t('Pubblicità personalizzata e misurazione.', 'Personalised advertising and measurement.'), { domain: 'facebook.com' }),\n ],\n transfer: us(DPF),\n keywords: ['facebook', 'instagram', 'pixel'],\n },\n {\n id: 'linkedin-insight',\n label: 'LinkedIn Insight Tag',\n provider: 'LinkedIn Ireland Unlimited Company',\n privacyUrl: 'https://www.linkedin.com/legal/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne LinkedIn e crea pubblici di retargeting.',\n 'Measures LinkedIn campaign conversions and builds retargeting audiences.',\n ),\n cookies: [\n ck('li_sugr', MONTHS3, t('Identificativo del browser per l’abbinamento degli utenti.', 'Browser identifier for user matching.')),\n ck('bcookie', YEAR1, t('Identificativo del browser.', 'Browser identifier.'), { domain: 'linkedin.com' }),\n ck('lidc', DAY1, t('Instradamento verso il data center.', 'Data-center routing.'), { domain: 'linkedin.com' }),\n ck('UserMatchHistory', DAYS30, t('Sincronizzazione degli identificativi pubblicitari.', 'Ad identifier syncing.'), { domain: 'linkedin.com' }),\n ck('AnalyticsSyncHistory', DAYS30, t('Data dell’ultima sincronizzazione.', 'Time of the last sync.'), { domain: 'linkedin.com' }),\n ],\n transfer: us(DPF),\n keywords: ['linkedin', 'retargeting'],\n },\n {\n id: 'tiktok-pixel',\n label: 'TikTok Pixel',\n provider: 'TikTok Technology Limited',\n privacyUrl: 'https://www.tiktok.com/legal/page/eea/privacy-policy/en',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne TikTok e ottimizza la pubblicità.',\n 'Measures TikTok campaign conversions and optimises advertising.',\n ),\n cookies: [\n ck('_ttp', MONTHS13, t('Identifica il browser per la pubblicità di TikTok.', 'Identifies the browser for TikTok advertising.')),\n ck('_tt_enable_cookie', MONTHS13, t('Verifica che il browser accetti i cookie.', 'Checks that the browser accepts cookies.')),\n ],\n transfer: { countries: ['US', 'MY', 'CN'], safeguard: SCC },\n note: t(\n 'Verifica i paesi di trasferimento nella privacy policy SEE di TikTok in vigore: cambiano nel tempo.',\n 'Check the transfer countries in TikTok’s current EEA privacy policy: they change over time.',\n ),\n keywords: ['tiktok', 'pixel'],\n },\n {\n id: 'pinterest-tag',\n label: 'Pinterest Tag',\n provider: 'Pinterest Europe Ltd',\n privacyUrl: 'https://policy.pinterest.com/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne Pinterest.', 'Measures Pinterest campaign conversions.'),\n cookies: [\n ck('_pin_unauth', YEAR1, t('Identifica il browser dei visitatori non registrati.', 'Identifies the browser of signed-out visitors.')),\n ck('_pinterest_ct_ua', YEAR1, t('Collega le azioni sul sito ai clic sugli annunci.', 'Links on-site actions to ad clicks.')),\n ck('_epik', YEAR1, t('Memorizza il clic sull’annuncio di provenienza.', 'Stores the click on the originating ad.')),\n ],\n transfer: us(DPF),\n keywords: ['pinterest', 'pixel'],\n },\n {\n id: 'microsoft-uet',\n label: 'Microsoft Advertising (UET)',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne Microsoft Advertising (Bing) e crea pubblici di remarketing.',\n 'Measures Microsoft Advertising (Bing) conversions and builds remarketing audiences.',\n ),\n cookies: [\n ck('_uetsid', DAY1, t('Identificativo della sessione per la misurazione delle conversioni.', 'Session identifier for conversion measurement.')),\n ck('_uetvid', MONTHS13, t('Identificativo del visitatore tra più sessioni.', 'Visitor identifier across sessions.')),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'bing.com' }),\n ],\n transfer: us(DPF),\n keywords: ['bing ads', 'uet'],\n },\n {\n id: 'x-pixel',\n label: 'X (Twitter) Pixel',\n provider: 'Twitter International Unlimited Company',\n privacyUrl: 'https://x.com/en/privacy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne su X e crea pubblici.', 'Measures X campaign conversions and builds audiences.'),\n cookies: [\n ck('muc_ads', MONTHS13, t('Identificativo pubblicitario del browser.', 'Advertising identifier for the browser.'), { domain: 't.co' }),\n ck('guest_id', MONTHS13, t('Identificativo dei visitatori non registrati.', 'Identifier of signed-out visitors.'), { domain: 'x.com' }),\n ck('personalization_id', MONTHS13, t('Pubblicità personalizzata.', 'Personalised advertising.'), { domain: 'x.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Verifica la denominazione attuale del titolare UE nella privacy policy di X.',\n 'Check the current name of the EU controller in X’s privacy policy.',\n ),\n keywords: ['twitter', 'pixel'],\n },\n\n // ---- embeds ---------------------------------------------------------------\n {\n id: 'youtube',\n label: 'YouTube',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di YouTube incorporati nelle pagine.', 'Shows YouTube videos embedded in pages.'),\n cookies: [\n ck('VISITOR_INFO1_LIVE', MONTHS6, t('Stima la banda e ricorda le impostazioni del lettore.', 'Estimates bandwidth and remembers player settings.'), { domain: 'youtube.com' }),\n ck('YSC', SESSION, t('Identificativo della sessione di visione.', 'Viewing session identifier.'), { domain: 'youtube.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Usa youtube-nocookie.com: i cookie vengono impostati solo quando il visitatore avvia il video. Il contenuto arriva comunque da Google, quindi blocca l’iframe fino al consenso (data-category=\"experience\").',\n 'Use youtube-nocookie.com: cookies are set only when the visitor plays the video. The content still comes from Google, so block the iframe until consent (data-category=\"experience\").',\n ),\n keywords: ['video', 'youtube-nocookie', 'iframe'],\n },\n {\n id: 'vimeo',\n label: 'Vimeo',\n provider: 'Vimeo.com Inc.',\n privacyUrl: 'https://vimeo.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di Vimeo incorporati nelle pagine.', 'Shows Vimeo videos embedded in pages.'),\n cookies: [\n ck('vuid', YEARS2, t('Identificativo del visitatore per le statistiche del video.', 'Visitor identifier for video statistics.'), { domain: 'vimeo.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Con il parametro dnt=1 nell’URL dell’iframe Vimeo non imposta cookie di tracciamento.',\n 'With dnt=1 in the iframe URL Vimeo sets no tracking cookies.',\n ),\n keywords: ['video', 'iframe'],\n },\n {\n id: 'google-maps',\n label: 'Google Maps',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra mappe interattive incorporate nelle pagine.', 'Shows interactive maps embedded in pages.'),\n cookies: [\n ck('NID', MONTHS6, t('Ricorda le preferenze e le informazioni del visitatore per i servizi Google.', 'Remembers visitor preferences and information for Google services.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n keywords: ['map', 'iframe'],\n },\n {\n id: 'spotify',\n label: 'Spotify (embed)',\n provider: 'Spotify AB',\n privacyUrl: 'https://www.spotify.com/legal/privacy-policy/',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra brani, playlist e podcast di Spotify incorporati nelle pagine.', 'Shows embedded Spotify tracks, playlists and podcasts.'),\n cookies: [\n ck('sp_t', YEAR1, t('Identificativo del browser per Spotify.', 'Browser identifier for Spotify.'), { domain: 'spotify.com' }),\n ck('sp_landing', DAY1, t('Registra la pagina di arrivo della visita.', 'Records the landing page of the visit.'), { domain: 'spotify.com' }),\n ],\n transfer: us(SCC),\n keywords: ['music', 'podcast', 'iframe'],\n },\n {\n id: 'calendly',\n label: 'Calendly',\n provider: 'Calendly LLC',\n privacyUrl: 'https://calendly.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Calendario incorporato per prenotare appuntamenti.', 'Embedded calendar to book appointments.'),\n cookies: [\n ck('__cf_bm', MIN30, t('Protezione dai bot (Cloudflare) sul dominio di Calendly.', 'Bot protection (Cloudflare) on Calendly’s domain.'), { domain: 'calendly.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Calendly imposta altri cookie propri (sessione, analisi): verifica l’elenco nella sua cookie policy.',\n 'Calendly sets other cookies of its own (session, analytics): check the list in its cookie policy.',\n ),\n keywords: ['booking', 'scheduling', 'iframe'],\n },\n\n // ---- support --------------------------------------------------------------\n {\n id: 'intercom',\n label: 'Intercom',\n provider: 'Intercom R&D Unlimited Company',\n privacyUrl: 'https://www.intercom.com/legal/privacy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e messaggi ai visitatori.', 'Support chat and messages to visitors.'),\n cookies: [\n ck('^intercom-id-', MONTHS9, t('Identificativo anonimo del visitatore per la chat.', 'Anonymous visitor identifier for the chat.'), pattern),\n ck('^intercom-session-', DAYS7, t('Mantiene la conversazione tra le pagine.', 'Keeps the conversation across pages.'), pattern),\n ck('^intercom-device-id-', MONTHS9, t('Identificativo del dispositivo.', 'Device identifier.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Con l’hosting UE di Intercom i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Intercom EU hosting data is stored in the EU: update the transfer section.',\n ),\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'crisp',\n label: 'Crisp',\n provider: 'Crisp IM SAS',\n privacyUrl: 'https://crisp.chat/en/privacy/',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza.', 'Support chat.'),\n cookies: [\n ck('^crisp-client', MONTHS6, t('Mantiene la sessione della chat.', 'Keeps the chat session.'), pattern),\n ],\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'hubspot',\n label: 'HubSpot (chat)',\n provider: 'HubSpot Ireland Ltd',\n privacyUrl: 'https://legal.hubspot.com/privacy-policy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e moduli di contatto.', 'Support chat and contact forms.'),\n cookies: [\n ck('messagesUtk', MONTHS6, t('Riconosce i visitatori della chat.', 'Recognises chat visitors.')),\n ],\n transfer: us(DPF),\n note: t(\n 'Il codice di tracciamento HubSpot (__hstc, hubspotutk, __hssc) serve ad analisi e marketing: se lo usi, dichiaralo come servizio separato in misurazione o marketing.',\n 'The HubSpot tracking code (__hstc, hubspotutk, __hssc) is analytics and marketing: if you use it, declare it as a separate service under measurement or marketing.',\n ),\n keywords: ['chat', 'crm', 'forms'],\n },\n {\n id: 'zendesk',\n label: 'Zendesk',\n provider: 'Zendesk International Ltd',\n privacyUrl: 'https://www.zendesk.com/company/agreements-and-terms/privacy-notice/',\n group: 'support',\n category: 'functionality',\n purpose: t('Widget di assistenza e chat.', 'Support widget and chat.'),\n cookies: [ck('__zlcmid', YEAR1, t('Identificativo del visitatore per la chat.', 'Visitor identifier for the chat.'))],\n transfer: us(DPF),\n keywords: ['chat', 'helpdesk'],\n },\n\n // ---- payments -------------------------------------------------------------\n {\n id: 'stripe',\n label: 'Stripe',\n provider: 'Stripe Payments Europe Ltd',\n privacyUrl: 'https://stripe.com/privacy',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('__stripe_mid', YEAR1, t('Prevenzione delle frodi.', 'Fraud prevention.')),\n ck('__stripe_sid', MIN30, t('Prevenzione delle frodi nella sessione.', 'Fraud prevention within the session.')),\n ck('m', YEARS2, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'm.stripe.com' }),\n ],\n transfer: us(DPF),\n keywords: ['payment', 'checkout'],\n },\n {\n id: 'paypal',\n label: 'PayPal',\n provider: 'PayPal (Europe) S.à r.l. et Cie, S.C.A.',\n privacyUrl: 'https://www.paypal.com/myaccount/privacy/privacyhub',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('ts', undefined, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'paypal.com' }),\n ck('x-pp-s', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ck('nsid', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ],\n transfer: us(BCR),\n keywords: ['payment', 'checkout'],\n },\n\n // ---- security -------------------------------------------------------------\n {\n id: 'recaptcha',\n label: 'Google reCAPTCHA',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('_GRECAPTCHA', MONTHS6, t('Analisi del rischio per distinguere persone e bot.', 'Risk analysis to tell humans from bots.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Classificato come necessario (sicurezza), ma invia dati a Google: indicalo nella privacy policy e valuta di caricarlo solo nelle pagine con moduli.',\n 'Classed as necessary (security), but it sends data to Google: mention it in the privacy policy and consider loading it only on pages with forms.',\n ),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'hcaptcha',\n label: 'hCaptcha',\n provider: 'Intuition Machines, Inc.',\n privacyUrl: 'https://www.hcaptcha.com/privacy',\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('hc_accessibility', undefined, t('Impostato solo per chi usa l’accesso facilitato di hCaptcha.', 'Set only for visitors who use hCaptcha’s accessibility access.'), { domain: 'hcaptcha.com' }),\n ],\n transfer: us(SCC),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'cloudflare',\n label: 'Cloudflare',\n provider: 'Cloudflare, Inc.',\n privacyUrl: 'https://www.cloudflare.com/privacypolicy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Distribuzione dei contenuti (CDN) e protezione da bot e attacchi.',\n 'Content delivery (CDN) and protection from bots and attacks.',\n ),\n cookies: [\n ck('__cf_bm', MIN30, t('Distingue il traffico umano dai bot.', 'Tells human traffic from bots.')),\n ck('cf_clearance', t('da 30 minuti a 1 anno (configurabile)', '30 minutes to 1 year (configurable)'), t('Ricorda che il visitatore ha superato una verifica.', 'Remembers that the visitor passed a challenge.')),\n ck('_cfuvid', SESSION, t('Limitazione delle richieste (rate limiting).', 'Rate limiting.')),\n ],\n transfer: us(DPF),\n keywords: ['cdn', 'waf', 'turnstile', 'bot'],\n },\n {\n id: 'sentry',\n label: 'Sentry',\n provider: 'Functional Software, Inc. (Sentry)',\n privacyUrl: 'https://sentry.io/privacy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Segnala gli errori tecnici del sito per poterli correggere.',\n 'Reports technical errors on the site so they can be fixed.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'L’SDK di Sentry non imposta cookie. Se attivi Session Replay, che registra le interazioni, valuta di spostarlo in misurazione. Con la regione dati UE di Sentry aggiorna la sezione trasferimenti.',\n 'The Sentry SDK sets no cookies. If you enable Session Replay, which records interactions, consider moving it to measurement. With Sentry’s EU data region update the transfer section.',\n ),\n keywords: ['errors', 'monitoring'],\n },\n {\n id: 'easy-cookie',\n label: 'Consenso cookie (easy-cookie)',\n provider: '',\n privacyUrl: '',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Ricorda le scelte del visitatore sui cookie e ne conserva la prova.',\n 'Remembers the visitor’s cookie choices and keeps proof of them.',\n ),\n cookies: [\n ck('ec_consent', MONTHS6, t('Memorizza le categorie accettate e la revisione della policy.', 'Stores the accepted categories and the policy revision.')),\n ],\n note: t(\n 'Cookie di prima parte. La durata segue expiryDays (predefinito 182 giorni): aggiornala se la cambi.',\n 'First-party cookie. The duration follows expiryDays (default 182 days): update it if you change that.',\n ),\n keywords: ['consent', 'cookie banner'],\n },\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/catalog/index.ts","../src/catalog/entries.ts"],"sourcesContent":["import type { ServiceDeclaration } from '../shared/types';\nimport { ENTRIES } from './entries';\nimport type { CatalogEntry, CatalogGroup } from './types';\n\nexport type { CatalogEntry, CatalogGroup } from './types';\n\n/** Catalog groups in display order. */\nexport const CATALOG_GROUPS: CatalogGroup[] = [\n 'analytics',\n 'advertising',\n 'tag-management',\n 'embeds',\n 'support',\n 'payments',\n 'security',\n 'infrastructure',\n];\n\n/** Every ready-made service, sorted by group (CATALOG_GROUPS order) then label. */\nexport const CATALOG: CatalogEntry[] = [...ENTRIES].sort(\n (a, b) => CATALOG_GROUPS.indexOf(a.group) - CATALOG_GROUPS.indexOf(b.group) || a.label.localeCompare(b.label, 'en'),\n);\n\n/** The catalog entry with this id, or undefined. */\nexport function findCatalogEntry(id: string): CatalogEntry | undefined {\n return CATALOG.find((e) => e.id === id);\n}\n\nconst clone = <T>(v: T): T => JSON.parse(JSON.stringify(v));\n\n/**\n * A `ServiceDeclaration` built from a catalog entry, ready to add to\n * `config.services[entry.id]`. The result is a deep copy (editing it never\n * changes the catalog) and records its origin in `from`.\n */\nexport function catalogToService(entry: CatalogEntry): ServiceDeclaration {\n return {\n category: entry.category,\n label: entry.label,\n ...(entry.provider ? { provider: entry.provider } : {}),\n ...(entry.privacyUrl ? { privacyUrl: entry.privacyUrl } : {}),\n purpose: clone(entry.purpose),\n cookies: clone(entry.cookies),\n from: entry.id,\n };\n}\n","import type { CookieDeclaration, Localized } from '../shared/types';\nimport type { CatalogEntry } from './types';\n\n/*\n * Ready-made service declarations. Data checked against each provider's public\n * cookie / privacy documentation (November 2026). Durations are omitted where\n * the provider does not document them or makes them configurable without a\n * stable default. Site owners must still review every entry: providers change\n * their cookies, and the transfer section depends on the owner's contracts.\n */\n\nconst t = (it: string, en: string): Record<'it' | 'en', string> => ({ it, en });\n\nfunction ck(\n name: string,\n duration: Record<'it' | 'en', string> | undefined,\n description: Record<'it' | 'en', string>,\n extra: Partial<CookieDeclaration> = {},\n): CookieDeclaration {\n return { name, ...extra, ...(duration ? { duration } : {}), description };\n}\n\nconst pattern = { pattern: true } as const;\n\n// Durations.\nconst SESSION = t('sessione', 'session');\nconst MIN30 = t('30 minuti', '30 minutes');\nconst DAY1 = t('1 giorno', '1 day');\nconst DAYS7 = t('7 giorni', '7 days');\nconst DAYS30 = t('30 giorni', '30 days');\nconst MONTHS3 = t('3 mesi', '3 months');\nconst MONTHS6 = t('6 mesi', '6 months');\nconst MONTHS9 = t('9 mesi', '9 months');\nconst YEAR1 = t('1 anno', '1 year');\nconst MONTHS13 = t('13 mesi', '13 months');\nconst YEARS2 = t('2 anni', '2 years');\n\n// Transfer safeguards.\nconst DPF = t('EU-US Data Privacy Framework', 'EU-US Data Privacy Framework');\nconst SCC = t('Clausole contrattuali standard', 'Standard contractual clauses');\nconst BCR = t('Norme vincolanti d’impresa (BCR)', 'Binding corporate rules (BCR)');\nconst us = (safeguard: Localized) => ({ countries: ['US'], safeguard });\n\nconst GOOGLE = 'Google Ireland Ltd';\nconst GOOGLE_PRIVACY = 'https://policies.google.com/privacy';\nconst MICROSOFT = 'Microsoft Ireland Operations Ltd';\nconst MICROSOFT_PRIVACY = 'https://privacy.microsoft.com/privacystatement';\n\nexport const ENTRIES: CatalogEntry[] = [\n // ---- analytics ------------------------------------------------------------\n {\n id: 'ga4',\n label: 'Google Analytics 4',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche sulle visite e sull’uso del sito (pagine viste, sorgenti di traffico, eventi).',\n 'Statistics about visits and site usage (page views, traffic sources, events).',\n ),\n cookies: [\n ck('_ga', YEARS2, t('Distingue i visitatori con un identificativo casuale.', 'Distinguishes visitors with a random identifier.')),\n ck('^_ga_', YEARS2, t('Mantiene lo stato della sessione per la proprietà GA4.', 'Keeps the session state for the GA4 property.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Senza consenso Google Analytics non deve impostare cookie: abilita Consent Mode v2. Nel contratto con Google valuta le impostazioni di condivisione dei dati.',\n 'Without consent Google Analytics must not set cookies: enable Consent Mode v2. Review the data-sharing settings in your Google agreement.',\n ),\n keywords: ['google analytics', 'gtag', 'analytics'],\n },\n {\n id: 'gtm',\n label: 'Google Tag Manager',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'tag-management',\n category: 'necessary',\n purpose: t(\n 'Carica gli script configurati nel contenitore; da solo non imposta cookie.',\n 'Loads the scripts configured in the container; on its own it sets no cookies.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'GTM non imposta cookie, ma i tag che carica sì: dichiara ogni tag (GA4, Ads, Meta…) come servizio separato e attivali solo col consenso tramite Consent Mode.',\n 'GTM sets no cookies, but the tags it loads do: declare each tag (GA4, Ads, Meta…) as its own service and fire them only with consent through Consent Mode.',\n ),\n keywords: ['gtm', 'tag manager'],\n },\n {\n id: 'posthog',\n label: 'PostHog',\n provider: 'PostHog Inc.',\n privacyUrl: 'https://posthog.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Analisi del prodotto: eventi, funnel, registrazioni di sessione e feature flag.',\n 'Product analytics: events, funnels, session recordings and feature flags.',\n ),\n cookies: [\n ck('^ph_.*_posthog$', YEAR1, t('Identificativo anonimo del visitatore e stato della sessione.', 'Anonymous visitor identifier and session state.'), pattern),\n ],\n transfer: us(SCC),\n note: t(\n 'Con PostHog EU Cloud (eu.posthog.com) i dati restano nell’UE: aggiorna la sezione trasferimenti. Senza consenso usa persistence: \"memory\" (con @easy-cookie/posthog).',\n 'With PostHog EU Cloud (eu.posthog.com) data stays in the EU: update the transfer section. Without consent use persistence: \"memory\" (with @easy-cookie/posthog).',\n ),\n keywords: ['product analytics', 'session replay'],\n },\n {\n id: 'matomo',\n label: 'Matomo',\n provider: 'InnoCraft Ltd (Matomo Cloud)',\n privacyUrl: 'https://matomo.org/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Statistiche sulle visite e sull’uso del sito.', 'Statistics about visits and site usage.'),\n cookies: [\n ck('^_pk_id\\\\.', MONTHS13, t('Identificativo del visitatore.', 'Visitor identifier.'), pattern),\n ck('^_pk_ses\\\\.', MIN30, t('Dati temporanei della visita in corso.', 'Temporary data for the current visit.'), pattern),\n ],\n note: t(\n 'Se Matomo è installato sul tuo server, il fornitore sei tu: modifica il campo. Con IP mascherato, senza incrocio con altri dati e con cookie disattivati o di prima parte, le linee guida del Garante (2021) lo equiparano a un cookie tecnico: puoi spostarlo tra i necessari.',\n 'If Matomo runs on your own server, you are the provider: edit the field. With masked IPs, no cross-referencing with other data and cookies disabled or first-party, the Italian Garante guidelines (2021) treat it like a technical cookie: you may move it to necessary.',\n ),\n keywords: ['piwik', 'self-hosted'],\n },\n {\n id: 'plausible',\n label: 'Plausible Analytics',\n provider: 'Plausible Insights OÜ',\n privacyUrl: 'https://plausible.io/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche aggregate sulle visite, senza cookie e senza identificativi persistenti.',\n 'Aggregate visit statistics, without cookies or persistent identifiers.',\n ),\n cookies: [],\n note: t(\n 'Plausible non imposta cookie: potresti non aver bisogno del consenso. Valuta di spostarlo tra i necessari o di elencarlo solo nella privacy policy.',\n 'Plausible sets no cookies: you may not need consent. Consider moving it to necessary or listing it only in the privacy policy.',\n ),\n keywords: ['cookieless', 'privacy-friendly'],\n },\n {\n id: 'hotjar',\n label: 'Hotjar',\n provider: 'Hotjar Ltd',\n privacyUrl: 'https://www.hotjar.com/legal/policies/privacy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Mappe di calore, registrazioni delle sessioni e sondaggi sull’uso del sito.',\n 'Heatmaps, session recordings and surveys about site usage.',\n ),\n cookies: [\n ck('^_hjSessionUser_', YEAR1, t('Identificativo del visitatore per il sito.', 'Visitor identifier for the site.'), pattern),\n ck('^_hjSession_', MIN30, t('Dati della sessione in corso.', 'Current session data.'), pattern),\n ],\n keywords: ['heatmap', 'session recording', 'contentsquare'],\n },\n {\n id: 'clarity',\n label: 'Microsoft Clarity',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t('Mappe di calore e registrazioni delle sessioni.', 'Heatmaps and session recordings.'),\n cookies: [\n ck('_clck', YEAR1, t('Identificativo del visitatore e preferenze di Clarity.', 'Visitor identifier and Clarity preferences.')),\n ck('_clsk', DAY1, t('Collega le pagine viste in una stessa sessione.', 'Links page views into one session.')),\n ck('CLID', YEAR1, t('Identifica il primo accesso del browser a Clarity.', 'Identifies the browser’s first visit to Clarity.'), { domain: 'clarity.ms' }),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'clarity.ms' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Dal 2025 Clarity richiede di inviare il segnale di consenso (Consent API) per i visitatori del SEE.',\n 'Since 2025 Clarity requires the consent signal (Consent API) for EEA visitors.',\n ),\n keywords: ['heatmap', 'session recording'],\n },\n {\n id: 'mixpanel',\n label: 'Mixpanel',\n provider: 'Mixpanel Inc.',\n privacyUrl: 'https://mixpanel.com/legal/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^mp_.*_mixpanel$', YEAR1, t('Identificativo del visitatore e proprietà dell’evento.', 'Visitor identifier and event properties.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con la residenza dei dati UE di Mixpanel i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Mixpanel EU data residency data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n {\n id: 'amplitude',\n label: 'Amplitude',\n provider: 'Amplitude Inc.',\n privacyUrl: 'https://amplitude.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^AMP_', YEAR1, t('Identificativo del visitatore e della sessione.', 'Visitor and session identifier.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con il data center UE di Amplitude i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Amplitude’s EU data center data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n\n // ---- advertising ----------------------------------------------------------\n {\n id: 'google-ads',\n label: 'Google Ads',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne e mostra annunci personalizzati (remarketing).',\n 'Measures campaign conversions and shows personalised ads (remarketing).',\n ),\n cookies: [\n ck('_gcl_au', MONTHS3, t('Memorizza le informazioni sui clic sugli annunci per misurare le conversioni.', 'Stores ad-click information to measure conversions.')),\n ck('^_gcl_', MONTHS3, t('Altri cookie di misurazione delle conversioni (es. _gcl_aw).', 'Other conversion-measurement cookies (e.g. _gcl_aw).'), pattern),\n ck('IDE', MONTHS13, t('Pubblicità personalizzata e misurazione su siti di terze parti.', 'Personalised advertising and measurement across third-party sites.'), { domain: 'doubleclick.net' }),\n ],\n transfer: us(DPF),\n keywords: ['adwords', 'remarketing', 'conversion', 'doubleclick'],\n },\n {\n id: 'meta-pixel',\n label: 'Meta Pixel',\n provider: 'Meta Platforms Ireland Ltd',\n privacyUrl: 'https://www.facebook.com/privacy/policy/',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne su Facebook e Instagram e crea pubblici per gli annunci.',\n 'Measures Facebook and Instagram campaign conversions and builds ad audiences.',\n ),\n cookies: [\n ck('_fbp', MONTHS3, t('Identifica il browser per la pubblicità di Meta.', 'Identifies the browser for Meta advertising.')),\n ck('_fbc', MONTHS3, t('Memorizza l’ultimo clic su un annuncio di Meta.', 'Stores the last click on a Meta ad.')),\n ck('fr', MONTHS3, t('Pubblicità personalizzata e misurazione.', 'Personalised advertising and measurement.'), { domain: 'facebook.com' }),\n ],\n transfer: us(DPF),\n keywords: ['facebook', 'instagram', 'pixel'],\n },\n {\n id: 'linkedin-insight',\n label: 'LinkedIn Insight Tag',\n provider: 'LinkedIn Ireland Unlimited Company',\n privacyUrl: 'https://www.linkedin.com/legal/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne LinkedIn e crea pubblici di retargeting.',\n 'Measures LinkedIn campaign conversions and builds retargeting audiences.',\n ),\n cookies: [\n ck('li_sugr', MONTHS3, t('Identificativo del browser per l’abbinamento degli utenti.', 'Browser identifier for user matching.')),\n ck('bcookie', YEAR1, t('Identificativo del browser.', 'Browser identifier.'), { domain: 'linkedin.com' }),\n ck('lidc', DAY1, t('Instradamento verso il data center.', 'Data-center routing.'), { domain: 'linkedin.com' }),\n ck('UserMatchHistory', DAYS30, t('Sincronizzazione degli identificativi pubblicitari.', 'Ad identifier syncing.'), { domain: 'linkedin.com' }),\n ck('AnalyticsSyncHistory', DAYS30, t('Data dell’ultima sincronizzazione.', 'Time of the last sync.'), { domain: 'linkedin.com' }),\n ],\n transfer: us(DPF),\n keywords: ['linkedin', 'retargeting'],\n },\n {\n id: 'tiktok-pixel',\n label: 'TikTok Pixel',\n provider: 'TikTok Technology Limited',\n privacyUrl: 'https://www.tiktok.com/legal/page/eea/privacy-policy/en',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne TikTok e ottimizza la pubblicità.',\n 'Measures TikTok campaign conversions and optimises advertising.',\n ),\n cookies: [\n ck('_ttp', MONTHS13, t('Identifica il browser per la pubblicità di TikTok.', 'Identifies the browser for TikTok advertising.')),\n ck('_tt_enable_cookie', MONTHS13, t('Verifica che il browser accetti i cookie.', 'Checks that the browser accepts cookies.')),\n ],\n transfer: { countries: ['US', 'MY', 'CN'], safeguard: SCC },\n note: t(\n 'Verifica i paesi di trasferimento nella privacy policy SEE di TikTok in vigore: cambiano nel tempo.',\n 'Check the transfer countries in TikTok’s current EEA privacy policy: they change over time.',\n ),\n keywords: ['tiktok', 'pixel'],\n },\n {\n id: 'pinterest-tag',\n label: 'Pinterest Tag',\n provider: 'Pinterest Europe Ltd',\n privacyUrl: 'https://policy.pinterest.com/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne Pinterest.', 'Measures Pinterest campaign conversions.'),\n cookies: [\n ck('_pin_unauth', YEAR1, t('Identifica il browser dei visitatori non registrati.', 'Identifies the browser of signed-out visitors.')),\n ck('_pinterest_ct_ua', YEAR1, t('Collega le azioni sul sito ai clic sugli annunci.', 'Links on-site actions to ad clicks.')),\n ck('_epik', YEAR1, t('Memorizza il clic sull’annuncio di provenienza.', 'Stores the click on the originating ad.')),\n ],\n transfer: us(DPF),\n keywords: ['pinterest', 'pixel'],\n },\n {\n id: 'microsoft-uet',\n label: 'Microsoft Advertising (UET)',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne Microsoft Advertising (Bing) e crea pubblici di remarketing.',\n 'Measures Microsoft Advertising (Bing) conversions and builds remarketing audiences.',\n ),\n cookies: [\n ck('_uetsid', DAY1, t('Identificativo della sessione per la misurazione delle conversioni.', 'Session identifier for conversion measurement.')),\n ck('_uetvid', MONTHS13, t('Identificativo del visitatore tra più sessioni.', 'Visitor identifier across sessions.')),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'bing.com' }),\n ],\n transfer: us(DPF),\n keywords: ['bing ads', 'uet'],\n },\n {\n id: 'x-pixel',\n label: 'X (Twitter) Pixel',\n provider: 'Twitter International Unlimited Company',\n privacyUrl: 'https://x.com/en/privacy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne su X e crea pubblici.', 'Measures X campaign conversions and builds audiences.'),\n cookies: [\n ck('muc_ads', MONTHS13, t('Identificativo pubblicitario del browser.', 'Advertising identifier for the browser.'), { domain: 't.co' }),\n ck('guest_id', MONTHS13, t('Identificativo dei visitatori non registrati.', 'Identifier of signed-out visitors.'), { domain: 'x.com' }),\n ck('personalization_id', MONTHS13, t('Pubblicità personalizzata.', 'Personalised advertising.'), { domain: 'x.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Verifica la denominazione attuale del titolare UE nella privacy policy di X.',\n 'Check the current name of the EU controller in X’s privacy policy.',\n ),\n keywords: ['twitter', 'pixel'],\n },\n\n // ---- embeds ---------------------------------------------------------------\n {\n id: 'youtube',\n label: 'YouTube',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di YouTube incorporati nelle pagine.', 'Shows YouTube videos embedded in pages.'),\n cookies: [\n ck('VISITOR_INFO1_LIVE', MONTHS6, t('Stima la banda e ricorda le impostazioni del lettore.', 'Estimates bandwidth and remembers player settings.'), { domain: 'youtube.com' }),\n ck('YSC', SESSION, t('Identificativo della sessione di visione.', 'Viewing session identifier.'), { domain: 'youtube.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Usa youtube-nocookie.com: i cookie vengono impostati solo quando il visitatore avvia il video. Il contenuto arriva comunque da Google, quindi blocca l’iframe fino al consenso (data-category=\"experience\").',\n 'Use youtube-nocookie.com: cookies are set only when the visitor plays the video. The content still comes from Google, so block the iframe until consent (data-category=\"experience\").',\n ),\n keywords: ['video', 'youtube-nocookie', 'iframe'],\n },\n {\n id: 'vimeo',\n label: 'Vimeo',\n provider: 'Vimeo.com Inc.',\n privacyUrl: 'https://vimeo.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di Vimeo incorporati nelle pagine.', 'Shows Vimeo videos embedded in pages.'),\n cookies: [\n ck('vuid', YEARS2, t('Identificativo del visitatore per le statistiche del video.', 'Visitor identifier for video statistics.'), { domain: 'vimeo.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Con il parametro dnt=1 nell’URL dell’iframe Vimeo non imposta cookie di tracciamento.',\n 'With dnt=1 in the iframe URL Vimeo sets no tracking cookies.',\n ),\n keywords: ['video', 'iframe'],\n },\n {\n id: 'google-maps',\n label: 'Google Maps',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra mappe interattive incorporate nelle pagine.', 'Shows interactive maps embedded in pages.'),\n cookies: [\n ck('NID', MONTHS6, t('Ricorda le preferenze e le informazioni del visitatore per i servizi Google.', 'Remembers visitor preferences and information for Google services.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n keywords: ['map', 'iframe'],\n },\n {\n id: 'spotify',\n label: 'Spotify (embed)',\n provider: 'Spotify AB',\n privacyUrl: 'https://www.spotify.com/legal/privacy-policy/',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra brani, playlist e podcast di Spotify incorporati nelle pagine.', 'Shows embedded Spotify tracks, playlists and podcasts.'),\n cookies: [\n ck('sp_t', YEAR1, t('Identificativo del browser per Spotify.', 'Browser identifier for Spotify.'), { domain: 'spotify.com' }),\n ck('sp_landing', DAY1, t('Registra la pagina di arrivo della visita.', 'Records the landing page of the visit.'), { domain: 'spotify.com' }),\n ],\n transfer: us(SCC),\n keywords: ['music', 'podcast', 'iframe'],\n },\n {\n id: 'calendly',\n label: 'Calendly',\n provider: 'Calendly LLC',\n privacyUrl: 'https://calendly.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Calendario incorporato per prenotare appuntamenti.', 'Embedded calendar to book appointments.'),\n cookies: [\n ck('__cf_bm', MIN30, t('Protezione dai bot (Cloudflare) sul dominio di Calendly.', 'Bot protection (Cloudflare) on Calendly’s domain.'), { domain: 'calendly.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Calendly imposta altri cookie propri (sessione, analisi): verifica l’elenco nella sua cookie policy.',\n 'Calendly sets other cookies of its own (session, analytics): check the list in its cookie policy.',\n ),\n keywords: ['booking', 'scheduling', 'iframe'],\n },\n\n // ---- support --------------------------------------------------------------\n {\n id: 'intercom',\n label: 'Intercom',\n provider: 'Intercom R&D Unlimited Company',\n privacyUrl: 'https://www.intercom.com/legal/privacy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e messaggi ai visitatori.', 'Support chat and messages to visitors.'),\n cookies: [\n ck('^intercom-id-', MONTHS9, t('Identificativo anonimo del visitatore per la chat.', 'Anonymous visitor identifier for the chat.'), pattern),\n ck('^intercom-session-', DAYS7, t('Mantiene la conversazione tra le pagine.', 'Keeps the conversation across pages.'), pattern),\n ck('^intercom-device-id-', MONTHS9, t('Identificativo del dispositivo.', 'Device identifier.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Con l’hosting UE di Intercom i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Intercom EU hosting data is stored in the EU: update the transfer section.',\n ),\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'crisp',\n label: 'Crisp',\n provider: 'Crisp IM SAS',\n privacyUrl: 'https://crisp.chat/en/privacy/',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza.', 'Support chat.'),\n cookies: [\n ck('^crisp-client', MONTHS6, t('Mantiene la sessione della chat.', 'Keeps the chat session.'), pattern),\n ],\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'hubspot',\n label: 'HubSpot (chat)',\n provider: 'HubSpot Ireland Ltd',\n privacyUrl: 'https://legal.hubspot.com/privacy-policy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e moduli di contatto.', 'Support chat and contact forms.'),\n cookies: [\n ck('messagesUtk', MONTHS6, t('Riconosce i visitatori della chat.', 'Recognises chat visitors.')),\n ],\n transfer: us(DPF),\n note: t(\n 'Il codice di tracciamento HubSpot (__hstc, hubspotutk, __hssc) serve ad analisi e marketing: se lo usi, dichiaralo come servizio separato in misurazione o marketing.',\n 'The HubSpot tracking code (__hstc, hubspotutk, __hssc) is analytics and marketing: if you use it, declare it as a separate service under measurement or marketing.',\n ),\n keywords: ['chat', 'crm', 'forms'],\n },\n {\n id: 'zendesk',\n label: 'Zendesk',\n provider: 'Zendesk International Ltd',\n privacyUrl: 'https://www.zendesk.com/company/agreements-and-terms/privacy-notice/',\n group: 'support',\n category: 'functionality',\n purpose: t('Widget di assistenza e chat.', 'Support widget and chat.'),\n cookies: [ck('__zlcmid', YEAR1, t('Identificativo del visitatore per la chat.', 'Visitor identifier for the chat.'))],\n transfer: us(DPF),\n keywords: ['chat', 'helpdesk'],\n },\n\n // ---- payments -------------------------------------------------------------\n {\n id: 'stripe',\n label: 'Stripe',\n provider: 'Stripe Payments Europe Ltd',\n privacyUrl: 'https://stripe.com/privacy',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('__stripe_mid', YEAR1, t('Prevenzione delle frodi.', 'Fraud prevention.')),\n ck('__stripe_sid', MIN30, t('Prevenzione delle frodi nella sessione.', 'Fraud prevention within the session.')),\n ck('m', YEARS2, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'm.stripe.com' }),\n ],\n transfer: us(DPF),\n keywords: ['payment', 'checkout'],\n },\n {\n id: 'paypal',\n label: 'PayPal',\n provider: 'PayPal (Europe) S.à r.l. et Cie, S.C.A.',\n privacyUrl: 'https://www.paypal.com/myaccount/privacy/privacyhub',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('ts', undefined, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'paypal.com' }),\n ck('x-pp-s', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ck('nsid', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ],\n transfer: us(BCR),\n keywords: ['payment', 'checkout'],\n },\n\n // ---- security -------------------------------------------------------------\n {\n id: 'recaptcha',\n label: 'Google reCAPTCHA',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('_GRECAPTCHA', MONTHS6, t('Analisi del rischio per distinguere persone e bot.', 'Risk analysis to tell humans from bots.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Classificato come necessario (sicurezza), ma invia dati a Google: indicalo nella privacy policy e valuta di caricarlo solo nelle pagine con moduli.',\n 'Classed as necessary (security), but it sends data to Google: mention it in the privacy policy and consider loading it only on pages with forms.',\n ),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'hcaptcha',\n label: 'hCaptcha',\n provider: 'Intuition Machines, Inc.',\n privacyUrl: 'https://www.hcaptcha.com/privacy',\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('hc_accessibility', undefined, t('Impostato solo per chi usa l’accesso facilitato di hCaptcha.', 'Set only for visitors who use hCaptcha’s accessibility access.'), { domain: 'hcaptcha.com' }),\n ],\n transfer: us(SCC),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'cloudflare',\n label: 'Cloudflare',\n provider: 'Cloudflare, Inc.',\n privacyUrl: 'https://www.cloudflare.com/privacypolicy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Distribuzione dei contenuti (CDN) e protezione da bot e attacchi.',\n 'Content delivery (CDN) and protection from bots and attacks.',\n ),\n cookies: [\n ck('__cf_bm', MIN30, t('Distingue il traffico umano dai bot.', 'Tells human traffic from bots.')),\n ck('cf_clearance', t('da 30 minuti a 1 anno (configurabile)', '30 minutes to 1 year (configurable)'), t('Ricorda che il visitatore ha superato una verifica.', 'Remembers that the visitor passed a challenge.')),\n ck('_cfuvid', SESSION, t('Limitazione delle richieste (rate limiting).', 'Rate limiting.')),\n ],\n transfer: us(DPF),\n keywords: ['cdn', 'waf', 'turnstile', 'bot'],\n },\n {\n id: 'sentry',\n label: 'Sentry',\n provider: 'Functional Software, Inc. (Sentry)',\n privacyUrl: 'https://sentry.io/privacy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Segnala gli errori tecnici del sito per poterli correggere.',\n 'Reports technical errors on the site so they can be fixed.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'L’SDK di Sentry non imposta cookie. Se attivi Session Replay, che registra le interazioni, valuta di spostarlo in misurazione. Con la regione dati UE di Sentry aggiorna la sezione trasferimenti.',\n 'The Sentry SDK sets no cookies. If you enable Session Replay, which records interactions, consider moving it to measurement. With Sentry’s EU data region update the transfer section.',\n ),\n keywords: ['errors', 'monitoring'],\n },\n {\n id: 'easy-cookie',\n label: 'easy-cookie',\n provider: '',\n privacyUrl: '',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Ricorda le scelte del visitatore sui cookie e ne conserva la prova.',\n 'Remembers the visitor’s cookie choices and keeps proof of them.',\n ),\n cookies: [\n ck('ec_consent', MONTHS6, t('Memorizza le categorie accettate e la revisione della policy.', 'Stores the accepted categories and the policy revision.')),\n ],\n note: t(\n 'Cookie di prima parte. La durata segue expiryDays (predefinito 182 giorni): aggiornala se la cambi.',\n 'First-party cookie. The duration follows expiryDays (default 182 days): update it if you change that.',\n ),\n keywords: ['consent', 'cookie banner'],\n },\n];\n"],"mappings":"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","names":[]}
|
package/dist/catalog.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as Localized, C as CookieDeclaration, S as ServiceDeclaration } from './types-
|
|
1
|
+
import { L as Localized, C as CookieDeclaration, S as ServiceDeclaration } from './types-B6QEQkj-.cjs';
|
|
2
2
|
|
|
3
3
|
/** Group used to browse the catalog (not the consent category). */
|
|
4
4
|
type CatalogGroup = 'analytics' | 'advertising' | 'tag-management' | 'embeds' | 'support' | 'payments' | 'security' | 'infrastructure';
|
package/dist/catalog.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as Localized, C as CookieDeclaration, S as ServiceDeclaration } from './types-
|
|
1
|
+
import { L as Localized, C as CookieDeclaration, S as ServiceDeclaration } from './types-B6QEQkj-.js';
|
|
2
2
|
|
|
3
3
|
/** Group used to browse the catalog (not the consent category). */
|
|
4
4
|
type CatalogGroup = 'analytics' | 'advertising' | 'tag-management' | 'embeds' | 'support' | 'payments' | 'security' | 'infrastructure';
|
package/dist/catalog.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @easy-cookie/core 0.1.
|
|
1
|
+
/*! @easy-cookie/core 0.1.1 | MIT | includes vanilla-cookieconsent v3.3.0 (c) Orest Bida, MIT */
|
|
2
2
|
|
|
3
3
|
// src/catalog/entries.ts
|
|
4
4
|
var t = (it, en) => ({ it, en });
|
|
@@ -587,7 +587,7 @@ var ENTRIES = [
|
|
|
587
587
|
},
|
|
588
588
|
{
|
|
589
589
|
id: "easy-cookie",
|
|
590
|
-
label: "
|
|
590
|
+
label: "easy-cookie",
|
|
591
591
|
provider: "",
|
|
592
592
|
privacyUrl: "",
|
|
593
593
|
group: "infrastructure",
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/catalog/entries.ts","../src/catalog/index.ts"],"sourcesContent":["import type { CookieDeclaration, Localized } from '../shared/types';\nimport type { CatalogEntry } from './types';\n\n/*\n * Ready-made service declarations. Data checked against each provider's public\n * cookie / privacy documentation (November 2026). Durations are omitted where\n * the provider does not document them or makes them configurable without a\n * stable default. Site owners must still review every entry: providers change\n * their cookies, and the transfer section depends on the owner's contracts.\n */\n\nconst t = (it: string, en: string): Record<'it' | 'en', string> => ({ it, en });\n\nfunction ck(\n name: string,\n duration: Record<'it' | 'en', string> | undefined,\n description: Record<'it' | 'en', string>,\n extra: Partial<CookieDeclaration> = {},\n): CookieDeclaration {\n return { name, ...extra, ...(duration ? { duration } : {}), description };\n}\n\nconst pattern = { pattern: true } as const;\n\n// Durations.\nconst SESSION = t('sessione', 'session');\nconst MIN30 = t('30 minuti', '30 minutes');\nconst DAY1 = t('1 giorno', '1 day');\nconst DAYS7 = t('7 giorni', '7 days');\nconst DAYS30 = t('30 giorni', '30 days');\nconst MONTHS3 = t('3 mesi', '3 months');\nconst MONTHS6 = t('6 mesi', '6 months');\nconst MONTHS9 = t('9 mesi', '9 months');\nconst YEAR1 = t('1 anno', '1 year');\nconst MONTHS13 = t('13 mesi', '13 months');\nconst YEARS2 = t('2 anni', '2 years');\n\n// Transfer safeguards.\nconst DPF = t('EU-US Data Privacy Framework', 'EU-US Data Privacy Framework');\nconst SCC = t('Clausole contrattuali standard', 'Standard contractual clauses');\nconst BCR = t('Norme vincolanti d’impresa (BCR)', 'Binding corporate rules (BCR)');\nconst us = (safeguard: Localized) => ({ countries: ['US'], safeguard });\n\nconst GOOGLE = 'Google Ireland Ltd';\nconst GOOGLE_PRIVACY = 'https://policies.google.com/privacy';\nconst MICROSOFT = 'Microsoft Ireland Operations Ltd';\nconst MICROSOFT_PRIVACY = 'https://privacy.microsoft.com/privacystatement';\n\nexport const ENTRIES: CatalogEntry[] = [\n // ---- analytics ------------------------------------------------------------\n {\n id: 'ga4',\n label: 'Google Analytics 4',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche sulle visite e sull’uso del sito (pagine viste, sorgenti di traffico, eventi).',\n 'Statistics about visits and site usage (page views, traffic sources, events).',\n ),\n cookies: [\n ck('_ga', YEARS2, t('Distingue i visitatori con un identificativo casuale.', 'Distinguishes visitors with a random identifier.')),\n ck('^_ga_', YEARS2, t('Mantiene lo stato della sessione per la proprietà GA4.', 'Keeps the session state for the GA4 property.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Senza consenso Google Analytics non deve impostare cookie: abilita Consent Mode v2. Nel contratto con Google valuta le impostazioni di condivisione dei dati.',\n 'Without consent Google Analytics must not set cookies: enable Consent Mode v2. Review the data-sharing settings in your Google agreement.',\n ),\n keywords: ['google analytics', 'gtag', 'analytics'],\n },\n {\n id: 'gtm',\n label: 'Google Tag Manager',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'tag-management',\n category: 'necessary',\n purpose: t(\n 'Carica gli script configurati nel contenitore; da solo non imposta cookie.',\n 'Loads the scripts configured in the container; on its own it sets no cookies.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'GTM non imposta cookie, ma i tag che carica sì: dichiara ogni tag (GA4, Ads, Meta…) come servizio separato e attivali solo col consenso tramite Consent Mode.',\n 'GTM sets no cookies, but the tags it loads do: declare each tag (GA4, Ads, Meta…) as its own service and fire them only with consent through Consent Mode.',\n ),\n keywords: ['gtm', 'tag manager'],\n },\n {\n id: 'posthog',\n label: 'PostHog',\n provider: 'PostHog Inc.',\n privacyUrl: 'https://posthog.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Analisi del prodotto: eventi, funnel, registrazioni di sessione e feature flag.',\n 'Product analytics: events, funnels, session recordings and feature flags.',\n ),\n cookies: [\n ck('^ph_.*_posthog$', YEAR1, t('Identificativo anonimo del visitatore e stato della sessione.', 'Anonymous visitor identifier and session state.'), pattern),\n ],\n transfer: us(SCC),\n note: t(\n 'Con PostHog EU Cloud (eu.posthog.com) i dati restano nell’UE: aggiorna la sezione trasferimenti. Senza consenso usa persistence: \"memory\" (con @easy-cookie/posthog).',\n 'With PostHog EU Cloud (eu.posthog.com) data stays in the EU: update the transfer section. Without consent use persistence: \"memory\" (with @easy-cookie/posthog).',\n ),\n keywords: ['product analytics', 'session replay'],\n },\n {\n id: 'matomo',\n label: 'Matomo',\n provider: 'InnoCraft Ltd (Matomo Cloud)',\n privacyUrl: 'https://matomo.org/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Statistiche sulle visite e sull’uso del sito.', 'Statistics about visits and site usage.'),\n cookies: [\n ck('^_pk_id\\\\.', MONTHS13, t('Identificativo del visitatore.', 'Visitor identifier.'), pattern),\n ck('^_pk_ses\\\\.', MIN30, t('Dati temporanei della visita in corso.', 'Temporary data for the current visit.'), pattern),\n ],\n note: t(\n 'Se Matomo è installato sul tuo server, il fornitore sei tu: modifica il campo. Con IP mascherato, senza incrocio con altri dati e con cookie disattivati o di prima parte, le linee guida del Garante (2021) lo equiparano a un cookie tecnico: puoi spostarlo tra i necessari.',\n 'If Matomo runs on your own server, you are the provider: edit the field. With masked IPs, no cross-referencing with other data and cookies disabled or first-party, the Italian Garante guidelines (2021) treat it like a technical cookie: you may move it to necessary.',\n ),\n keywords: ['piwik', 'self-hosted'],\n },\n {\n id: 'plausible',\n label: 'Plausible Analytics',\n provider: 'Plausible Insights OÜ',\n privacyUrl: 'https://plausible.io/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche aggregate sulle visite, senza cookie e senza identificativi persistenti.',\n 'Aggregate visit statistics, without cookies or persistent identifiers.',\n ),\n cookies: [],\n note: t(\n 'Plausible non imposta cookie: potresti non aver bisogno del consenso. Valuta di spostarlo tra i necessari o di elencarlo solo nella privacy policy.',\n 'Plausible sets no cookies: you may not need consent. Consider moving it to necessary or listing it only in the privacy policy.',\n ),\n keywords: ['cookieless', 'privacy-friendly'],\n },\n {\n id: 'hotjar',\n label: 'Hotjar',\n provider: 'Hotjar Ltd',\n privacyUrl: 'https://www.hotjar.com/legal/policies/privacy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Mappe di calore, registrazioni delle sessioni e sondaggi sull’uso del sito.',\n 'Heatmaps, session recordings and surveys about site usage.',\n ),\n cookies: [\n ck('^_hjSessionUser_', YEAR1, t('Identificativo del visitatore per il sito.', 'Visitor identifier for the site.'), pattern),\n ck('^_hjSession_', MIN30, t('Dati della sessione in corso.', 'Current session data.'), pattern),\n ],\n keywords: ['heatmap', 'session recording', 'contentsquare'],\n },\n {\n id: 'clarity',\n label: 'Microsoft Clarity',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t('Mappe di calore e registrazioni delle sessioni.', 'Heatmaps and session recordings.'),\n cookies: [\n ck('_clck', YEAR1, t('Identificativo del visitatore e preferenze di Clarity.', 'Visitor identifier and Clarity preferences.')),\n ck('_clsk', DAY1, t('Collega le pagine viste in una stessa sessione.', 'Links page views into one session.')),\n ck('CLID', YEAR1, t('Identifica il primo accesso del browser a Clarity.', 'Identifies the browser’s first visit to Clarity.'), { domain: 'clarity.ms' }),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'clarity.ms' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Dal 2025 Clarity richiede di inviare il segnale di consenso (Consent API) per i visitatori del SEE.',\n 'Since 2025 Clarity requires the consent signal (Consent API) for EEA visitors.',\n ),\n keywords: ['heatmap', 'session recording'],\n },\n {\n id: 'mixpanel',\n label: 'Mixpanel',\n provider: 'Mixpanel Inc.',\n privacyUrl: 'https://mixpanel.com/legal/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^mp_.*_mixpanel$', YEAR1, t('Identificativo del visitatore e proprietà dell’evento.', 'Visitor identifier and event properties.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con la residenza dei dati UE di Mixpanel i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Mixpanel EU data residency data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n {\n id: 'amplitude',\n label: 'Amplitude',\n provider: 'Amplitude Inc.',\n privacyUrl: 'https://amplitude.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^AMP_', YEAR1, t('Identificativo del visitatore e della sessione.', 'Visitor and session identifier.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con il data center UE di Amplitude i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Amplitude’s EU data center data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n\n // ---- advertising ----------------------------------------------------------\n {\n id: 'google-ads',\n label: 'Google Ads',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne e mostra annunci personalizzati (remarketing).',\n 'Measures campaign conversions and shows personalised ads (remarketing).',\n ),\n cookies: [\n ck('_gcl_au', MONTHS3, t('Memorizza le informazioni sui clic sugli annunci per misurare le conversioni.', 'Stores ad-click information to measure conversions.')),\n ck('^_gcl_', MONTHS3, t('Altri cookie di misurazione delle conversioni (es. _gcl_aw).', 'Other conversion-measurement cookies (e.g. _gcl_aw).'), pattern),\n ck('IDE', MONTHS13, t('Pubblicità personalizzata e misurazione su siti di terze parti.', 'Personalised advertising and measurement across third-party sites.'), { domain: 'doubleclick.net' }),\n ],\n transfer: us(DPF),\n keywords: ['adwords', 'remarketing', 'conversion', 'doubleclick'],\n },\n {\n id: 'meta-pixel',\n label: 'Meta Pixel',\n provider: 'Meta Platforms Ireland Ltd',\n privacyUrl: 'https://www.facebook.com/privacy/policy/',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne su Facebook e Instagram e crea pubblici per gli annunci.',\n 'Measures Facebook and Instagram campaign conversions and builds ad audiences.',\n ),\n cookies: [\n ck('_fbp', MONTHS3, t('Identifica il browser per la pubblicità di Meta.', 'Identifies the browser for Meta advertising.')),\n ck('_fbc', MONTHS3, t('Memorizza l’ultimo clic su un annuncio di Meta.', 'Stores the last click on a Meta ad.')),\n ck('fr', MONTHS3, t('Pubblicità personalizzata e misurazione.', 'Personalised advertising and measurement.'), { domain: 'facebook.com' }),\n ],\n transfer: us(DPF),\n keywords: ['facebook', 'instagram', 'pixel'],\n },\n {\n id: 'linkedin-insight',\n label: 'LinkedIn Insight Tag',\n provider: 'LinkedIn Ireland Unlimited Company',\n privacyUrl: 'https://www.linkedin.com/legal/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne LinkedIn e crea pubblici di retargeting.',\n 'Measures LinkedIn campaign conversions and builds retargeting audiences.',\n ),\n cookies: [\n ck('li_sugr', MONTHS3, t('Identificativo del browser per l’abbinamento degli utenti.', 'Browser identifier for user matching.')),\n ck('bcookie', YEAR1, t('Identificativo del browser.', 'Browser identifier.'), { domain: 'linkedin.com' }),\n ck('lidc', DAY1, t('Instradamento verso il data center.', 'Data-center routing.'), { domain: 'linkedin.com' }),\n ck('UserMatchHistory', DAYS30, t('Sincronizzazione degli identificativi pubblicitari.', 'Ad identifier syncing.'), { domain: 'linkedin.com' }),\n ck('AnalyticsSyncHistory', DAYS30, t('Data dell’ultima sincronizzazione.', 'Time of the last sync.'), { domain: 'linkedin.com' }),\n ],\n transfer: us(DPF),\n keywords: ['linkedin', 'retargeting'],\n },\n {\n id: 'tiktok-pixel',\n label: 'TikTok Pixel',\n provider: 'TikTok Technology Limited',\n privacyUrl: 'https://www.tiktok.com/legal/page/eea/privacy-policy/en',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne TikTok e ottimizza la pubblicità.',\n 'Measures TikTok campaign conversions and optimises advertising.',\n ),\n cookies: [\n ck('_ttp', MONTHS13, t('Identifica il browser per la pubblicità di TikTok.', 'Identifies the browser for TikTok advertising.')),\n ck('_tt_enable_cookie', MONTHS13, t('Verifica che il browser accetti i cookie.', 'Checks that the browser accepts cookies.')),\n ],\n transfer: { countries: ['US', 'MY', 'CN'], safeguard: SCC },\n note: t(\n 'Verifica i paesi di trasferimento nella privacy policy SEE di TikTok in vigore: cambiano nel tempo.',\n 'Check the transfer countries in TikTok’s current EEA privacy policy: they change over time.',\n ),\n keywords: ['tiktok', 'pixel'],\n },\n {\n id: 'pinterest-tag',\n label: 'Pinterest Tag',\n provider: 'Pinterest Europe Ltd',\n privacyUrl: 'https://policy.pinterest.com/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne Pinterest.', 'Measures Pinterest campaign conversions.'),\n cookies: [\n ck('_pin_unauth', YEAR1, t('Identifica il browser dei visitatori non registrati.', 'Identifies the browser of signed-out visitors.')),\n ck('_pinterest_ct_ua', YEAR1, t('Collega le azioni sul sito ai clic sugli annunci.', 'Links on-site actions to ad clicks.')),\n ck('_epik', YEAR1, t('Memorizza il clic sull’annuncio di provenienza.', 'Stores the click on the originating ad.')),\n ],\n transfer: us(DPF),\n keywords: ['pinterest', 'pixel'],\n },\n {\n id: 'microsoft-uet',\n label: 'Microsoft Advertising (UET)',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne Microsoft Advertising (Bing) e crea pubblici di remarketing.',\n 'Measures Microsoft Advertising (Bing) conversions and builds remarketing audiences.',\n ),\n cookies: [\n ck('_uetsid', DAY1, t('Identificativo della sessione per la misurazione delle conversioni.', 'Session identifier for conversion measurement.')),\n ck('_uetvid', MONTHS13, t('Identificativo del visitatore tra più sessioni.', 'Visitor identifier across sessions.')),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'bing.com' }),\n ],\n transfer: us(DPF),\n keywords: ['bing ads', 'uet'],\n },\n {\n id: 'x-pixel',\n label: 'X (Twitter) Pixel',\n provider: 'Twitter International Unlimited Company',\n privacyUrl: 'https://x.com/en/privacy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne su X e crea pubblici.', 'Measures X campaign conversions and builds audiences.'),\n cookies: [\n ck('muc_ads', MONTHS13, t('Identificativo pubblicitario del browser.', 'Advertising identifier for the browser.'), { domain: 't.co' }),\n ck('guest_id', MONTHS13, t('Identificativo dei visitatori non registrati.', 'Identifier of signed-out visitors.'), { domain: 'x.com' }),\n ck('personalization_id', MONTHS13, t('Pubblicità personalizzata.', 'Personalised advertising.'), { domain: 'x.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Verifica la denominazione attuale del titolare UE nella privacy policy di X.',\n 'Check the current name of the EU controller in X’s privacy policy.',\n ),\n keywords: ['twitter', 'pixel'],\n },\n\n // ---- embeds ---------------------------------------------------------------\n {\n id: 'youtube',\n label: 'YouTube',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di YouTube incorporati nelle pagine.', 'Shows YouTube videos embedded in pages.'),\n cookies: [\n ck('VISITOR_INFO1_LIVE', MONTHS6, t('Stima la banda e ricorda le impostazioni del lettore.', 'Estimates bandwidth and remembers player settings.'), { domain: 'youtube.com' }),\n ck('YSC', SESSION, t('Identificativo della sessione di visione.', 'Viewing session identifier.'), { domain: 'youtube.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Usa youtube-nocookie.com: i cookie vengono impostati solo quando il visitatore avvia il video. Il contenuto arriva comunque da Google, quindi blocca l’iframe fino al consenso (data-category=\"experience\").',\n 'Use youtube-nocookie.com: cookies are set only when the visitor plays the video. The content still comes from Google, so block the iframe until consent (data-category=\"experience\").',\n ),\n keywords: ['video', 'youtube-nocookie', 'iframe'],\n },\n {\n id: 'vimeo',\n label: 'Vimeo',\n provider: 'Vimeo.com Inc.',\n privacyUrl: 'https://vimeo.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di Vimeo incorporati nelle pagine.', 'Shows Vimeo videos embedded in pages.'),\n cookies: [\n ck('vuid', YEARS2, t('Identificativo del visitatore per le statistiche del video.', 'Visitor identifier for video statistics.'), { domain: 'vimeo.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Con il parametro dnt=1 nell’URL dell’iframe Vimeo non imposta cookie di tracciamento.',\n 'With dnt=1 in the iframe URL Vimeo sets no tracking cookies.',\n ),\n keywords: ['video', 'iframe'],\n },\n {\n id: 'google-maps',\n label: 'Google Maps',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra mappe interattive incorporate nelle pagine.', 'Shows interactive maps embedded in pages.'),\n cookies: [\n ck('NID', MONTHS6, t('Ricorda le preferenze e le informazioni del visitatore per i servizi Google.', 'Remembers visitor preferences and information for Google services.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n keywords: ['map', 'iframe'],\n },\n {\n id: 'spotify',\n label: 'Spotify (embed)',\n provider: 'Spotify AB',\n privacyUrl: 'https://www.spotify.com/legal/privacy-policy/',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra brani, playlist e podcast di Spotify incorporati nelle pagine.', 'Shows embedded Spotify tracks, playlists and podcasts.'),\n cookies: [\n ck('sp_t', YEAR1, t('Identificativo del browser per Spotify.', 'Browser identifier for Spotify.'), { domain: 'spotify.com' }),\n ck('sp_landing', DAY1, t('Registra la pagina di arrivo della visita.', 'Records the landing page of the visit.'), { domain: 'spotify.com' }),\n ],\n transfer: us(SCC),\n keywords: ['music', 'podcast', 'iframe'],\n },\n {\n id: 'calendly',\n label: 'Calendly',\n provider: 'Calendly LLC',\n privacyUrl: 'https://calendly.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Calendario incorporato per prenotare appuntamenti.', 'Embedded calendar to book appointments.'),\n cookies: [\n ck('__cf_bm', MIN30, t('Protezione dai bot (Cloudflare) sul dominio di Calendly.', 'Bot protection (Cloudflare) on Calendly’s domain.'), { domain: 'calendly.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Calendly imposta altri cookie propri (sessione, analisi): verifica l’elenco nella sua cookie policy.',\n 'Calendly sets other cookies of its own (session, analytics): check the list in its cookie policy.',\n ),\n keywords: ['booking', 'scheduling', 'iframe'],\n },\n\n // ---- support --------------------------------------------------------------\n {\n id: 'intercom',\n label: 'Intercom',\n provider: 'Intercom R&D Unlimited Company',\n privacyUrl: 'https://www.intercom.com/legal/privacy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e messaggi ai visitatori.', 'Support chat and messages to visitors.'),\n cookies: [\n ck('^intercom-id-', MONTHS9, t('Identificativo anonimo del visitatore per la chat.', 'Anonymous visitor identifier for the chat.'), pattern),\n ck('^intercom-session-', DAYS7, t('Mantiene la conversazione tra le pagine.', 'Keeps the conversation across pages.'), pattern),\n ck('^intercom-device-id-', MONTHS9, t('Identificativo del dispositivo.', 'Device identifier.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Con l’hosting UE di Intercom i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Intercom EU hosting data is stored in the EU: update the transfer section.',\n ),\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'crisp',\n label: 'Crisp',\n provider: 'Crisp IM SAS',\n privacyUrl: 'https://crisp.chat/en/privacy/',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza.', 'Support chat.'),\n cookies: [\n ck('^crisp-client', MONTHS6, t('Mantiene la sessione della chat.', 'Keeps the chat session.'), pattern),\n ],\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'hubspot',\n label: 'HubSpot (chat)',\n provider: 'HubSpot Ireland Ltd',\n privacyUrl: 'https://legal.hubspot.com/privacy-policy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e moduli di contatto.', 'Support chat and contact forms.'),\n cookies: [\n ck('messagesUtk', MONTHS6, t('Riconosce i visitatori della chat.', 'Recognises chat visitors.')),\n ],\n transfer: us(DPF),\n note: t(\n 'Il codice di tracciamento HubSpot (__hstc, hubspotutk, __hssc) serve ad analisi e marketing: se lo usi, dichiaralo come servizio separato in misurazione o marketing.',\n 'The HubSpot tracking code (__hstc, hubspotutk, __hssc) is analytics and marketing: if you use it, declare it as a separate service under measurement or marketing.',\n ),\n keywords: ['chat', 'crm', 'forms'],\n },\n {\n id: 'zendesk',\n label: 'Zendesk',\n provider: 'Zendesk International Ltd',\n privacyUrl: 'https://www.zendesk.com/company/agreements-and-terms/privacy-notice/',\n group: 'support',\n category: 'functionality',\n purpose: t('Widget di assistenza e chat.', 'Support widget and chat.'),\n cookies: [ck('__zlcmid', YEAR1, t('Identificativo del visitatore per la chat.', 'Visitor identifier for the chat.'))],\n transfer: us(DPF),\n keywords: ['chat', 'helpdesk'],\n },\n\n // ---- payments -------------------------------------------------------------\n {\n id: 'stripe',\n label: 'Stripe',\n provider: 'Stripe Payments Europe Ltd',\n privacyUrl: 'https://stripe.com/privacy',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('__stripe_mid', YEAR1, t('Prevenzione delle frodi.', 'Fraud prevention.')),\n ck('__stripe_sid', MIN30, t('Prevenzione delle frodi nella sessione.', 'Fraud prevention within the session.')),\n ck('m', YEARS2, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'm.stripe.com' }),\n ],\n transfer: us(DPF),\n keywords: ['payment', 'checkout'],\n },\n {\n id: 'paypal',\n label: 'PayPal',\n provider: 'PayPal (Europe) S.à r.l. et Cie, S.C.A.',\n privacyUrl: 'https://www.paypal.com/myaccount/privacy/privacyhub',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('ts', undefined, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'paypal.com' }),\n ck('x-pp-s', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ck('nsid', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ],\n transfer: us(BCR),\n keywords: ['payment', 'checkout'],\n },\n\n // ---- security -------------------------------------------------------------\n {\n id: 'recaptcha',\n label: 'Google reCAPTCHA',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('_GRECAPTCHA', MONTHS6, t('Analisi del rischio per distinguere persone e bot.', 'Risk analysis to tell humans from bots.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Classificato come necessario (sicurezza), ma invia dati a Google: indicalo nella privacy policy e valuta di caricarlo solo nelle pagine con moduli.',\n 'Classed as necessary (security), but it sends data to Google: mention it in the privacy policy and consider loading it only on pages with forms.',\n ),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'hcaptcha',\n label: 'hCaptcha',\n provider: 'Intuition Machines, Inc.',\n privacyUrl: 'https://www.hcaptcha.com/privacy',\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('hc_accessibility', undefined, t('Impostato solo per chi usa l’accesso facilitato di hCaptcha.', 'Set only for visitors who use hCaptcha’s accessibility access.'), { domain: 'hcaptcha.com' }),\n ],\n transfer: us(SCC),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'cloudflare',\n label: 'Cloudflare',\n provider: 'Cloudflare, Inc.',\n privacyUrl: 'https://www.cloudflare.com/privacypolicy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Distribuzione dei contenuti (CDN) e protezione da bot e attacchi.',\n 'Content delivery (CDN) and protection from bots and attacks.',\n ),\n cookies: [\n ck('__cf_bm', MIN30, t('Distingue il traffico umano dai bot.', 'Tells human traffic from bots.')),\n ck('cf_clearance', t('da 30 minuti a 1 anno (configurabile)', '30 minutes to 1 year (configurable)'), t('Ricorda che il visitatore ha superato una verifica.', 'Remembers that the visitor passed a challenge.')),\n ck('_cfuvid', SESSION, t('Limitazione delle richieste (rate limiting).', 'Rate limiting.')),\n ],\n transfer: us(DPF),\n keywords: ['cdn', 'waf', 'turnstile', 'bot'],\n },\n {\n id: 'sentry',\n label: 'Sentry',\n provider: 'Functional Software, Inc. (Sentry)',\n privacyUrl: 'https://sentry.io/privacy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Segnala gli errori tecnici del sito per poterli correggere.',\n 'Reports technical errors on the site so they can be fixed.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'L’SDK di Sentry non imposta cookie. Se attivi Session Replay, che registra le interazioni, valuta di spostarlo in misurazione. Con la regione dati UE di Sentry aggiorna la sezione trasferimenti.',\n 'The Sentry SDK sets no cookies. If you enable Session Replay, which records interactions, consider moving it to measurement. With Sentry’s EU data region update the transfer section.',\n ),\n keywords: ['errors', 'monitoring'],\n },\n {\n id: 'easy-cookie',\n label: 'Consenso cookie (easy-cookie)',\n provider: '',\n privacyUrl: '',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Ricorda le scelte del visitatore sui cookie e ne conserva la prova.',\n 'Remembers the visitor’s cookie choices and keeps proof of them.',\n ),\n cookies: [\n ck('ec_consent', MONTHS6, t('Memorizza le categorie accettate e la revisione della policy.', 'Stores the accepted categories and the policy revision.')),\n ],\n note: t(\n 'Cookie di prima parte. La durata segue expiryDays (predefinito 182 giorni): aggiornala se la cambi.',\n 'First-party cookie. The duration follows expiryDays (default 182 days): update it if you change that.',\n ),\n keywords: ['consent', 'cookie banner'],\n },\n];\n","import type { ServiceDeclaration } from '../shared/types';\nimport { ENTRIES } from './entries';\nimport type { CatalogEntry, CatalogGroup } from './types';\n\nexport type { CatalogEntry, CatalogGroup } from './types';\n\n/** Catalog groups in display order. */\nexport const CATALOG_GROUPS: CatalogGroup[] = [\n 'analytics',\n 'advertising',\n 'tag-management',\n 'embeds',\n 'support',\n 'payments',\n 'security',\n 'infrastructure',\n];\n\n/** Every ready-made service, sorted by group (CATALOG_GROUPS order) then label. */\nexport const CATALOG: CatalogEntry[] = [...ENTRIES].sort(\n (a, b) => CATALOG_GROUPS.indexOf(a.group) - CATALOG_GROUPS.indexOf(b.group) || a.label.localeCompare(b.label, 'en'),\n);\n\n/** The catalog entry with this id, or undefined. */\nexport function findCatalogEntry(id: string): CatalogEntry | undefined {\n return CATALOG.find((e) => e.id === id);\n}\n\nconst clone = <T>(v: T): T => JSON.parse(JSON.stringify(v));\n\n/**\n * A `ServiceDeclaration` built from a catalog entry, ready to add to\n * `config.services[entry.id]`. The result is a deep copy (editing it never\n * changes the catalog) and records its origin in `from`.\n */\nexport function catalogToService(entry: CatalogEntry): ServiceDeclaration {\n return {\n category: entry.category,\n label: entry.label,\n ...(entry.provider ? { provider: entry.provider } : {}),\n ...(entry.privacyUrl ? { privacyUrl: entry.privacyUrl } : {}),\n purpose: clone(entry.purpose),\n cookies: clone(entry.cookies),\n from: entry.id,\n };\n}\n"],"mappings":";;;AAWA,IAAM,IAAI,CAAC,IAAY,QAA6C,EAAE,IAAI,GAAG;AAE7E,SAAS,GACP,MACA,UACA,aACA,QAAoC,CAAC,GAClB;AACnB,SAAO,EAAE,MAAM,GAAG,OAAO,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC,GAAI,YAAY;AAC1E;AAEA,IAAM,UAAU,EAAE,SAAS,KAAK;AAGhC,IAAM,UAAU,EAAE,YAAY,SAAS;AACvC,IAAM,QAAQ,EAAE,aAAa,YAAY;AACzC,IAAM,OAAO,EAAE,YAAY,OAAO;AAClC,IAAM,QAAQ,EAAE,YAAY,QAAQ;AACpC,IAAM,SAAS,EAAE,aAAa,SAAS;AACvC,IAAM,UAAU,EAAE,UAAU,UAAU;AACtC,IAAM,UAAU,EAAE,UAAU,UAAU;AACtC,IAAM,UAAU,EAAE,UAAU,UAAU;AACtC,IAAM,QAAQ,EAAE,UAAU,QAAQ;AAClC,IAAM,WAAW,EAAE,WAAW,WAAW;AACzC,IAAM,SAAS,EAAE,UAAU,SAAS;AAGpC,IAAM,MAAM,EAAE,gCAAgC,8BAA8B;AAC5E,IAAM,MAAM,EAAE,kCAAkC,8BAA8B;AAC9E,IAAM,MAAM,EAAE,yCAAoC,+BAA+B;AACjF,IAAM,KAAK,CAAC,eAA0B,EAAE,WAAW,CAAC,IAAI,GAAG,UAAU;AAErE,IAAM,SAAS;AACf,IAAM,iBAAiB;AACvB,IAAM,YAAY;AAClB,IAAM,oBAAoB;AAEnB,IAAM,UAA0B;AAAA;AAAA,EAErC;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,OAAO,QAAQ,EAAE,yDAAyD,kDAAkD,CAAC;AAAA,MAChI,GAAG,SAAS,QAAQ,EAAE,6DAA0D,+CAA+C,GAAG,OAAO;AAAA,IAC3I;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,oBAAoB,QAAQ,WAAW;AAAA,EACpD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS,CAAC;AAAA,IACV,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,OAAO,aAAa;AAAA,EACjC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,mBAAmB,OAAO,EAAE,iEAAiE,iDAAiD,GAAG,OAAO;AAAA,IAC7J;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,qBAAqB,gBAAgB;AAAA,EAClD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,sDAAiD,yCAAyC;AAAA,IACrG,SAAS;AAAA,MACP,GAAG,cAAc,UAAU,EAAE,kCAAkC,qBAAqB,GAAG,OAAO;AAAA,MAC9F,GAAG,eAAe,OAAO,EAAE,0CAA0C,uCAAuC,GAAG,OAAO;AAAA,IACxH;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,SAAS,aAAa;AAAA,EACnC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS,CAAC;AAAA,IACV,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,cAAc,kBAAkB;AAAA,EAC7C;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,oBAAoB,OAAO,EAAE,8CAA8C,kCAAkC,GAAG,OAAO;AAAA,MAC1H,GAAG,gBAAgB,OAAO,EAAE,iCAAiC,uBAAuB,GAAG,OAAO;AAAA,IAChG;AAAA,IACA,UAAU,CAAC,WAAW,qBAAqB,eAAe;AAAA,EAC5D;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,mDAAmD,kCAAkC;AAAA,IAChG,SAAS;AAAA,MACP,GAAG,SAAS,OAAO,EAAE,0DAA0D,6CAA6C,CAAC;AAAA,MAC7H,GAAG,SAAS,MAAM,EAAE,mDAAmD,oCAAoC,CAAC;AAAA,MAC5G,GAAG,QAAQ,OAAO,EAAE,sDAAsD,uDAAkD,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,MACvJ,GAAG,QAAQ,OAAO,EAAE,2DAA2D,gDAAgD,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,IAC5J;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,WAAW,mBAAmB;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,0CAA0C,gCAAgC;AAAA,IACrF,SAAS,CAAC,GAAG,oBAAoB,OAAO,EAAE,kEAA0D,0CAA0C,GAAG,OAAO,CAAC;AAAA,IACzJ,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,mBAAmB;AAAA,EAChC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,0CAA0C,gCAAgC;AAAA,IACrF,SAAS,CAAC,GAAG,SAAS,OAAO,EAAE,mDAAmD,iCAAiC,GAAG,OAAO,CAAC;AAAA,IAC9H,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,mBAAmB;AAAA,EAChC;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,WAAW,SAAS,EAAE,iFAAiF,qDAAqD,CAAC;AAAA,MAChK,GAAG,UAAU,SAAS,EAAE,gEAAgE,sDAAsD,GAAG,OAAO;AAAA,MACxJ,GAAG,OAAO,UAAU,EAAE,sEAAmE,oEAAoE,GAAG,EAAE,QAAQ,kBAAkB,CAAC;AAAA,IAC/L;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,WAAW,eAAe,cAAc,aAAa;AAAA,EAClE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,QAAQ,SAAS,EAAE,uDAAoD,8CAA8C,CAAC;AAAA,MACzH,GAAG,QAAQ,SAAS,EAAE,wDAAmD,qCAAqC,CAAC;AAAA,MAC/G,GAAG,MAAM,SAAS,EAAE,+CAA4C,2CAA2C,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,IAC1I;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,YAAY,aAAa,OAAO;AAAA,EAC7C;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,WAAW,SAAS,EAAE,mEAA8D,uCAAuC,CAAC;AAAA,MAC/H,GAAG,WAAW,OAAO,EAAE,+BAA+B,qBAAqB,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,MACxG,GAAG,QAAQ,MAAM,EAAE,uCAAuC,sBAAsB,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,MAC7G,GAAG,oBAAoB,QAAQ,EAAE,uDAAuD,wBAAwB,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,MAC7I,GAAG,wBAAwB,QAAQ,EAAE,2CAAsC,wBAAwB,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,IAClI;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,YAAY,aAAa;AAAA,EACtC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,QAAQ,UAAU,EAAE,yDAAsD,gDAAgD,CAAC;AAAA,MAC9H,GAAG,qBAAqB,UAAU,EAAE,6CAA6C,0CAA0C,CAAC;AAAA,IAC9H;AAAA,IACA,UAAU,EAAE,WAAW,CAAC,MAAM,MAAM,IAAI,GAAG,WAAW,IAAI;AAAA,IAC1D,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,UAAU,OAAO;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,mDAAmD,0CAA0C;AAAA,IACxG,SAAS;AAAA,MACP,GAAG,eAAe,OAAO,EAAE,wDAAwD,gDAAgD,CAAC;AAAA,MACpI,GAAG,oBAAoB,OAAO,EAAE,qDAAqD,qCAAqC,CAAC;AAAA,MAC3H,GAAG,SAAS,OAAO,EAAE,wDAAmD,yCAAyC,CAAC;AAAA,IACpH;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,aAAa,OAAO;AAAA,EACjC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,WAAW,MAAM,EAAE,uEAAuE,gDAAgD,CAAC;AAAA,MAC9I,GAAG,WAAW,UAAU,EAAE,sDAAmD,qCAAqC,CAAC;AAAA,MACnH,GAAG,QAAQ,OAAO,EAAE,2DAA2D,gDAAgD,GAAG,EAAE,QAAQ,WAAW,CAAC;AAAA,IAC1J;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,YAAY,KAAK;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,8DAA8D,uDAAuD;AAAA,IAChI,SAAS;AAAA,MACP,GAAG,WAAW,UAAU,EAAE,6CAA6C,yCAAyC,GAAG,EAAE,QAAQ,OAAO,CAAC;AAAA,MACrI,GAAG,YAAY,UAAU,EAAE,iDAAiD,oCAAoC,GAAG,EAAE,QAAQ,QAAQ,CAAC;AAAA,MACtI,GAAG,sBAAsB,UAAU,EAAE,iCAA8B,2BAA2B,GAAG,EAAE,QAAQ,QAAQ,CAAC;AAAA,IACtH;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,WAAW,OAAO;AAAA,EAC/B;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,qDAAqD,yCAAyC;AAAA,IACzG,SAAS;AAAA,MACP,GAAG,sBAAsB,SAAS,EAAE,yDAAyD,oDAAoD,GAAG,EAAE,QAAQ,cAAc,CAAC;AAAA,MAC7K,GAAG,OAAO,SAAS,EAAE,6CAA6C,6BAA6B,GAAG,EAAE,QAAQ,cAAc,CAAC;AAAA,IAC7H;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,SAAS,oBAAoB,QAAQ;AAAA,EAClD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,mDAAmD,uCAAuC;AAAA,IACrG,SAAS;AAAA,MACP,GAAG,QAAQ,QAAQ,EAAE,+DAA+D,0CAA0C,GAAG,EAAE,QAAQ,YAAY,CAAC;AAAA,IAC1J;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,SAAS,QAAQ;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,sDAAsD,2CAA2C;AAAA,IAC5G,SAAS;AAAA,MACP,GAAG,OAAO,SAAS,EAAE,gFAAgF,oEAAoE,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,IACtM;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,OAAO,QAAQ;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,yEAAyE,wDAAwD;AAAA,IAC5I,SAAS;AAAA,MACP,GAAG,QAAQ,OAAO,EAAE,2CAA2C,iCAAiC,GAAG,EAAE,QAAQ,cAAc,CAAC;AAAA,MAC5H,GAAG,cAAc,MAAM,EAAE,8CAA8C,wCAAwC,GAAG,EAAE,QAAQ,cAAc,CAAC;AAAA,IAC7I;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,SAAS,WAAW,QAAQ;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,sDAAsD,yCAAyC;AAAA,IAC1G,SAAS;AAAA,MACP,GAAG,WAAW,OAAO,EAAE,4DAA4D,wDAAmD,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,IACrK;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,WAAW,cAAc,QAAQ;AAAA,EAC9C;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,gDAAgD,wCAAwC;AAAA,IACnG,SAAS;AAAA,MACP,GAAG,iBAAiB,SAAS,EAAE,sDAAsD,4CAA4C,GAAG,OAAO;AAAA,MAC3I,GAAG,sBAAsB,OAAO,EAAE,4CAA4C,sCAAsC,GAAG,OAAO;AAAA,MAC9H,GAAG,wBAAwB,SAAS,EAAE,mCAAmC,oBAAoB,GAAG,OAAO;AAAA,IACzG;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,QAAQ,UAAU;AAAA,EAC/B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,uBAAuB,eAAe;AAAA,IACjD,SAAS;AAAA,MACP,GAAG,iBAAiB,SAAS,EAAE,oCAAoC,yBAAyB,GAAG,OAAO;AAAA,IACxG;AAAA,IACA,UAAU,CAAC,QAAQ,UAAU;AAAA,EAC/B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,4CAA4C,iCAAiC;AAAA,IACxF,SAAS;AAAA,MACP,GAAG,eAAe,SAAS,EAAE,sCAAsC,2BAA2B,CAAC;AAAA,IACjG;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,QAAQ,OAAO,OAAO;AAAA,EACnC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,gCAAgC,0BAA0B;AAAA,IACrE,SAAS,CAAC,GAAG,YAAY,OAAO,EAAE,8CAA8C,kCAAkC,CAAC,CAAC;AAAA,IACpH,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,QAAQ,UAAU;AAAA,EAC/B;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,4CAA4C,wCAAwC;AAAA,IAC/F,SAAS;AAAA,MACP,GAAG,gBAAgB,OAAO,EAAE,4BAA4B,mBAAmB,CAAC;AAAA,MAC5E,GAAG,gBAAgB,OAAO,EAAE,2CAA2C,sCAAsC,CAAC;AAAA,MAC9G,GAAG,KAAK,QAAQ,EAAE,4BAA4B,mBAAmB,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,IAChG;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,WAAW,UAAU;AAAA,EAClC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,4CAA4C,wCAAwC;AAAA,IAC/F,SAAS;AAAA,MACP,GAAG,MAAM,QAAW,EAAE,4BAA4B,mBAAmB,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,MAChG,GAAG,UAAU,SAAS,EAAE,2BAA2B,kBAAkB,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,MAChG,GAAG,QAAQ,SAAS,EAAE,2BAA2B,kBAAkB,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,IAChG;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,WAAW,UAAU;AAAA,EAClC;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,oDAAoD,+CAA+C;AAAA,IAC9G,SAAS;AAAA,MACP,GAAG,eAAe,SAAS,EAAE,sDAAsD,yCAAyC,GAAG,EAAE,QAAQ,aAAa,CAAC;AAAA,IACzJ;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,WAAW,MAAM;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS,EAAE,oDAAoD,+CAA+C;AAAA,IAC9G,SAAS;AAAA,MACP,GAAG,oBAAoB,QAAW,EAAE,qEAAgE,qEAAgE,GAAG,EAAE,QAAQ,eAAe,CAAC;AAAA,IACnM;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,WAAW,MAAM;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,WAAW,OAAO,EAAE,wCAAwC,gCAAgC,CAAC;AAAA,MAChG,GAAG,gBAAgB,EAAE,yCAAyC,qCAAqC,GAAG,EAAE,uDAAuD,gDAAgD,CAAC;AAAA,MAChN,GAAG,WAAW,SAAS,EAAE,gDAAgD,gBAAgB,CAAC;AAAA,IAC5F;AAAA,IACA,UAAU,GAAG,GAAG;AAAA,IAChB,UAAU,CAAC,OAAO,OAAO,aAAa,KAAK;AAAA,EAC7C;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS,CAAC;AAAA,IACV,UAAU,GAAG,GAAG;AAAA,IAChB,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,UAAU,YAAY;AAAA,EACnC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,GAAG,cAAc,SAAS,EAAE,iEAAiE,yDAAyD,CAAC;AAAA,IACzJ;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU,CAAC,WAAW,eAAe;AAAA,EACvC;AACF;;;AClnBO,IAAM,iBAAiC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,UAA0B,CAAC,GAAG,OAAO,EAAE;AAAA,EAClD,CAAC,GAAG,MAAM,eAAe,QAAQ,EAAE,KAAK,IAAI,eAAe,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,EAAE,OAAO,IAAI;AACpH;AAGO,SAAS,iBAAiB,IAAsC;AACrE,SAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AACxC;AAEA,IAAM,QAAQ,CAAI,MAAY,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC;AAOnD,SAAS,iBAAiB,OAAyC;AACxE,SAAO;AAAA,IACL,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,GAAI,MAAM,WAAW,EAAE,UAAU,MAAM,SAAS,IAAI,CAAC;AAAA,IACrD,GAAI,MAAM,aAAa,EAAE,YAAY,MAAM,WAAW,IAAI,CAAC;AAAA,IAC3D,SAAS,MAAM,MAAM,OAAO;AAAA,IAC5B,SAAS,MAAM,MAAM,OAAO;AAAA,IAC5B,MAAM,MAAM;AAAA,EACd;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/catalog/entries.ts","../src/catalog/index.ts"],"sourcesContent":["import type { CookieDeclaration, Localized } from '../shared/types';\nimport type { CatalogEntry } from './types';\n\n/*\n * Ready-made service declarations. Data checked against each provider's public\n * cookie / privacy documentation (November 2026). Durations are omitted where\n * the provider does not document them or makes them configurable without a\n * stable default. Site owners must still review every entry: providers change\n * their cookies, and the transfer section depends on the owner's contracts.\n */\n\nconst t = (it: string, en: string): Record<'it' | 'en', string> => ({ it, en });\n\nfunction ck(\n name: string,\n duration: Record<'it' | 'en', string> | undefined,\n description: Record<'it' | 'en', string>,\n extra: Partial<CookieDeclaration> = {},\n): CookieDeclaration {\n return { name, ...extra, ...(duration ? { duration } : {}), description };\n}\n\nconst pattern = { pattern: true } as const;\n\n// Durations.\nconst SESSION = t('sessione', 'session');\nconst MIN30 = t('30 minuti', '30 minutes');\nconst DAY1 = t('1 giorno', '1 day');\nconst DAYS7 = t('7 giorni', '7 days');\nconst DAYS30 = t('30 giorni', '30 days');\nconst MONTHS3 = t('3 mesi', '3 months');\nconst MONTHS6 = t('6 mesi', '6 months');\nconst MONTHS9 = t('9 mesi', '9 months');\nconst YEAR1 = t('1 anno', '1 year');\nconst MONTHS13 = t('13 mesi', '13 months');\nconst YEARS2 = t('2 anni', '2 years');\n\n// Transfer safeguards.\nconst DPF = t('EU-US Data Privacy Framework', 'EU-US Data Privacy Framework');\nconst SCC = t('Clausole contrattuali standard', 'Standard contractual clauses');\nconst BCR = t('Norme vincolanti d’impresa (BCR)', 'Binding corporate rules (BCR)');\nconst us = (safeguard: Localized) => ({ countries: ['US'], safeguard });\n\nconst GOOGLE = 'Google Ireland Ltd';\nconst GOOGLE_PRIVACY = 'https://policies.google.com/privacy';\nconst MICROSOFT = 'Microsoft Ireland Operations Ltd';\nconst MICROSOFT_PRIVACY = 'https://privacy.microsoft.com/privacystatement';\n\nexport const ENTRIES: CatalogEntry[] = [\n // ---- analytics ------------------------------------------------------------\n {\n id: 'ga4',\n label: 'Google Analytics 4',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche sulle visite e sull’uso del sito (pagine viste, sorgenti di traffico, eventi).',\n 'Statistics about visits and site usage (page views, traffic sources, events).',\n ),\n cookies: [\n ck('_ga', YEARS2, t('Distingue i visitatori con un identificativo casuale.', 'Distinguishes visitors with a random identifier.')),\n ck('^_ga_', YEARS2, t('Mantiene lo stato della sessione per la proprietà GA4.', 'Keeps the session state for the GA4 property.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Senza consenso Google Analytics non deve impostare cookie: abilita Consent Mode v2. Nel contratto con Google valuta le impostazioni di condivisione dei dati.',\n 'Without consent Google Analytics must not set cookies: enable Consent Mode v2. Review the data-sharing settings in your Google agreement.',\n ),\n keywords: ['google analytics', 'gtag', 'analytics'],\n },\n {\n id: 'gtm',\n label: 'Google Tag Manager',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'tag-management',\n category: 'necessary',\n purpose: t(\n 'Carica gli script configurati nel contenitore; da solo non imposta cookie.',\n 'Loads the scripts configured in the container; on its own it sets no cookies.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'GTM non imposta cookie, ma i tag che carica sì: dichiara ogni tag (GA4, Ads, Meta…) come servizio separato e attivali solo col consenso tramite Consent Mode.',\n 'GTM sets no cookies, but the tags it loads do: declare each tag (GA4, Ads, Meta…) as its own service and fire them only with consent through Consent Mode.',\n ),\n keywords: ['gtm', 'tag manager'],\n },\n {\n id: 'posthog',\n label: 'PostHog',\n provider: 'PostHog Inc.',\n privacyUrl: 'https://posthog.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Analisi del prodotto: eventi, funnel, registrazioni di sessione e feature flag.',\n 'Product analytics: events, funnels, session recordings and feature flags.',\n ),\n cookies: [\n ck('^ph_.*_posthog$', YEAR1, t('Identificativo anonimo del visitatore e stato della sessione.', 'Anonymous visitor identifier and session state.'), pattern),\n ],\n transfer: us(SCC),\n note: t(\n 'Con PostHog EU Cloud (eu.posthog.com) i dati restano nell’UE: aggiorna la sezione trasferimenti. Senza consenso usa persistence: \"memory\" (con @easy-cookie/posthog).',\n 'With PostHog EU Cloud (eu.posthog.com) data stays in the EU: update the transfer section. Without consent use persistence: \"memory\" (with @easy-cookie/posthog).',\n ),\n keywords: ['product analytics', 'session replay'],\n },\n {\n id: 'matomo',\n label: 'Matomo',\n provider: 'InnoCraft Ltd (Matomo Cloud)',\n privacyUrl: 'https://matomo.org/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Statistiche sulle visite e sull’uso del sito.', 'Statistics about visits and site usage.'),\n cookies: [\n ck('^_pk_id\\\\.', MONTHS13, t('Identificativo del visitatore.', 'Visitor identifier.'), pattern),\n ck('^_pk_ses\\\\.', MIN30, t('Dati temporanei della visita in corso.', 'Temporary data for the current visit.'), pattern),\n ],\n note: t(\n 'Se Matomo è installato sul tuo server, il fornitore sei tu: modifica il campo. Con IP mascherato, senza incrocio con altri dati e con cookie disattivati o di prima parte, le linee guida del Garante (2021) lo equiparano a un cookie tecnico: puoi spostarlo tra i necessari.',\n 'If Matomo runs on your own server, you are the provider: edit the field. With masked IPs, no cross-referencing with other data and cookies disabled or first-party, the Italian Garante guidelines (2021) treat it like a technical cookie: you may move it to necessary.',\n ),\n keywords: ['piwik', 'self-hosted'],\n },\n {\n id: 'plausible',\n label: 'Plausible Analytics',\n provider: 'Plausible Insights OÜ',\n privacyUrl: 'https://plausible.io/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Statistiche aggregate sulle visite, senza cookie e senza identificativi persistenti.',\n 'Aggregate visit statistics, without cookies or persistent identifiers.',\n ),\n cookies: [],\n note: t(\n 'Plausible non imposta cookie: potresti non aver bisogno del consenso. Valuta di spostarlo tra i necessari o di elencarlo solo nella privacy policy.',\n 'Plausible sets no cookies: you may not need consent. Consider moving it to necessary or listing it only in the privacy policy.',\n ),\n keywords: ['cookieless', 'privacy-friendly'],\n },\n {\n id: 'hotjar',\n label: 'Hotjar',\n provider: 'Hotjar Ltd',\n privacyUrl: 'https://www.hotjar.com/legal/policies/privacy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t(\n 'Mappe di calore, registrazioni delle sessioni e sondaggi sull’uso del sito.',\n 'Heatmaps, session recordings and surveys about site usage.',\n ),\n cookies: [\n ck('^_hjSessionUser_', YEAR1, t('Identificativo del visitatore per il sito.', 'Visitor identifier for the site.'), pattern),\n ck('^_hjSession_', MIN30, t('Dati della sessione in corso.', 'Current session data.'), pattern),\n ],\n keywords: ['heatmap', 'session recording', 'contentsquare'],\n },\n {\n id: 'clarity',\n label: 'Microsoft Clarity',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'analytics',\n category: 'measurement',\n purpose: t('Mappe di calore e registrazioni delle sessioni.', 'Heatmaps and session recordings.'),\n cookies: [\n ck('_clck', YEAR1, t('Identificativo del visitatore e preferenze di Clarity.', 'Visitor identifier and Clarity preferences.')),\n ck('_clsk', DAY1, t('Collega le pagine viste in una stessa sessione.', 'Links page views into one session.')),\n ck('CLID', YEAR1, t('Identifica il primo accesso del browser a Clarity.', 'Identifies the browser’s first visit to Clarity.'), { domain: 'clarity.ms' }),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'clarity.ms' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Dal 2025 Clarity richiede di inviare il segnale di consenso (Consent API) per i visitatori del SEE.',\n 'Since 2025 Clarity requires the consent signal (Consent API) for EEA visitors.',\n ),\n keywords: ['heatmap', 'session recording'],\n },\n {\n id: 'mixpanel',\n label: 'Mixpanel',\n provider: 'Mixpanel Inc.',\n privacyUrl: 'https://mixpanel.com/legal/privacy-policy/',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^mp_.*_mixpanel$', YEAR1, t('Identificativo del visitatore e proprietà dell’evento.', 'Visitor identifier and event properties.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con la residenza dei dati UE di Mixpanel i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Mixpanel EU data residency data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n {\n id: 'amplitude',\n label: 'Amplitude',\n provider: 'Amplitude Inc.',\n privacyUrl: 'https://amplitude.com/privacy',\n group: 'analytics',\n category: 'measurement',\n purpose: t('Analisi del prodotto basata su eventi.', 'Event-based product analytics.'),\n cookies: [ck('^AMP_', YEAR1, t('Identificativo del visitatore e della sessione.', 'Visitor and session identifier.'), pattern)],\n transfer: us(DPF),\n note: t(\n 'Con il data center UE di Amplitude i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Amplitude’s EU data center data is stored in the EU: update the transfer section.',\n ),\n keywords: ['product analytics'],\n },\n\n // ---- advertising ----------------------------------------------------------\n {\n id: 'google-ads',\n label: 'Google Ads',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne e mostra annunci personalizzati (remarketing).',\n 'Measures campaign conversions and shows personalised ads (remarketing).',\n ),\n cookies: [\n ck('_gcl_au', MONTHS3, t('Memorizza le informazioni sui clic sugli annunci per misurare le conversioni.', 'Stores ad-click information to measure conversions.')),\n ck('^_gcl_', MONTHS3, t('Altri cookie di misurazione delle conversioni (es. _gcl_aw).', 'Other conversion-measurement cookies (e.g. _gcl_aw).'), pattern),\n ck('IDE', MONTHS13, t('Pubblicità personalizzata e misurazione su siti di terze parti.', 'Personalised advertising and measurement across third-party sites.'), { domain: 'doubleclick.net' }),\n ],\n transfer: us(DPF),\n keywords: ['adwords', 'remarketing', 'conversion', 'doubleclick'],\n },\n {\n id: 'meta-pixel',\n label: 'Meta Pixel',\n provider: 'Meta Platforms Ireland Ltd',\n privacyUrl: 'https://www.facebook.com/privacy/policy/',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne su Facebook e Instagram e crea pubblici per gli annunci.',\n 'Measures Facebook and Instagram campaign conversions and builds ad audiences.',\n ),\n cookies: [\n ck('_fbp', MONTHS3, t('Identifica il browser per la pubblicità di Meta.', 'Identifies the browser for Meta advertising.')),\n ck('_fbc', MONTHS3, t('Memorizza l’ultimo clic su un annuncio di Meta.', 'Stores the last click on a Meta ad.')),\n ck('fr', MONTHS3, t('Pubblicità personalizzata e misurazione.', 'Personalised advertising and measurement.'), { domain: 'facebook.com' }),\n ],\n transfer: us(DPF),\n keywords: ['facebook', 'instagram', 'pixel'],\n },\n {\n id: 'linkedin-insight',\n label: 'LinkedIn Insight Tag',\n provider: 'LinkedIn Ireland Unlimited Company',\n privacyUrl: 'https://www.linkedin.com/legal/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne LinkedIn e crea pubblici di retargeting.',\n 'Measures LinkedIn campaign conversions and builds retargeting audiences.',\n ),\n cookies: [\n ck('li_sugr', MONTHS3, t('Identificativo del browser per l’abbinamento degli utenti.', 'Browser identifier for user matching.')),\n ck('bcookie', YEAR1, t('Identificativo del browser.', 'Browser identifier.'), { domain: 'linkedin.com' }),\n ck('lidc', DAY1, t('Instradamento verso il data center.', 'Data-center routing.'), { domain: 'linkedin.com' }),\n ck('UserMatchHistory', DAYS30, t('Sincronizzazione degli identificativi pubblicitari.', 'Ad identifier syncing.'), { domain: 'linkedin.com' }),\n ck('AnalyticsSyncHistory', DAYS30, t('Data dell’ultima sincronizzazione.', 'Time of the last sync.'), { domain: 'linkedin.com' }),\n ],\n transfer: us(DPF),\n keywords: ['linkedin', 'retargeting'],\n },\n {\n id: 'tiktok-pixel',\n label: 'TikTok Pixel',\n provider: 'TikTok Technology Limited',\n privacyUrl: 'https://www.tiktok.com/legal/page/eea/privacy-policy/en',\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne TikTok e ottimizza la pubblicità.',\n 'Measures TikTok campaign conversions and optimises advertising.',\n ),\n cookies: [\n ck('_ttp', MONTHS13, t('Identifica il browser per la pubblicità di TikTok.', 'Identifies the browser for TikTok advertising.')),\n ck('_tt_enable_cookie', MONTHS13, t('Verifica che il browser accetti i cookie.', 'Checks that the browser accepts cookies.')),\n ],\n transfer: { countries: ['US', 'MY', 'CN'], safeguard: SCC },\n note: t(\n 'Verifica i paesi di trasferimento nella privacy policy SEE di TikTok in vigore: cambiano nel tempo.',\n 'Check the transfer countries in TikTok’s current EEA privacy policy: they change over time.',\n ),\n keywords: ['tiktok', 'pixel'],\n },\n {\n id: 'pinterest-tag',\n label: 'Pinterest Tag',\n provider: 'Pinterest Europe Ltd',\n privacyUrl: 'https://policy.pinterest.com/privacy-policy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne Pinterest.', 'Measures Pinterest campaign conversions.'),\n cookies: [\n ck('_pin_unauth', YEAR1, t('Identifica il browser dei visitatori non registrati.', 'Identifies the browser of signed-out visitors.')),\n ck('_pinterest_ct_ua', YEAR1, t('Collega le azioni sul sito ai clic sugli annunci.', 'Links on-site actions to ad clicks.')),\n ck('_epik', YEAR1, t('Memorizza il clic sull’annuncio di provenienza.', 'Stores the click on the originating ad.')),\n ],\n transfer: us(DPF),\n keywords: ['pinterest', 'pixel'],\n },\n {\n id: 'microsoft-uet',\n label: 'Microsoft Advertising (UET)',\n provider: MICROSOFT,\n privacyUrl: MICROSOFT_PRIVACY,\n group: 'advertising',\n category: 'marketing',\n purpose: t(\n 'Misura le conversioni delle campagne Microsoft Advertising (Bing) e crea pubblici di remarketing.',\n 'Measures Microsoft Advertising (Bing) conversions and builds remarketing audiences.',\n ),\n cookies: [\n ck('_uetsid', DAY1, t('Identificativo della sessione per la misurazione delle conversioni.', 'Session identifier for conversion measurement.')),\n ck('_uetvid', MONTHS13, t('Identificativo del visitatore tra più sessioni.', 'Visitor identifier across sessions.')),\n ck('MUID', YEAR1, t('Identificativo del browser usato dai servizi Microsoft.', 'Browser identifier used by Microsoft services.'), { domain: 'bing.com' }),\n ],\n transfer: us(DPF),\n keywords: ['bing ads', 'uet'],\n },\n {\n id: 'x-pixel',\n label: 'X (Twitter) Pixel',\n provider: 'Twitter International Unlimited Company',\n privacyUrl: 'https://x.com/en/privacy',\n group: 'advertising',\n category: 'marketing',\n purpose: t('Misura le conversioni delle campagne su X e crea pubblici.', 'Measures X campaign conversions and builds audiences.'),\n cookies: [\n ck('muc_ads', MONTHS13, t('Identificativo pubblicitario del browser.', 'Advertising identifier for the browser.'), { domain: 't.co' }),\n ck('guest_id', MONTHS13, t('Identificativo dei visitatori non registrati.', 'Identifier of signed-out visitors.'), { domain: 'x.com' }),\n ck('personalization_id', MONTHS13, t('Pubblicità personalizzata.', 'Personalised advertising.'), { domain: 'x.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Verifica la denominazione attuale del titolare UE nella privacy policy di X.',\n 'Check the current name of the EU controller in X’s privacy policy.',\n ),\n keywords: ['twitter', 'pixel'],\n },\n\n // ---- embeds ---------------------------------------------------------------\n {\n id: 'youtube',\n label: 'YouTube',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di YouTube incorporati nelle pagine.', 'Shows YouTube videos embedded in pages.'),\n cookies: [\n ck('VISITOR_INFO1_LIVE', MONTHS6, t('Stima la banda e ricorda le impostazioni del lettore.', 'Estimates bandwidth and remembers player settings.'), { domain: 'youtube.com' }),\n ck('YSC', SESSION, t('Identificativo della sessione di visione.', 'Viewing session identifier.'), { domain: 'youtube.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Usa youtube-nocookie.com: i cookie vengono impostati solo quando il visitatore avvia il video. Il contenuto arriva comunque da Google, quindi blocca l’iframe fino al consenso (data-category=\"experience\").',\n 'Use youtube-nocookie.com: cookies are set only when the visitor plays the video. The content still comes from Google, so block the iframe until consent (data-category=\"experience\").',\n ),\n keywords: ['video', 'youtube-nocookie', 'iframe'],\n },\n {\n id: 'vimeo',\n label: 'Vimeo',\n provider: 'Vimeo.com Inc.',\n privacyUrl: 'https://vimeo.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra video di Vimeo incorporati nelle pagine.', 'Shows Vimeo videos embedded in pages.'),\n cookies: [\n ck('vuid', YEARS2, t('Identificativo del visitatore per le statistiche del video.', 'Visitor identifier for video statistics.'), { domain: 'vimeo.com' }),\n ],\n transfer: us(SCC),\n note: t(\n 'Con il parametro dnt=1 nell’URL dell’iframe Vimeo non imposta cookie di tracciamento.',\n 'With dnt=1 in the iframe URL Vimeo sets no tracking cookies.',\n ),\n keywords: ['video', 'iframe'],\n },\n {\n id: 'google-maps',\n label: 'Google Maps',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra mappe interattive incorporate nelle pagine.', 'Shows interactive maps embedded in pages.'),\n cookies: [\n ck('NID', MONTHS6, t('Ricorda le preferenze e le informazioni del visitatore per i servizi Google.', 'Remembers visitor preferences and information for Google services.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n keywords: ['map', 'iframe'],\n },\n {\n id: 'spotify',\n label: 'Spotify (embed)',\n provider: 'Spotify AB',\n privacyUrl: 'https://www.spotify.com/legal/privacy-policy/',\n group: 'embeds',\n category: 'experience',\n purpose: t('Mostra brani, playlist e podcast di Spotify incorporati nelle pagine.', 'Shows embedded Spotify tracks, playlists and podcasts.'),\n cookies: [\n ck('sp_t', YEAR1, t('Identificativo del browser per Spotify.', 'Browser identifier for Spotify.'), { domain: 'spotify.com' }),\n ck('sp_landing', DAY1, t('Registra la pagina di arrivo della visita.', 'Records the landing page of the visit.'), { domain: 'spotify.com' }),\n ],\n transfer: us(SCC),\n keywords: ['music', 'podcast', 'iframe'],\n },\n {\n id: 'calendly',\n label: 'Calendly',\n provider: 'Calendly LLC',\n privacyUrl: 'https://calendly.com/privacy',\n group: 'embeds',\n category: 'experience',\n purpose: t('Calendario incorporato per prenotare appuntamenti.', 'Embedded calendar to book appointments.'),\n cookies: [\n ck('__cf_bm', MIN30, t('Protezione dai bot (Cloudflare) sul dominio di Calendly.', 'Bot protection (Cloudflare) on Calendly’s domain.'), { domain: 'calendly.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Calendly imposta altri cookie propri (sessione, analisi): verifica l’elenco nella sua cookie policy.',\n 'Calendly sets other cookies of its own (session, analytics): check the list in its cookie policy.',\n ),\n keywords: ['booking', 'scheduling', 'iframe'],\n },\n\n // ---- support --------------------------------------------------------------\n {\n id: 'intercom',\n label: 'Intercom',\n provider: 'Intercom R&D Unlimited Company',\n privacyUrl: 'https://www.intercom.com/legal/privacy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e messaggi ai visitatori.', 'Support chat and messages to visitors.'),\n cookies: [\n ck('^intercom-id-', MONTHS9, t('Identificativo anonimo del visitatore per la chat.', 'Anonymous visitor identifier for the chat.'), pattern),\n ck('^intercom-session-', DAYS7, t('Mantiene la conversazione tra le pagine.', 'Keeps the conversation across pages.'), pattern),\n ck('^intercom-device-id-', MONTHS9, t('Identificativo del dispositivo.', 'Device identifier.'), pattern),\n ],\n transfer: us(DPF),\n note: t(\n 'Con l’hosting UE di Intercom i dati sono conservati nell’UE: aggiorna la sezione trasferimenti.',\n 'With Intercom EU hosting data is stored in the EU: update the transfer section.',\n ),\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'crisp',\n label: 'Crisp',\n provider: 'Crisp IM SAS',\n privacyUrl: 'https://crisp.chat/en/privacy/',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza.', 'Support chat.'),\n cookies: [\n ck('^crisp-client', MONTHS6, t('Mantiene la sessione della chat.', 'Keeps the chat session.'), pattern),\n ],\n keywords: ['chat', 'helpdesk'],\n },\n {\n id: 'hubspot',\n label: 'HubSpot (chat)',\n provider: 'HubSpot Ireland Ltd',\n privacyUrl: 'https://legal.hubspot.com/privacy-policy',\n group: 'support',\n category: 'functionality',\n purpose: t('Chat di assistenza e moduli di contatto.', 'Support chat and contact forms.'),\n cookies: [\n ck('messagesUtk', MONTHS6, t('Riconosce i visitatori della chat.', 'Recognises chat visitors.')),\n ],\n transfer: us(DPF),\n note: t(\n 'Il codice di tracciamento HubSpot (__hstc, hubspotutk, __hssc) serve ad analisi e marketing: se lo usi, dichiaralo come servizio separato in misurazione o marketing.',\n 'The HubSpot tracking code (__hstc, hubspotutk, __hssc) is analytics and marketing: if you use it, declare it as a separate service under measurement or marketing.',\n ),\n keywords: ['chat', 'crm', 'forms'],\n },\n {\n id: 'zendesk',\n label: 'Zendesk',\n provider: 'Zendesk International Ltd',\n privacyUrl: 'https://www.zendesk.com/company/agreements-and-terms/privacy-notice/',\n group: 'support',\n category: 'functionality',\n purpose: t('Widget di assistenza e chat.', 'Support widget and chat.'),\n cookies: [ck('__zlcmid', YEAR1, t('Identificativo del visitatore per la chat.', 'Visitor identifier for the chat.'))],\n transfer: us(DPF),\n keywords: ['chat', 'helpdesk'],\n },\n\n // ---- payments -------------------------------------------------------------\n {\n id: 'stripe',\n label: 'Stripe',\n provider: 'Stripe Payments Europe Ltd',\n privacyUrl: 'https://stripe.com/privacy',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('__stripe_mid', YEAR1, t('Prevenzione delle frodi.', 'Fraud prevention.')),\n ck('__stripe_sid', MIN30, t('Prevenzione delle frodi nella sessione.', 'Fraud prevention within the session.')),\n ck('m', YEARS2, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'm.stripe.com' }),\n ],\n transfer: us(DPF),\n keywords: ['payment', 'checkout'],\n },\n {\n id: 'paypal',\n label: 'PayPal',\n provider: 'PayPal (Europe) S.à r.l. et Cie, S.C.A.',\n privacyUrl: 'https://www.paypal.com/myaccount/privacy/privacyhub',\n group: 'payments',\n category: 'necessary',\n purpose: t('Elabora i pagamenti e previene le frodi.', 'Processes payments and prevents fraud.'),\n cookies: [\n ck('ts', undefined, t('Prevenzione delle frodi.', 'Fraud prevention.'), { domain: 'paypal.com' }),\n ck('x-pp-s', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ck('nsid', SESSION, t('Sessione del pagamento.', 'Payment session.'), { domain: 'paypal.com' }),\n ],\n transfer: us(BCR),\n keywords: ['payment', 'checkout'],\n },\n\n // ---- security -------------------------------------------------------------\n {\n id: 'recaptcha',\n label: 'Google reCAPTCHA',\n provider: GOOGLE,\n privacyUrl: GOOGLE_PRIVACY,\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('_GRECAPTCHA', MONTHS6, t('Analisi del rischio per distinguere persone e bot.', 'Risk analysis to tell humans from bots.'), { domain: 'google.com' }),\n ],\n transfer: us(DPF),\n note: t(\n 'Classificato come necessario (sicurezza), ma invia dati a Google: indicalo nella privacy policy e valuta di caricarlo solo nelle pagine con moduli.',\n 'Classed as necessary (security), but it sends data to Google: mention it in the privacy policy and consider loading it only on pages with forms.',\n ),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'hcaptcha',\n label: 'hCaptcha',\n provider: 'Intuition Machines, Inc.',\n privacyUrl: 'https://www.hcaptcha.com/privacy',\n group: 'security',\n category: 'necessary',\n purpose: t('Protegge i moduli da spam e abusi automatizzati.', 'Protects forms from spam and automated abuse.'),\n cookies: [\n ck('hc_accessibility', undefined, t('Impostato solo per chi usa l’accesso facilitato di hCaptcha.', 'Set only for visitors who use hCaptcha’s accessibility access.'), { domain: 'hcaptcha.com' }),\n ],\n transfer: us(SCC),\n keywords: ['captcha', 'spam'],\n },\n {\n id: 'cloudflare',\n label: 'Cloudflare',\n provider: 'Cloudflare, Inc.',\n privacyUrl: 'https://www.cloudflare.com/privacypolicy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Distribuzione dei contenuti (CDN) e protezione da bot e attacchi.',\n 'Content delivery (CDN) and protection from bots and attacks.',\n ),\n cookies: [\n ck('__cf_bm', MIN30, t('Distingue il traffico umano dai bot.', 'Tells human traffic from bots.')),\n ck('cf_clearance', t('da 30 minuti a 1 anno (configurabile)', '30 minutes to 1 year (configurable)'), t('Ricorda che il visitatore ha superato una verifica.', 'Remembers that the visitor passed a challenge.')),\n ck('_cfuvid', SESSION, t('Limitazione delle richieste (rate limiting).', 'Rate limiting.')),\n ],\n transfer: us(DPF),\n keywords: ['cdn', 'waf', 'turnstile', 'bot'],\n },\n {\n id: 'sentry',\n label: 'Sentry',\n provider: 'Functional Software, Inc. (Sentry)',\n privacyUrl: 'https://sentry.io/privacy/',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Segnala gli errori tecnici del sito per poterli correggere.',\n 'Reports technical errors on the site so they can be fixed.',\n ),\n cookies: [],\n transfer: us(DPF),\n note: t(\n 'L’SDK di Sentry non imposta cookie. Se attivi Session Replay, che registra le interazioni, valuta di spostarlo in misurazione. Con la regione dati UE di Sentry aggiorna la sezione trasferimenti.',\n 'The Sentry SDK sets no cookies. If you enable Session Replay, which records interactions, consider moving it to measurement. With Sentry’s EU data region update the transfer section.',\n ),\n keywords: ['errors', 'monitoring'],\n },\n {\n id: 'easy-cookie',\n label: 'easy-cookie',\n provider: '',\n privacyUrl: '',\n group: 'infrastructure',\n category: 'necessary',\n purpose: t(\n 'Ricorda le scelte del visitatore sui cookie e ne conserva la prova.',\n 'Remembers the visitor’s cookie choices and keeps proof of them.',\n ),\n cookies: [\n ck('ec_consent', MONTHS6, t('Memorizza le categorie accettate e la revisione della policy.', 'Stores the accepted categories and the policy revision.')),\n ],\n note: t(\n 'Cookie di prima parte. La durata segue expiryDays (predefinito 182 giorni): aggiornala se la cambi.',\n 'First-party cookie. The duration follows expiryDays (default 182 days): update it if you change that.',\n ),\n keywords: ['consent', 'cookie banner'],\n },\n];\n","import type { ServiceDeclaration } from '../shared/types';\nimport { ENTRIES } from './entries';\nimport type { CatalogEntry, CatalogGroup } from './types';\n\nexport type { CatalogEntry, CatalogGroup } from './types';\n\n/** Catalog groups in display order. */\nexport const CATALOG_GROUPS: CatalogGroup[] = [\n 'analytics',\n 'advertising',\n 'tag-management',\n 'embeds',\n 'support',\n 'payments',\n 'security',\n 'infrastructure',\n];\n\n/** Every ready-made service, sorted by group (CATALOG_GROUPS order) then label. */\nexport const CATALOG: CatalogEntry[] = [...ENTRIES].sort(\n (a, b) => CATALOG_GROUPS.indexOf(a.group) - CATALOG_GROUPS.indexOf(b.group) || a.label.localeCompare(b.label, 'en'),\n);\n\n/** The catalog entry with this id, or undefined. */\nexport function findCatalogEntry(id: string): CatalogEntry | undefined {\n return CATALOG.find((e) => e.id === id);\n}\n\nconst clone = <T>(v: T): T => JSON.parse(JSON.stringify(v));\n\n/**\n * A `ServiceDeclaration` built from a catalog entry, ready to add to\n * `config.services[entry.id]`. The result is a deep copy (editing it never\n * changes the catalog) and records its origin in `from`.\n */\nexport function catalogToService(entry: CatalogEntry): ServiceDeclaration {\n return {\n category: entry.category,\n label: entry.label,\n ...(entry.provider ? { provider: entry.provider } : {}),\n ...(entry.privacyUrl ? { privacyUrl: entry.privacyUrl } : {}),\n purpose: clone(entry.purpose),\n cookies: clone(entry.cookies),\n from: entry.id,\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @easy-cookie/core 0.1.
|
|
1
|
+
/*! @easy-cookie/core 0.1.1 | MIT | includes vanilla-cookieconsent v3.3.0 (c) Orest Bida, MIT */
|
|
2
2
|
|
|
3
3
|
// src/shared/defaults.ts
|
|
4
4
|
var DEFAULT_COOKIE_NAME = "ec_consent";
|
|
@@ -414,4 +414,4 @@ export {
|
|
|
414
414
|
consentFromCookieHeader,
|
|
415
415
|
renderHeadScript
|
|
416
416
|
};
|
|
417
|
-
//# sourceMappingURL=chunk-
|
|
417
|
+
//# sourceMappingURL=chunk-LUBO6KZ2.js.map
|