@owlmeans/consent 0.1.18-rc.7 → 0.1.18-rc.8
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 +26 -3
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +35 -3
- package/build/consts.js.map +1 -1
- package/build/functional.d.ts +35 -0
- package/build/functional.d.ts.map +1 -0
- package/build/functional.js +67 -0
- package/build/functional.js.map +1 -0
- package/build/i18n/be.json +2 -0
- package/build/i18n/de.json +2 -0
- package/build/i18n/en.json +2 -0
- package/build/i18n/es.json +2 -0
- package/build/i18n/fr.json +2 -0
- package/build/i18n/pl.json +2 -0
- package/build/i18n/ru.json +2 -0
- package/build/i18n/uk.json +2 -0
- package/build/index.d.ts +3 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -2
- package/build/index.js.map +1 -1
- package/build/linker.d.ts +25 -2
- package/build/linker.d.ts.map +1 -1
- package/build/linker.js +135 -30
- package/build/linker.js.map +1 -1
- package/build/plugins.d.ts +21 -4
- package/build/plugins.d.ts.map +1 -1
- package/build/plugins.js +16 -0
- package/build/plugins.js.map +1 -1
- package/build/store.d.ts.map +1 -1
- package/build/store.js +48 -6
- package/build/store.js.map +1 -1
- package/build/types.d.ts +38 -0
- package/build/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +38 -3
- package/src/functional.ts +73 -0
- package/src/i18n/be.json +2 -0
- package/src/i18n/de.json +2 -0
- package/src/i18n/en.json +2 -0
- package/src/i18n/es.json +2 -0
- package/src/i18n/fr.json +2 -0
- package/src/i18n/pl.json +2 -0
- package/src/i18n/ru.json +2 -0
- package/src/i18n/uk.json +2 -0
- package/src/index.ts +3 -1
- package/src/linker.ts +160 -36
- package/src/plugins.ts +31 -4
- package/src/store.ts +54 -6
- package/src/types.ts +39 -0
- package/tests/linker.spec.ts +593 -6
package/build/consts.d.ts
CHANGED
|
@@ -28,16 +28,39 @@ export declare const CONSENT_SETUP_FLAG = "cookieConsentSetup";
|
|
|
28
28
|
*/
|
|
29
29
|
export declare const CONSENT_EVENT = "owlmeans:consent";
|
|
30
30
|
export declare const CONSENT_ESSENTIAL = "essential";
|
|
31
|
+
export declare const CONSENT_FUNCTIONAL = "functional";
|
|
31
32
|
export declare const CONSENT_ANALYTICS = "analytics";
|
|
32
33
|
export declare const CONSENT_MARKETING = "marketing";
|
|
34
|
+
/**
|
|
35
|
+
* The DOM event the store dispatches on `window` when a language that arrived with a link (or an
|
|
36
|
+
* explicit choice made before the visitor answered the dialog) has just become storable — the
|
|
37
|
+
* visitor granted functional storage — so the application can switch to it now instead of at the
|
|
38
|
+
* next load. `detail: { language }`. An application that resolves its language from storage at
|
|
39
|
+
* start-up (`@owlmeans/client-i18n`) listens for it.
|
|
40
|
+
*/
|
|
41
|
+
export declare const CONSENT_LANGUAGE_EVENT = "owlmeans:language";
|
|
42
|
+
/**
|
|
43
|
+
* The `window` property the inline `<head>` fragment leaves a carried language on when it may not
|
|
44
|
+
* store it yet (no decision, or functional not granted): memory only, never storage. The store
|
|
45
|
+
* picks it up at `init` and writes it if — and only if — the visitor later grants functional storage
|
|
46
|
+
* in this page's life. Fixed for the same reason `CONSENT_SETUP_FLAG` is: two bundles, one page.
|
|
47
|
+
*/
|
|
48
|
+
export declare const CONSENT_PENDING_LANGUAGE = "cookieConsentPendingLanguage";
|
|
49
|
+
/**
|
|
50
|
+
* Where an application persists an explicit interface-language choice — `@owlmeans/client-i18n`'s
|
|
51
|
+
* `owlmeans-lng`. Repeated here rather than imported: this package has no runtime dependencies, and
|
|
52
|
+
* the linker's language part has to run in an inline `<head>` script, before any bundle exists.
|
|
53
|
+
*/
|
|
54
|
+
export declare const CONSENT_LANGUAGE_KEY = "owlmeans-lng";
|
|
33
55
|
export declare const CONSENT_LOCALES: readonly ['en', 'pl', 'ru', 'be', 'uk', 'es', 'de', 'fr'];
|
|
34
56
|
export type ConsentLocale = (typeof CONSENT_LOCALES)[number];
|
|
35
57
|
/**
|
|
36
58
|
* The categories every OwlMeans surface starts with.
|
|
37
59
|
*
|
|
38
|
-
*
|
|
39
|
-
* widget left implicit
|
|
40
|
-
* it sets a session cookie, and what tells a visitor what is being stored regardless
|
|
60
|
+
* What owlmeans.com already asked (analytics, marketing) plus the essential row, which the original
|
|
61
|
+
* widget left implicit — making it explicit is what lets a flow require an acknowledgement before
|
|
62
|
+
* it sets a session cookie, and what tells a visitor what is being stored regardless — plus
|
|
63
|
+
* functional, the visitor's own remembered preferences.
|
|
41
64
|
*/
|
|
42
65
|
export declare const DEFAULT_CONSENT_CATEGORIES: ConsentCategory[];
|
|
43
66
|
/**
|
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,kBAAkB,eAAe,CAAA;AAC9C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAC5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAA;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,iCAAiC,CAAA;AAEtE;;;;GAIG;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,EA4BvD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAQxE,CAAA"}
|
package/build/consts.js
CHANGED
|
@@ -27,15 +27,38 @@ export const CONSENT_SETUP_FLAG = 'cookieConsentSetup';
|
|
|
27
27
|
*/
|
|
28
28
|
export const CONSENT_EVENT = 'owlmeans:consent';
|
|
29
29
|
export const CONSENT_ESSENTIAL = 'essential';
|
|
30
|
+
export const CONSENT_FUNCTIONAL = 'functional';
|
|
30
31
|
export const CONSENT_ANALYTICS = 'analytics';
|
|
31
32
|
export const CONSENT_MARKETING = 'marketing';
|
|
33
|
+
/**
|
|
34
|
+
* The DOM event the store dispatches on `window` when a language that arrived with a link (or an
|
|
35
|
+
* explicit choice made before the visitor answered the dialog) has just become storable — the
|
|
36
|
+
* visitor granted functional storage — so the application can switch to it now instead of at the
|
|
37
|
+
* next load. `detail: { language }`. An application that resolves its language from storage at
|
|
38
|
+
* start-up (`@owlmeans/client-i18n`) listens for it.
|
|
39
|
+
*/
|
|
40
|
+
export const CONSENT_LANGUAGE_EVENT = 'owlmeans:language';
|
|
41
|
+
/**
|
|
42
|
+
* The `window` property the inline `<head>` fragment leaves a carried language on when it may not
|
|
43
|
+
* store it yet (no decision, or functional not granted): memory only, never storage. The store
|
|
44
|
+
* picks it up at `init` and writes it if — and only if — the visitor later grants functional storage
|
|
45
|
+
* in this page's life. Fixed for the same reason `CONSENT_SETUP_FLAG` is: two bundles, one page.
|
|
46
|
+
*/
|
|
47
|
+
export const CONSENT_PENDING_LANGUAGE = 'cookieConsentPendingLanguage';
|
|
48
|
+
/**
|
|
49
|
+
* Where an application persists an explicit interface-language choice — `@owlmeans/client-i18n`'s
|
|
50
|
+
* `owlmeans-lng`. Repeated here rather than imported: this package has no runtime dependencies, and
|
|
51
|
+
* the linker's language part has to run in an inline `<head>` script, before any bundle exists.
|
|
52
|
+
*/
|
|
53
|
+
export const CONSENT_LANGUAGE_KEY = 'owlmeans-lng';
|
|
32
54
|
export const CONSENT_LOCALES = ['en', 'pl', 'ru', 'be', 'uk', 'es', 'de', 'fr'];
|
|
33
55
|
/**
|
|
34
56
|
* The categories every OwlMeans surface starts with.
|
|
35
57
|
*
|
|
36
|
-
*
|
|
37
|
-
* widget left implicit
|
|
38
|
-
* it sets a session cookie, and what tells a visitor what is being stored regardless
|
|
58
|
+
* What owlmeans.com already asked (analytics, marketing) plus the essential row, which the original
|
|
59
|
+
* widget left implicit — making it explicit is what lets a flow require an acknowledgement before
|
|
60
|
+
* it sets a session cookie, and what tells a visitor what is being stored regardless — plus
|
|
61
|
+
* functional, the visitor's own remembered preferences.
|
|
39
62
|
*/
|
|
40
63
|
export const DEFAULT_CONSENT_CATEGORIES = [
|
|
41
64
|
{
|
|
@@ -44,6 +67,15 @@ export const DEFAULT_CONSENT_CATEGORIES = [
|
|
|
44
67
|
globalVar: 'owlConsentEssential',
|
|
45
68
|
signals: ['security_storage', 'functionality_storage'],
|
|
46
69
|
},
|
|
70
|
+
// A preference the visitor set — today the interface language — remembered on their device. Not
|
|
71
|
+
// essential (nothing breaks without it) and not tracking, so it drives NO Consent Mode signal:
|
|
72
|
+
// a signal would make `trackingGranted` count it, and a visitor who only allowed their language
|
|
73
|
+
// to be remembered would load the tag container.
|
|
74
|
+
{
|
|
75
|
+
key: CONSENT_FUNCTIONAL,
|
|
76
|
+
labelKey: 'functional', descriptionKey: 'functionalDesc',
|
|
77
|
+
globalVar: 'owlConsentFunctional',
|
|
78
|
+
},
|
|
47
79
|
{
|
|
48
80
|
key: CONSENT_ANALYTICS,
|
|
49
81
|
labelKey: 'analytics', descriptionKey: 'analyticsDesc',
|
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,kBAAkB,GAAG,YAAY,CAAA;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAA;AAEtE;;;;GAIG;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,gGAAgG;IAChG,+FAA+F;IAC/F,gGAAgG;IAChG,iDAAiD;IACjD;QACE,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB;QACxD,SAAS,EAAE,sBAAsB;KAClC;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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ConsentOptions } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Whether this document's visitor has granted functional storage — a preference they set, such as
|
|
4
|
+
* the interface language, may be remembered on their device.
|
|
5
|
+
*
|
|
6
|
+
* Read from the stored record every time rather than from the store's state, so it is correct
|
|
7
|
+
* before `consentStore.init` has run: the language resolves at start-up, ahead of any component.
|
|
8
|
+
* A record with no `functional` key (one saved before the category existed) is NOT a grant — the
|
|
9
|
+
* visitor was never asked, and a preference is not remembered on a device nobody asked about.
|
|
10
|
+
*/
|
|
11
|
+
export declare const functionalGranted: (opts?: ConsentOptions) => boolean;
|
|
12
|
+
/** Every `localStorage` key that may hold a functional preference for these options. */
|
|
13
|
+
export declare const functionalKeysOf: (opts?: ConsentOptions) => string[];
|
|
14
|
+
/**
|
|
15
|
+
* Remove every functional preference this application keeps. Called whenever functional is not
|
|
16
|
+
* granted — a refusal, a withdrawal, or a record that never answered — because a preference that
|
|
17
|
+
* outlives the consent to remember it is exactly the storage the visitor did not agree to.
|
|
18
|
+
*/
|
|
19
|
+
export declare const purgeFunctionalStorage: (opts?: ConsentOptions) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Remember a functional preference — but only while `functional` is granted. Returns whether it was
|
|
22
|
+
* written. The gate lives here so a caller cannot forget it; an application that is asked to store
|
|
23
|
+
* something functional calls this instead of `localStorage.setItem`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const writeFunctionalPreference: (key: string, value: string, opts?: ConsentOptions) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* An inline `<head>` fragment that defines `window.owlConsentAllows(category)` — whether the stored
|
|
28
|
+
* decision grants that category — for the scripts of a page that has no bundle yet: a site that
|
|
29
|
+
* remembers the visitor's language choice from a plain inline script (owlmeans.com's language
|
|
30
|
+
* switcher) asks it before it writes anything. Reads the same localStorage-then-cookie pair
|
|
31
|
+
* `readConsent` does, and answers `false` for anything it cannot read or parse — no answer is not a
|
|
32
|
+
* grant. Stamp it before the scripts that call it.
|
|
33
|
+
*/
|
|
34
|
+
export declare const consentAllowsScript: (opts?: ConsentOptions) => string;
|
|
35
|
+
//# sourceMappingURL=functional.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.d.ts","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,UAAW,cAAc,KAAG,OACR,CAAA;AAElD,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,UAAW,cAAc,KAAG,MAAM,EAK9D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,UAAW,cAAc,KAAG,IAM9D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAS,MAAM,SAAS,MAAM,SAAS,cAAc,KAAG,OAW7F,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,UAAW,cAAc,KAAG,MAS3D,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CONSENT_FUNCTIONAL, CONSENT_KEY, CONSENT_LANGUAGE_KEY } from './consts.js';
|
|
2
|
+
import { readConsent } from './storage.js';
|
|
3
|
+
/**
|
|
4
|
+
* Whether this document's visitor has granted functional storage — a preference they set, such as
|
|
5
|
+
* the interface language, may be remembered on their device.
|
|
6
|
+
*
|
|
7
|
+
* Read from the stored record every time rather than from the store's state, so it is correct
|
|
8
|
+
* before `consentStore.init` has run: the language resolves at start-up, ahead of any component.
|
|
9
|
+
* A record with no `functional` key (one saved before the category existed) is NOT a grant — the
|
|
10
|
+
* visitor was never asked, and a preference is not remembered on a device nobody asked about.
|
|
11
|
+
*/
|
|
12
|
+
export const functionalGranted = (opts) => readConsent(opts)?.[CONSENT_FUNCTIONAL] === true;
|
|
13
|
+
/** Every `localStorage` key that may hold a functional preference for these options. */
|
|
14
|
+
export const functionalKeysOf = (opts) => [
|
|
15
|
+
...new Set([
|
|
16
|
+
...(opts?.functionalKeys ?? [CONSENT_LANGUAGE_KEY]),
|
|
17
|
+
...(opts?.linker?.language?.storageKey != null ? [opts.linker.language.storageKey] : []),
|
|
18
|
+
]),
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Remove every functional preference this application keeps. Called whenever functional is not
|
|
22
|
+
* granted — a refusal, a withdrawal, or a record that never answered — because a preference that
|
|
23
|
+
* outlives the consent to remember it is exactly the storage the visitor did not agree to.
|
|
24
|
+
*/
|
|
25
|
+
export const purgeFunctionalStorage = (opts) => {
|
|
26
|
+
for (const key of functionalKeysOf(opts)) {
|
|
27
|
+
try {
|
|
28
|
+
localStorage.removeItem(key);
|
|
29
|
+
}
|
|
30
|
+
catch { /* storage blocked: nothing was written there to remove */ }
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Remember a functional preference — but only while `functional` is granted. Returns whether it was
|
|
35
|
+
* written. The gate lives here so a caller cannot forget it; an application that is asked to store
|
|
36
|
+
* something functional calls this instead of `localStorage.setItem`.
|
|
37
|
+
*/
|
|
38
|
+
export const writeFunctionalPreference = (key, value, opts) => {
|
|
39
|
+
if (!functionalGranted(opts)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
localStorage.setItem(key, value);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* An inline `<head>` fragment that defines `window.owlConsentAllows(category)` — whether the stored
|
|
52
|
+
* decision grants that category — for the scripts of a page that has no bundle yet: a site that
|
|
53
|
+
* remembers the visitor's language choice from a plain inline script (owlmeans.com's language
|
|
54
|
+
* switcher) asks it before it writes anything. Reads the same localStorage-then-cookie pair
|
|
55
|
+
* `readConsent` does, and answers `false` for anything it cannot read or parse — no answer is not a
|
|
56
|
+
* grant. Stamp it before the scripts that call it.
|
|
57
|
+
*/
|
|
58
|
+
export const consentAllowsScript = (opts) => {
|
|
59
|
+
const key = JSON.stringify(opts?.storageKey ?? CONSENT_KEY).replace(/</g, '\\u003c');
|
|
60
|
+
return `(function(w,d){w.owlConsentAllows=function(k){` +
|
|
61
|
+
`var raw=null;try{raw=w.localStorage.getItem(${key})}catch(e){}` +
|
|
62
|
+
`if(!raw){var p=('; '+d.cookie).split('; '+${key}+'=');if(p.length===2)raw=p.pop().split(';').shift()}` +
|
|
63
|
+
`if(!raw)return false;` +
|
|
64
|
+
`try{var r=JSON.parse(raw);return !!r&&typeof r==='object'&&r[k]===true}catch(e){return false}}` +
|
|
65
|
+
`})(window,document)`;
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=functional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.js","sourceRoot":"","sources":["../src/functional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAW,EAAE,CAClE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAA;AAElD,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAqB,EAAY,EAAE,CAAC;IACnE,GAAG,IAAI,GAAG,CAAC;QACT,GAAG,CAAC,IAAI,EAAE,cAAc,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACzF,CAAC;CACH,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAqB,EAAQ,EAAE;IACpE,KAAK,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC,CAAC,0DAA0D,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAqB,EAAW,EAAE;IACtG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAqB,EAAU,EAAE;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAEpF,OAAO,gDAAgD;QACrD,+CAA+C,GAAG,cAAc;QAChE,6CAA6C,GAAG,uDAAuD;QACvG,uBAAuB;QACvB,gGAAgG;QAClG,qBAAqB,CAAA;AACvB,CAAC,CAAA"}
|
package/build/i18n/be.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
"description": "Мы выкарыстоўваем файлы cookie, каб палепшыць ваш досвед прагляду, паказваць персаналізаваную рэкламу ці змесціва і аналізаваць наш трафік. Націскаючы «Прыняць усе», вы пагаджаецеся на выкарыстанне файлаў cookie.",
|
|
4
4
|
"essential": "Неабходныя файлы cookie",
|
|
5
5
|
"essentialDesc": "Патрэбныя для працы сайта — уваход, бяспека і захаванне гэтых налад. Іх нельга адключыць.",
|
|
6
|
+
"functional": "Функцыянальныя файлы cookie",
|
|
7
|
+
"functionalDesc": "Запамінаюць вашы налады, напрыклад мову інтэрфейсу, каб вам не даводзілася задаваць іх зноў.",
|
|
6
8
|
"analytics": "Аналітычныя файлы cookie",
|
|
7
9
|
"analyticsDesc": "Дапамагаюць нам паляпшаць наш вэб-сайт, збіраючы і паведамляючы інфармацыю пра яго выкарыстанне.",
|
|
8
10
|
"marketing": "Маркетынгавыя файлы cookie",
|
package/build/i18n/de.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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
5
|
"essentialDesc": "Erforderlich, damit die Website funktioniert — Anmeldung, Sicherheit und das Speichern dieser Einstellungen. Sie lassen sich nicht abschalten.",
|
|
6
|
+
"functional": "Funktionale Cookies",
|
|
7
|
+
"functionalDesc": "Merken sich Ihre Auswahl, etwa die Oberflächensprache, damit Sie nicht erneut wählen müssen.",
|
|
6
8
|
"analytics": "Analyse-Cookies",
|
|
7
9
|
"analyticsDesc": "Helfen uns, unsere Website zu verbessern, indem sie Informationen zur Nutzung sammeln und melden.",
|
|
8
10
|
"marketing": "Marketing-Cookies",
|
package/build/i18n/en.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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
5
|
"essentialDesc": "Required for the site to work — signing in, security and remembering these preferences. They cannot be switched off.",
|
|
6
|
+
"functional": "Functional Cookies",
|
|
7
|
+
"functionalDesc": "Remember your choices, such as the interface language, so you do not have to make them again.",
|
|
6
8
|
"analytics": "Analytics Cookies",
|
|
7
9
|
"analyticsDesc": "Help us improve our website by collecting and reporting information on its usage.",
|
|
8
10
|
"marketing": "Marketing Cookies",
|
package/build/i18n/es.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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
5
|
"essentialDesc": "Necesarias para que el sitio funcione: inicio de sesión, seguridad y recordar estas preferencias. No se pueden desactivar.",
|
|
6
|
+
"functional": "Cookies funcionales",
|
|
7
|
+
"functionalDesc": "Recuerdan tus preferencias, como el idioma de la interfaz, para que no tengas que elegirlas de nuevo.",
|
|
6
8
|
"analytics": "Cookies analíticas",
|
|
7
9
|
"analyticsDesc": "Nos ayudan a mejorar nuestro sitio web recopilando e informando sobre su uso.",
|
|
8
10
|
"marketing": "Cookies de marketing",
|
package/build/i18n/fr.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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
5
|
"essentialDesc": "Nécessaires au fonctionnement du site : connexion, sécurité et mémorisation de ces préférences. Ils ne peuvent pas être désactivés.",
|
|
6
|
+
"functional": "Cookies fonctionnels",
|
|
7
|
+
"functionalDesc": "Mémorisent vos choix, comme la langue de l'interface, afin que vous n'ayez pas à les refaire.",
|
|
6
8
|
"analytics": "Cookies analytiques",
|
|
7
9
|
"analyticsDesc": "Nous aident à améliorer notre site en recueillant et en analysant des informations sur son utilisation.",
|
|
8
10
|
"marketing": "Cookies marketing",
|
package/build/i18n/pl.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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
5
|
"essentialDesc": "Wymagane do działania witryny — logowanie, bezpieczeństwo i zapamiętanie tych ustawień. Nie można ich wyłączyć.",
|
|
6
|
+
"functional": "Funkcjonalne pliki cookie",
|
|
7
|
+
"functionalDesc": "Zapamiętują Twoje wybory, np. język interfejsu, aby nie trzeba było wybierać od nowa.",
|
|
6
8
|
"analytics": "Analityczne pliki cookie",
|
|
7
9
|
"analyticsDesc": "Pomagają nam ulepszać naszą witrynę internetową, zbierając i raportując informacje o jej użytkowaniu.",
|
|
8
10
|
"marketing": "Marketingowe pliki cookie",
|
package/build/i18n/ru.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
"description": "Мы используем файлы cookie, чтобы улучшить ваш опыт просмотра, показывать персонализированную рекламу или контент и анализировать наш трафик. Нажимая «Принять все», вы соглашаетесь на использование файлов cookie.",
|
|
4
4
|
"essential": "Необходимые файлы cookie",
|
|
5
5
|
"essentialDesc": "Нужны для работы сайта — вход, безопасность и сохранение этих настроек. Их нельзя отключить.",
|
|
6
|
+
"functional": "Функциональные файлы cookie",
|
|
7
|
+
"functionalDesc": "Запоминают ваши настройки, например язык интерфейса, чтобы не приходилось задавать их заново.",
|
|
6
8
|
"analytics": "Аналитические файлы cookie",
|
|
7
9
|
"analyticsDesc": "Помогают нам улучшать наш сайт, собирая и предоставляя информацию о его использовании.",
|
|
8
10
|
"marketing": "Маркетинговые файлы cookie",
|
package/build/i18n/uk.json
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
"description": "Ми використовуємо файли cookie, щоб покращити ваш досвід перегляду, показувати персоналізовану рекламу чи вміст і аналізувати наш трафік. Натискаючи «Прийняти всі», ви погоджуєтеся на використання файлів cookie.",
|
|
4
4
|
"essential": "Необхідні файли cookie",
|
|
5
5
|
"essentialDesc": "Потрібні для роботи сайту — вхід, безпека та збереження цих налаштувань. Їх не можна вимкнути.",
|
|
6
|
+
"functional": "Функціональні файли cookie",
|
|
7
|
+
"functionalDesc": "Запам’ятовують ваші налаштування, наприклад мову інтерфейсу, щоб вам не доводилося вибирати їх знову.",
|
|
6
8
|
"analytics": "Аналітичні файли cookie",
|
|
7
9
|
"analyticsDesc": "Допомагають нам покращувати наш вебсайт, збираючи та надаючи інформацію про його використання.",
|
|
8
10
|
"marketing": "Маркетингові файли cookie",
|
package/build/index.d.ts
CHANGED
|
@@ -3,9 +3,10 @@ export * from './consts.js';
|
|
|
3
3
|
export * from './storage.js';
|
|
4
4
|
export * from './gtm.js';
|
|
5
5
|
export * from './store.js';
|
|
6
|
+
export * from './functional.js';
|
|
6
7
|
export * from './i18n.js';
|
|
7
8
|
export type { ConsentPlugin } from './plugins.js';
|
|
8
|
-
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, } from './plugins.js';
|
|
9
|
+
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, adoptConsentLanguage, } from './plugins.js';
|
|
9
10
|
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';
|
|
11
|
+
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, writeConsentLanguage, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
11
12
|
//# 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,iBAAiB,CAAA;AAC/B,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
|
@@ -2,7 +2,8 @@ export * from './consts.js';
|
|
|
2
2
|
export * from './storage.js';
|
|
3
3
|
export * from './gtm.js';
|
|
4
4
|
export * from './store.js';
|
|
5
|
+
export * from './functional.js';
|
|
5
6
|
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';
|
|
7
|
+
export { registerConsentPlugin, consentPlugins, decorateConsentUrl, consentDomains, adoptConsent, startConsentPlugins, adoptConsentLanguage, } from './plugins.js';
|
|
8
|
+
export { consentLinker, encodeConsentLink, decodeConsentLink, stripConsentLinkParam, consentLinkerScript, writeConsentLanguage, CONSENT_LINK_PARAM, CONSENT_LINK_MAX_AGE, CONSENT_LINK_SKEW, } from './linker.js';
|
|
8
9
|
//# 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,iBAAiB,CAAA;AAC/B,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,34 @@ 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 — and only while the visitor has GRANTED
|
|
35
|
+
* `functional` on this document (a stored record, or the one adopted from the very link that
|
|
36
|
+
* carried the language). Without that grant nothing is written and `false` comes back: remembering
|
|
37
|
+
* a preference on a visitor's device is storage like any other, and a refusal ("reject all") is an
|
|
38
|
+
* answer, not a gap to fill. The gate lives here, not in the callers, so no caller can forget it.
|
|
39
|
+
*
|
|
40
|
+
* It overwrites what is there on purpose: the carried language is the one the visitor was reading a
|
|
41
|
+
* moment ago, which outranks a choice they made on this domain some other day. Storage that refuses
|
|
42
|
+
* the write is not an error. Returns whether the language was written.
|
|
43
|
+
*/
|
|
44
|
+
export declare const writeConsentLanguage: (language: string, opts?: ConsentOptions) => boolean;
|
|
22
45
|
/**
|
|
23
46
|
* Cross-domain consent: share this decision, and adopt one, between the domains named in
|
|
24
47
|
* `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":"AAKA,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;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,aAAc,MAAM,SAAS,cAAc,KAAG,OAY9E,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,MAoE1D,CAAA"}
|