@owlmeans/consent 0.1.18-rc.7 → 0.1.18-rc.9
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/build/consts.d.ts +12 -3
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +12 -3
- package/build/consts.js.map +1 -1
- package/build/i18n/be.json +1 -1
- package/build/i18n/de.json +1 -1
- package/build/i18n/en.json +1 -1
- package/build/i18n/es.json +1 -1
- package/build/i18n/fr.json +1 -1
- package/build/i18n/pl.json +1 -1
- package/build/i18n/ru.json +1 -1
- package/build/i18n/uk.json +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/linker.d.ts +23 -2
- package/build/linker.d.ts.map +1 -1
- package/build/linker.js +119 -29
- package/build/linker.js.map +1 -1
- package/build/plugins.d.ts +20 -4
- package/build/plugins.d.ts.map +1 -1
- package/build/plugins.js +15 -0
- package/build/plugins.js.map +1 -1
- package/build/store.d.ts.map +1 -1
- package/build/store.js +12 -5
- package/build/store.js.map +1 -1
- package/build/types.d.ts +24 -1
- package/build/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +13 -3
- package/src/i18n/be.json +1 -1
- package/src/i18n/de.json +1 -1
- package/src/i18n/en.json +1 -1
- package/src/i18n/es.json +1 -1
- package/src/i18n/fr.json +1 -1
- package/src/i18n/pl.json +1 -1
- package/src/i18n/ru.json +1 -1
- package/src/i18n/uk.json +1 -1
- package/src/index.ts +2 -1
- package/src/linker.ts +145 -36
- package/src/plugins.ts +30 -4
- package/src/store.ts +12 -5
- package/src/types.ts +25 -1
- package/tests/linker.spec.ts +433 -5
package/build/consts.d.ts
CHANGED
|
@@ -30,14 +30,23 @@ export declare const CONSENT_EVENT = "owlmeans:consent";
|
|
|
30
30
|
export declare const CONSENT_ESSENTIAL = "essential";
|
|
31
31
|
export declare const CONSENT_ANALYTICS = "analytics";
|
|
32
32
|
export declare const CONSENT_MARKETING = "marketing";
|
|
33
|
+
/**
|
|
34
|
+
* Where an application persists an explicit interface-language choice — `@owlmeans/client-i18n`'s
|
|
35
|
+
* `owlmeans-lng`. The interface language is strictly necessary storage (the visitor asked for it by
|
|
36
|
+
* choosing it), so it is written whatever the cookie decision says and no category governs it.
|
|
37
|
+
* Repeated here rather than imported: this package has no runtime dependencies, and the linker's
|
|
38
|
+
* language part has to run in an inline `<head>` script, before any bundle exists.
|
|
39
|
+
*/
|
|
40
|
+
export declare const CONSENT_LANGUAGE_KEY = "owlmeans-lng";
|
|
33
41
|
export declare const CONSENT_LOCALES: readonly ['en', 'pl', 'ru', 'be', 'uk', 'es', 'de', 'fr'];
|
|
34
42
|
export type ConsentLocale = (typeof CONSENT_LOCALES)[number];
|
|
35
43
|
/**
|
|
36
44
|
* The categories every OwlMeans surface starts with.
|
|
37
45
|
*
|
|
38
|
-
*
|
|
39
|
-
* widget left implicit
|
|
40
|
-
* it sets a session cookie, and what tells a visitor what is being stored regardless
|
|
46
|
+
* What owlmeans.com already asked (analytics, marketing) plus the essential row, which the original
|
|
47
|
+
* widget left implicit — making it explicit is what lets a flow require an acknowledgement before
|
|
48
|
+
* it sets a session cookie, and what tells a visitor what is being stored regardless: the consent
|
|
49
|
+
* record itself and the interface language the visitor picked.
|
|
41
50
|
*/
|
|
42
51
|
export declare const DEFAULT_CONSENT_CATEGORIES: ConsentCategory[];
|
|
43
52
|
/**
|
package/build/consts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAA;AAEhD,eAAO,MAAM,mBAAmB,MAAM,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAE5C,eAAO,MAAM,eAAe,YAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAExF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAA;AAEhD,eAAO,MAAM,mBAAmB,MAAM,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AAEtD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,iBAAiB,CAAA;AAElD,eAAO,MAAM,eAAe,YAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAExF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAmBvD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAQxE,CAAA"}
|
package/build/consts.js
CHANGED
|
@@ -29,13 +29,22 @@ export const CONSENT_EVENT = 'owlmeans:consent';
|
|
|
29
29
|
export const CONSENT_ESSENTIAL = 'essential';
|
|
30
30
|
export const CONSENT_ANALYTICS = 'analytics';
|
|
31
31
|
export const CONSENT_MARKETING = 'marketing';
|
|
32
|
+
/**
|
|
33
|
+
* Where an application persists an explicit interface-language choice — `@owlmeans/client-i18n`'s
|
|
34
|
+
* `owlmeans-lng`. The interface language is strictly necessary storage (the visitor asked for it by
|
|
35
|
+
* choosing it), so it is written whatever the cookie decision says and no category governs it.
|
|
36
|
+
* Repeated here rather than imported: this package has no runtime dependencies, and the linker's
|
|
37
|
+
* language part has to run in an inline `<head>` script, before any bundle exists.
|
|
38
|
+
*/
|
|
39
|
+
export const CONSENT_LANGUAGE_KEY = 'owlmeans-lng';
|
|
32
40
|
export const CONSENT_LOCALES = ['en', 'pl', 'ru', 'be', 'uk', 'es', 'de', 'fr'];
|
|
33
41
|
/**
|
|
34
42
|
* The categories every OwlMeans surface starts with.
|
|
35
43
|
*
|
|
36
|
-
*
|
|
37
|
-
* widget left implicit
|
|
38
|
-
* it sets a session cookie, and what tells a visitor what is being stored regardless
|
|
44
|
+
* What owlmeans.com already asked (analytics, marketing) plus the essential row, which the original
|
|
45
|
+
* widget left implicit — making it explicit is what lets a flow require an acknowledgement before
|
|
46
|
+
* it sets a session cookie, and what tells a visitor what is being stored regardless: the consent
|
|
47
|
+
* record itself and the interface language the visitor picked.
|
|
39
48
|
*/
|
|
40
49
|
export const DEFAULT_CONSENT_CATEGORIES = [
|
|
41
50
|
{
|
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAA;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAIxF
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEvC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAA;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAA;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;AAIxF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D;QACE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI;QACtC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe;QACtD,SAAS,EAAE,qBAAqB;QAChC,OAAO,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACvD;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe;QACtD,SAAS,EAAE,qBAAqB;QAChC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KAC/B;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe;QACtD,SAAS,EAAE,qBAAqB;QAChC,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,oBAAoB,CAAC;KAC9D;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyC;IAC3E,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,kBAAkB,EAAE,QAAQ;IAC5B,iBAAiB,EAAE,QAAQ;IAC3B,qBAAqB,EAAE,QAAQ;IAC/B,uBAAuB,EAAE,QAAQ;IACjC,gBAAgB,EAAE,SAAS;CAC5B,CAAA"}
|
package/build/i18n/be.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Налады файлаў cookie",
|
|
3
3
|
"description": "Мы выкарыстоўваем файлы cookie, каб палепшыць ваш досвед прагляду, паказваць персаналізаваную рэкламу ці змесціва і аналізаваць наш трафік. Націскаючы «Прыняць усе», вы пагаджаецеся на выкарыстанне файлаў cookie.",
|
|
4
4
|
"essential": "Неабходныя файлы cookie",
|
|
5
|
-
"essentialDesc": "Патрэбныя для працы сайта — уваход, бяспека і захаванне
|
|
5
|
+
"essentialDesc": "Патрэбныя для працы сайта — уваход, бяспека і захаванне вашага выбару адносна файлаў cookie і мовы інтэрфейсу. Іх нельга адключыць.",
|
|
6
6
|
"analytics": "Аналітычныя файлы cookie",
|
|
7
7
|
"analyticsDesc": "Дапамагаюць нам паляпшаць наш вэб-сайт, збіраючы і паведамляючы інфармацыю пра яго выкарыстанне.",
|
|
8
8
|
"marketing": "Маркетынгавыя файлы cookie",
|
package/build/i18n/de.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Cookie-Einstellungen",
|
|
3
3
|
"description": "Wir verwenden Cookies, um Ihr Surferlebnis zu verbessern, personalisierte Anzeigen oder Inhalte bereitzustellen und unseren Datenverkehr zu analysieren. Indem Sie auf „Alle akzeptieren\" klicken, stimmen Sie der Verwendung von Cookies zu.",
|
|
4
4
|
"essential": "Notwendige Cookies",
|
|
5
|
-
"essentialDesc": "Erforderlich, damit die Website funktioniert — Anmeldung, Sicherheit und das Speichern
|
|
5
|
+
"essentialDesc": "Erforderlich, damit die Website funktioniert — Anmeldung, Sicherheit und das Speichern Ihrer Cookie-Auswahl und der Oberflächensprache. Sie lassen sich nicht abschalten.",
|
|
6
6
|
"analytics": "Analyse-Cookies",
|
|
7
7
|
"analyticsDesc": "Helfen uns, unsere Website zu verbessern, indem sie Informationen zur Nutzung sammeln und melden.",
|
|
8
8
|
"marketing": "Marketing-Cookies",
|
package/build/i18n/en.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Cookie Preferences",
|
|
3
3
|
"description": "We use cookies to enhance your browsing experience, serve personalized ads or content, and analyze our traffic. By clicking \"Accept All\", you consent to our use of cookies.",
|
|
4
4
|
"essential": "Essential Cookies",
|
|
5
|
-
"essentialDesc": "Required for the site to work — signing in, security and remembering
|
|
5
|
+
"essentialDesc": "Required for the site to work — signing in, security, and remembering your cookie choices and interface language. They cannot be switched off.",
|
|
6
6
|
"analytics": "Analytics Cookies",
|
|
7
7
|
"analyticsDesc": "Help us improve our website by collecting and reporting information on its usage.",
|
|
8
8
|
"marketing": "Marketing Cookies",
|
package/build/i18n/es.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Preferencias de cookies",
|
|
3
3
|
"description": "Utilizamos cookies para mejorar tu experiencia de navegación, ofrecer anuncios o contenido personalizados y analizar nuestro tráfico. Al hacer clic en «Aceptar todo», aceptas nuestro uso de cookies.",
|
|
4
4
|
"essential": "Cookies esenciales",
|
|
5
|
-
"essentialDesc": "Necesarias para que el sitio funcione: inicio de sesión, seguridad y recordar
|
|
5
|
+
"essentialDesc": "Necesarias para que el sitio funcione: inicio de sesión, seguridad y recordar tus decisiones sobre cookies y el idioma de la interfaz. No se pueden desactivar.",
|
|
6
6
|
"analytics": "Cookies analíticas",
|
|
7
7
|
"analyticsDesc": "Nos ayudan a mejorar nuestro sitio web recopilando e informando sobre su uso.",
|
|
8
8
|
"marketing": "Cookies de marketing",
|
package/build/i18n/fr.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Préférences de cookies",
|
|
3
3
|
"description": "Nous utilisons des cookies pour améliorer votre navigation, proposer des publicités ou contenus personnalisés et analyser notre trafic. En cliquant sur « Tout accepter », vous consentez à leur utilisation.",
|
|
4
4
|
"essential": "Cookies essentiels",
|
|
5
|
-
"essentialDesc": "Nécessaires au fonctionnement du site
|
|
5
|
+
"essentialDesc": "Nécessaires au fonctionnement du site : connexion, sécurité et mémorisation de vos choix en matière de cookies et de la langue de l'interface. Ils ne peuvent pas être désactivés.",
|
|
6
6
|
"analytics": "Cookies analytiques",
|
|
7
7
|
"analyticsDesc": "Nous aident à améliorer notre site en recueillant et en analysant des informations sur son utilisation.",
|
|
8
8
|
"marketing": "Cookies marketing",
|
package/build/i18n/pl.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Preferencje dotyczące plików cookie",
|
|
3
3
|
"description": "Używamy plików cookie w celu ulepszenia Twojego doświadczenia podczas przeglądania, wyświetlania spersonalizowanych reklam lub treści oraz analizowania naszego ruchu. Klikając „Akceptuj wszystkie\", wyrażasz zgodę na używanie przez nas plików cookie.",
|
|
4
4
|
"essential": "Niezbędne pliki cookie",
|
|
5
|
-
"essentialDesc": "Wymagane do działania witryny — logowanie, bezpieczeństwo
|
|
5
|
+
"essentialDesc": "Wymagane do działania witryny — logowanie, bezpieczeństwo oraz zapamiętanie Twoich wyborów dotyczących plików cookie i języka interfejsu. Nie można ich wyłączyć.",
|
|
6
6
|
"analytics": "Analityczne pliki cookie",
|
|
7
7
|
"analyticsDesc": "Pomagają nam ulepszać naszą witrynę internetową, zbierając i raportując informacje o jej użytkowaniu.",
|
|
8
8
|
"marketing": "Marketingowe pliki cookie",
|
package/build/i18n/ru.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Настройки файлов cookie",
|
|
3
3
|
"description": "Мы используем файлы cookie, чтобы улучшить ваш опыт просмотра, показывать персонализированную рекламу или контент и анализировать наш трафик. Нажимая «Принять все», вы соглашаетесь на использование файлов cookie.",
|
|
4
4
|
"essential": "Необходимые файлы cookie",
|
|
5
|
-
"essentialDesc": "Нужны для работы сайта — вход, безопасность и сохранение
|
|
5
|
+
"essentialDesc": "Нужны для работы сайта — вход, безопасность и сохранение вашего выбора по файлам cookie и языка интерфейса. Их нельзя отключить.",
|
|
6
6
|
"analytics": "Аналитические файлы cookie",
|
|
7
7
|
"analyticsDesc": "Помогают нам улучшать наш сайт, собирая и предоставляя информацию о его использовании.",
|
|
8
8
|
"marketing": "Маркетинговые файлы cookie",
|
package/build/i18n/uk.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"title": "Налаштування файлів cookie",
|
|
3
3
|
"description": "Ми використовуємо файли cookie, щоб покращити ваш досвід перегляду, показувати персоналізовану рекламу чи вміст і аналізувати наш трафік. Натискаючи «Прийняти всі», ви погоджуєтеся на використання файлів cookie.",
|
|
4
4
|
"essential": "Необхідні файли cookie",
|
|
5
|
-
"essentialDesc": "Потрібні для роботи сайту — вхід, безпека та збереження
|
|
5
|
+
"essentialDesc": "Потрібні для роботи сайту — вхід, безпека та збереження вашого вибору щодо файлів cookie і мови інтерфейсу. Їх не можна вимкнути.",
|
|
6
6
|
"analytics": "Аналітичні файли cookie",
|
|
7
7
|
"analyticsDesc": "Допомагають нам покращувати наш вебсайт, збираючи та надаючи інформацію про його використання.",
|
|
8
8
|
"marketing": "Маркетингові файли cookie",
|
package/build/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export * from './gtm.js';
|
|
|
5
5
|
export * from './store.js';
|
|
6
6
|
export * from './i18n.js';
|
|
7
7
|
export type { ConsentPlugin } from './plugins.js';
|
|
8
|
-
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, } from './plugins.js';
|
|
8
|
+
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, adoptConsentLanguage, } from './plugins.js';
|
|
9
9
|
export type { ConsentLinkPayload } from './linker.js';
|
|
10
|
-
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
10
|
+
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, writeConsentLanguage, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACL,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EACvF,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACL,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EACvF,mBAAmB,EAAE,oBAAoB,GAC1C,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAC/F,oBAAoB,EACpB,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,GAC5D,MAAM,aAAa,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -3,6 +3,6 @@ export * from './storage.js';
|
|
|
3
3
|
export * from './gtm.js';
|
|
4
4
|
export * from './store.js';
|
|
5
5
|
export * from './i18n.js';
|
|
6
|
-
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, } from './plugins.js';
|
|
7
|
-
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
6
|
+
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, adoptConsentLanguage, } from './plugins.js';
|
|
7
|
+
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, writeConsentLanguage, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EACL,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EACvF,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAEzB,OAAO,EACL,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EACvF,mBAAmB,EAAE,oBAAoB,GAC1C,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAC/F,oBAAoB,EACpB,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,GAC5D,MAAM,aAAa,CAAA"}
|
package/build/linker.d.ts
CHANGED
|
@@ -14,11 +14,32 @@ export interface ConsentLinkPayload {
|
|
|
14
14
|
c: Record<string, 0 | 1>;
|
|
15
15
|
/** Unix seconds the link was decorated at. */
|
|
16
16
|
t: number;
|
|
17
|
+
/**
|
|
18
|
+
* The interface language of the page the link was on (a BCP 47 tag, lower-cased) — present only
|
|
19
|
+
* when the sender has `linker.language` set and its `<html lang>` names one. Optional on the
|
|
20
|
+
* wire, so a receiver that predates it reads the same `v: 2` payload and ignores the field.
|
|
21
|
+
*/
|
|
22
|
+
l?: string;
|
|
17
23
|
}
|
|
18
|
-
/**
|
|
19
|
-
|
|
24
|
+
/**
|
|
25
|
+
* The link parameter's value: the current document's decision as `c` (one `0`/`1` per optional
|
|
26
|
+
* category — empty while `record` is `null`, i.e. before the visitor has decided) and, when
|
|
27
|
+
* `opts.linker.language` is set, the page's language as `l`.
|
|
28
|
+
*/
|
|
29
|
+
export declare const encodeConsentLink: (record: ConsentRecord | null, opts?: ConsentOptions) => string;
|
|
20
30
|
/** Parse-only — no trust decision here, that is `consentLinker(opts).adopt`'s job. Never throws. */
|
|
21
31
|
export declare const decodeConsentLink: (value: string) => ConsentLinkPayload | null;
|
|
32
|
+
/**
|
|
33
|
+
* Persist an adopted language where the application's i18n layer reads its explicit choice from —
|
|
34
|
+
* `linker.language.storageKey`, `owlmeans-lng` by default. Unconditional: the interface language is
|
|
35
|
+
* strictly necessary storage (the visitor picked it, and the site cannot speak to them without it),
|
|
36
|
+
* so no cookie decision — none yet, a refusal, an old record — stands between it and the device.
|
|
37
|
+
*
|
|
38
|
+
* It overwrites what is there on purpose: the carried language is the one the visitor was reading a
|
|
39
|
+
* moment ago, which outranks a choice they made on this domain some other day. Storage that refuses
|
|
40
|
+
* the write is not an error. Returns whether the language was written.
|
|
41
|
+
*/
|
|
42
|
+
export declare const writeConsentLanguage: (language: string, opts?: ConsentOptions) => boolean;
|
|
22
43
|
/**
|
|
23
44
|
* Cross-domain consent: share this decision, and adopt one, between the domains named in
|
|
24
45
|
* `opts.linker.domains`.
|
package/build/linker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAmB,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhF,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,UAAU,CAAA;AACzC,wGAAwG;AACxG,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,QAAA,MAAM,oBAAoB,IAAI,CAAA;AAE9B,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,OAAO,oBAAoB,CAAA;IAC9B,iFAAiF;IACjF,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,8CAA8C;IAC9C,CAAC,EAAE,MAAM,CAAA;IACT;;;;OAIG;IACH,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAqCD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAAY,aAAa,GAAG,IAAI,SAAS,cAAc,KAAG,MAavF,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,kBAAkB,GAAG,IAuBtE,CAAA;AAyDD;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,aAAc,MAAM,SAAS,cAAc,KAAG,OAS9E,CAAA;AAQD;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAAO,aA2FhC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAAU,cAAc,KAAG,IAgB5D,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,SAAU,cAAc,KAAG,MA2D1D,CAAA"}
|
package/build/linker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CONSENT_COOKIE_DAYS, CONSENT_KEY, CONSENT_SCHEMA_VERSION, DEFAULT_CONSENT_CATEGORIES } from './consts.js';
|
|
1
|
+
import { CONSENT_COOKIE_DAYS, CONSENT_KEY, CONSENT_LANGUAGE_KEY, CONSENT_SCHEMA_VERSION, DEFAULT_CONSENT_CATEGORIES, } from './consts.js';
|
|
2
2
|
import { decorateConsentUrl } from './plugins.js';
|
|
3
3
|
import { readConsent } from './storage.js';
|
|
4
4
|
/** The URL parameter a decorated link carries the decision in, absent an override. */
|
|
@@ -8,6 +8,8 @@ export const CONSENT_LINK_MAX_AGE = 300;
|
|
|
8
8
|
/** Clock skew allowed the OTHER way — a timestamp up to this far in the future is still trusted. */
|
|
9
9
|
export const CONSENT_LINK_SKEW = 60;
|
|
10
10
|
const CONSENT_LINK_VERSION = 2;
|
|
11
|
+
/** A BCP 47-shaped tag: a 2–3 letter language and up to three subtags (`pl`, `pt-BR`, `zh-Hant-TW`). */
|
|
12
|
+
const LANGUAGE_TAG = /^[a-z]{2,3}(?:[-_][a-z0-9]{1,8}){0,3}$/i;
|
|
11
13
|
const categoriesOf = (opts) => opts?.categories ?? DEFAULT_CONSENT_CATEGORIES;
|
|
12
14
|
const optionalOf = (opts) => categoriesOf(opts).filter(category => category.required !== true);
|
|
13
15
|
const toBase64Url = (json) => btoa(json).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
@@ -23,13 +25,30 @@ const fromBase64Url = (value) => {
|
|
|
23
25
|
return null;
|
|
24
26
|
}
|
|
25
27
|
};
|
|
26
|
-
/** The
|
|
28
|
+
/** The language this document is written in — `<html lang>`, the one signal every page has. */
|
|
29
|
+
const documentLanguage = () => {
|
|
30
|
+
if (typeof document === 'undefined') {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const lang = document.documentElement?.lang?.trim() ?? '';
|
|
34
|
+
return LANGUAGE_TAG.test(lang) ? lang.toLowerCase() : null;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The link parameter's value: the current document's decision as `c` (one `0`/`1` per optional
|
|
38
|
+
* category — empty while `record` is `null`, i.e. before the visitor has decided) and, when
|
|
39
|
+
* `opts.linker.language` is set, the page's language as `l`.
|
|
40
|
+
*/
|
|
27
41
|
export const encodeConsentLink = (record, opts) => {
|
|
28
42
|
const c = {};
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
if (record != null) {
|
|
44
|
+
for (const category of optionalOf(opts)) {
|
|
45
|
+
c[category.key] = record[category.key] === true ? 1 : 0;
|
|
46
|
+
}
|
|
31
47
|
}
|
|
32
|
-
const
|
|
48
|
+
const language = opts?.linker?.language != null ? documentLanguage() : null;
|
|
49
|
+
const payload = {
|
|
50
|
+
v: CONSENT_LINK_VERSION, c, t: Math.floor(Date.now() / 1000), ...(language != null ? { l: language } : {}),
|
|
51
|
+
};
|
|
33
52
|
return toBase64Url(JSON.stringify(payload));
|
|
34
53
|
};
|
|
35
54
|
/** Parse-only — no trust decision here, that is `consentLinker(opts).adopt`'s job. Never throws. */
|
|
@@ -43,11 +62,15 @@ export const decodeConsentLink = (value) => {
|
|
|
43
62
|
if (parsed == null || typeof parsed !== 'object') {
|
|
44
63
|
return null;
|
|
45
64
|
}
|
|
46
|
-
const { v, c, t } = parsed;
|
|
65
|
+
const { v, c, t, l } = parsed;
|
|
47
66
|
if (v !== CONSENT_LINK_VERSION || typeof t !== 'number' || c == null || typeof c !== 'object') {
|
|
48
67
|
return null;
|
|
49
68
|
}
|
|
50
|
-
return {
|
|
69
|
+
return {
|
|
70
|
+
v: CONSENT_LINK_VERSION, c: c, t,
|
|
71
|
+
// A malformed language is dropped, never a reason to refuse the decision beside it.
|
|
72
|
+
...(typeof l === 'string' && LANGUAGE_TAG.test(l) ? { l: l.toLowerCase() } : {}),
|
|
73
|
+
};
|
|
51
74
|
}
|
|
52
75
|
catch {
|
|
53
76
|
return null;
|
|
@@ -64,6 +87,66 @@ const referrerHostname = () => {
|
|
|
64
87
|
return null;
|
|
65
88
|
}
|
|
66
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* The payload of the link this document was opened from, once it has passed every check that does
|
|
92
|
+
* not depend on WHAT it carries: the parameter decodes and its version matches, its timestamp is
|
|
93
|
+
* fresh (and not from the future beyond the allowed skew), and the request's referrer host is a
|
|
94
|
+
* LISTED domain — read from `document.referrer`, never from the parameter itself. `null` otherwise.
|
|
95
|
+
*/
|
|
96
|
+
const trustedPayload = (opts) => {
|
|
97
|
+
const linker = opts.linker;
|
|
98
|
+
if (linker == null || typeof location === 'undefined') {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const raw = new URLSearchParams(location.search).get(linker.param ?? CONSENT_LINK_PARAM);
|
|
102
|
+
if (raw == null) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const decoded = decodeConsentLink(raw);
|
|
106
|
+
if (decoded == null) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const now = Math.floor(Date.now() / 1000);
|
|
110
|
+
const maxAge = linker.maxAge ?? CONSENT_LINK_MAX_AGE;
|
|
111
|
+
if (now - decoded.t > maxAge || decoded.t - now > CONSENT_LINK_SKEW) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const referrer = referrerHostname();
|
|
115
|
+
if (referrer == null || !linker.domains.includes(referrer)) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
return decoded;
|
|
119
|
+
};
|
|
120
|
+
/** The entry of `supported` that `language` names — exactly, else by its base tag — or `null`. */
|
|
121
|
+
const supportedLanguage = (language, supported) => {
|
|
122
|
+
const wanted = language.toLowerCase();
|
|
123
|
+
const exact = supported.find(candidate => candidate.toLowerCase() === wanted);
|
|
124
|
+
if (exact != null) {
|
|
125
|
+
return exact;
|
|
126
|
+
}
|
|
127
|
+
const base = wanted.split(/[-_]/)[0];
|
|
128
|
+
return supported.find(candidate => candidate.toLowerCase() === base) ?? null;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Persist an adopted language where the application's i18n layer reads its explicit choice from —
|
|
132
|
+
* `linker.language.storageKey`, `owlmeans-lng` by default. Unconditional: the interface language is
|
|
133
|
+
* strictly necessary storage (the visitor picked it, and the site cannot speak to them without it),
|
|
134
|
+
* so no cookie decision — none yet, a refusal, an old record — stands between it and the device.
|
|
135
|
+
*
|
|
136
|
+
* It overwrites what is there on purpose: the carried language is the one the visitor was reading a
|
|
137
|
+
* moment ago, which outranks a choice they made on this domain some other day. Storage that refuses
|
|
138
|
+
* the write is not an error. Returns whether the language was written.
|
|
139
|
+
*/
|
|
140
|
+
export const writeConsentLanguage = (language, opts) => {
|
|
141
|
+
try {
|
|
142
|
+
localStorage.setItem(opts?.linker?.language?.storageKey ?? CONSENT_LANGUAGE_KEY, language);
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// Private modes and blocked storage both throw; the app simply keeps choosing its own language.
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
67
150
|
/** Escape `<` inside a JSON literal meant for an inline `<script>` — the same discipline every
|
|
68
151
|
* caller of `consentBootstrapScript`/`consentGateScript` already owes the HTML it lands in, applied
|
|
69
152
|
* here at the source since this fragment's dynamic values (a configured domain, a storage key) are
|
|
@@ -99,8 +182,9 @@ export const consentLinker = () => {
|
|
|
99
182
|
if (/\bnoreferrer\b/.test(anchor.getAttribute('rel') ?? '')) {
|
|
100
183
|
return;
|
|
101
184
|
}
|
|
185
|
+
// No decision yet is still worth a decoration when a language rides along with it.
|
|
102
186
|
const record = readConsent(opts);
|
|
103
|
-
if (record == null) {
|
|
187
|
+
if (record == null && opts.linker?.language == null) {
|
|
104
188
|
return;
|
|
105
189
|
}
|
|
106
190
|
let url;
|
|
@@ -128,32 +212,19 @@ export const consentLinker = () => {
|
|
|
128
212
|
if (linker == null || url.hostname === host || !linker.domains.includes(url.hostname)) {
|
|
129
213
|
return null;
|
|
130
214
|
}
|
|
215
|
+
// A link carries a decision, a language, or both; with neither there is nothing to say.
|
|
216
|
+
if (record == null && (linker.language == null || documentLanguage() == null)) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
131
219
|
const next = new URL(url.toString());
|
|
132
220
|
next.searchParams.set(linker.param ?? CONSENT_LINK_PARAM, encodeConsentLink(record, opts));
|
|
133
221
|
return next;
|
|
134
222
|
},
|
|
135
223
|
adopt: opts => {
|
|
136
|
-
const
|
|
137
|
-
if (linker == null || typeof location === 'undefined') {
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
const raw = new URLSearchParams(location.search).get(linker.param ?? CONSENT_LINK_PARAM);
|
|
141
|
-
if (raw == null) {
|
|
142
|
-
return null;
|
|
143
|
-
}
|
|
144
|
-
const decoded = decodeConsentLink(raw);
|
|
224
|
+
const decoded = trustedPayload(opts);
|
|
145
225
|
if (decoded == null) {
|
|
146
226
|
return null;
|
|
147
227
|
}
|
|
148
|
-
const now = Math.floor(Date.now() / 1000);
|
|
149
|
-
const maxAge = linker.maxAge ?? CONSENT_LINK_MAX_AGE;
|
|
150
|
-
if (now - decoded.t > maxAge || decoded.t - now > CONSENT_LINK_SKEW) {
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
const referrer = referrerHostname();
|
|
154
|
-
if (referrer == null || !linker.domains.includes(referrer)) {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
228
|
const optional = optionalOf(opts);
|
|
158
229
|
if (!optional.every(category => decoded.c[category.key] === 0 || decoded.c[category.key] === 1)) {
|
|
159
230
|
return null;
|
|
@@ -164,6 +235,11 @@ export const consentLinker = () => {
|
|
|
164
235
|
}
|
|
165
236
|
return record;
|
|
166
237
|
},
|
|
238
|
+
adoptLanguage: opts => {
|
|
239
|
+
const supported = opts.linker?.language?.supported;
|
|
240
|
+
const decoded = supported != null ? trustedPayload(opts) : null;
|
|
241
|
+
return decoded?.l != null && supported != null ? supportedLanguage(decoded.l, supported) : null;
|
|
242
|
+
},
|
|
167
243
|
domains: opts => opts.linker?.domains ?? [],
|
|
168
244
|
};
|
|
169
245
|
};
|
|
@@ -220,6 +296,16 @@ export const consentLinkerScript = (opts) => {
|
|
|
220
296
|
const skew = CONSENT_LINK_SKEW;
|
|
221
297
|
const cookieDays = opts.cookieDays ?? CONSENT_COOKIE_DAYS;
|
|
222
298
|
const version = CONSENT_LINK_VERSION;
|
|
299
|
+
// The language rides the same trust decision and is written unconditionally — it is strictly
|
|
300
|
+
// necessary storage, whatever the cookie decision is. Mirrors `supportedLanguage` +
|
|
301
|
+
// `writeConsentLanguage`; empty for a page that does not receive a language.
|
|
302
|
+
const language = linker.language?.supported != null
|
|
303
|
+
? `var L=${jsonForScript(linker.language.supported)};` +
|
|
304
|
+
`if(typeof j.l==='string'){var lc=j.l.toLowerCase(),lm=null,q;` +
|
|
305
|
+
`for(q=0;q<L.length;q++){if(String(L[q]).toLowerCase()===lc){lm=L[q];break}}` +
|
|
306
|
+
`if(!lm){lc=lc.split(/[-_]/)[0];for(q=0;q<L.length;q++){if(String(L[q]).toLowerCase()===lc){lm=L[q];break}}}` +
|
|
307
|
+
`if(lm){try{w.localStorage.setItem(${jsonForScript(linker.language.storageKey ?? CONSENT_LANGUAGE_KEY)},lm)}catch(e){}}}`
|
|
308
|
+
: '';
|
|
223
309
|
return `(function(w,d){` +
|
|
224
310
|
`var p=${param};var qs;try{qs=new URLSearchParams(location.search)}catch(e){return}` +
|
|
225
311
|
`var raw=qs.get(p);if(raw==null)return;` +
|
|
@@ -234,18 +320,22 @@ export const consentLinkerScript = (opts) => {
|
|
|
234
320
|
`if(now-j.t>${maxAge}||j.t-now>${skew})return;` +
|
|
235
321
|
`var ref=null;try{ref=new URL(d.referrer).hostname}catch(e){}` +
|
|
236
322
|
`if(!ref||${domains}.indexOf(ref)<0)return;` +
|
|
237
|
-
`var keys=${optionalKeys};` +
|
|
238
|
-
`for(var i=0;i<keys.length;i++){if(j.c[keys[i]]!==0&&j.c[keys[i]]!==1)return}` +
|
|
239
323
|
`var existing=null;try{existing=w.localStorage.getItem(${storageKey})}catch(e){}` +
|
|
240
324
|
`if(!existing){var cp=('; '+d.cookie).split('; '+${storageKey}+'=');` +
|
|
241
325
|
`if(cp.length===2)existing=cp.pop().split(';').shift()}` +
|
|
242
|
-
`if(existing)
|
|
326
|
+
`if(!existing){` +
|
|
327
|
+
`var keys=${optionalKeys},ok=true;` +
|
|
328
|
+
`for(var i=0;i<keys.length;i++){if(j.c[keys[i]]!==0&&j.c[keys[i]]!==1){ok=false;break}}` +
|
|
329
|
+
`if(ok){` +
|
|
243
330
|
`var cats=${allCategories},rec={v:${version}};` +
|
|
244
331
|
`for(var k=0;k<cats.length;k++){var c=cats[k];rec[c.key]=c.required||j.c[c.key]===1}` +
|
|
245
332
|
`var val=JSON.stringify(rec);` +
|
|
246
333
|
`try{w.localStorage.setItem(${storageKey},val)}catch(e){}` +
|
|
247
334
|
`var exp=new Date(Date.now()+${cookieDays}*86400000).toUTCString();` +
|
|
248
335
|
`d.cookie=${storageKey}+'='+val+';expires='+exp+';path=/;SameSite=Lax'` +
|
|
336
|
+
`}` +
|
|
337
|
+
`}` +
|
|
338
|
+
language +
|
|
249
339
|
`}catch(e){}` +
|
|
250
340
|
`})(window,document)`;
|
|
251
341
|
};
|
package/build/linker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAElH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAA;AACzC,wGAAwG;AACxG,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AACvC,oGAAoG;AACpG,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAEnC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAW9B,MAAM,YAAY,GAAG,CAAC,IAAqB,EAAqB,EAAE,CAChE,IAAI,EAAE,UAAU,IAAI,0BAA0B,CAAA;AAEhD,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAqB,EAAE,CAC9D,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;AAEnE,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAEvE,MAAM,aAAa,GAAG,CAAC,KAAa,EAAiB,EAAE;IACrD,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAqB,EAAE,IAAqB,EAAU,EAAE;IACxF,MAAM,CAAC,GAA0B,EAAE,CAAA;IACnC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,OAAO,GAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;IAEpG,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,oGAAoG;AACpG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAA6B,EAAE;IAC5E,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAA;QAC1C,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAiC,CAAA;QACrD,IAAI,CAAC,KAAK,oBAAoB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAA0B,EAAE,CAAC,EAAE,CAAA;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,GAAkB,EAAE;IAC3C,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAChE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED;;;mFAGmF;AACnF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAEhG;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAE;IAC/C,IAAI,SAAS,GAAG,KAAK,CAAA;IAErB,OAAO;QACL,KAAK,EAAE,QAAQ;QAEf,KAAK,EAAE,IAAI,CAAC,EAAE;YACZ,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACxE,OAAM;YACR,CAAC;YACD,SAAS,GAAG,IAAI,CAAA;YAEhB,MAAM,UAAU,GAAG,CAAC,KAAY,EAAQ,EAAE;gBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;gBAC3B,MAAM,MAAM,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC3E,IAAI,CAAC,CAAC,MAAM,YAAY,iBAAiB,CAAC,EAAE,CAAC;oBAC3C,OAAM;gBACR,CAAC;gBACD,yFAAyF;gBACzF,0FAA0F;gBAC1F,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5D,OAAM;gBACR,CAAC;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,OAAM;gBACR,CAAC;gBACD,IAAI,GAAQ,CAAA;gBACZ,IAAI,CAAC;oBACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAM;gBACR,CAAC;gBACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;gBACvD,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;gBACpC,CAAC;YACH,CAAC,CAAA;YAED,2FAA2F;YAC3F,8FAA8F;YAC9F,8FAA8F;YAC9F,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YACpD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YACvD,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAC5D,CAAC;QAED,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YACrE,IAAI,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtF,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAE1F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,KAAK,EAAE,IAAI,CAAC,EAAE;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAA;YACxF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAA;YACpD,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,iBAAiB,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAA;YACnC,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChG,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,MAAM,GAAkB,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAA;YAC3D,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpF,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAED,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;KAC5C,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAoB,EAAQ,EAAE;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACxF,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAA;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAM;IACR,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,CAAC;QACH,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,4FAA4F;IAC9F,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAoB,EAAU,EAAE;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAClF,MAAM,aAAa,GAAG,aAAa,CACjC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC,CAClG,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,oBAAoB,CAAA;IACpD,MAAM,IAAI,GAAG,iBAAiB,CAAA;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAA;IACzD,MAAM,OAAO,GAAG,oBAAoB,CAAA;IAEpC,OAAO,iBAAiB;QACtB,SAAS,KAAK,sEAAsE;QACpF,wCAAwC;QACxC,sCAAsC;QACtC,+DAA+D;QAC/D,2DAA2D;QAC3D,MAAM;QACJ,wEAAwE;QACxE,4BAA4B;QAC5B,gBAAgB,OAAO,8DAA8D;QACrF,sCAAsC;QACtC,cAAc,MAAM,aAAa,IAAI,UAAU;QAC/C,8DAA8D;QAC9D,YAAY,OAAO,yBAAyB;QAC5C,YAAY,YAAY,GAAG;QAC3B,8EAA8E;QAC9E,yDAAyD,UAAU,cAAc;QACjF,mDAAmD,UAAU,QAAQ;QACnE,wDAAwD;QAC1D,qBAAqB;QACrB,YAAY,aAAa,WAAW,OAAO,IAAI;QAC/C,qFAAqF;QACrF,8BAA8B;QAC9B,8BAA8B,UAAU,kBAAkB;QAC1D,+BAA+B,UAAU,2BAA2B;QACpE,YAAY,UAAU,iDAAiD;QACzE,aAAa;QACf,qBAAqB,CAAA;AACvB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../src/linker.ts"],"names":[],"mappings":"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"}
|
package/build/plugins.d.ts
CHANGED
|
@@ -24,10 +24,19 @@ export interface ConsentPlugin {
|
|
|
24
24
|
*/
|
|
25
25
|
adopt?: (opts: ConsentOptions) => ConsentRecord | null;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
27
|
+
* Offer an interface language from outside this document's own storage — e.g. the one the page
|
|
28
|
+
* that led here was read in. Returns a language the application supports, or `null` to keep
|
|
29
|
+
* choosing its own. Only a CANDIDATE: it says what the link carried, and `writeConsentLanguage`
|
|
30
|
+
* stores it — unconditionally, since the interface language is strictly necessary storage.
|
|
29
31
|
*/
|
|
30
|
-
|
|
32
|
+
adoptLanguage?: (opts: ConsentOptions) => string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Rewrite an outgoing URL to carry this document's current decision — and its language — or
|
|
35
|
+
* `null` to leave it untouched (a foreign host, a link that opts out, nothing to carry yet).
|
|
36
|
+
* `record` is `null` while the visitor has not decided: a plugin that also carries something
|
|
37
|
+
* else (the language) still has a reason to decorate then.
|
|
38
|
+
*/
|
|
39
|
+
decorate?: (url: URL, record: ConsentRecord | null, opts: ConsentOptions) => URL | null;
|
|
31
40
|
/** Extra domains this decision is understood to apply to, for disclosure — never deduplicated here. */
|
|
32
41
|
domains?: (opts: ConsentOptions) => string[];
|
|
33
42
|
}
|
|
@@ -40,7 +49,7 @@ export declare const consentPlugins: () => ConsentPlugin[];
|
|
|
40
49
|
* stopping at the first one that actually changes it. A plugin whose own rules refuse (a foreign
|
|
41
50
|
* host, a `noreferrer` link, no local decision yet) returns `null` and is skipped, not an error.
|
|
42
51
|
*/
|
|
43
|
-
export declare const decorateConsentUrl: (url: string | URL, record: ConsentRecord, opts: ConsentOptions) => URL;
|
|
52
|
+
export declare const decorateConsentUrl: (url: string | URL, record: ConsentRecord | null, opts: ConsentOptions) => URL;
|
|
44
53
|
/**
|
|
45
54
|
* Every domain this document's decision is disclosed to, current host first, deduplicated — what a
|
|
46
55
|
* dialog or a policy page lists. A plugin that runs on this host but names no domains of its own
|
|
@@ -50,6 +59,13 @@ export declare const decorateConsentUrl: (url: string | URL, record: ConsentReco
|
|
|
50
59
|
export declare const consentDomains: (opts: ConsentOptions) => string[];
|
|
51
60
|
/** Try every registered plugin's `adopt`, in priority order, and use the first decision offered. */
|
|
52
61
|
export declare const adoptConsent: (opts: ConsentOptions) => ConsentRecord | null;
|
|
62
|
+
/**
|
|
63
|
+
* Try every registered plugin's `adoptLanguage`, in priority order, and use the first language
|
|
64
|
+
* offered. The caller persists it (`writeConsentLanguage`) — and has to do that BEFORE its i18n
|
|
65
|
+
* layer reads storage, which is why the inline `<head>` fragment (`consentLinkerScript`) is the
|
|
66
|
+
* one that normally does.
|
|
67
|
+
*/
|
|
68
|
+
export declare const adoptConsentLanguage: (opts: ConsentOptions) => string | null;
|
|
53
69
|
/** Run every registered plugin's `start`, in priority order. `consentStore.init` calls this once. */
|
|
54
70
|
export declare const startConsentPlugins: (opts: ConsentOptions) => void;
|
|
55
71
|
//# sourceMappingURL=plugins.d.ts.map
|
package/build/plugins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IACtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,aAAa,GAAG,IAAI,CAAA;IACtD
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;IACtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,aAAa,GAAG,IAAI,CAAA;IACtD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAA;IACvD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,KAAK,GAAG,GAAG,IAAI,CAAA;IACvF,uGAAuG;IACvG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,EAAE,CAAA;CAC7C;AASD,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,WAAY,aAAa,KAAG,IAE7D,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,cAAc,QAAO,aAAa,EAC8B,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QACxB,MAAM,GAAG,GAAG,UAAU,aAAa,GAAG,IAAI,QAAQ,cAAc,KACpE,GAaF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,cAAc,KAAG,MAAM,EAK3D,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,YAAY,SAAU,cAAc,KAAG,aAAa,GAAG,IASnE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,SAAU,cAAc,KAAG,MAAM,GAAG,IASpE,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,mBAAmB,SAAU,cAAc,KAAG,IAI1D,CAAA"}
|
package/build/plugins.js
CHANGED
|
@@ -49,6 +49,21 @@ export const adoptConsent = (opts) => {
|
|
|
49
49
|
}
|
|
50
50
|
return null;
|
|
51
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Try every registered plugin's `adoptLanguage`, in priority order, and use the first language
|
|
54
|
+
* offered. The caller persists it (`writeConsentLanguage`) — and has to do that BEFORE its i18n
|
|
55
|
+
* layer reads storage, which is why the inline `<head>` fragment (`consentLinkerScript`) is the
|
|
56
|
+
* one that normally does.
|
|
57
|
+
*/
|
|
58
|
+
export const adoptConsentLanguage = (opts) => {
|
|
59
|
+
for (const plugin of consentPlugins()) {
|
|
60
|
+
const adopted = plugin.adoptLanguage?.(opts);
|
|
61
|
+
if (adopted != null) {
|
|
62
|
+
return adopted;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
};
|
|
52
67
|
/** Run every registered plugin's `start`, in priority order. `consentStore.init` calls this once. */
|
|
53
68
|
export const startConsentPlugins = (opts) => {
|
|
54
69
|
for (const plugin of consentPlugins()) {
|
package/build/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
|