@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.
Files changed (68) hide show
  1. package/lib/commonjs/OnetrustCmpAdapter.js +138 -0
  2. package/lib/commonjs/OnetrustCmpAdapter.js.map +1 -0
  3. package/lib/commonjs/index.js +17 -0
  4. package/lib/commonjs/index.js.map +1 -0
  5. package/lib/commonjs/package.json +1 -0
  6. package/lib/commonjs/purposes.js +58 -0
  7. package/lib/commonjs/purposes.js.map +1 -0
  8. package/lib/commonjs/purposes.test.js +242 -0
  9. package/lib/commonjs/purposes.test.js.map +1 -0
  10. package/lib/commonjs/react-native-onetrust-cmp.d.js +2 -0
  11. package/lib/commonjs/react-native-onetrust-cmp.d.js.map +1 -0
  12. package/lib/commonjs/types.js +2 -0
  13. package/lib/commonjs/types.js.map +1 -0
  14. package/lib/module/OnetrustCmpAdapter.js +132 -0
  15. package/lib/module/OnetrustCmpAdapter.js.map +1 -0
  16. package/lib/module/index.js +6 -0
  17. package/lib/module/index.js.map +1 -0
  18. package/lib/module/purposes.js +54 -0
  19. package/lib/module/purposes.js.map +1 -0
  20. package/lib/module/purposes.test.js +242 -0
  21. package/lib/module/purposes.test.js.map +1 -0
  22. package/lib/module/react-native-onetrust-cmp.d.js +2 -0
  23. package/lib/module/react-native-onetrust-cmp.d.js.map +1 -0
  24. package/lib/module/types.js +2 -0
  25. package/lib/module/types.js.map +1 -0
  26. package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts +41 -0
  27. package/lib/typescript/react-native-contentpass/src/Contentpass.d.ts.map +1 -0
  28. package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts +15 -0
  29. package/lib/typescript/react-native-contentpass/src/OidcAuthStateStorage.d.ts.map +1 -0
  30. package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts +4 -0
  31. package/lib/typescript/react-native-contentpass/src/consts/oidcConsts.d.ts.map +1 -0
  32. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts +6 -0
  33. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/fetchContentpassToken.d.ts.map +1 -0
  34. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts +17 -0
  35. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/parseContentpassToken.d.ts.map +1 -0
  36. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts +2 -0
  37. package/lib/typescript/react-native-contentpass/src/contentpassTokenUtils/validateSubscription.d.ts.map +1 -0
  38. package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts +8 -0
  39. package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendPageViewEvent.d.ts.map +1 -0
  40. package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts +11 -0
  41. package/lib/typescript/react-native-contentpass/src/countImpressionUtils/sendStats.d.ts.map +1 -0
  42. package/lib/typescript/react-native-contentpass/src/index.d.ts +12 -0
  43. package/lib/typescript/react-native-contentpass/src/index.d.ts.map +1 -0
  44. package/lib/typescript/react-native-contentpass/src/logger.d.ts +8 -0
  45. package/lib/typescript/react-native-contentpass/src/logger.d.ts.map +1 -0
  46. package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts +9 -0
  47. package/lib/typescript/react-native-contentpass/src/sdkContext/ContentpassSdkProvider.d.ts.map +1 -0
  48. package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts +3 -0
  49. package/lib/typescript/react-native-contentpass/src/sdkContext/useContentpassSdk.d.ts.map +1 -0
  50. package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts +11 -0
  51. package/lib/typescript/react-native-contentpass/src/sentryIntegration.d.ts.map +1 -0
  52. package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts +14 -0
  53. package/lib/typescript/react-native-contentpass/src/types/CmpAdapter.d.ts.map +1 -0
  54. package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts +11 -0
  55. package/lib/typescript/react-native-contentpass/src/types/ContentpassConfig.d.ts.map +1 -0
  56. package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts +28 -0
  57. package/lib/typescript/react-native-contentpass/src/types/ContentpassState.d.ts.map +1 -0
  58. package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts +6 -0
  59. package/lib/typescript/react-native-contentpass/src/types/RefreshTokenStrategy.d.ts.map +1 -0
  60. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/OnetrustCmpAdapter.d.ts +30 -0
  61. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/OnetrustCmpAdapter.d.ts.map +1 -0
  62. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/index.d.ts +4 -0
  63. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/index.d.ts.map +1 -0
  64. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/purposes.d.ts +3 -0
  65. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/purposes.d.ts.map +1 -0
  66. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/types.d.ts +101 -0
  67. package/lib/typescript/react-native-contentpass-cmp-onetrust/src/types.d.ts.map +1 -0
  68. 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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=react-native-onetrust-cmp.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["react-native-onetrust-cmp.d.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -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":[]}