@contentpass/react-native-contentpass-cmp-onetrust 0.1.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/lib/commonjs/OnetrustCmpAdapter.js +138 -0
- package/lib/commonjs/OnetrustCmpAdapter.js.map +1 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/purposes.js +58 -0
- package/lib/commonjs/purposes.js.map +1 -0
- package/lib/commonjs/purposes.test.js +242 -0
- package/lib/commonjs/purposes.test.js.map +1 -0
- package/lib/commonjs/react-native-onetrust-cmp.d.js +2 -0
- package/lib/commonjs/react-native-onetrust-cmp.d.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/OnetrustCmpAdapter.js +132 -0
- package/lib/module/OnetrustCmpAdapter.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/purposes.js +54 -0
- package/lib/module/purposes.js.map +1 -0
- package/lib/module/purposes.test.js +242 -0
- package/lib/module/purposes.test.js.map +1 -0
- package/lib/module/react-native-onetrust-cmp.d.js +2 -0
- package/lib/module/react-native-onetrust-cmp.d.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts +41 -0
- package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts +15 -0
- package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts +4 -0
- package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts +6 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts +17 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts +2 -0
- package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/index.d.ts +12 -0
- package/lib/typescript/react-native-contentpass/src/index.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/logger.d.ts +8 -0
- package/lib/typescript/react-native-contentpass/src/logger.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts +9 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts +3 -0
- package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts +14 -0
- package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts +11 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts +28 -0
- package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts +6 -0
- package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/OnetrustCmpAdapter.d.ts +30 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/OnetrustCmpAdapter.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/index.d.ts +4 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/index.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/purposes.d.ts +3 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/purposes.d.ts.map +1 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/types.d.ts +101 -0
- package/lib/typescript/react-native-contentpass-cmp-onetrust/src/types.d.ts.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createOnetrustCmpAdapter = createOnetrustCmpAdapter;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _reactNativeOnetrustCmp = require("react-native-onetrust-cmp");
|
|
9
|
+
var _purposes = require("./purposes");
|
|
10
|
+
async function createOnetrustCmpAdapter(sdk) {
|
|
11
|
+
try {
|
|
12
|
+
const bannerData = await sdk.getBannerData();
|
|
13
|
+
console.log('Banner data', bannerData);
|
|
14
|
+
const preferenceCenterData = await sdk.getPreferenceCenterData();
|
|
15
|
+
console.log('Preference center data', preferenceCenterData);
|
|
16
|
+
return new OnetrustCmpAdapter(sdk, bannerData, preferenceCenterData);
|
|
17
|
+
} catch (error) {
|
|
18
|
+
console.error('Error getting banner or preference center data', error);
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class OnetrustCmpAdapter {
|
|
23
|
+
groupIds = [];
|
|
24
|
+
numVendors = 0;
|
|
25
|
+
tcfPurposes = [];
|
|
26
|
+
eventListeners = new Set();
|
|
27
|
+
eventSubscriptions = [];
|
|
28
|
+
consentStatusChangeListeners = new Set();
|
|
29
|
+
constructor(sdk, bannerData, preferenceCenterData) {
|
|
30
|
+
this.sdk = sdk;
|
|
31
|
+
this.groupIds = preferenceCenterData.purposes.map(({
|
|
32
|
+
groupId
|
|
33
|
+
}) => groupId).filter(Boolean);
|
|
34
|
+
this.numVendors = OnetrustCmpAdapter.getNumVendors(bannerData.bannerUIData?.summary?.description?.text ?? '');
|
|
35
|
+
this.tcfPurposes = (0, _purposes.getTcfPurposes)(preferenceCenterData.purposes);
|
|
36
|
+
this.initializeEventBridge();
|
|
37
|
+
}
|
|
38
|
+
static getNumVendors(description) {
|
|
39
|
+
const match = description.match(/[0-9]+/);
|
|
40
|
+
return match ? parseInt(match[0], 10) : 0;
|
|
41
|
+
}
|
|
42
|
+
async waitForInit() {
|
|
43
|
+
return Promise.resolve();
|
|
44
|
+
}
|
|
45
|
+
async acceptAll() {
|
|
46
|
+
console.debug('[OnetrustCmpAdapter::acceptAll]');
|
|
47
|
+
await this.sdk.saveConsent(_reactNativeOnetrustCmp.OTConsentInteraction.bannerAllowAll);
|
|
48
|
+
const hasFullConsent = await this.hasFullConsent();
|
|
49
|
+
this.emitConsentStatusChange(hasFullConsent);
|
|
50
|
+
}
|
|
51
|
+
async denyAll() {
|
|
52
|
+
console.debug('[OnetrustCmpAdapter::denyAll]');
|
|
53
|
+
await this.sdk.saveConsent(_reactNativeOnetrustCmp.OTConsentInteraction.bannerRejectAll);
|
|
54
|
+
const hasFullConsent = await this.hasFullConsent();
|
|
55
|
+
this.emitConsentStatusChange(hasFullConsent);
|
|
56
|
+
}
|
|
57
|
+
getNumberOfVendors() {
|
|
58
|
+
return Promise.resolve(this.numVendors);
|
|
59
|
+
}
|
|
60
|
+
getRequiredPurposes() {
|
|
61
|
+
return Promise.resolve(this.tcfPurposes);
|
|
62
|
+
}
|
|
63
|
+
showSecondLayer(view) {
|
|
64
|
+
console.debug('[OnetrustCmpAdapter::showSecondLayer]', view);
|
|
65
|
+
return new Promise(resolve => {
|
|
66
|
+
const remove = this.onEvent((eventName, _) => {
|
|
67
|
+
switch (eventName) {
|
|
68
|
+
case _reactNativeOnetrustCmp.OTEventName.hidePreferenceCenter:
|
|
69
|
+
case _reactNativeOnetrustCmp.OTEventName.preferenceCenterAcceptAll:
|
|
70
|
+
case _reactNativeOnetrustCmp.OTEventName.preferenceCenterRejectAll:
|
|
71
|
+
case _reactNativeOnetrustCmp.OTEventName.preferenceCenterConfirmChoices:
|
|
72
|
+
case _reactNativeOnetrustCmp.OTEventName.hideVendorList:
|
|
73
|
+
case _reactNativeOnetrustCmp.OTEventName.vendorConfirmChoices:
|
|
74
|
+
case _reactNativeOnetrustCmp.OTEventName.allSDKViewsDismissed:
|
|
75
|
+
remove();
|
|
76
|
+
resolve();
|
|
77
|
+
break;
|
|
78
|
+
default:
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
if (view === 'vendor') {
|
|
83
|
+
this.sdk.showPreferenceCenterUI();
|
|
84
|
+
} else {
|
|
85
|
+
this.sdk.showConsentPurposesUI();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// FIXME handle reconsent scenarios
|
|
91
|
+
hasFullConsent = async () => {
|
|
92
|
+
console.debug('[OnetrustCmpAdapter::hasFullConsent]');
|
|
93
|
+
const consentStatuses = await Promise.all(this.groupIds.map(groupId => this.sdk.getConsentStatusForCategory(groupId)));
|
|
94
|
+
return consentStatuses.every(consentStatus => consentStatus === 1);
|
|
95
|
+
};
|
|
96
|
+
onConsentStatusChange(callback) {
|
|
97
|
+
this.consentStatusChangeListeners.add(callback);
|
|
98
|
+
setTimeout(() => {
|
|
99
|
+
this.hasFullConsent().then(fullConsent => this.emitConsentStatusChangeEventSingle(fullConsent, callback));
|
|
100
|
+
}, 0);
|
|
101
|
+
return () => this.consentStatusChangeListeners.delete(callback);
|
|
102
|
+
}
|
|
103
|
+
onEvent(callback) {
|
|
104
|
+
this.eventListeners.add(callback);
|
|
105
|
+
return () => {
|
|
106
|
+
this.eventListeners.delete(callback);
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
initializeEventBridge() {
|
|
110
|
+
Object.values(_reactNativeOnetrustCmp.OTEventName).forEach(eventName => {
|
|
111
|
+
const subscription = this.sdk.addEventListener(eventName, data => {
|
|
112
|
+
this.emitEvent(eventName, data);
|
|
113
|
+
});
|
|
114
|
+
this.eventSubscriptions.push(subscription);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
emitEvent(eventName, data) {
|
|
118
|
+
this.eventListeners.forEach(listener => {
|
|
119
|
+
try {
|
|
120
|
+
listener(eventName, data);
|
|
121
|
+
} catch (error) {
|
|
122
|
+
console.error('[OnetrustCmpAdapter::onEvent] listener failed', error);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
emitConsentStatusChange(fullConsent) {
|
|
127
|
+
this.consentStatusChangeListeners.forEach(listener => this.emitConsentStatusChangeEventSingle(fullConsent, listener));
|
|
128
|
+
}
|
|
129
|
+
emitConsentStatusChangeEventSingle(fullConsent, listener) {
|
|
130
|
+
try {
|
|
131
|
+
listener(fullConsent);
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error('[OnetrustCmpAdapter::emitConsentStatusChangeEventSingle] listener failed', error);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.default = OnetrustCmpAdapter;
|
|
138
|
+
//# sourceMappingURL=OnetrustCmpAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeOnetrustCmp","require","_purposes","createOnetrustCmpAdapter","sdk","bannerData","getBannerData","console","log","preferenceCenterData","getPreferenceCenterData","OnetrustCmpAdapter","error","groupIds","numVendors","tcfPurposes","eventListeners","Set","eventSubscriptions","consentStatusChangeListeners","constructor","purposes","map","groupId","filter","Boolean","getNumVendors","bannerUIData","summary","description","text","getTcfPurposes","initializeEventBridge","match","parseInt","waitForInit","Promise","resolve","acceptAll","debug","saveConsent","OTConsentInteraction","bannerAllowAll","hasFullConsent","emitConsentStatusChange","denyAll","bannerRejectAll","getNumberOfVendors","getRequiredPurposes","showSecondLayer","view","remove","onEvent","eventName","_","OTEventName","hidePreferenceCenter","preferenceCenterAcceptAll","preferenceCenterRejectAll","preferenceCenterConfirmChoices","hideVendorList","vendorConfirmChoices","allSDKViewsDismissed","showPreferenceCenterUI","showConsentPurposesUI","consentStatuses","all","getConsentStatusForCategory","every","consentStatus","onConsentStatusChange","callback","add","setTimeout","then","fullConsent","emitConsentStatusChangeEventSingle","delete","Object","values","forEach","subscription","addEventListener","data","emitEvent","push","listener","exports","default"],"sourceRoot":"../../src","sources":["OnetrustCmpAdapter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "createOnetrustCmpAdapter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _OnetrustCmpAdapter.createOnetrustCmpAdapter;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
exports.default = void 0;
|
|
13
|
+
var _OnetrustCmpAdapter = _interopRequireWildcard(require("./OnetrustCmpAdapter"));
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
var _default = exports.default = _OnetrustCmpAdapter.default;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_OnetrustCmpAdapter","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_default","exports","OnetrustCmpAdapter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAE8B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,IAAAW,QAAA,GAAAC,OAAA,CAAAf,OAAA,GAEfgB,2BAAkB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getTcfPurposes = getTcfPurposes;
|
|
7
|
+
const TYPE_MAP = {
|
|
8
|
+
IAB2_PURPOSE: {
|
|
9
|
+
groupIdPrefix: 'IABV2_',
|
|
10
|
+
resultPrefix: ''
|
|
11
|
+
},
|
|
12
|
+
IAB2V2_PURPOSE: {
|
|
13
|
+
groupIdPrefix: 'IAB2V2_',
|
|
14
|
+
resultPrefix: ''
|
|
15
|
+
},
|
|
16
|
+
IAB2_SPL_PURPOSE: {
|
|
17
|
+
groupIdPrefix: 'ISPV2_',
|
|
18
|
+
resultPrefix: 's'
|
|
19
|
+
},
|
|
20
|
+
IAB2V2_SPL_PURPOSE: {
|
|
21
|
+
groupIdPrefix: 'ISP2V2_',
|
|
22
|
+
resultPrefix: 's'
|
|
23
|
+
},
|
|
24
|
+
IAB2_FEATURE: {
|
|
25
|
+
groupIdPrefix: 'IFEV2_',
|
|
26
|
+
resultPrefix: 'f'
|
|
27
|
+
},
|
|
28
|
+
IAB2V2_FEATURE: {
|
|
29
|
+
groupIdPrefix: 'IFE2V2_',
|
|
30
|
+
resultPrefix: 'f'
|
|
31
|
+
},
|
|
32
|
+
IAB2_SPL_FEATURE: {
|
|
33
|
+
groupIdPrefix: 'ISFV2_',
|
|
34
|
+
resultPrefix: 'sf'
|
|
35
|
+
},
|
|
36
|
+
IAB2V2_SPL_FEATURE: {
|
|
37
|
+
groupIdPrefix: 'ISF2V2_',
|
|
38
|
+
resultPrefix: 'sf'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
function getTcfPurposes(purposes) {
|
|
42
|
+
const results = [];
|
|
43
|
+
const visit = purpose => {
|
|
44
|
+
const mapped = TYPE_MAP[purpose.type];
|
|
45
|
+
if (mapped && purpose.groupId?.startsWith(mapped.groupIdPrefix)) {
|
|
46
|
+
const key = purpose.groupId.substring(mapped.groupIdPrefix.length);
|
|
47
|
+
if (key) {
|
|
48
|
+
results.push(`${mapped.resultPrefix}${key}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (purpose.children?.length) {
|
|
52
|
+
purpose.children.forEach(visit);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
purposes.forEach(visit);
|
|
56
|
+
return results;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=purposes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TYPE_MAP","IAB2_PURPOSE","groupIdPrefix","resultPrefix","IAB2V2_PURPOSE","IAB2_SPL_PURPOSE","IAB2V2_SPL_PURPOSE","IAB2_FEATURE","IAB2V2_FEATURE","IAB2_SPL_FEATURE","IAB2V2_SPL_FEATURE","getTcfPurposes","purposes","results","visit","purpose","mapped","type","groupId","startsWith","key","substring","length","push","children","forEach"],"sourceRoot":"../../src","sources":["purposes.ts"],"mappings":";;;;;;AAEA,MAAMA,QAAQ,GAAG;EACfC,YAAY,EAAE;IACZC,aAAa,EAAE,QAAQ;IACvBC,YAAY,EAAE;EAChB,CAAC;EACDC,cAAc,EAAE;IACdF,aAAa,EAAE,SAAS;IACxBC,YAAY,EAAE;EAChB,CAAC;EACDE,gBAAgB,EAAE;IAChBH,aAAa,EAAE,QAAQ;IACvBC,YAAY,EAAE;EAChB,CAAC;EACDG,kBAAkB,EAAE;IAClBJ,aAAa,EAAE,SAAS;IACxBC,YAAY,EAAE;EAChB,CAAC;EACDI,YAAY,EAAE;IACZL,aAAa,EAAE,QAAQ;IACvBC,YAAY,EAAE;EAChB,CAAC;EACDK,cAAc,EAAE;IACdN,aAAa,EAAE,SAAS;IACxBC,YAAY,EAAE;EAChB,CAAC;EACDM,gBAAgB,EAAE;IAChBP,aAAa,EAAE,QAAQ;IACvBC,YAAY,EAAE;EAChB,CAAC;EACDO,kBAAkB,EAAE;IAClBR,aAAa,EAAE,SAAS;IACxBC,YAAY,EAAE;EAChB;AACF,CAAC;AAEM,SAASQ,cAAcA,CAACC,QAAmB,EAAY;EAC5D,MAAMC,OAAiB,GAAG,EAAE;EAE5B,MAAMC,KAAK,GAAIC,OAAgB,IAAK;IAClC,MAAMC,MAAM,GAAGhB,QAAQ,CAACe,OAAO,CAACE,IAAI,CAA0B;IAC9D,IAAID,MAAM,IAAID,OAAO,CAACG,OAAO,EAAEC,UAAU,CAACH,MAAM,CAACd,aAAa,CAAC,EAAE;MAC/D,MAAMkB,GAAG,GAAGL,OAAO,CAACG,OAAO,CAACG,SAAS,CAACL,MAAM,CAACd,aAAa,CAACoB,MAAM,CAAC;MAClE,IAAIF,GAAG,EAAE;QACPP,OAAO,CAACU,IAAI,CAAC,GAAGP,MAAM,CAACb,YAAY,GAAGiB,GAAG,EAAE,CAAC;MAC9C;IACF;IAEA,IAAIL,OAAO,CAACS,QAAQ,EAAEF,MAAM,EAAE;MAC5BP,OAAO,CAACS,QAAQ,CAACC,OAAO,CAACX,KAAK,CAAC;IACjC;EACF,CAAC;EAEDF,QAAQ,CAACa,OAAO,CAACX,KAAK,CAAC;EAEvB,OAAOD,OAAO;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _purposes = require("./purposes");
|
|
4
|
+
const makePurpose = overrides => ({
|
|
5
|
+
purposeId: '',
|
|
6
|
+
descriptionLegal: '',
|
|
7
|
+
legIntStatus: 0,
|
|
8
|
+
vendorsLinkedInfo: '',
|
|
9
|
+
parent: '',
|
|
10
|
+
consentStatus: 0,
|
|
11
|
+
firstPartyCookies: [],
|
|
12
|
+
iabIllustrations: [],
|
|
13
|
+
showSDKListLink: false,
|
|
14
|
+
generalVendorsIds: [],
|
|
15
|
+
groupDescription: '',
|
|
16
|
+
children: [],
|
|
17
|
+
groupName: '',
|
|
18
|
+
isIabPurpose: true,
|
|
19
|
+
consentToggleStatus: 0,
|
|
20
|
+
...overrides
|
|
21
|
+
});
|
|
22
|
+
describe('getTcfPurposes', () => {
|
|
23
|
+
it('should return an empty array when given no purposes', () => {
|
|
24
|
+
expect((0, _purposes.getTcfPurposes)([])).toEqual([]);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// --- IAB2_PURPOSE ---
|
|
28
|
+
|
|
29
|
+
it('should extract key from IAB2_PURPOSE with IABV2_ prefix', () => {
|
|
30
|
+
const purposes = [makePurpose({
|
|
31
|
+
type: 'IAB2_PURPOSE',
|
|
32
|
+
groupId: 'IABV2_1'
|
|
33
|
+
})];
|
|
34
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1']);
|
|
35
|
+
});
|
|
36
|
+
it('should not add a resultPrefix for IAB2_PURPOSE', () => {
|
|
37
|
+
const purposes = [makePurpose({
|
|
38
|
+
type: 'IAB2_PURPOSE',
|
|
39
|
+
groupId: 'IABV2_42'
|
|
40
|
+
})];
|
|
41
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['42']);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// --- IAB2V2_PURPOSE ---
|
|
45
|
+
|
|
46
|
+
it('should extract key from IAB2V2_PURPOSE with IAB2V2_ prefix', () => {
|
|
47
|
+
const purposes = [makePurpose({
|
|
48
|
+
type: 'IAB2V2_PURPOSE',
|
|
49
|
+
groupId: 'IAB2V2_3'
|
|
50
|
+
})];
|
|
51
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['3']);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// --- IAB2_SPL_PURPOSE ---
|
|
55
|
+
|
|
56
|
+
it('should prefix result with "s" for IAB2_SPL_PURPOSE', () => {
|
|
57
|
+
const purposes = [makePurpose({
|
|
58
|
+
type: 'IAB2_SPL_PURPOSE',
|
|
59
|
+
groupId: 'ISPV2_5'
|
|
60
|
+
})];
|
|
61
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['s5']);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// --- IAB2V2_SPL_PURPOSE ---
|
|
65
|
+
|
|
66
|
+
it('should prefix result with "s" for IAB2V2_SPL_PURPOSE', () => {
|
|
67
|
+
const purposes = [makePurpose({
|
|
68
|
+
type: 'IAB2V2_SPL_PURPOSE',
|
|
69
|
+
groupId: 'ISP2V2_7'
|
|
70
|
+
})];
|
|
71
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['s7']);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// --- IAB2_FEATURE ---
|
|
75
|
+
|
|
76
|
+
it('should prefix result with "f" for IAB2_FEATURE', () => {
|
|
77
|
+
const purposes = [makePurpose({
|
|
78
|
+
type: 'IAB2_FEATURE',
|
|
79
|
+
groupId: 'IFEV2_2'
|
|
80
|
+
})];
|
|
81
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['f2']);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// --- IAB2V2_FEATURE ---
|
|
85
|
+
|
|
86
|
+
it('should prefix result with "f" for IAB2V2_FEATURE', () => {
|
|
87
|
+
const purposes = [makePurpose({
|
|
88
|
+
type: 'IAB2V2_FEATURE',
|
|
89
|
+
groupId: 'IFE2V2_9'
|
|
90
|
+
})];
|
|
91
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['f9']);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// --- IAB2_SPL_FEATURE ---
|
|
95
|
+
|
|
96
|
+
it('should prefix result with "sf" for IAB2_SPL_FEATURE', () => {
|
|
97
|
+
const purposes = [makePurpose({
|
|
98
|
+
type: 'IAB2_SPL_FEATURE',
|
|
99
|
+
groupId: 'ISFV2_4'
|
|
100
|
+
})];
|
|
101
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['sf4']);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// --- IAB2V2_SPL_FEATURE ---
|
|
105
|
+
|
|
106
|
+
it('should prefix result with "sf" for IAB2V2_SPL_FEATURE', () => {
|
|
107
|
+
const purposes = [makePurpose({
|
|
108
|
+
type: 'IAB2V2_SPL_FEATURE',
|
|
109
|
+
groupId: 'ISF2V2_6'
|
|
110
|
+
})];
|
|
111
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['sf6']);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// --- filtering & edge cases ---
|
|
115
|
+
|
|
116
|
+
it('should ignore purposes with an unknown type', () => {
|
|
117
|
+
const purposes = [makePurpose({
|
|
118
|
+
type: 'UNKNOWN_TYPE',
|
|
119
|
+
groupId: 'IABV2_1'
|
|
120
|
+
})];
|
|
121
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual([]);
|
|
122
|
+
});
|
|
123
|
+
it('should ignore purposes whose groupId does not start with the expected prefix', () => {
|
|
124
|
+
const purposes = [makePurpose({
|
|
125
|
+
type: 'IAB2_PURPOSE',
|
|
126
|
+
groupId: 'WRONG_1'
|
|
127
|
+
})];
|
|
128
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual([]);
|
|
129
|
+
});
|
|
130
|
+
it('should ignore purposes where groupId equals the prefix exactly (empty key)', () => {
|
|
131
|
+
const purposes = [makePurpose({
|
|
132
|
+
type: 'IAB2_PURPOSE',
|
|
133
|
+
groupId: 'IABV2_'
|
|
134
|
+
})];
|
|
135
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual([]);
|
|
136
|
+
});
|
|
137
|
+
it('should ignore purposes with an undefined groupId', () => {
|
|
138
|
+
const purposes = [makePurpose({
|
|
139
|
+
type: 'IAB2_PURPOSE',
|
|
140
|
+
groupId: undefined
|
|
141
|
+
})];
|
|
142
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual([]);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// --- multiple purposes ---
|
|
146
|
+
|
|
147
|
+
it('should collect results from multiple top-level purposes', () => {
|
|
148
|
+
const purposes = [makePurpose({
|
|
149
|
+
type: 'IAB2_PURPOSE',
|
|
150
|
+
groupId: 'IABV2_1'
|
|
151
|
+
}), makePurpose({
|
|
152
|
+
type: 'IAB2_FEATURE',
|
|
153
|
+
groupId: 'IFEV2_2'
|
|
154
|
+
}), makePurpose({
|
|
155
|
+
type: 'IAB2_SPL_PURPOSE',
|
|
156
|
+
groupId: 'ISPV2_3'
|
|
157
|
+
})];
|
|
158
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1', 'f2', 's3']);
|
|
159
|
+
});
|
|
160
|
+
it('should skip non-matching purposes while collecting matching ones', () => {
|
|
161
|
+
const purposes = [makePurpose({
|
|
162
|
+
type: 'IAB2_PURPOSE',
|
|
163
|
+
groupId: 'IABV2_1'
|
|
164
|
+
}), makePurpose({
|
|
165
|
+
type: 'UNKNOWN_TYPE',
|
|
166
|
+
groupId: 'IABV2_99'
|
|
167
|
+
}), makePurpose({
|
|
168
|
+
type: 'IAB2_FEATURE',
|
|
169
|
+
groupId: 'IFEV2_2'
|
|
170
|
+
})];
|
|
171
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1', 'f2']);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// --- nested children ---
|
|
175
|
+
|
|
176
|
+
it('should recursively visit children and collect their results', () => {
|
|
177
|
+
const purposes = [makePurpose({
|
|
178
|
+
type: 'IAB2_PURPOSE',
|
|
179
|
+
groupId: 'IABV2_1',
|
|
180
|
+
children: [makePurpose({
|
|
181
|
+
type: 'IAB2_PURPOSE',
|
|
182
|
+
groupId: 'IABV2_2'
|
|
183
|
+
}), makePurpose({
|
|
184
|
+
type: 'IAB2_FEATURE',
|
|
185
|
+
groupId: 'IFEV2_3'
|
|
186
|
+
})]
|
|
187
|
+
})];
|
|
188
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1', '2', 'f3']);
|
|
189
|
+
});
|
|
190
|
+
it('should handle deeply nested children', () => {
|
|
191
|
+
const purposes = [makePurpose({
|
|
192
|
+
type: 'IAB2_PURPOSE',
|
|
193
|
+
groupId: 'IABV2_1',
|
|
194
|
+
children: [makePurpose({
|
|
195
|
+
type: 'IAB2_PURPOSE',
|
|
196
|
+
groupId: 'IABV2_2',
|
|
197
|
+
children: [makePurpose({
|
|
198
|
+
type: 'IAB2_SPL_FEATURE',
|
|
199
|
+
groupId: 'ISFV2_10'
|
|
200
|
+
})]
|
|
201
|
+
})]
|
|
202
|
+
})];
|
|
203
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1', '2', 'sf10']);
|
|
204
|
+
});
|
|
205
|
+
it('should collect children even when the parent does not match', () => {
|
|
206
|
+
const purposes = [makePurpose({
|
|
207
|
+
type: 'UNKNOWN_TYPE',
|
|
208
|
+
groupId: 'WHATEVER',
|
|
209
|
+
children: [makePurpose({
|
|
210
|
+
type: 'IAB2_PURPOSE',
|
|
211
|
+
groupId: 'IABV2_5'
|
|
212
|
+
})]
|
|
213
|
+
})];
|
|
214
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['5']);
|
|
215
|
+
});
|
|
216
|
+
it('should handle children being an empty array', () => {
|
|
217
|
+
const purposes = [makePurpose({
|
|
218
|
+
type: 'IAB2_PURPOSE',
|
|
219
|
+
groupId: 'IABV2_1',
|
|
220
|
+
children: []
|
|
221
|
+
})];
|
|
222
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['1']);
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
// --- groupId key extraction ---
|
|
226
|
+
|
|
227
|
+
it('should preserve multi-character keys after the prefix', () => {
|
|
228
|
+
const purposes = [makePurpose({
|
|
229
|
+
type: 'IAB2_PURPOSE',
|
|
230
|
+
groupId: 'IABV2_123'
|
|
231
|
+
})];
|
|
232
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['123']);
|
|
233
|
+
});
|
|
234
|
+
it('should preserve non-numeric keys after the prefix', () => {
|
|
235
|
+
const purposes = [makePurpose({
|
|
236
|
+
type: 'IAB2_PURPOSE',
|
|
237
|
+
groupId: 'IABV2_abc'
|
|
238
|
+
})];
|
|
239
|
+
expect((0, _purposes.getTcfPurposes)(purposes)).toEqual(['abc']);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
//# sourceMappingURL=purposes.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_purposes","require","makePurpose","overrides","purposeId","descriptionLegal","legIntStatus","vendorsLinkedInfo","parent","consentStatus","firstPartyCookies","iabIllustrations","showSDKListLink","generalVendorsIds","groupDescription","children","groupName","isIabPurpose","consentToggleStatus","describe","it","expect","getTcfPurposes","toEqual","purposes","type","groupId","undefined"],"sourceRoot":"../../src","sources":["purposes.test.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["react-native-onetrust-cmp.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { OTConsentInteraction, OTEventName } from 'react-native-onetrust-cmp';
|
|
4
|
+
import { getTcfPurposes } from './purposes';
|
|
5
|
+
export async function createOnetrustCmpAdapter(sdk) {
|
|
6
|
+
try {
|
|
7
|
+
const bannerData = await sdk.getBannerData();
|
|
8
|
+
console.log('Banner data', bannerData);
|
|
9
|
+
const preferenceCenterData = await sdk.getPreferenceCenterData();
|
|
10
|
+
console.log('Preference center data', preferenceCenterData);
|
|
11
|
+
return new OnetrustCmpAdapter(sdk, bannerData, preferenceCenterData);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
console.error('Error getting banner or preference center data', error);
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export default class OnetrustCmpAdapter {
|
|
18
|
+
groupIds = [];
|
|
19
|
+
numVendors = 0;
|
|
20
|
+
tcfPurposes = [];
|
|
21
|
+
eventListeners = new Set();
|
|
22
|
+
eventSubscriptions = [];
|
|
23
|
+
consentStatusChangeListeners = new Set();
|
|
24
|
+
constructor(sdk, bannerData, preferenceCenterData) {
|
|
25
|
+
this.sdk = sdk;
|
|
26
|
+
this.groupIds = preferenceCenterData.purposes.map(({
|
|
27
|
+
groupId
|
|
28
|
+
}) => groupId).filter(Boolean);
|
|
29
|
+
this.numVendors = OnetrustCmpAdapter.getNumVendors(bannerData.bannerUIData?.summary?.description?.text ?? '');
|
|
30
|
+
this.tcfPurposes = getTcfPurposes(preferenceCenterData.purposes);
|
|
31
|
+
this.initializeEventBridge();
|
|
32
|
+
}
|
|
33
|
+
static getNumVendors(description) {
|
|
34
|
+
const match = description.match(/[0-9]+/);
|
|
35
|
+
return match ? parseInt(match[0], 10) : 0;
|
|
36
|
+
}
|
|
37
|
+
async waitForInit() {
|
|
38
|
+
return Promise.resolve();
|
|
39
|
+
}
|
|
40
|
+
async acceptAll() {
|
|
41
|
+
console.debug('[OnetrustCmpAdapter::acceptAll]');
|
|
42
|
+
await this.sdk.saveConsent(OTConsentInteraction.bannerAllowAll);
|
|
43
|
+
const hasFullConsent = await this.hasFullConsent();
|
|
44
|
+
this.emitConsentStatusChange(hasFullConsent);
|
|
45
|
+
}
|
|
46
|
+
async denyAll() {
|
|
47
|
+
console.debug('[OnetrustCmpAdapter::denyAll]');
|
|
48
|
+
await this.sdk.saveConsent(OTConsentInteraction.bannerRejectAll);
|
|
49
|
+
const hasFullConsent = await this.hasFullConsent();
|
|
50
|
+
this.emitConsentStatusChange(hasFullConsent);
|
|
51
|
+
}
|
|
52
|
+
getNumberOfVendors() {
|
|
53
|
+
return Promise.resolve(this.numVendors);
|
|
54
|
+
}
|
|
55
|
+
getRequiredPurposes() {
|
|
56
|
+
return Promise.resolve(this.tcfPurposes);
|
|
57
|
+
}
|
|
58
|
+
showSecondLayer(view) {
|
|
59
|
+
console.debug('[OnetrustCmpAdapter::showSecondLayer]', view);
|
|
60
|
+
return new Promise(resolve => {
|
|
61
|
+
const remove = this.onEvent((eventName, _) => {
|
|
62
|
+
switch (eventName) {
|
|
63
|
+
case OTEventName.hidePreferenceCenter:
|
|
64
|
+
case OTEventName.preferenceCenterAcceptAll:
|
|
65
|
+
case OTEventName.preferenceCenterRejectAll:
|
|
66
|
+
case OTEventName.preferenceCenterConfirmChoices:
|
|
67
|
+
case OTEventName.hideVendorList:
|
|
68
|
+
case OTEventName.vendorConfirmChoices:
|
|
69
|
+
case OTEventName.allSDKViewsDismissed:
|
|
70
|
+
remove();
|
|
71
|
+
resolve();
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
if (view === 'vendor') {
|
|
78
|
+
this.sdk.showPreferenceCenterUI();
|
|
79
|
+
} else {
|
|
80
|
+
this.sdk.showConsentPurposesUI();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// FIXME handle reconsent scenarios
|
|
86
|
+
hasFullConsent = async () => {
|
|
87
|
+
console.debug('[OnetrustCmpAdapter::hasFullConsent]');
|
|
88
|
+
const consentStatuses = await Promise.all(this.groupIds.map(groupId => this.sdk.getConsentStatusForCategory(groupId)));
|
|
89
|
+
return consentStatuses.every(consentStatus => consentStatus === 1);
|
|
90
|
+
};
|
|
91
|
+
onConsentStatusChange(callback) {
|
|
92
|
+
this.consentStatusChangeListeners.add(callback);
|
|
93
|
+
setTimeout(() => {
|
|
94
|
+
this.hasFullConsent().then(fullConsent => this.emitConsentStatusChangeEventSingle(fullConsent, callback));
|
|
95
|
+
}, 0);
|
|
96
|
+
return () => this.consentStatusChangeListeners.delete(callback);
|
|
97
|
+
}
|
|
98
|
+
onEvent(callback) {
|
|
99
|
+
this.eventListeners.add(callback);
|
|
100
|
+
return () => {
|
|
101
|
+
this.eventListeners.delete(callback);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
initializeEventBridge() {
|
|
105
|
+
Object.values(OTEventName).forEach(eventName => {
|
|
106
|
+
const subscription = this.sdk.addEventListener(eventName, data => {
|
|
107
|
+
this.emitEvent(eventName, data);
|
|
108
|
+
});
|
|
109
|
+
this.eventSubscriptions.push(subscription);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
emitEvent(eventName, data) {
|
|
113
|
+
this.eventListeners.forEach(listener => {
|
|
114
|
+
try {
|
|
115
|
+
listener(eventName, data);
|
|
116
|
+
} catch (error) {
|
|
117
|
+
console.error('[OnetrustCmpAdapter::onEvent] listener failed', error);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
emitConsentStatusChange(fullConsent) {
|
|
122
|
+
this.consentStatusChangeListeners.forEach(listener => this.emitConsentStatusChangeEventSingle(fullConsent, listener));
|
|
123
|
+
}
|
|
124
|
+
emitConsentStatusChangeEventSingle(fullConsent, listener) {
|
|
125
|
+
try {
|
|
126
|
+
listener(fullConsent);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error('[OnetrustCmpAdapter::emitConsentStatusChangeEventSingle] listener failed', error);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=OnetrustCmpAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["OTConsentInteraction","OTEventName","getTcfPurposes","createOnetrustCmpAdapter","sdk","bannerData","getBannerData","console","log","preferenceCenterData","getPreferenceCenterData","OnetrustCmpAdapter","error","groupIds","numVendors","tcfPurposes","eventListeners","Set","eventSubscriptions","consentStatusChangeListeners","constructor","purposes","map","groupId","filter","Boolean","getNumVendors","bannerUIData","summary","description","text","initializeEventBridge","match","parseInt","waitForInit","Promise","resolve","acceptAll","debug","saveConsent","bannerAllowAll","hasFullConsent","emitConsentStatusChange","denyAll","bannerRejectAll","getNumberOfVendors","getRequiredPurposes","showSecondLayer","view","remove","onEvent","eventName","_","hidePreferenceCenter","preferenceCenterAcceptAll","preferenceCenterRejectAll","preferenceCenterConfirmChoices","hideVendorList","vendorConfirmChoices","allSDKViewsDismissed","showPreferenceCenterUI","showConsentPurposesUI","consentStatuses","all","getConsentStatusForCategory","every","consentStatus","onConsentStatusChange","callback","add","setTimeout","then","fullConsent","emitConsentStatusChangeEventSingle","delete","Object","values","forEach","subscription","addEventListener","data","emitEvent","push","listener"],"sourceRoot":"../../src","sources":["OnetrustCmpAdapter.ts"],"mappings":"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","ignoreList":[]}
|