@consentx/angular 1.0.0
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/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/README.md +221 -0
- package/assets/consentx-logo.svg +550 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +221 -0
- package/dist/assets/consentx-logo.svg +550 -0
- package/dist/esm2022/consentx-angular.mjs +5 -0
- package/dist/esm2022/lib/consentx.module.mjs +57 -0
- package/dist/esm2022/lib/consentx.providers.mjs +51 -0
- package/dist/esm2022/lib/consentx.service.mjs +230 -0
- package/dist/esm2022/lib/consentx.tokens.mjs +7 -0
- package/dist/esm2022/lib/consentx.types.mjs +11 -0
- package/dist/esm2022/public-api.mjs +9 -0
- package/dist/fesm2022/consentx-angular.mjs +358 -0
- package/dist/fesm2022/consentx-angular.mjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/lib/consentx.module.d.ts +39 -0
- package/dist/lib/consentx.providers.d.ts +26 -0
- package/dist/lib/consentx.service.d.ts +71 -0
- package/dist/lib/consentx.tokens.d.ts +7 -0
- package/dist/lib/consentx.types.d.ts +82 -0
- package/dist/public-api.d.ts +5 -0
- package/ng-package.json +10 -0
- package/package.json +53 -0
- package/src/index.ts +1 -0
- package/src/lib/consentx.module.ts +53 -0
- package/src/lib/consentx.providers.ts +60 -0
- package/src/lib/consentx.service.ts +262 -0
- package/src/lib/consentx.tokens.ts +8 -0
- package/src/lib/consentx.types.ts +93 -0
- package/src/public-api.ts +20 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { APP_INITIALIZER, makeEnvironmentProviders, } from '@angular/core';
|
|
2
|
+
import { CONSENTX_CONFIG } from './consentx.tokens';
|
|
3
|
+
import { ConsentXService } from './consentx.service';
|
|
4
|
+
/**
|
|
5
|
+
* Factory used by APP_INITIALIZER. Initialising on app boot means the embed is
|
|
6
|
+
* injected once the Angular application is ready (i.e. after hydration on SSR),
|
|
7
|
+
* which is the SPA-safe load point the Connect spec recommends so the
|
|
8
|
+
* framework's DOM reconciliation does not strip the appended
|
|
9
|
+
* `#consentx-cookie-consent` div.
|
|
10
|
+
*/
|
|
11
|
+
export function consentxInitFactory(service) {
|
|
12
|
+
return () => service.init();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Standalone-app provider. Use in `bootstrapApplication(...)`:
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* bootstrapApplication(AppComponent, {
|
|
19
|
+
* providers: [provideConsentX({ siteKey: 'YOUR_SITE_KEY' })],
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function provideConsentX(config) {
|
|
24
|
+
return makeEnvironmentProviders([
|
|
25
|
+
{ provide: CONSENTX_CONFIG, useValue: config },
|
|
26
|
+
ConsentXService,
|
|
27
|
+
{
|
|
28
|
+
provide: APP_INITIALIZER,
|
|
29
|
+
multi: true,
|
|
30
|
+
useFactory: consentxInitFactory,
|
|
31
|
+
deps: [ConsentXService],
|
|
32
|
+
},
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Internal: the providers `ConsentXModule.forRoot()` contributes. Kept separate
|
|
37
|
+
* so both the NgModule and the standalone API share one source of truth.
|
|
38
|
+
*/
|
|
39
|
+
export function consentxRootProviders(config) {
|
|
40
|
+
return [
|
|
41
|
+
{ provide: CONSENTX_CONFIG, useValue: config },
|
|
42
|
+
ConsentXService,
|
|
43
|
+
{
|
|
44
|
+
provide: APP_INITIALIZER,
|
|
45
|
+
multi: true,
|
|
46
|
+
useFactory: consentxInitFactory,
|
|
47
|
+
deps: [ConsentXService],
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHgucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zZW50eC5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFHZix3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsT0FBd0I7SUFDMUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFzQjtJQUNwRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQzlDLGVBQWU7UUFDZjtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDeEI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQXNCO0lBQzFELE9BQU87UUFDTCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM5QyxlQUFlO1FBQ2Y7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO1NBQ3hCO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBUFBfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBQcm92aWRlcixcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ09OU0VOVFhfQ09ORklHIH0gZnJvbSAnLi9jb25zZW50eC50b2tlbnMnO1xuaW1wb3J0IHsgQ29uc2VudFhTZXJ2aWNlIH0gZnJvbSAnLi9jb25zZW50eC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnNlbnRYQ29uZmlnIH0gZnJvbSAnLi9jb25zZW50eC50eXBlcyc7XG5cbi8qKlxuICogRmFjdG9yeSB1c2VkIGJ5IEFQUF9JTklUSUFMSVpFUi4gSW5pdGlhbGlzaW5nIG9uIGFwcCBib290IG1lYW5zIHRoZSBlbWJlZCBpc1xuICogaW5qZWN0ZWQgb25jZSB0aGUgQW5ndWxhciBhcHBsaWNhdGlvbiBpcyByZWFkeSAoaS5lLiBhZnRlciBoeWRyYXRpb24gb24gU1NSKSxcbiAqIHdoaWNoIGlzIHRoZSBTUEEtc2FmZSBsb2FkIHBvaW50IHRoZSBDb25uZWN0IHNwZWMgcmVjb21tZW5kcyBzbyB0aGVcbiAqIGZyYW1ld29yaydzIERPTSByZWNvbmNpbGlhdGlvbiBkb2VzIG5vdCBzdHJpcCB0aGUgYXBwZW5kZWRcbiAqIGAjY29uc2VudHgtY29va2llLWNvbnNlbnRgIGRpdi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnNlbnR4SW5pdEZhY3Rvcnkoc2VydmljZTogQ29uc2VudFhTZXJ2aWNlKTogKCkgPT4gdm9pZCB7XG4gIHJldHVybiAoKSA9PiBzZXJ2aWNlLmluaXQoKTtcbn1cblxuLyoqXG4gKiBTdGFuZGFsb25lLWFwcCBwcm92aWRlci4gVXNlIGluIGBib290c3RyYXBBcHBsaWNhdGlvbiguLi4pYDpcbiAqXG4gKiBgYGB0c1xuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW3Byb3ZpZGVDb25zZW50WCh7IHNpdGVLZXk6ICdZT1VSX1NJVEVfS0VZJyB9KV0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbnNlbnRYKGNvbmZpZzogQ29uc2VudFhDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogQ09OU0VOVFhfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgQ29uc2VudFhTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRmFjdG9yeTogY29uc2VudHhJbml0RmFjdG9yeSxcbiAgICAgIGRlcHM6IFtDb25zZW50WFNlcnZpY2VdLFxuICAgIH0sXG4gIF0pO1xufVxuXG4vKipcbiAqIEludGVybmFsOiB0aGUgcHJvdmlkZXJzIGBDb25zZW50WE1vZHVsZS5mb3JSb290KClgIGNvbnRyaWJ1dGVzLiBLZXB0IHNlcGFyYXRlXG4gKiBzbyBib3RoIHRoZSBOZ01vZHVsZSBhbmQgdGhlIHN0YW5kYWxvbmUgQVBJIHNoYXJlIG9uZSBzb3VyY2Ugb2YgdHJ1dGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zZW50eFJvb3RQcm92aWRlcnMoY29uZmlnOiBDb25zZW50WENvbmZpZyk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHsgcHJvdmlkZTogQ09OU0VOVFhfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgQ29uc2VudFhTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRmFjdG9yeTogY29uc2VudHhJbml0RmFjdG9yeSxcbiAgICAgIGRlcHM6IFtDb25zZW50WFNlcnZpY2VdLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional, PLATFORM_ID, } from '@angular/core';
|
|
2
|
+
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, map } from 'rxjs/operators';
|
|
5
|
+
import { CONSENTX_CONFIG } from './consentx.tokens';
|
|
6
|
+
import { CONSENTX_DEFAULT_APP_URL, } from './consentx.types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
const SCRIPT_ID = 'consentx-embed';
|
|
9
|
+
const CONSENT_MODE_ID = 'consentx-consent-mode';
|
|
10
|
+
/**
|
|
11
|
+
* Injects the ConsentX embed script (`/api/SITE_KEY/embed.js`) into `<head>`
|
|
12
|
+
* and exposes the visitor's consent state, derived from the widget's
|
|
13
|
+
* `cx:consent` events.
|
|
14
|
+
*
|
|
15
|
+
* Site-key model (Connect spec, Model C): no redirect handshake. The Site Key
|
|
16
|
+
* is supplied via configuration; this service only performs clean embed
|
|
17
|
+
* injection plus a consent hook.
|
|
18
|
+
*
|
|
19
|
+
* The service is `providedIn: 'root'` so it is a singleton across the app. It
|
|
20
|
+
* is SSR-safe: all DOM access is guarded behind `isPlatformBrowser`, so it is a
|
|
21
|
+
* no-op on the server and runs once the app boots in the browser.
|
|
22
|
+
*/
|
|
23
|
+
export class ConsentXService {
|
|
24
|
+
config;
|
|
25
|
+
document;
|
|
26
|
+
zone;
|
|
27
|
+
appUrl;
|
|
28
|
+
isBrowser;
|
|
29
|
+
listenerBound = false;
|
|
30
|
+
boundConsentListener;
|
|
31
|
+
stateSubject = new BehaviorSubject({
|
|
32
|
+
loaded: false,
|
|
33
|
+
decided: false,
|
|
34
|
+
granted: [],
|
|
35
|
+
detail: null,
|
|
36
|
+
});
|
|
37
|
+
/** Full consent state as an observable. Emits an initial snapshot. */
|
|
38
|
+
state$ = this.stateSubject.asObservable();
|
|
39
|
+
/** Convenience stream of the granted category slugs. */
|
|
40
|
+
granted$ = this.state$.pipe(map((s) => s.granted), distinctUntilChanged((a, b) => a.length === b.length && a.every((v, i) => v === b[i])));
|
|
41
|
+
constructor(config, platformId, document, zone) {
|
|
42
|
+
this.config = config;
|
|
43
|
+
this.document = document;
|
|
44
|
+
this.zone = zone;
|
|
45
|
+
this.isBrowser = isPlatformBrowser(platformId);
|
|
46
|
+
this.appUrl = this.normalizeAppUrl(this.config?.appUrl);
|
|
47
|
+
if (!this.config?.siteKey) {
|
|
48
|
+
// Misconfiguration is loud but non-fatal: the app keeps working without
|
|
49
|
+
// the banner instead of crashing bootstrap.
|
|
50
|
+
// eslint-disable-next-line no-console
|
|
51
|
+
console.error('[ConsentX] No siteKey provided. Pass { siteKey } to ConsentXModule.forRoot() ' +
|
|
52
|
+
'or provideConsentX(). Copy the Site Key from the ConsentX dashboard -> ' +
|
|
53
|
+
'Websites -> your site.');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Auto-init entry point. Called once during app initialisation (via an
|
|
58
|
+
* APP_INITIALIZER registered by the module/provider) unless `manualLoad` is
|
|
59
|
+
* set. Binds the consent listener and injects the embed.
|
|
60
|
+
*/
|
|
61
|
+
init() {
|
|
62
|
+
if (!this.isBrowser) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.bindConsentListener();
|
|
66
|
+
if (!this.config?.manualLoad) {
|
|
67
|
+
this.load();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Inject the ConsentX embed into `<head>`. Idempotent: a second call is a
|
|
72
|
+
* no-op if the script is already present. Safe to call manually when
|
|
73
|
+
* `manualLoad` is enabled (e.g. after a cookie-policy route is reached).
|
|
74
|
+
*/
|
|
75
|
+
load() {
|
|
76
|
+
if (!this.isBrowser) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const siteKey = this.config?.siteKey?.trim();
|
|
80
|
+
if (!siteKey) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.bindConsentListener();
|
|
84
|
+
if (this.config?.consentMode) {
|
|
85
|
+
this.injectConsentModeDefaults();
|
|
86
|
+
}
|
|
87
|
+
// Expose the key the way embed.js expects (window.consentx_key), matching
|
|
88
|
+
// the canonical embed contract.
|
|
89
|
+
this.document.defaultView.consentx_key = siteKey;
|
|
90
|
+
if (this.document.getElementById(SCRIPT_ID)) {
|
|
91
|
+
// Already injected — make sure the loaded flag reflects reality.
|
|
92
|
+
this.patchState({ loaded: true });
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const head = this.document.head || this.document.getElementsByTagName('head')[0];
|
|
96
|
+
if (!head) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const script = this.document.createElement('script');
|
|
100
|
+
script.id = SCRIPT_ID;
|
|
101
|
+
script.type = 'module';
|
|
102
|
+
script.src = `${this.appUrl}/api/${encodeURIComponent(siteKey)}/embed.js`;
|
|
103
|
+
script.setAttribute('data-consentx', siteKey);
|
|
104
|
+
script.async = true;
|
|
105
|
+
script.addEventListener('load', () => {
|
|
106
|
+
this.zone.run(() => this.patchState({ loaded: true }));
|
|
107
|
+
});
|
|
108
|
+
script.addEventListener('error', () => {
|
|
109
|
+
// eslint-disable-next-line no-console
|
|
110
|
+
console.error(`[ConsentX] Failed to load embed from ${script.src}`);
|
|
111
|
+
});
|
|
112
|
+
head.appendChild(script);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Open the ConsentX preferences dialog. Requires the embed to have loaded and
|
|
116
|
+
* exposed `window.ConsentX`. Returns `true` if the call was dispatched.
|
|
117
|
+
*/
|
|
118
|
+
openPreferences() {
|
|
119
|
+
if (!this.isBrowser) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
const api = this.document.defaultView?.ConsentX;
|
|
123
|
+
if (api && typeof api.open === 'function') {
|
|
124
|
+
api.open();
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
/** Latest granted category slugs (synchronous snapshot). */
|
|
130
|
+
getGranted() {
|
|
131
|
+
return this.stateSubject.value.granted;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Whether the visitor has granted a specific consent category slug, e.g.
|
|
135
|
+
* `hasConsent('analytics')`.
|
|
136
|
+
*/
|
|
137
|
+
hasConsent(slug) {
|
|
138
|
+
return this.stateSubject.value.granted.includes(slug);
|
|
139
|
+
}
|
|
140
|
+
/** Current full state snapshot (synchronous). */
|
|
141
|
+
getState() {
|
|
142
|
+
return this.stateSubject.value;
|
|
143
|
+
}
|
|
144
|
+
ngOnDestroy() {
|
|
145
|
+
if (this.isBrowser && this.boundConsentListener) {
|
|
146
|
+
this.document.defaultView?.removeEventListener('cx:consent', this.boundConsentListener);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// --- internals -----------------------------------------------------------
|
|
150
|
+
/**
|
|
151
|
+
* Print the Google Consent Mode v2 denied-by-default stub before any
|
|
152
|
+
* analytics tag fires. Idempotent. Mirrors the canonical embed contract.
|
|
153
|
+
*/
|
|
154
|
+
injectConsentModeDefaults() {
|
|
155
|
+
const win = this.document.defaultView;
|
|
156
|
+
if (!win) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (this.document.getElementById(CONSENT_MODE_ID)) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
win.dataLayer = win.dataLayer || [];
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
164
|
+
const gtag = (...args) => win.dataLayer.push(args);
|
|
165
|
+
gtag('consent', 'default', {
|
|
166
|
+
ad_storage: 'denied',
|
|
167
|
+
analytics_storage: 'denied',
|
|
168
|
+
ad_user_data: 'denied',
|
|
169
|
+
ad_personalization: 'denied',
|
|
170
|
+
functionality_storage: 'denied',
|
|
171
|
+
personalization_storage: 'denied',
|
|
172
|
+
security_storage: 'granted',
|
|
173
|
+
wait_for_update: 500,
|
|
174
|
+
});
|
|
175
|
+
// Marker so a second call (or a duplicate inline tag) is a no-op.
|
|
176
|
+
const marker = this.document.createElement('script');
|
|
177
|
+
marker.id = CONSENT_MODE_ID;
|
|
178
|
+
marker.type = 'application/json';
|
|
179
|
+
marker.textContent = '{"consentx":"consent-mode-defaults"}';
|
|
180
|
+
(this.document.head || this.document.documentElement).appendChild(marker);
|
|
181
|
+
}
|
|
182
|
+
/** Subscribe to the widget's `cx:consent` events exactly once. */
|
|
183
|
+
bindConsentListener() {
|
|
184
|
+
if (this.listenerBound || !this.isBrowser) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const win = this.document.defaultView;
|
|
188
|
+
if (!win) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
this.boundConsentListener = (event) => {
|
|
192
|
+
const detail = event.detail;
|
|
193
|
+
const granted = Array.isArray(detail?.granted) ? detail.granted : [];
|
|
194
|
+
// Re-enter Angular so bound templates/observables update.
|
|
195
|
+
this.zone.run(() => this.patchState({
|
|
196
|
+
decided: true,
|
|
197
|
+
granted,
|
|
198
|
+
detail: detail ?? null,
|
|
199
|
+
}));
|
|
200
|
+
};
|
|
201
|
+
win.addEventListener('cx:consent', this.boundConsentListener);
|
|
202
|
+
this.listenerBound = true;
|
|
203
|
+
}
|
|
204
|
+
patchState(partial) {
|
|
205
|
+
this.stateSubject.next({ ...this.stateSubject.value, ...partial });
|
|
206
|
+
}
|
|
207
|
+
/** Resolve + sanitise the app host (strip trailing slash). */
|
|
208
|
+
normalizeAppUrl(url) {
|
|
209
|
+
const raw = (url || CONSENTX_DEFAULT_APP_URL).trim();
|
|
210
|
+
return raw.replace(/\/+$/, '');
|
|
211
|
+
}
|
|
212
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsentXService, deps: [{ token: CONSENTX_CONFIG, optional: true }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
213
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsentXService, providedIn: 'root' });
|
|
214
|
+
}
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsentXService, decorators: [{
|
|
216
|
+
type: Injectable,
|
|
217
|
+
args: [{ providedIn: 'root' }]
|
|
218
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
219
|
+
type: Optional
|
|
220
|
+
}, {
|
|
221
|
+
type: Inject,
|
|
222
|
+
args: [CONSENTX_CONFIG]
|
|
223
|
+
}] }, { type: undefined, decorators: [{
|
|
224
|
+
type: Inject,
|
|
225
|
+
args: [PLATFORM_ID]
|
|
226
|
+
}] }, { type: Document, decorators: [{
|
|
227
|
+
type: Inject,
|
|
228
|
+
args: [DOCUMENT]
|
|
229
|
+
}] }, { type: i0.NgZone }] });
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29uc2VudHguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFHVixRQUFRLEVBQ1IsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHdCQUF3QixHQUt6QixNQUFNLGtCQUFrQixDQUFDOztBQUUxQixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztBQUNuQyxNQUFNLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQztBQUVoRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQXVCOEI7SUFFbkI7SUFDbEI7SUF6QkYsTUFBTSxDQUFTO0lBQ2YsU0FBUyxDQUFVO0lBQzVCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsb0JBQW9CLENBQTBCO0lBRXJDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0I7UUFDakUsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsS0FBSztRQUNkLE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLElBQUk7S0FDYixDQUFDLENBQUM7SUFFSCxzRUFBc0U7SUFDN0QsTUFBTSxHQUE4QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTlFLHdEQUF3RDtJQUMvQyxRQUFRLEdBQStCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM5RCxH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QU8sRUFBRSxJQUFJO2dCQUNiLE9BQU87Z0JBQ1AsTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJO2FBQ3ZCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBQ0YsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsb0JBQXFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQStCO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxlQUFlLENBQUMsR0FBWTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0E5TlUsZUFBZSxrQkF1QkosZUFBZSw2QkFDM0IsV0FBVyxhQUNYLFFBQVE7NEdBekJQLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQXdCN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENPTlNFTlRYX0NPTkZJRyB9IGZyb20gJy4vY29uc2VudHgudG9rZW5zJztcbmltcG9ydCB7XG4gIENPTlNFTlRYX0RFRkFVTFRfQVBQX1VSTCxcbiAgQ29uc2VudEdyYW50ZWQsXG4gIENvbnNlbnRYQ29uZmlnLFxuICBDb25zZW50WENvbnNlbnREZXRhaWwsXG4gIENvbnNlbnRYU3RhdGUsXG59IGZyb20gJy4vY29uc2VudHgudHlwZXMnO1xuXG5jb25zdCBTQ1JJUFRfSUQgPSAnY29uc2VudHgtZW1iZWQnO1xuY29uc3QgQ09OU0VOVF9NT0RFX0lEID0gJ2NvbnNlbnR4LWNvbnNlbnQtbW9kZSc7XG5cbi8qKlxuICogSW5qZWN0cyB0aGUgQ29uc2VudFggZW1iZWQgc2NyaXB0IChgL2FwaS9TSVRFX0tFWS9lbWJlZC5qc2ApIGludG8gYDxoZWFkPmBcbiAqIGFuZCBleHBvc2VzIHRoZSB2aXNpdG9yJ3MgY29uc2VudCBzdGF0ZSwgZGVyaXZlZCBmcm9tIHRoZSB3aWRnZXQnc1xuICogYGN4OmNvbnNlbnRgIGV2ZW50cy5cbiAqXG4gKiBTaXRlLWtleSBtb2RlbCAoQ29ubmVjdCBzcGVjLCBNb2RlbCBDKTogbm8gcmVkaXJlY3QgaGFuZHNoYWtlLiBUaGUgU2l0ZSBLZXlcbiAqIGlzIHN1cHBsaWVkIHZpYSBjb25maWd1cmF0aW9uOyB0aGlzIHNlcnZpY2Ugb25seSBwZXJmb3JtcyBjbGVhbiBlbWJlZFxuICogaW5qZWN0aW9uIHBsdXMgYSBjb25zZW50IGhvb2suXG4gKlxuICogVGhlIHNlcnZpY2UgaXMgYHByb3ZpZGVkSW46ICdyb290J2Agc28gaXQgaXMgYSBzaW5nbGV0b24gYWNyb3NzIHRoZSBhcHAuIEl0XG4gKiBpcyBTU1Itc2FmZTogYWxsIERPTSBhY2Nlc3MgaXMgZ3VhcmRlZCBiZWhpbmQgYGlzUGxhdGZvcm1Ccm93c2VyYCwgc28gaXQgaXMgYVxuICogbm8tb3Agb24gdGhlIHNlcnZlciBhbmQgcnVucyBvbmNlIHRoZSBhcHAgYm9vdHMgaW4gdGhlIGJyb3dzZXIuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uc2VudFhTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG4gIHByaXZhdGUgbGlzdGVuZXJCb3VuZCA9IGZhbHNlO1xuICBwcml2YXRlIGJvdW5kQ29uc2VudExpc3RlbmVyPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uc2VudFhTdGF0ZT4oe1xuICAgIGxvYWRlZDogZmFsc2UsXG4gICAgZGVjaWRlZDogZmFsc2UsXG4gICAgZ3JhbnRlZDogW10sXG4gICAgZGV0YWlsOiBudWxsLFxuICB9KTtcblxuICAvKiogRnVsbCBjb25zZW50IHN0YXRlIGFzIGFuIG9ic2VydmFibGUuIEVtaXRzIGFuIGluaXRpYWwgc25hcHNob3QuICovXG4gIHJlYWRvbmx5IHN0YXRlJDogT2JzZXJ2YWJsZTxDb25zZW50WFN0YXRlPiA9IHRoaXMuc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKiBDb252ZW5pZW5jZSBzdHJlYW0gb2YgdGhlIGdyYW50ZWQgY2F0ZWdvcnkgc2x1Z3MuICovXG4gIHJlYWRvbmx5IGdyYW50ZWQkOiBPYnNlcnZhYmxlPENvbnNlbnRHcmFudGVkPiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKChzKSA9PiBzLmdyYW50ZWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodiwgaSkgPT4gdiA9PT0gYltpXSkpLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ09OU0VOVFhfQ09ORklHKSBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ29uc2VudFhDb25maWcgfCBudWxsLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IG9iamVjdCxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcbiAgICB0aGlzLmFwcFVybCA9IHRoaXMubm9ybWFsaXplQXBwVXJsKHRoaXMuY29uZmlnPy5hcHBVcmwpO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZz8uc2l0ZUtleSkge1xuICAgICAgLy8gTWlzY29uZmlndXJhdGlvbiBpcyBsb3VkIGJ1dCBub24tZmF0YWw6IHRoZSBhcHAga2VlcHMgd29ya2luZyB3aXRob3V0XG4gICAgICAvLyB0aGUgYmFubmVyIGluc3RlYWQgb2YgY3Jhc2hpbmcgYm9vdHN0cmFwLlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdbQ29uc2VudFhdIE5vIHNpdGVLZXkgcHJvdmlkZWQuIFBhc3MgeyBzaXRlS2V5IH0gdG8gQ29uc2VudFhNb2R1bGUuZm9yUm9vdCgpICcgK1xuICAgICAgICAgICdvciBwcm92aWRlQ29uc2VudFgoKS4gQ29weSB0aGUgU2l0ZSBLZXkgZnJvbSB0aGUgQ29uc2VudFggZGFzaGJvYXJkIC0+ICcgK1xuICAgICAgICAgICdXZWJzaXRlcyAtPiB5b3VyIHNpdGUuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF1dG8taW5pdCBlbnRyeSBwb2ludC4gQ2FsbGVkIG9uY2UgZHVyaW5nIGFwcCBpbml0aWFsaXNhdGlvbiAodmlhIGFuXG4gICAqIEFQUF9JTklUSUFMSVpFUiByZWdpc3RlcmVkIGJ5IHRoZSBtb2R1bGUvcHJvdmlkZXIpIHVubGVzcyBgbWFudWFsTG9hZGAgaXNcbiAgICogc2V0LiBCaW5kcyB0aGUgY29uc2VudCBsaXN0ZW5lciBhbmQgaW5qZWN0cyB0aGUgZW1iZWQuXG4gICAqL1xuICBpbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5iaW5kQ29uc2VudExpc3RlbmVyKCk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZz8ubWFudWFsTG9hZCkge1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdCB0aGUgQ29uc2VudFggZW1iZWQgaW50byBgPGhlYWQ+YC4gSWRlbXBvdGVudDogYSBzZWNvbmQgY2FsbCBpcyBhXG4gICAqIG5vLW9wIGlmIHRoZSBzY3JpcHQgaXMgYWxyZWFkeSBwcmVzZW50LiBTYWZlIHRvIGNhbGwgbWFudWFsbHkgd2hlblxuICAgKiBgbWFudWFsTG9hZGAgaXMgZW5hYmxlZCAoZS5nLiBhZnRlciBhIGNvb2tpZS1wb2xpY3kgcm91dGUgaXMgcmVhY2hlZCkuXG4gICAqL1xuICBsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2l0ZUtleSA9IHRoaXMuY29uZmlnPy5zaXRlS2V5Py50cmltKCk7XG4gICAgaWYgKCFzaXRlS2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5iaW5kQ29uc2VudExpc3RlbmVyKCk7XG5cbiAgICBpZiAodGhpcy5jb25maWc/LmNvbnNlbnRNb2RlKSB7XG4gICAgICB0aGlzLmluamVjdENvbnNlbnRNb2RlRGVmYXVsdHMoKTtcbiAgICB9XG5cbiAgICAvLyBFeHBvc2UgdGhlIGtleSB0aGUgd2F5IGVtYmVkLmpzIGV4cGVjdHMgKHdpbmRvdy5jb25zZW50eF9rZXkpLCBtYXRjaGluZ1xuICAgIC8vIHRoZSBjYW5vbmljYWwgZW1iZWQgY29udHJhY3QuXG4gICAgdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyEuY29uc2VudHhfa2V5ID0gc2l0ZUtleTtcblxuICAgIGlmICh0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNDUklQVF9JRCkpIHtcbiAgICAgIC8vIEFscmVhZHkgaW5qZWN0ZWQg4oCUIG1ha2Ugc3VyZSB0aGUgbG9hZGVkIGZsYWcgcmVmbGVjdHMgcmVhbGl0eS5cbiAgICAgIHRoaXMucGF0Y2hTdGF0ZSh7IGxvYWRlZDogdHJ1ZSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkID0gdGhpcy5kb2N1bWVudC5oZWFkIHx8IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICBpZiAoIWhlYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC5pZCA9IFNDUklQVF9JRDtcbiAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnO1xuICAgIHNjcmlwdC5zcmMgPSBgJHt0aGlzLmFwcFVybH0vYXBpLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHNpdGVLZXkpfS9lbWJlZC5qc2A7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1jb25zZW50eCcsIHNpdGVLZXkpO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG5cbiAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5wYXRjaFN0YXRlKHsgbG9hZGVkOiB0cnVlIH0pKTtcbiAgICB9KTtcbiAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcihgW0NvbnNlbnRYXSBGYWlsZWQgdG8gbG9hZCBlbWJlZCBmcm9tICR7c2NyaXB0LnNyY31gKTtcbiAgICB9KTtcblxuICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBDb25zZW50WCBwcmVmZXJlbmNlcyBkaWFsb2cuIFJlcXVpcmVzIHRoZSBlbWJlZCB0byBoYXZlIGxvYWRlZCBhbmRcbiAgICogZXhwb3NlZCBgd2luZG93LkNvbnNlbnRYYC4gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNhbGwgd2FzIGRpc3BhdGNoZWQuXG4gICAqL1xuICBvcGVuUHJlZmVyZW5jZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBhcGkgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5Db25zZW50WDtcbiAgICBpZiAoYXBpICYmIHR5cGVvZiBhcGkub3BlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYXBpLm9wZW4oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogTGF0ZXN0IGdyYW50ZWQgY2F0ZWdvcnkgc2x1Z3MgKHN5bmNocm9ub3VzIHNuYXBzaG90KS4gKi9cbiAgZ2V0R3JhbnRlZCgpOiBDb25zZW50R3JhbnRlZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlLmdyYW50ZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdmlzaXRvciBoYXMgZ3JhbnRlZCBhIHNwZWNpZmljIGNvbnNlbnQgY2F0ZWdvcnkgc2x1ZywgZS5nLlxuICAgKiBgaGFzQ29uc2VudCgnYW5hbHl0aWNzJylgLlxuICAgKi9cbiAgaGFzQ29uc2VudChzbHVnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmplY3QudmFsdWUuZ3JhbnRlZC5pbmNsdWRlcyhzbHVnKTtcbiAgfVxuXG4gIC8qKiBDdXJyZW50IGZ1bGwgc3RhdGUgc25hcHNob3QgKHN5bmNocm9ub3VzKS4gKi9cbiAgZ2V0U3RhdGUoKTogQ29uc2VudFhTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyICYmIHRoaXMuYm91bmRDb25zZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdjeDpjb25zZW50JyxcbiAgICAgICAgdGhpcy5ib3VuZENvbnNlbnRMaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFByaW50IHRoZSBHb29nbGUgQ29uc2VudCBNb2RlIHYyIGRlbmllZC1ieS1kZWZhdWx0IHN0dWIgYmVmb3JlIGFueVxuICAgKiBhbmFseXRpY3MgdGFnIGZpcmVzLiBJZGVtcG90ZW50LiBNaXJyb3JzIHRoZSBjYW5vbmljYWwgZW1iZWQgY29udHJhY3QuXG4gICAqL1xuICBwcml2YXRlIGluamVjdENvbnNlbnRNb2RlRGVmYXVsdHMoKTogdm9pZCB7XG4gICAgY29uc3Qgd2luID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICBpZiAoIXdpbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChDT05TRU5UX01PREVfSUQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbi5kYXRhTGF5ZXIgPSB3aW4uZGF0YUxheWVyIHx8IFtdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgZ3RhZyA9ICguLi5hcmdzOiB1bmtub3duW10pID0+ICh3aW4uZGF0YUxheWVyIGFzIGFueVtdKS5wdXNoKGFyZ3MpO1xuICAgIGd0YWcoJ2NvbnNlbnQnLCAnZGVmYXVsdCcsIHtcbiAgICAgIGFkX3N0b3JhZ2U6ICdkZW5pZWQnLFxuICAgICAgYW5hbHl0aWNzX3N0b3JhZ2U6ICdkZW5pZWQnLFxuICAgICAgYWRfdXNlcl9kYXRhOiAnZGVuaWVkJyxcbiAgICAgIGFkX3BlcnNvbmFsaXphdGlvbjogJ2RlbmllZCcsXG4gICAgICBmdW5jdGlvbmFsaXR5X3N0b3JhZ2U6ICdkZW5pZWQnLFxuICAgICAgcGVyc29uYWxpemF0aW9uX3N0b3JhZ2U6ICdkZW5pZWQnLFxuICAgICAgc2VjdXJpdHlfc3RvcmFnZTogJ2dyYW50ZWQnLFxuICAgICAgd2FpdF9mb3JfdXBkYXRlOiA1MDAsXG4gICAgfSk7XG4gICAgLy8gTWFya2VyIHNvIGEgc2Vjb25kIGNhbGwgKG9yIGEgZHVwbGljYXRlIGlubGluZSB0YWcpIGlzIGEgbm8tb3AuXG4gICAgY29uc3QgbWFya2VyID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBtYXJrZXIuaWQgPSBDT05TRU5UX01PREVfSUQ7XG4gICAgbWFya2VyLnR5cGUgPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgbWFya2VyLnRleHRDb250ZW50ID0gJ3tcImNvbnNlbnR4XCI6XCJjb25zZW50LW1vZGUtZGVmYXVsdHNcIn0nO1xuICAgICh0aGlzLmRvY3VtZW50LmhlYWQgfHwgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmFwcGVuZENoaWxkKG1hcmtlcik7XG4gIH1cblxuICAvKiogU3Vic2NyaWJlIHRvIHRoZSB3aWRnZXQncyBgY3g6Y29uc2VudGAgZXZlbnRzIGV4YWN0bHkgb25jZS4gKi9cbiAgcHJpdmF0ZSBiaW5kQ29uc2VudExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RlbmVyQm91bmQgfHwgIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHdpbiA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgaWYgKCF3aW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5ib3VuZENvbnNlbnRMaXN0ZW5lciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGRldGFpbCA9IChldmVudCBhcyBDdXN0b21FdmVudDxDb25zZW50WENvbnNlbnREZXRhaWw+KS5kZXRhaWw7XG4gICAgICBjb25zdCBncmFudGVkID0gQXJyYXkuaXNBcnJheShkZXRhaWw/LmdyYW50ZWQpID8gZGV0YWlsIS5ncmFudGVkIDogW107XG4gICAgICAvLyBSZS1lbnRlciBBbmd1bGFyIHNvIGJvdW5kIHRlbXBsYXRlcy9vYnNlcnZhYmxlcyB1cGRhdGUuXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+XG4gICAgICAgIHRoaXMucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgZGVjaWRlZDogdHJ1ZSxcbiAgICAgICAgICBncmFudGVkLFxuICAgICAgICAgIGRldGFpbDogZGV0YWlsID8/IG51bGwsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICAgIHdpbi5hZGRFdmVudExpc3RlbmVyKCdjeDpjb25zZW50JywgdGhpcy5ib3VuZENvbnNlbnRMaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICB0aGlzLmxpc3RlbmVyQm91bmQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaFN0YXRlKHBhcnRpYWw6IFBhcnRpYWw8Q29uc2VudFhTdGF0ZT4pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHsgLi4udGhpcy5zdGF0ZVN1YmplY3QudmFsdWUsIC4uLnBhcnRpYWwgfSk7XG4gIH1cblxuICAvKiogUmVzb2x2ZSArIHNhbml0aXNlIHRoZSBhcHAgaG9zdCAoc3RyaXAgdHJhaWxpbmcgc2xhc2gpLiAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZUFwcFVybCh1cmw/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhdyA9ICh1cmwgfHwgQ09OU0VOVFhfREVGQVVMVF9BUFBfVVJMKS50cmltKCk7XG4gICAgcmV0dXJuIHJhdy5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* DI token carrying the resolved {@link ConsentXConfig}. Provided by
|
|
4
|
+
* `ConsentXModule.forRoot(...)` or `provideConsentX(...)`.
|
|
5
|
+
*/
|
|
6
|
+
export const CONSENTX_CONFIG = new InjectionToken('CONSENTX_CONFIG');
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHgudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zZW50eC50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWlCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc2VudFhDb25maWcgfSBmcm9tICcuL2NvbnNlbnR4LnR5cGVzJztcblxuLyoqXG4gKiBESSB0b2tlbiBjYXJyeWluZyB0aGUgcmVzb2x2ZWQge0BsaW5rIENvbnNlbnRYQ29uZmlnfS4gUHJvdmlkZWQgYnlcbiAqIGBDb25zZW50WE1vZHVsZS5mb3JSb290KC4uLilgIG9yIGBwcm92aWRlQ29uc2VudFgoLi4uKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBDT05TRU5UWF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29uc2VudFhDb25maWc+KCdDT05TRU5UWF9DT05GSUcnKTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for @consentx/angular.
|
|
3
|
+
*
|
|
4
|
+
* ConsentX runs on the site-key model (Model C in the Connect spec): the user
|
|
5
|
+
* pastes the Site Key copied from the ConsentX dashboard (Websites -> their
|
|
6
|
+
* site) and ensures their domain is on that site's allowlist. The embed then
|
|
7
|
+
* loads with no server-side handshake.
|
|
8
|
+
*/
|
|
9
|
+
/** Default ConsentX application host (no trailing slash). */
|
|
10
|
+
export const CONSENTX_DEFAULT_APP_URL = 'https://app.consentx.io';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2VudHgudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnNlbnR4LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFFSCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyB0eXBlcyBmb3IgQGNvbnNlbnR4L2FuZ3VsYXIuXG4gKlxuICogQ29uc2VudFggcnVucyBvbiB0aGUgc2l0ZS1rZXkgbW9kZWwgKE1vZGVsIEMgaW4gdGhlIENvbm5lY3Qgc3BlYyk6IHRoZSB1c2VyXG4gKiBwYXN0ZXMgdGhlIFNpdGUgS2V5IGNvcGllZCBmcm9tIHRoZSBDb25zZW50WCBkYXNoYm9hcmQgKFdlYnNpdGVzIC0+IHRoZWlyXG4gKiBzaXRlKSBhbmQgZW5zdXJlcyB0aGVpciBkb21haW4gaXMgb24gdGhhdCBzaXRlJ3MgYWxsb3dsaXN0LiBUaGUgZW1iZWQgdGhlblxuICogbG9hZHMgd2l0aCBubyBzZXJ2ZXItc2lkZSBoYW5kc2hha2UuXG4gKi9cblxuLyoqIERlZmF1bHQgQ29uc2VudFggYXBwbGljYXRpb24gaG9zdCAobm8gdHJhaWxpbmcgc2xhc2gpLiAqL1xuZXhwb3J0IGNvbnN0IENPTlNFTlRYX0RFRkFVTFRfQVBQX1VSTCA9ICdodHRwczovL2FwcC5jb25zZW50eC5pbyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwYXNzZWQgdG8gYENvbnNlbnRYTW9kdWxlLmZvclJvb3QoLi4uKWAgKE5nTW9kdWxlIGFwcHMpIG9yXG4gKiBgcHJvdmlkZUNvbnNlbnRYKC4uLilgIChzdGFuZGFsb25lIGFwcHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNlbnRYQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBDb25zZW50WCBTaXRlIEtleSBmb3IgdGhpcyB3ZWJzaXRlLiBDb3B5IGl0IGZyb20gdGhlIENvbnNlbnRYXG4gICAqIGRhc2hib2FyZCAtPiBXZWJzaXRlcyAtPiB5b3VyIHNpdGUuIFJlcXVpcmVkLlxuICAgKi9cbiAgc2l0ZUtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgQ29uc2VudFggYXBwIGhvc3QgKHNjaGVtZSArIGhvc3QsIG5vIHRyYWlsaW5nIHNsYXNoKS5cbiAgICogRGVmYXVsdHMgdG8gYGh0dHBzOi8vYXBwLmNvbnNlbnR4LmlvYC4gVXNlIHRoaXMgZm9yIHN0YWdpbmcgaG9zdHMgc3VjaCBhc1xuICAgKiBgaHR0cHM6Ly9jb25zZW50eDEuc2F0eWFtcmFzdG9naS5jb21gLlxuICAgKi9cbiAgYXBwVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgdGhlIHNlcnZpY2UgcHJpbnRzIHRoZSBHb29nbGUgQ29uc2VudCBNb2RlIHYyXG4gICAqIGRlbmllZC1ieS1kZWZhdWx0IHN0dWIgaW50byBgPGhlYWQ+YCBiZWZvcmUgdGhlIGVtYmVkIGxvYWRzLCBzbyBhbnlcbiAgICogYW5hbHl0aWNzIHRhZyB0aGF0IGZpcmVzIGJlZm9yZSBjb25zZW50IHN0YXJ0cyBkZW5pZWQuIFRoZSBDb25zZW50WFxuICAgKiB3aWRnZXQgZW1pdHMgdGhlIGBndGFnKCdjb25zZW50JywndXBkYXRlJywuLi4pYCBjYWxscyBvbiB0aGUgdmlzaXRvcidzXG4gICAqIGNob2ljZS4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIGNvbnNlbnRNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSBhdXRvbWF0aWMgZW1iZWQgaW5qZWN0aW9uIG9uIGFwcCBpbml0LiBTZXQgdGhpcyB0byBgdHJ1ZWAgaWYgeW91XG4gICAqIHdhbnQgdG8gY2FsbCBgQ29uc2VudFhTZXJ2aWNlLmxvYWQoKWAgeW91cnNlbGYgYXQgYSBjdXN0b20gcG9pbnQuXG4gICAqIERlZmF1bHRzIHRvIGBmYWxzZWAgKGF1dG8taW5qZWN0IG9uIGluaXQpLlxuICAgKi9cbiAgbWFudWFsTG9hZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgY2F0ZWdvcnkgc2x1Z3MgYSB2aXNpdG9yIGhhcyBncmFudGVkLCBlLmcuIGBbJ2FuYWx5dGljcycsJ21hcmtldGluZyddYC4gKi9cbmV4cG9ydCB0eXBlIENvbnNlbnRHcmFudGVkID0gc3RyaW5nW107XG5cbi8qKlxuICogVGhlIGRldGFpbCBwYXlsb2FkIG9mIHRoZSBgY3g6Y29uc2VudGAgYnJvd3NlciBldmVudCBlbWl0dGVkIGJ5IHRoZSBDb25zZW50WFxuICogd2lkZ2V0LiBgZ3JhbnRlZGAgaXMgdGhlIGFycmF5IG9mIGdyYW50ZWQgY2F0ZWdvcnkgc2x1Z3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc2VudFhDb25zZW50RGV0YWlsIHtcbiAgZ3JhbnRlZDogQ29uc2VudEdyYW50ZWQ7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKiBTbmFwc2hvdCBvZiBjb25zZW50IHN0YXRlIGV4cG9zZWQgYnkgYENvbnNlbnRYU2VydmljZS5zdGF0ZSRgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zZW50WFN0YXRlIHtcbiAgLyoqIFdoZXRoZXIgdGhlIGVtYmVkIHNjcmlwdCBoYXMgbG9hZGVkIGludG8gdGhlIHBhZ2UuICovXG4gIGxvYWRlZDogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgYSBgY3g6Y29uc2VudGAgZXZlbnQgaGFzIGJlZW4gcmVjZWl2ZWQgdGhpcyBzZXNzaW9uLiAqL1xuICBkZWNpZGVkOiBib29sZWFuO1xuICAvKiogR3JhbnRlZCBjYXRlZ29yeSBzbHVncyBmcm9tIHRoZSBsYXRlc3QgYGN4OmNvbnNlbnRgIGV2ZW50LiAqL1xuICBncmFudGVkOiBDb25zZW50R3JhbnRlZDtcbiAgLyoqIFJhdyBkZXRhaWwgb2YgdGhlIGxhdGVzdCBgY3g6Y29uc2VudGAgZXZlbnQsIGlmIGFueS4gKi9cbiAgZGV0YWlsOiBDb25zZW50WENvbnNlbnREZXRhaWwgfCBudWxsO1xufVxuXG4vKipcbiAqIFRoZSBgd2luZG93LkNvbnNlbnRYYCBBUEkgdGhlIHdpZGdldCBleHBvc2VzIG9uY2UgbG9hZGVkLiBDdXJyZW50bHkgdXNlZCB0b1xuICogcmUtb3BlbiB0aGUgcHJlZmVyZW5jZXMgZGlhbG9nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNlbnRYV2lkZ2V0QXBpIHtcbiAgb3Blbj86ICgpID0+IHZvaWQ7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLyoqIENhcnJpZXMgdGhlIGNvbm5lY3RlZCBTaXRlIEtleSBmb3IgdGhlIGVtYmVkIChyZWFkIGJ5IGVtYmVkLmpzKS4gKi9cbiAgICBjb25zZW50eF9rZXk/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB3aWRnZXQgQVBJLCBwcmVzZW50IG9uY2UgZW1iZWQuanMgaGFzIGluaXRpYWxpc2VkLiAqL1xuICAgIENvbnNlbnRYPzogQ29uc2VudFhXaWRnZXRBcGk7XG4gICAgZGF0YUxheWVyPzogdW5rbm93bltdO1xuICB9XG5cbiAgaW50ZXJmYWNlIFdpbmRvd0V2ZW50TWFwIHtcbiAgICAnY3g6Y29uc2VudCc6IEN1c3RvbUV2ZW50PENvbnNlbnRYQ29uc2VudERldGFpbD47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API surface of @consentx/angular.
|
|
3
|
+
*/
|
|
4
|
+
export { ConsentXModule } from './lib/consentx.module';
|
|
5
|
+
export { ConsentXService } from './lib/consentx.service';
|
|
6
|
+
export { provideConsentX, consentxInitFactory, consentxRootProviders, } from './lib/consentx.providers';
|
|
7
|
+
export { CONSENTX_CONFIG } from './lib/consentx.tokens';
|
|
8
|
+
export { CONSENTX_DEFAULT_APP_URL, } from './lib/consentx.types';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsR0FDdEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHdCQUF3QixHQU16QixNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgc3VyZmFjZSBvZiBAY29uc2VudHgvYW5ndWxhci5cbiAqL1xuXG5leHBvcnQgeyBDb25zZW50WE1vZHVsZSB9IGZyb20gJy4vbGliL2NvbnNlbnR4Lm1vZHVsZSc7XG5leHBvcnQgeyBDb25zZW50WFNlcnZpY2UgfSBmcm9tICcuL2xpYi9jb25zZW50eC5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIHByb3ZpZGVDb25zZW50WCxcbiAgY29uc2VudHhJbml0RmFjdG9yeSxcbiAgY29uc2VudHhSb290UHJvdmlkZXJzLFxufSBmcm9tICcuL2xpYi9jb25zZW50eC5wcm92aWRlcnMnO1xuZXhwb3J0IHsgQ09OU0VOVFhfQ09ORklHIH0gZnJvbSAnLi9saWIvY29uc2VudHgudG9rZW5zJztcbmV4cG9ydCB7XG4gIENPTlNFTlRYX0RFRkFVTFRfQVBQX1VSTCxcbiAgQ29uc2VudFhDb25maWcsXG4gIENvbnNlbnRYU3RhdGUsXG4gIENvbnNlbnRHcmFudGVkLFxuICBDb25zZW50WENvbnNlbnREZXRhaWwsXG4gIENvbnNlbnRYV2lkZ2V0QXBpLFxufSBmcm9tICcuL2xpYi9jb25zZW50eC50eXBlcyc7XG4iXX0=
|