@osano/osano-cmp-react-native 0.8.0 → 0.9.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/services/consent.js +91 -28
- package/lib/commonjs/services/consent.js.map +1 -1
- package/lib/module/services/consent.js +90 -28
- package/lib/module/services/consent.js.map +1 -1
- package/lib/typescript/lib/commonjs/services/consent.d.ts +1 -0
- package/lib/typescript/lib/commonjs/services/consent.d.ts.map +1 -1
- package/lib/typescript/lib/module/services/consent.d.ts +1 -0
- package/lib/typescript/lib/module/services/consent.d.ts.map +1 -1
- package/lib/typescript/src/services/consent.d.ts +10 -4
- package/lib/typescript/src/services/consent.d.ts.map +1 -1
- package/package.json +17 -9
- package/src/services/consent.ts +135 -41
- package/lib/typescript/src/iab/gpp/api.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/api.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/consent.d.ts +0 -24
- package/lib/typescript/src/iab/gpp/consent.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/constants.d.ts +0 -37
- package/lib/typescript/src/iab/gpp/constants.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/AbstractBase64UrlEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/AbstractBase64UrlEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/BooleanEncoder.d.ts +0 -34
- package/lib/typescript/src/iab/gpp/encoders/BooleanEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/CompressedBase64UrlEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/CompressedBase64UrlEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/DatetimeEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/DatetimeEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/EncodableOptimizedFixedRange.d.ts +0 -16
- package/lib/typescript/src/iab/gpp/encoders/EncodableOptimizedFixedRange.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerRangeEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FibonacciIntegerRangeEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedBitfieldEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FixedBitfieldEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIdBitMapEncoder.d.ts +0 -6
- package/lib/typescript/src/iab/gpp/encoders/FixedIdBitMapEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerListEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerListEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerRangeEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/FixedIntegerRangeEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/FixedStringEncoder.d.ts +0 -26
- package/lib/typescript/src/iab/gpp/encoders/FixedStringEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/TraditionalBase64UrlEncoder.d.ts +0 -28
- package/lib/typescript/src/iab/gpp/encoders/TraditionalBase64UrlEncoder.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/errors.d.ts +0 -19
- package/lib/typescript/src/iab/gpp/encoders/errors.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/index.d.ts +0 -16
- package/lib/typescript/src/iab/gpp/encoders/index.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/encoders/types.d.ts +0 -5
- package/lib/typescript/src/iab/gpp/encoders/types.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/index.d.ts +0 -10
- package/lib/typescript/src/iab/gpp/index.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/reducer.d.ts +0 -6
- package/lib/typescript/src/iab/gpp/reducer.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/selectors.d.ts +0 -6
- package/lib/typescript/src/iab/gpp/selectors.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/types.d.ts +0 -3
- package/lib/typescript/src/iab/gpp/types.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/v1/constants.d.ts +0 -9
- package/lib/typescript/src/iab/gpp/v1/constants.d.ts.map +0 -1
- package/lib/typescript/src/iab/gpp/v1/index.d.ts +0 -19
- package/lib/typescript/src/iab/gpp/v1/index.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/api.d.ts +0 -4
- package/lib/typescript/src/iab/usp/api.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/consent.d.ts +0 -13
- package/lib/typescript/src/iab/usp/consent.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/constants.d.ts +0 -77
- package/lib/typescript/src/iab/usp/constants.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/index.d.ts +0 -10
- package/lib/typescript/src/iab/usp/index.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/reducer.d.ts +0 -13
- package/lib/typescript/src/iab/usp/reducer.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/selectors.d.ts +0 -9
- package/lib/typescript/src/iab/usp/selectors.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/types.d.ts +0 -5
- package/lib/typescript/src/iab/usp/types.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/v1/constants.d.ts +0 -9
- package/lib/typescript/src/iab/usp/v1/constants.d.ts.map +0 -1
- package/lib/typescript/src/iab/usp/v1/index.d.ts +0 -16
- package/lib/typescript/src/iab/usp/v1/index.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/common/commonCommands.d.ts +0 -21
- package/lib/typescript/webdriverio-appium/common/commonCommands.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/config/wdio.conf.android.d.cts +0 -3
- package/lib/typescript/webdriverio-appium/config/wdio.conf.android.d.cts.map +0 -1
- package/lib/typescript/webdriverio-appium/config/wdio.conf.d.cts +0 -21
- package/lib/typescript/webdriverio-appium/config/wdio.conf.d.cts.map +0 -1
- package/lib/typescript/webdriverio-appium/config/wdio.conf.ios.d.cts +0 -3
- package/lib/typescript/webdriverio-appium/config/wdio.conf.ios.d.cts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/android/six-drawer.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/android/six-drawer.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/ios/one.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/ios/one.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/ios/six.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/ios/six.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/ios/three.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/ios/three.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/ios/two-iab.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/ios/two-iab.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/ios/two.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/ios/two.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/one.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/one.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/six-iab.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/six-iab.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/three.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/three.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/two-iab.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/two-iab.d.ts.map +0 -1
- package/lib/typescript/webdriverio-appium/test/two.d.ts +0 -2
- package/lib/typescript/webdriverio-appium/test/two.d.ts.map +0 -1
- package/src/iab/gpp/api.js +0 -253
- package/src/iab/gpp/consent.js +0 -114
- package/src/iab/gpp/constants.js +0 -49
- package/src/iab/gpp/encoders/AbstractBase64UrlEncoder.ts +0 -89
- package/src/iab/gpp/encoders/BooleanEncoder.ts +0 -39
- package/src/iab/gpp/encoders/CompressedBase64UrlEncoder.ts +0 -41
- package/src/iab/gpp/encoders/DatetimeEncoder.ts +0 -46
- package/src/iab/gpp/encoders/EncodableOptimizedFixedRange.ts +0 -213
- package/src/iab/gpp/encoders/FibonacciIntegerEncoder.ts +0 -81
- package/src/iab/gpp/encoders/FibonacciIntegerRangeEncoder.ts +0 -122
- package/src/iab/gpp/encoders/FixedBitfieldEncoder.ts +0 -59
- package/src/iab/gpp/encoders/FixedIdBitMapEncoder.ts +0 -30
- package/src/iab/gpp/encoders/FixedIntegerEncoder.ts +0 -61
- package/src/iab/gpp/encoders/FixedIntegerListEncoder.ts +0 -87
- package/src/iab/gpp/encoders/FixedIntegerRangeEncoder.ts +0 -102
- package/src/iab/gpp/encoders/FixedStringEncoder.ts +0 -74
- package/src/iab/gpp/encoders/LICENSE-IABTechLab +0 -176
- package/src/iab/gpp/encoders/TraditionalBase64UrlEncoder.ts +0 -38
- package/src/iab/gpp/encoders/errors.ts +0 -41
- package/src/iab/gpp/encoders/index.ts +0 -15
- package/src/iab/gpp/encoders/types.ts +0 -5
- package/src/iab/gpp/index.js +0 -9
- package/src/iab/gpp/reducer.js +0 -7
- package/src/iab/gpp/selectors.js +0 -21
- package/src/iab/gpp/types.ts +0 -3
- package/src/iab/gpp/v1/constants.js +0 -7
- package/src/iab/gpp/v1/index.js +0 -73
- package/src/iab/usp/api.js +0 -56
- package/src/iab/usp/consent.js +0 -150
- package/src/iab/usp/constants.js +0 -40
- package/src/iab/usp/index.js +0 -9
- package/src/iab/usp/reducer.js +0 -107
- package/src/iab/usp/selectors.js +0 -31
- package/src/iab/usp/types.ts +0 -4
- package/src/iab/usp/v1/constants.js +0 -10
- package/src/iab/usp/v1/index.js +0 -54
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.fetchConsent = exports.fetchConfig = exports.clearConsent = void 0;
|
|
7
|
+
exports.hashExtUsrData = hashExtUsrData;
|
|
8
|
+
exports.recordConsent = void 0;
|
|
7
9
|
var _constants = require("../constants");
|
|
8
|
-
var
|
|
10
|
+
var _OsanoCmp = require("../native/OsanoCmp");
|
|
9
11
|
var _API = _interopRequireDefault(require("../utils/API"));
|
|
12
|
+
var _reactNative = require("react-native");
|
|
13
|
+
var _textEncoding = require("text-encoding");
|
|
10
14
|
var _utils = require("../utils");
|
|
11
|
-
var
|
|
15
|
+
var _jsSha = require("js-sha512");
|
|
12
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
|
|
14
|
-
// file deepcode ignore DuplicateCaseBody: <please specify a reason of ignoring this>
|
|
15
|
-
|
|
17
|
+
const Buffer = require('buffer').Buffer;
|
|
16
18
|
const {
|
|
17
19
|
CONSENT_URI,
|
|
18
20
|
LOOKUPS_URI,
|
|
@@ -34,7 +36,8 @@ function createConsentPayload(cmp, consent) {
|
|
|
34
36
|
}).filter(([, value]) => value !== undefined));
|
|
35
37
|
}
|
|
36
38
|
function createConsentRecordPayload(cmp, consent) {
|
|
37
|
-
const consentedCategories = consent ?? cmp.consent;
|
|
39
|
+
const consentedCategories = consent ?? cmp.consent ?? [];
|
|
40
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
38
41
|
return Object.fromEntries(Object.entries({
|
|
39
42
|
osnoCustomerId: cmp.customerId,
|
|
40
43
|
osnoConfigId: cmp.configId,
|
|
@@ -42,7 +45,7 @@ function createConsentRecordPayload(cmp, consent) {
|
|
|
42
45
|
consentingDomain: cmp.consentingDomain,
|
|
43
46
|
consentingPlatform: `${_reactNative.Platform.OS}.react-native`,
|
|
44
47
|
userConsentId: cmp.deviceId,
|
|
45
|
-
extUsrData:
|
|
48
|
+
extUsrData: hashedExtUsrData
|
|
46
49
|
}).filter(([, value]) => value !== undefined));
|
|
47
50
|
}
|
|
48
51
|
const STORAGE_KEY = 'osano_consentmanager';
|
|
@@ -56,7 +59,9 @@ const storeConsent = async (cmp, consent) => {
|
|
|
56
59
|
switch (_reactNative.Platform.OS) {
|
|
57
60
|
case 'ios':
|
|
58
61
|
case 'android':
|
|
59
|
-
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}
|
|
62
|
+
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_last_recorded_consent_date`, JSON.stringify(new Date())).then(() => {
|
|
63
|
+
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_${cmp.configId}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
64
|
+
}).catch(reject);
|
|
60
65
|
break;
|
|
61
66
|
}
|
|
62
67
|
});
|
|
@@ -74,7 +79,6 @@ const clearConsent = async cmp => {
|
|
|
74
79
|
(0, _OsanoCmp.clearStorage)(`${STORAGE_KEY}_${cmp.configId}`).then(resConsent);
|
|
75
80
|
break;
|
|
76
81
|
default:
|
|
77
|
-
window.localStorage.removeItem(`${STORAGE_KEY}_${cmp.configId}`);
|
|
78
82
|
break;
|
|
79
83
|
}
|
|
80
84
|
});
|
|
@@ -104,11 +108,29 @@ const retrieveConsent = async cmp => {
|
|
|
104
108
|
});
|
|
105
109
|
break;
|
|
106
110
|
default:
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
const retrieveLastConsentTimestamp = async () => {
|
|
116
|
+
return new Promise(resolve => {
|
|
117
|
+
const resValue = consentJson => {
|
|
118
|
+
if (consentJson) {
|
|
119
|
+
const timestamp = JSON.parse(consentJson);
|
|
120
|
+
resolve(timestamp);
|
|
121
|
+
return timestamp;
|
|
122
|
+
} else {
|
|
123
|
+
resolve('');
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
switch (_reactNative.Platform.OS) {
|
|
128
|
+
case 'ios':
|
|
129
|
+
case 'android':
|
|
130
|
+
(0, _OsanoCmp.getStorage)(`${STORAGE_KEY}_last_recorded_consent_date`).then(resValue);
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
// nothing
|
|
112
134
|
break;
|
|
113
135
|
}
|
|
114
136
|
});
|
|
@@ -123,24 +145,65 @@ const recordConsent = (cmp, consent) => {
|
|
|
123
145
|
});
|
|
124
146
|
};
|
|
125
147
|
exports.recordConsent = recordConsent;
|
|
126
|
-
|
|
148
|
+
function hashExtUsrData(customerId, configId, extUsrData) {
|
|
149
|
+
if (extUsrData === '' || customerId === '' || configId === '') {
|
|
150
|
+
return '';
|
|
151
|
+
} else {
|
|
152
|
+
try {
|
|
153
|
+
const encoder = new _textEncoding.TextEncoder();
|
|
154
|
+
const data = encoder.encode(`${customerId}/${configId}/${extUsrData}`);
|
|
155
|
+
const hash = _jsSha.sha512.arrayBuffer(data);
|
|
156
|
+
const base64 = Buffer.from(hash).toString('base64');
|
|
157
|
+
const hashUrlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_');
|
|
158
|
+
return hashUrlSafe;
|
|
159
|
+
} catch (error) {
|
|
160
|
+
// something went wrong
|
|
161
|
+
return '';
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const fetchConsent = async cmp => {
|
|
127
166
|
const {
|
|
128
167
|
customerId,
|
|
129
168
|
configId,
|
|
130
|
-
extUsrData
|
|
169
|
+
extUsrData
|
|
131
170
|
} = cmp;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
171
|
+
try {
|
|
172
|
+
const consent = await retrieveConsent(cmp);
|
|
173
|
+
const hashedUserData = hashExtUsrData(customerId, configId, extUsrData);
|
|
174
|
+
|
|
175
|
+
// No user data or remote consent disabled
|
|
176
|
+
if (hashedUserData === '' || cmp.config.remoteConsent === false) {
|
|
138
177
|
return consent;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
178
|
+
}
|
|
179
|
+
const response = await _API.default.get(`${LOOKUPS_URI}/customer/${customerId}/config/${configId}/user/${hashedUserData}/consent`);
|
|
180
|
+
const {
|
|
181
|
+
consented,
|
|
182
|
+
lastConsentTimestamp
|
|
183
|
+
} = response;
|
|
184
|
+
if (!consented || !lastConsentTimestamp) {
|
|
185
|
+
// No remote consent found, use local consent
|
|
186
|
+
await storeConsent(cmp, consent);
|
|
187
|
+
return consent;
|
|
188
|
+
}
|
|
189
|
+
const internalTimestamp = await retrieveLastConsentTimestamp();
|
|
190
|
+
try {
|
|
191
|
+
if (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '') {
|
|
192
|
+
// Remote consent is newer or we haven't recorded any consent yet. Store remote consent.
|
|
193
|
+
const remoteConsentCategories = consented.map(category => _constants.ConsentCategory[category]);
|
|
194
|
+
await storeConsent(cmp, remoteConsentCategories);
|
|
195
|
+
return remoteConsentCategories;
|
|
196
|
+
}
|
|
197
|
+
} catch (error) {
|
|
198
|
+
// Error parsing timestamp
|
|
199
|
+
}
|
|
200
|
+
return consent;
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.error('Error fetching consent:', error);
|
|
203
|
+
// Consent not found or network/server error.
|
|
204
|
+
const consent = await retrieveConsent(cmp);
|
|
205
|
+
return consent;
|
|
206
|
+
}
|
|
144
207
|
};
|
|
145
208
|
exports.fetchConsent = fetchConsent;
|
|
146
209
|
const fetchConfig = (customerId, configId) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","
|
|
1
|
+
{"version":3,"names":["_constants","require","_OsanoCmp","_API","_interopRequireDefault","_reactNative","_textEncoding","_utils","_jsSha","e","__esModule","default","Buffer","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","env","overrideConfig","variant","createConsentPayload","cmp","consent","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","Platform","OS","deviceId","extUsrData","filter","value","undefined","createConsentRecordPayload","consentedCategories","hashedExtUsrData","hashExtUsrData","osnoCustomerId","osnoConfigId","join","userConsentId","STORAGE_KEY","storeConsent","Promise","resolve","reject","resConsent","setStorage","JSON","stringify","Date","then","catch","clearConsent","ConsentCategory","ESSENTIAL","clearStorage","exports","retrieveConsent","consentJson","parse","length","Error","getStorage","retrieveLastConsentTimestamp","resValue","timestamp","recordConsent","payload","API","post","referrer","consentCategories","error","encoder","TextEncoder","data","encode","hash","sha512","arrayBuffer","base64","from","toString","hashUrlSafe","replace","fetchConsent","hashedUserData","config","remoteConsent","response","get","lastConsentTimestamp","internalTimestamp","remoteConsentCategories","map","category","ConsentCategoryType","console","fetchConfig","headers","json","merge","country","region","gdprApplies"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { env } from '../constants';
|
|
4
|
-
import { Platform } from 'react-native';
|
|
1
|
+
import { ConsentCategory, ConsentCategory as ConsentCategoryType } from '../constants';
|
|
2
|
+
import { clearStorage, getStorage, setStorage } from '../native/OsanoCmp';
|
|
5
3
|
import API from '../utils/API';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
5
|
+
import { TextEncoder } from 'text-encoding';
|
|
6
|
+
import { env } from '../constants';
|
|
6
7
|
import { merge } from '../utils';
|
|
7
|
-
import {
|
|
8
|
-
|
|
8
|
+
import { sha512 } from 'js-sha512';
|
|
9
|
+
const Buffer = require('buffer').Buffer;
|
|
9
10
|
const {
|
|
10
11
|
CONSENT_URI,
|
|
11
12
|
LOOKUPS_URI,
|
|
@@ -27,7 +28,8 @@ function createConsentPayload(cmp, consent) {
|
|
|
27
28
|
}).filter(([, value]) => value !== undefined));
|
|
28
29
|
}
|
|
29
30
|
function createConsentRecordPayload(cmp, consent) {
|
|
30
|
-
const consentedCategories = consent ?? cmp.consent;
|
|
31
|
+
const consentedCategories = consent ?? cmp.consent ?? [];
|
|
32
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
31
33
|
return Object.fromEntries(Object.entries({
|
|
32
34
|
osnoCustomerId: cmp.customerId,
|
|
33
35
|
osnoConfigId: cmp.configId,
|
|
@@ -35,7 +37,7 @@ function createConsentRecordPayload(cmp, consent) {
|
|
|
35
37
|
consentingDomain: cmp.consentingDomain,
|
|
36
38
|
consentingPlatform: `${Platform.OS}.react-native`,
|
|
37
39
|
userConsentId: cmp.deviceId,
|
|
38
|
-
extUsrData:
|
|
40
|
+
extUsrData: hashedExtUsrData
|
|
39
41
|
}).filter(([, value]) => value !== undefined));
|
|
40
42
|
}
|
|
41
43
|
const STORAGE_KEY = 'osano_consentmanager';
|
|
@@ -49,7 +51,9 @@ const storeConsent = async (cmp, consent) => {
|
|
|
49
51
|
switch (Platform.OS) {
|
|
50
52
|
case 'ios':
|
|
51
53
|
case 'android':
|
|
52
|
-
setStorage(`${STORAGE_KEY}
|
|
54
|
+
setStorage(`${STORAGE_KEY}_last_recorded_consent_date`, JSON.stringify(new Date())).then(() => {
|
|
55
|
+
setStorage(`${STORAGE_KEY}_${cmp.configId}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
56
|
+
}).catch(reject);
|
|
53
57
|
break;
|
|
54
58
|
}
|
|
55
59
|
});
|
|
@@ -67,7 +71,6 @@ export const clearConsent = async cmp => {
|
|
|
67
71
|
clearStorage(`${STORAGE_KEY}_${cmp.configId}`).then(resConsent);
|
|
68
72
|
break;
|
|
69
73
|
default:
|
|
70
|
-
window.localStorage.removeItem(`${STORAGE_KEY}_${cmp.configId}`);
|
|
71
74
|
break;
|
|
72
75
|
}
|
|
73
76
|
});
|
|
@@ -96,11 +99,29 @@ const retrieveConsent = async cmp => {
|
|
|
96
99
|
});
|
|
97
100
|
break;
|
|
98
101
|
default:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const retrieveLastConsentTimestamp = async () => {
|
|
107
|
+
return new Promise(resolve => {
|
|
108
|
+
const resValue = consentJson => {
|
|
109
|
+
if (consentJson) {
|
|
110
|
+
const timestamp = JSON.parse(consentJson);
|
|
111
|
+
resolve(timestamp);
|
|
112
|
+
return timestamp;
|
|
113
|
+
} else {
|
|
114
|
+
resolve('');
|
|
115
|
+
return '';
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
switch (Platform.OS) {
|
|
119
|
+
case 'ios':
|
|
120
|
+
case 'android':
|
|
121
|
+
getStorage(`${STORAGE_KEY}_last_recorded_consent_date`).then(resValue);
|
|
122
|
+
break;
|
|
123
|
+
default:
|
|
124
|
+
// nothing
|
|
104
125
|
break;
|
|
105
126
|
}
|
|
106
127
|
});
|
|
@@ -114,24 +135,65 @@ export const recordConsent = (cmp, consent) => {
|
|
|
114
135
|
throw error;
|
|
115
136
|
});
|
|
116
137
|
};
|
|
117
|
-
export
|
|
138
|
+
export function hashExtUsrData(customerId, configId, extUsrData) {
|
|
139
|
+
if (extUsrData === '' || customerId === '' || configId === '') {
|
|
140
|
+
return '';
|
|
141
|
+
} else {
|
|
142
|
+
try {
|
|
143
|
+
const encoder = new TextEncoder();
|
|
144
|
+
const data = encoder.encode(`${customerId}/${configId}/${extUsrData}`);
|
|
145
|
+
const hash = sha512.arrayBuffer(data);
|
|
146
|
+
const base64 = Buffer.from(hash).toString('base64');
|
|
147
|
+
const hashUrlSafe = base64.replace(/\+/g, '-').replace(/\//g, '_');
|
|
148
|
+
return hashUrlSafe;
|
|
149
|
+
} catch (error) {
|
|
150
|
+
// something went wrong
|
|
151
|
+
return '';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export const fetchConsent = async cmp => {
|
|
118
156
|
const {
|
|
119
157
|
customerId,
|
|
120
158
|
configId,
|
|
121
|
-
extUsrData
|
|
159
|
+
extUsrData
|
|
122
160
|
} = cmp;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
161
|
+
try {
|
|
162
|
+
const consent = await retrieveConsent(cmp);
|
|
163
|
+
const hashedUserData = hashExtUsrData(customerId, configId, extUsrData);
|
|
164
|
+
|
|
165
|
+
// No user data or remote consent disabled
|
|
166
|
+
if (hashedUserData === '' || cmp.config.remoteConsent === false) {
|
|
129
167
|
return consent;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
168
|
+
}
|
|
169
|
+
const response = await API.get(`${LOOKUPS_URI}/customer/${customerId}/config/${configId}/user/${hashedUserData}/consent`);
|
|
170
|
+
const {
|
|
171
|
+
consented,
|
|
172
|
+
lastConsentTimestamp
|
|
173
|
+
} = response;
|
|
174
|
+
if (!consented || !lastConsentTimestamp) {
|
|
175
|
+
// No remote consent found, use local consent
|
|
176
|
+
await storeConsent(cmp, consent);
|
|
177
|
+
return consent;
|
|
178
|
+
}
|
|
179
|
+
const internalTimestamp = await retrieveLastConsentTimestamp();
|
|
180
|
+
try {
|
|
181
|
+
if (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '') {
|
|
182
|
+
// Remote consent is newer or we haven't recorded any consent yet. Store remote consent.
|
|
183
|
+
const remoteConsentCategories = consented.map(category => ConsentCategoryType[category]);
|
|
184
|
+
await storeConsent(cmp, remoteConsentCategories);
|
|
185
|
+
return remoteConsentCategories;
|
|
186
|
+
}
|
|
187
|
+
} catch (error) {
|
|
188
|
+
// Error parsing timestamp
|
|
189
|
+
}
|
|
190
|
+
return consent;
|
|
191
|
+
} catch (error) {
|
|
192
|
+
console.error('Error fetching consent:', error);
|
|
193
|
+
// Consent not found or network/server error.
|
|
194
|
+
const consent = await retrieveConsent(cmp);
|
|
195
|
+
return consent;
|
|
196
|
+
}
|
|
135
197
|
};
|
|
136
198
|
export const fetchConfig = (customerId, configId) => {
|
|
137
199
|
return API.get(`${OSANO_ORIGIN}/${customerId}/${configId}/config.json`, true).then(response => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ConsentCategory","ConsentCategoryType","clearStorage","getStorage","setStorage","API","Platform","TextEncoder","env","merge","sha512","Buffer","require","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","overrideConfig","variant","createConsentPayload","cmp","consent","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","OS","deviceId","extUsrData","filter","value","undefined","createConsentRecordPayload","consentedCategories","hashedExtUsrData","hashExtUsrData","osnoCustomerId","osnoConfigId","join","userConsentId","STORAGE_KEY","storeConsent","Promise","resolve","reject","resConsent","JSON","stringify","Date","then","catch","clearConsent","ESSENTIAL","retrieveConsent","consentJson","parse","length","Error","retrieveLastConsentTimestamp","resValue","timestamp","recordConsent","payload","post","referrer","consentCategories","error","encoder","data","encode","hash","arrayBuffer","base64","from","toString","hashUrlSafe","replace","fetchConsent","hashedUserData","config","remoteConsent","response","get","lastConsentTimestamp","internalTimestamp","remoteConsentCategories","map","category","console","fetchConfig","headers","json","country","region","gdprApplies"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
|
+
export function hashExtUsrData(customerId: any, configId: any, extUsrData: any): string;
|
|
2
3
|
export function clearConsent(cmp: any): Promise<any>;
|
|
3
4
|
export function recordConsent(cmp: any, consent: any): any;
|
|
4
5
|
export function fetchConsent(cmp: any): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../commonjs/services/consent.js"],"names":[],"mappings":";AA
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../commonjs/services/consent.js"],"names":[],"mappings":";AAmJA,wFAgBC;AA/FD,qDAgBC;AAqDD,2DAQC;AAmBD,qDA0CC;AAED,iEAiBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../module/services/consent.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../module/services/consent.js"],"names":[],"mappings":"AAyIA,wFAgBC;AA7FM,qDAgBN;AAoDM,oEAQN;AAkBM,qDA0CN;AACM,0EAiBN"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { ConsentCategory, ConsentCategory as ConsentCategoryType } from '../constants';
|
|
1
2
|
import type { Config } from '../types/consent-config';
|
|
2
3
|
import type { ConsentManager } from '../ConsentManager';
|
|
3
|
-
import { type ConsentCategory as ConsentCategoryType } from '../constants';
|
|
4
4
|
export type ConsentPayload = {
|
|
5
5
|
customerId: string;
|
|
6
6
|
configId: string;
|
|
@@ -19,8 +19,14 @@ export type ConsentRecordPayload = {
|
|
|
19
19
|
userConsentId: string;
|
|
20
20
|
extUsrData?: string;
|
|
21
21
|
};
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
export type ConsentLookupResponseType = {
|
|
23
|
+
consented: string[];
|
|
24
|
+
lastConsentTimestamp: string;
|
|
25
|
+
userConsentId: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const clearConsent: (cmp: ConsentManager) => Promise<ConsentCategory[]>;
|
|
28
|
+
export declare const recordConsent: (cmp: ConsentManager, consent?: ConsentCategoryType[]) => Promise<ConsentCategory[]>;
|
|
29
|
+
export declare function hashExtUsrData(customerId: string, configId: string, extUsrData: string): string;
|
|
30
|
+
export declare const fetchConsent: (cmp: ConsentManager) => Promise<ConsentCategory[]>;
|
|
25
31
|
export declare const fetchConfig: (customerId: string, configId: string) => Promise<Config | null>;
|
|
26
32
|
//# sourceMappingURL=consent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../src/services/consent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../src/services/consent.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,eAAe,IAAI,mBAAmB,EACtC,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgBxD,MAAM,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AA2EF,eAAO,MAAM,YAAY,QAAe,cAAc,+BAgBrD,CAAC;AAyDF,eAAO,MAAM,aAAa,QACpB,cAAc,YACT,mBAAmB,EAAE,+BAY/B,CAAC;AAEF,wBAAgB,cAAc,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAChB,MAAM,CAgBR;AAED,eAAO,MAAM,YAAY,QAAe,cAAc,+BAmDrD,CAAC;AAEF,eAAO,MAAM,WAAW,eAAgB,MAAM,YAAY,MAAM,2BAsB/D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osano/osano-cmp-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Package and example for the react-native Osano CMP SDK",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -23,11 +23,19 @@
|
|
|
23
23
|
"!**/__tests__",
|
|
24
24
|
"!**/__fixtures__",
|
|
25
25
|
"!**/__mocks__",
|
|
26
|
-
"!**/.*"
|
|
26
|
+
"!**/.*",
|
|
27
|
+
"!src/iab/usp",
|
|
28
|
+
"!src/iab/gpp",
|
|
29
|
+
"!lib/typescript/webdriverio-appium/**",
|
|
30
|
+
"!lib/typescript/webdriverio-appium/common/**",
|
|
31
|
+
"!lib/typescript/webdriverio-appium/config/**",
|
|
32
|
+
"!lib/typescript/webdriverio-appium/test/**",
|
|
33
|
+
"!lib/typescript/src/iab/usp",
|
|
34
|
+
"!lib/typescript/src/iab/gpp"
|
|
27
35
|
],
|
|
28
36
|
"scripts": {
|
|
29
37
|
"example": "yarn workspace osano-cmp-sdk-example",
|
|
30
|
-
"test": "jest
|
|
38
|
+
"test": "jest src/services/__tests__/consent.test.ts src/__tests__/index.test.tsx",
|
|
31
39
|
"typecheck": "tsc --noEmit",
|
|
32
40
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
33
41
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
@@ -65,17 +73,20 @@
|
|
|
65
73
|
"@docusaurus/module-type-aliases": "3.5.2",
|
|
66
74
|
"@docusaurus/preset-classic": "3.5.2",
|
|
67
75
|
"@mdx-js/react": "^3.0.1",
|
|
76
|
+
"@testing-library/react-native": "^12.8.1",
|
|
68
77
|
"@types/jest": "^29.5.5",
|
|
69
78
|
"@types/react": "^18.2.44",
|
|
79
|
+
"@types/react-test-renderer": "^18.3.0",
|
|
80
|
+
"@types/text-encoding": "^0.0.39",
|
|
70
81
|
"commitlint": "^17.0.2",
|
|
71
82
|
"del-cli": "^5.1.0",
|
|
72
83
|
"jest": "^29.7.0",
|
|
73
84
|
"prettier": "^3.0.3",
|
|
74
85
|
"prism-react-renderer": "^2.4.0",
|
|
75
86
|
"react": "18.3.1",
|
|
76
|
-
"react-dom": "18.3.1",
|
|
77
87
|
"react-native": "0.74.4",
|
|
78
88
|
"react-native-builder-bob": "^0.23.2",
|
|
89
|
+
"react-test-renderer": "^18.3.1",
|
|
79
90
|
"release-it": "^17.6.0",
|
|
80
91
|
"turbo": "^1.10.7",
|
|
81
92
|
"typescript": "^5.2.2"
|
|
@@ -131,12 +142,9 @@
|
|
|
131
142
|
]
|
|
132
143
|
},
|
|
133
144
|
"dependencies": {
|
|
134
|
-
"
|
|
135
|
-
"@types/react-test-renderer": "^18.3.0",
|
|
136
|
-
"react": "*",
|
|
137
|
-
"react-dom": "^17.0.2",
|
|
145
|
+
"js-sha512": "^0.9.0",
|
|
138
146
|
"react-native-picker-modal-view": "^1.3.2",
|
|
139
147
|
"react-native-svg": "^15.1.0",
|
|
140
|
-
"
|
|
148
|
+
"text-encoding": "^0.7.0"
|
|
141
149
|
}
|
|
142
150
|
}
|