@osano/osano-cmp-react-native 0.17.0 → 0.17.2
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/README.dev.md +130 -0
- package/README.md +1 -1
- package/lib/commonjs/services/consent.js +75 -12
- package/lib/commonjs/services/consent.js.map +1 -1
- package/lib/module/services/consent.js +73 -11
- 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 +2 -1
- package/lib/typescript/src/services/consent.d.ts.map +1 -1
- package/package.json +15 -5
- package/src/services/consent.ts +83 -13
package/README.dev.md
CHANGED
|
@@ -396,6 +396,136 @@ const {
|
|
|
396
396
|
} = React.useContext(OsanoContext);
|
|
397
397
|
```
|
|
398
398
|
|
|
399
|
+
#### Internal Developer API Reference
|
|
400
|
+
|
|
401
|
+
The following methods are exposed through the `OsanoContext` for internal development and debugging:
|
|
402
|
+
|
|
403
|
+
##### `getConsent(category?: ConsentCategory): boolean | ConsentCategory[]`
|
|
404
|
+
|
|
405
|
+
**Internal Implementation Details:**
|
|
406
|
+
- Delegates to `consentManager.current.hasConsent(category)` for specific category checks
|
|
407
|
+
- Returns `consentManager.current.consent ?? [ConsentCategory.ESSENTIAL]` for all categories
|
|
408
|
+
- Backed by the `getConsent` selector in `src/selectors.ts` which reads from `state.consent`
|
|
409
|
+
- State is managed through the reducer pattern with thunk middleware
|
|
410
|
+
|
|
411
|
+
```js
|
|
412
|
+
// Development usage examples:
|
|
413
|
+
const analyticsConsent = getConsent('ANALYTICS'); // boolean check
|
|
414
|
+
const allCategories = getConsent(); // array of consented categories
|
|
415
|
+
|
|
416
|
+
// Available categories from src/constants.ts:
|
|
417
|
+
// ESSENTIAL, ANALYTICS, MARKETING, PERSONALIZATION, OPT_OUT, STORAGE
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
##### `clearConsent(): void`
|
|
421
|
+
|
|
422
|
+
**Internal Implementation Details:**
|
|
423
|
+
- Dispatches `CLEAR_CONSENT` action to reset state
|
|
424
|
+
- Triggers Google Consent Mode update with only `ConsentCategory.ESSENTIAL`
|
|
425
|
+
- Clears both local storage and remote consent records
|
|
426
|
+
- Implemented in `handleClearConsent` with `useCallback` optimization
|
|
427
|
+
|
|
428
|
+
```js
|
|
429
|
+
// Development debugging:
|
|
430
|
+
clearConsent(); // Resets to clean slate for testing
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
##### `getDeviceId(): string`
|
|
434
|
+
|
|
435
|
+
**Internal Implementation Details:**
|
|
436
|
+
- Returns `consentManager.current.deviceId` property
|
|
437
|
+
- Device ID is fetched asynchronously via native module in `src/native/OsanoCmp.ts`
|
|
438
|
+
- Used for cross-device consent tracking and analytics correlation
|
|
439
|
+
- Persisted across app sessions for consistent identification
|
|
440
|
+
|
|
441
|
+
```js
|
|
442
|
+
// Development debugging:
|
|
443
|
+
const deviceId = getDeviceId();
|
|
444
|
+
console.log(`[DevDebug] Device ID: ${deviceId}`);
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
##### `locale: string`
|
|
448
|
+
|
|
449
|
+
**Internal Implementation Details:**
|
|
450
|
+
- Read from `consentManager.current.translator.locale`
|
|
451
|
+
- Managed by the `Translator` class in `src/utils/Translator.ts`
|
|
452
|
+
- Default is `Translator.DEFAULT_LANGUAGE` ('en')
|
|
453
|
+
- Triggers UI re-renders when changed via dependency array
|
|
454
|
+
|
|
455
|
+
```js
|
|
456
|
+
// Development debugging:
|
|
457
|
+
console.log(`[DevDebug] Current locale: ${locale}`);
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
##### `setLocale(locale: string): void`
|
|
461
|
+
|
|
462
|
+
**Internal Implementation Details:**
|
|
463
|
+
- Calls `consentManager.current.translator.load()` with success/failure callbacks
|
|
464
|
+
- Dispatches `setLocale(value)` action on successful load
|
|
465
|
+
- Uses exponential backoff retry logic for network failures
|
|
466
|
+
- Locale files fetched from `env.LOCALE_URI` endpoint
|
|
467
|
+
|
|
468
|
+
```js
|
|
469
|
+
// Development testing:
|
|
470
|
+
setLocale('es'); // Test Spanish localization
|
|
471
|
+
setLocale('invalid'); // Test error handling
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
##### `showBanner(): void`
|
|
475
|
+
|
|
476
|
+
**Internal Implementation Details:**
|
|
477
|
+
- Uses `retryWithBackoff` helper with 3 retries and exponential delay (100ms base)
|
|
478
|
+
- Dispatches `showDialog()` thunk action
|
|
479
|
+
- Checks `consentManager.current.loaded` state before execution
|
|
480
|
+
- Geographic location determines UI variant and timeout behavior
|
|
481
|
+
|
|
482
|
+
```js
|
|
483
|
+
// Development debugging:
|
|
484
|
+
try {
|
|
485
|
+
showBanner();
|
|
486
|
+
} catch (error) {
|
|
487
|
+
console.log('[DevDebug] Banner show failed:', error);
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
##### `showDrawer(): void`
|
|
492
|
+
|
|
493
|
+
**Internal Implementation Details:**
|
|
494
|
+
- Similar retry logic to `showBanner()` but dispatches `showDrawer()` thunk
|
|
495
|
+
- No automatic timeout - requires explicit user interaction
|
|
496
|
+
- Renders all consent categories with toggle controls
|
|
497
|
+
- State managed through drawer stack in `state.stack`
|
|
498
|
+
|
|
499
|
+
```js
|
|
500
|
+
// Development testing:
|
|
501
|
+
showDrawer(); // Always requires user interaction to dismiss
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
##### `isReady: boolean`
|
|
505
|
+
|
|
506
|
+
**Internal Implementation Details:**
|
|
507
|
+
- Reflects `consentManager.current.loaded` property
|
|
508
|
+
- Set to `true` after successful config loading in `ConsentManager.load()`
|
|
509
|
+
- Dependency in `useMemo` for context value - triggers re-renders
|
|
510
|
+
- Critical for preventing race conditions in consent operations
|
|
511
|
+
|
|
512
|
+
```js
|
|
513
|
+
// Development pattern:
|
|
514
|
+
useEffect(() => {
|
|
515
|
+
if (isReady) {
|
|
516
|
+
console.log('[DevDebug] SDK ready for operations');
|
|
517
|
+
// Safe to call other methods
|
|
518
|
+
}
|
|
519
|
+
}, [isReady]);
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**Development Notes:**
|
|
523
|
+
- All methods use `useCallback` for performance optimization
|
|
524
|
+
- State management follows Redux-like pattern with actions and reducers
|
|
525
|
+
- Native bridge communication handled through `react-native` `NativeModules`
|
|
526
|
+
- Error boundaries should wrap components using these methods
|
|
527
|
+
- Testing with both Legacy and New Architecture supported via test scripts
|
|
528
|
+
|
|
399
529
|
### UI Builder
|
|
400
530
|
|
|
401
531
|
Now that you have created an instance of the `ConsentManager`, you can
|
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Osano CMP SDK for React Native
|
|
2
2
|
|
|
3
|
-
Visit the [Developer Docs](https://developers.osano.com/cmp/react-native/) to learn more about installation and usage.
|
|
3
|
+
Visit the [Developer Docs](https://developers.osano.com/cmp/mobile-sdks/react-native/) to learn more about installation and usage.
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.hasStaleConfig = exports.getStoredConfig = exports.getConfigLastStoredAt = exports.fetchConsent = exports.fetchConfig = exports.clearConsent = void 0;
|
|
7
7
|
exports.hashExtUsrData = hashExtUsrData;
|
|
8
|
-
exports.storeConfig = exports.recordConsent = void 0;
|
|
8
|
+
exports.storeConfig = exports.recordConsent = exports.migrateConsentStorage = void 0;
|
|
9
9
|
var _jsSha = require("js-sha512");
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
var _textEncoding = require("text-encoding");
|
|
@@ -28,7 +28,6 @@ const overrideConfig = {
|
|
|
28
28
|
variant: 'two'
|
|
29
29
|
};
|
|
30
30
|
function createConsentPayload(cmp, consent) {
|
|
31
|
-
_OsanoLogger.osanoLogger.debug(`Consenting Platform: ${CONSENTING_PLATFORM_TAG}`);
|
|
32
31
|
return Object.fromEntries(Object.entries({
|
|
33
32
|
customerId: cmp.customerId,
|
|
34
33
|
configId: cmp.configId,
|
|
@@ -60,11 +59,13 @@ const storeConsent = async (cmp, consent) => {
|
|
|
60
59
|
resolve(cmp.consent ?? []);
|
|
61
60
|
return cmp.consent;
|
|
62
61
|
};
|
|
62
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
63
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
63
64
|
switch (_reactNative.Platform.OS) {
|
|
64
65
|
case 'ios':
|
|
65
66
|
case 'android':
|
|
66
|
-
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_last_recorded_consent_date`, JSON.stringify(new Date())).then(() => {
|
|
67
|
-
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_${cmp.configId}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
67
|
+
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`, JSON.stringify(new Date())).then(() => {
|
|
68
|
+
(0, _OsanoCmp.setStorage)(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
68
69
|
}).catch(reject);
|
|
69
70
|
break;
|
|
70
71
|
}
|
|
@@ -77,10 +78,12 @@ const clearConsent = async cmp => {
|
|
|
77
78
|
resolve([_constants.ConsentCategory.ESSENTIAL]);
|
|
78
79
|
return cmp.consent;
|
|
79
80
|
};
|
|
81
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
82
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
80
83
|
switch (_reactNative.Platform.OS) {
|
|
81
84
|
case 'android':
|
|
82
85
|
case 'ios':
|
|
83
|
-
(0, _OsanoCmp.clearStorage)(`${STORAGE_KEY}_${cmp.configId}`).then(resConsent);
|
|
86
|
+
(0, _OsanoCmp.clearStorage)(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`).then(resConsent);
|
|
84
87
|
break;
|
|
85
88
|
default:
|
|
86
89
|
resConsent();
|
|
@@ -89,6 +92,46 @@ const clearConsent = async cmp => {
|
|
|
89
92
|
});
|
|
90
93
|
};
|
|
91
94
|
exports.clearConsent = clearConsent;
|
|
95
|
+
const migrateConsentStorage = async cmp => {
|
|
96
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
97
|
+
|
|
98
|
+
// Only migrate if we have extUsrData (user-specific storage needed)
|
|
99
|
+
if (!hashedExtUsrData) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
return new Promise(resolve => {
|
|
103
|
+
const oldKey = `${STORAGE_KEY}_${cmp.configId}`; // Legacy key without user suffix
|
|
104
|
+
const oldTimestampKey = `${STORAGE_KEY}_last_recorded_consent_date`; // Legacy timestamp key
|
|
105
|
+
|
|
106
|
+
switch (_reactNative.Platform.OS) {
|
|
107
|
+
case 'ios':
|
|
108
|
+
case 'android':
|
|
109
|
+
(0, _OsanoCmp.getStorage)(oldKey).then(oldConsent => {
|
|
110
|
+
if (oldConsent) {
|
|
111
|
+
const consent = JSON.parse(oldConsent);
|
|
112
|
+
if (consent.length > 0) {
|
|
113
|
+
// Store with new user-specific key
|
|
114
|
+
storeConsent(cmp, consent).then(() => {
|
|
115
|
+
// Clean up old storage
|
|
116
|
+
(0, _OsanoCmp.clearStorage)(oldKey);
|
|
117
|
+
(0, _OsanoCmp.clearStorage)(oldTimestampKey);
|
|
118
|
+
resolve(consent);
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
resolve(null); // No old consent found
|
|
124
|
+
}).catch(() => {
|
|
125
|
+
resolve(null); // Old key not found
|
|
126
|
+
});
|
|
127
|
+
break;
|
|
128
|
+
default:
|
|
129
|
+
resolve(null);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
exports.migrateConsentStorage = migrateConsentStorage;
|
|
92
135
|
const retrieveConsent = async cmp => {
|
|
93
136
|
return new Promise(resolve => {
|
|
94
137
|
const resConsent = consentJson => {
|
|
@@ -104,12 +147,21 @@ const retrieveConsent = async cmp => {
|
|
|
104
147
|
}
|
|
105
148
|
throw new Error('Consent not found');
|
|
106
149
|
};
|
|
150
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
151
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
152
|
+
const newKey = `${STORAGE_KEY}_${cmp.configId}${userSuffix}`;
|
|
107
153
|
switch (_reactNative.Platform.OS) {
|
|
108
154
|
case 'ios':
|
|
109
155
|
case 'android':
|
|
110
|
-
(0, _OsanoCmp.getStorage)(
|
|
111
|
-
//
|
|
112
|
-
|
|
156
|
+
(0, _OsanoCmp.getStorage)(newKey).then(resConsent).catch(async () => {
|
|
157
|
+
// Try migration if new key not found
|
|
158
|
+
const migratedConsent = await migrateConsentStorage(cmp);
|
|
159
|
+
if (migratedConsent) {
|
|
160
|
+
resolve(migratedConsent);
|
|
161
|
+
} else {
|
|
162
|
+
// No consent found, clear consent
|
|
163
|
+
clearConsent(cmp).then(resolve);
|
|
164
|
+
}
|
|
113
165
|
});
|
|
114
166
|
break;
|
|
115
167
|
default:
|
|
@@ -117,7 +169,7 @@ const retrieveConsent = async cmp => {
|
|
|
117
169
|
}
|
|
118
170
|
});
|
|
119
171
|
};
|
|
120
|
-
const retrieveLastConsentTimestamp = async
|
|
172
|
+
const retrieveLastConsentTimestamp = async cmp => {
|
|
121
173
|
return new Promise(resolve => {
|
|
122
174
|
const resValue = consentJson => {
|
|
123
175
|
if (consentJson) {
|
|
@@ -129,10 +181,12 @@ const retrieveLastConsentTimestamp = async () => {
|
|
|
129
181
|
return '';
|
|
130
182
|
}
|
|
131
183
|
};
|
|
184
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
185
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
132
186
|
switch (_reactNative.Platform.OS) {
|
|
133
187
|
case 'ios':
|
|
134
188
|
case 'android':
|
|
135
|
-
(0, _OsanoCmp.getStorage)(`${STORAGE_KEY}_last_recorded_consent_date`).then(resValue);
|
|
189
|
+
(0, _OsanoCmp.getStorage)(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`).then(resValue);
|
|
136
190
|
break;
|
|
137
191
|
default:
|
|
138
192
|
// nothing
|
|
@@ -151,7 +205,7 @@ const recordConsent = (cmp, consent) => {
|
|
|
151
205
|
};
|
|
152
206
|
exports.recordConsent = recordConsent;
|
|
153
207
|
function hashExtUsrData(customerId, configId, extUsrData) {
|
|
154
|
-
if (extUsrData === '' || customerId === '' || configId === '') {
|
|
208
|
+
if (!extUsrData || extUsrData === '' || customerId === '' || configId === '') {
|
|
155
209
|
return '';
|
|
156
210
|
} else {
|
|
157
211
|
try {
|
|
@@ -191,7 +245,16 @@ const fetchConsent = async cmp => {
|
|
|
191
245
|
await storeConsent(cmp, consent);
|
|
192
246
|
return consent;
|
|
193
247
|
}
|
|
194
|
-
|
|
248
|
+
|
|
249
|
+
// If extUsrData is not null and not empty, always use remote consent (cross-device consent enabled)
|
|
250
|
+
if (extUsrData && extUsrData.trim() !== '') {
|
|
251
|
+
const remoteConsentCategories = consented.map(category => _constants.ConsentCategory[category]);
|
|
252
|
+
await storeConsent(cmp, remoteConsentCategories);
|
|
253
|
+
return remoteConsentCategories;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Otherwise, validate timestamps (cross-device consent not enabled)
|
|
257
|
+
const internalTimestamp = await retrieveLastConsentTimestamp(cmp);
|
|
195
258
|
try {
|
|
196
259
|
if (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '') {
|
|
197
260
|
// Remote consent is newer or we haven't recorded any consent yet. Store remote consent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_jsSha","require","_reactNative","_textEncoding","_constants","_OsanoCmp","_utils","_API","_interopRequireDefault","_OsanoLogger","e","__esModule","default","Buffer","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","env","IS_OFFICIAL_SAMPLE","NativeModules","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","Platform","OS","overrideConfig","variant","createConsentPayload","cmp","consent","osanoLogger","debug","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","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","fetchConfig","headers","json","merge","country","region","gdprApplies","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","now","diff","getTime","diffInMinutes","Math","floor"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_jsSha","require","_reactNative","_textEncoding","_constants","_OsanoCmp","_utils","_API","_interopRequireDefault","_OsanoLogger","e","__esModule","default","Buffer","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","env","IS_OFFICIAL_SAMPLE","NativeModules","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","Platform","OS","overrideConfig","variant","createConsentPayload","cmp","consent","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","deviceId","extUsrData","filter","value","undefined","createConsentRecordPayload","consentedCategories","hashedExtUsrData","hashExtUsrData","osnoCustomerId","osnoConfigId","join","userConsentId","STORAGE_KEY","storeConsent","Promise","resolve","reject","resConsent","userSuffix","setStorage","JSON","stringify","Date","then","catch","clearConsent","ConsentCategory","ESSENTIAL","clearStorage","exports","migrateConsentStorage","oldKey","oldTimestampKey","getStorage","oldConsent","parse","length","retrieveConsent","consentJson","Error","newKey","migratedConsent","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","trim","remoteConsentCategories","map","category","ConsentCategoryType","internalTimestamp","osanoLogger","fetchConfig","headers","json","merge","country","region","gdprApplies","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","now","diff","getTime","diffInMinutes","Math","floor"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,6 @@ const overrideConfig = {
|
|
|
19
19
|
variant: 'two'
|
|
20
20
|
};
|
|
21
21
|
function createConsentPayload(cmp, consent) {
|
|
22
|
-
osanoLogger.debug(`Consenting Platform: ${CONSENTING_PLATFORM_TAG}`);
|
|
23
22
|
return Object.fromEntries(Object.entries({
|
|
24
23
|
customerId: cmp.customerId,
|
|
25
24
|
configId: cmp.configId,
|
|
@@ -51,11 +50,13 @@ const storeConsent = async (cmp, consent) => {
|
|
|
51
50
|
resolve(cmp.consent ?? []);
|
|
52
51
|
return cmp.consent;
|
|
53
52
|
};
|
|
53
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
54
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
54
55
|
switch (Platform.OS) {
|
|
55
56
|
case 'ios':
|
|
56
57
|
case 'android':
|
|
57
|
-
setStorage(`${STORAGE_KEY}_last_recorded_consent_date`, JSON.stringify(new Date())).then(() => {
|
|
58
|
-
setStorage(`${STORAGE_KEY}_${cmp.configId}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
58
|
+
setStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`, JSON.stringify(new Date())).then(() => {
|
|
59
|
+
setStorage(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
|
|
59
60
|
}).catch(reject);
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
@@ -68,10 +69,12 @@ export const clearConsent = async cmp => {
|
|
|
68
69
|
resolve([ConsentCategory.ESSENTIAL]);
|
|
69
70
|
return cmp.consent;
|
|
70
71
|
};
|
|
72
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
73
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
71
74
|
switch (Platform.OS) {
|
|
72
75
|
case 'android':
|
|
73
76
|
case 'ios':
|
|
74
|
-
clearStorage(`${STORAGE_KEY}_${cmp.configId}`).then(resConsent);
|
|
77
|
+
clearStorage(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`).then(resConsent);
|
|
75
78
|
break;
|
|
76
79
|
default:
|
|
77
80
|
resConsent();
|
|
@@ -79,6 +82,45 @@ export const clearConsent = async cmp => {
|
|
|
79
82
|
}
|
|
80
83
|
});
|
|
81
84
|
};
|
|
85
|
+
export const migrateConsentStorage = async cmp => {
|
|
86
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
87
|
+
|
|
88
|
+
// Only migrate if we have extUsrData (user-specific storage needed)
|
|
89
|
+
if (!hashedExtUsrData) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return new Promise(resolve => {
|
|
93
|
+
const oldKey = `${STORAGE_KEY}_${cmp.configId}`; // Legacy key without user suffix
|
|
94
|
+
const oldTimestampKey = `${STORAGE_KEY}_last_recorded_consent_date`; // Legacy timestamp key
|
|
95
|
+
|
|
96
|
+
switch (Platform.OS) {
|
|
97
|
+
case 'ios':
|
|
98
|
+
case 'android':
|
|
99
|
+
getStorage(oldKey).then(oldConsent => {
|
|
100
|
+
if (oldConsent) {
|
|
101
|
+
const consent = JSON.parse(oldConsent);
|
|
102
|
+
if (consent.length > 0) {
|
|
103
|
+
// Store with new user-specific key
|
|
104
|
+
storeConsent(cmp, consent).then(() => {
|
|
105
|
+
// Clean up old storage
|
|
106
|
+
clearStorage(oldKey);
|
|
107
|
+
clearStorage(oldTimestampKey);
|
|
108
|
+
resolve(consent);
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
resolve(null); // No old consent found
|
|
114
|
+
}).catch(() => {
|
|
115
|
+
resolve(null); // Old key not found
|
|
116
|
+
});
|
|
117
|
+
break;
|
|
118
|
+
default:
|
|
119
|
+
resolve(null);
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
};
|
|
82
124
|
const retrieveConsent = async cmp => {
|
|
83
125
|
return new Promise(resolve => {
|
|
84
126
|
const resConsent = consentJson => {
|
|
@@ -94,12 +136,21 @@ const retrieveConsent = async cmp => {
|
|
|
94
136
|
}
|
|
95
137
|
throw new Error('Consent not found');
|
|
96
138
|
};
|
|
139
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
140
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
141
|
+
const newKey = `${STORAGE_KEY}_${cmp.configId}${userSuffix}`;
|
|
97
142
|
switch (Platform.OS) {
|
|
98
143
|
case 'ios':
|
|
99
144
|
case 'android':
|
|
100
|
-
getStorage(
|
|
101
|
-
//
|
|
102
|
-
|
|
145
|
+
getStorage(newKey).then(resConsent).catch(async () => {
|
|
146
|
+
// Try migration if new key not found
|
|
147
|
+
const migratedConsent = await migrateConsentStorage(cmp);
|
|
148
|
+
if (migratedConsent) {
|
|
149
|
+
resolve(migratedConsent);
|
|
150
|
+
} else {
|
|
151
|
+
// No consent found, clear consent
|
|
152
|
+
clearConsent(cmp).then(resolve);
|
|
153
|
+
}
|
|
103
154
|
});
|
|
104
155
|
break;
|
|
105
156
|
default:
|
|
@@ -107,7 +158,7 @@ const retrieveConsent = async cmp => {
|
|
|
107
158
|
}
|
|
108
159
|
});
|
|
109
160
|
};
|
|
110
|
-
const retrieveLastConsentTimestamp = async
|
|
161
|
+
const retrieveLastConsentTimestamp = async cmp => {
|
|
111
162
|
return new Promise(resolve => {
|
|
112
163
|
const resValue = consentJson => {
|
|
113
164
|
if (consentJson) {
|
|
@@ -119,10 +170,12 @@ const retrieveLastConsentTimestamp = async () => {
|
|
|
119
170
|
return '';
|
|
120
171
|
}
|
|
121
172
|
};
|
|
173
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
174
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
122
175
|
switch (Platform.OS) {
|
|
123
176
|
case 'ios':
|
|
124
177
|
case 'android':
|
|
125
|
-
getStorage(`${STORAGE_KEY}_last_recorded_consent_date`).then(resValue);
|
|
178
|
+
getStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`).then(resValue);
|
|
126
179
|
break;
|
|
127
180
|
default:
|
|
128
181
|
// nothing
|
|
@@ -140,7 +193,7 @@ export const recordConsent = (cmp, consent) => {
|
|
|
140
193
|
});
|
|
141
194
|
};
|
|
142
195
|
export function hashExtUsrData(customerId, configId, extUsrData) {
|
|
143
|
-
if (extUsrData === '' || customerId === '' || configId === '') {
|
|
196
|
+
if (!extUsrData || extUsrData === '' || customerId === '' || configId === '') {
|
|
144
197
|
return '';
|
|
145
198
|
} else {
|
|
146
199
|
try {
|
|
@@ -180,7 +233,16 @@ export const fetchConsent = async cmp => {
|
|
|
180
233
|
await storeConsent(cmp, consent);
|
|
181
234
|
return consent;
|
|
182
235
|
}
|
|
183
|
-
|
|
236
|
+
|
|
237
|
+
// If extUsrData is not null and not empty, always use remote consent (cross-device consent enabled)
|
|
238
|
+
if (extUsrData && extUsrData.trim() !== '') {
|
|
239
|
+
const remoteConsentCategories = consented.map(category => ConsentCategoryType[category]);
|
|
240
|
+
await storeConsent(cmp, remoteConsentCategories);
|
|
241
|
+
return remoteConsentCategories;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Otherwise, validate timestamps (cross-device consent not enabled)
|
|
245
|
+
const internalTimestamp = await retrieveLastConsentTimestamp(cmp);
|
|
184
246
|
try {
|
|
185
247
|
if (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '') {
|
|
186
248
|
// Remote consent is newer or we haven't recorded any consent yet. Store remote consent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sha512","Platform","NativeModules","TextEncoder","ConsentCategory","ConsentCategoryType","env","clearStorage","getStorage","setStorage","merge","API","osanoLogger","Buffer","require","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","IS_OFFICIAL_SAMPLE","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","OS","overrideConfig","variant","createConsentPayload","cmp","consent","debug","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","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","fetchConfig","headers","json","country","region","gdprApplies","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","now","diff","getTime","diffInMinutes","Math","floor"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAClC,SAASC,QAAQ,EAAEC,aAAa,QAAQ,cAAc;AACtD,SAASC,WAAW,QAAQ,eAAe;AAE3C,SACCC,eAAe,EACfA,eAAe,IAAIC,mBAAmB,EACtCC,GAAG,QACG,cAAc;AACrB,SAASC,YAAY,EAAEC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAEzE,SAASC,KAAK,QAAQ,UAAU;AAChC,OAAOC,GAAG,MAAM,cAAc;AAC9B,SAASC,WAAW,QAAQ,sBAAsB;AAElD,MAAMC,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,MAAM;AAEvC,MAAM;EAAEE,WAAW;EAAEC,WAAW;EAAEC;AAAa,CAAC,GAAGX,GAAG;AAEtD,MAAMY,kBAA2B,GAAIhB,aAAa,EAAUiB,WAAW,EAAED,kBAAkB;AAE3F,MAAME,uBAAuB,GAAGF,kBAAkB,GAAG,GAAGjB,QAAQ,CAACoB,EAAE,sBAAsB,GAAG,GAAGpB,QAAQ,CAACoB,EAAE,eAAe;AAEzH,MAAMC,cAA+B,GAAG;EACvC;EACAC,OAAO,EAAE;AACV,CAAC;AA4BD,SAASC,oBAAoBA,CAC5BC,GAAmB,EACnBC,OAA+B,EACd;EACjBd,WAAW,CAACe,KAAK,CAAC,wBAAwBP,uBAAuB,EAAE,CAAC;EACpE,OAAOQ,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACE,OAAO,CAAC;IACdC,UAAU,EAAEN,GAAG,CAACM,UAAU;IAC1BC,QAAQ,EAAEP,GAAG,CAACO,QAAQ;IACtBC,SAAS,EAAEP,OAAO,IAAID,GAAG,CAACC,OAAO;IACjCQ,gBAAgB,EAAET,GAAG,CAACS,gBAAgB;IACtCC,kBAAkB,EAAEf,uBAAuB;IAC3CgB,QAAQ,EAAEX,GAAG,CAACW,QAAQ;IACtBC,UAAU,EAAEZ,GAAG,CAACY;EACjB,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAKA,KAAK,KAAKC,SAAS,CAC7C,CAAC;AACF;AAEA,SAASC,0BAA0BA,CAClChB,GAAmB,EACnBC,OAA+B,EACR;EACvB,MAAMgB,mBAAmB,GAAGhB,OAAO,IAAID,GAAG,CAACC,OAAO,IAAI,EAAE;EACxD,MAAMiB,gBAAgB,GAAGC,cAAc,CACtCnB,GAAG,CAACM,UAAU,EACdN,GAAG,CAACO,QAAQ,EACZP,GAAG,CAACY,UACL,CAAC;EACD,OAAOT,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACE,OAAO,CAAC;IACde,cAAc,EAAEpB,GAAG,CAACM,UAAU;IAC9Be,YAAY,EAAErB,GAAG,CAACO,QAAQ;IAC1BC,SAAS,EAAES,mBAAmB,CAACK,IAAI,CAAC,GAAG,CAAC;IACxCb,gBAAgB,EAAET,GAAG,CAACS,gBAAgB;IACtCC,kBAAkB,EAAEf,uBAAuB;IAC3C4B,aAAa,EAAEvB,GAAG,CAACW,QAAQ;IAC3BC,UAAU,EAAEM;EACb,CAAC,CAAC,CAACL,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAKA,KAAK,KAAKC,SAAS,CAC7C,CAAC;AACF;AAEA,MAAMS,WAAW,GAAG,sBAAsB;AAE1C,MAAMC,YAAY,GAAG,MAAAA,CACpBzB,GAAmB,EACnBC,OAA+B,KAC3B;EACJD,GAAG,CAACC,OAAO,GAAGA,OAAO,IAAID,GAAG,CAACC,OAAO;EACpC,OAAO,IAAIyB,OAAO,CAAwB,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC9D,MAAMC,UAAU,GAAGA,CAAA,KAAM;MACxBF,OAAO,CAAC3B,GAAG,CAACC,OAAO,IAAI,EAAE,CAAC;MAC1B,OAAOD,GAAG,CAACC,OAAO;IACnB,CAAC;IACD,QAAQzB,QAAQ,CAACoB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;QACbZ,UAAU,CACT,GAAGwC,WAAW,6BAA6B,EAC3CM,IAAI,CAACC,SAAS,CAAC,IAAIC,IAAI,CAAC,CAAC,CAC1B,CAAC,CACCC,IAAI,CAAC,MAAM;UACXjD,UAAU,CACT,GAAGwC,WAAW,IAAIxB,GAAG,CAACO,QAAQ,EAAE,EAChCuB,IAAI,CAACC,SAAS,CAAC/B,GAAG,CAACC,OAAO,CAC3B,CAAC,CACCgC,IAAI,CAACJ,UAAU,CAAC,CAChBK,KAAK,CAACN,MAAM,CAAC;QAChB,CAAC,CAAC,CACDM,KAAK,CAACN,MAAM,CAAC;QACf;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAMO,YAAY,GAAG,MAAOnC,GAAmB,IAAK;EAC1D,OAAO,IAAI0B,OAAO,CAAyBC,OAAO,IAAK;IACtD,MAAME,UAAU,GAAGA,CAAA,KAAM;MACxB7B,GAAG,CAACC,OAAO,GAAG,CAACtB,eAAe,CAACyD,SAAS,CAAC;MACzCT,OAAO,CAAC,CAAChD,eAAe,CAACyD,SAAS,CAAC,CAAC;MACpC,OAAOpC,GAAG,CAACC,OAAO;IACnB,CAAC;IACD,QAAQzB,QAAQ,CAACoB,EAAE;MAClB,KAAK,SAAS;MACd,KAAK,KAAK;QACTd,YAAY,CAAC,GAAG0C,WAAW,IAAIxB,GAAG,CAACO,QAAQ,EAAE,CAAC,CAAC0B,IAAI,CAACJ,UAAU,CAAC;QAC/D;MACD;QACCA,UAAU,CAAC,CAAC;QACZ;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,MAAMQ,eAAe,GAAG,MAAOrC,GAAmB,IAAK;EACtD,OAAO,IAAI0B,OAAO,CAAyBC,OAAO,IAAK;IACtD,MAAME,UAAU,GAAIS,WAAsC,IAAK;MAC9D,IAAIA,WAAW,EAAE;QAChB,MAAMrC,OAAO,GAAG6B,IAAI,CAACS,KAAK,CAACD,WAAW,CAA0B;QAChE,IAAIrC,OAAO,CAACuC,MAAM,GAAG,CAAC,EAAE;UACvBxC,GAAG,CAACC,OAAO,GAAGA,OAAO;QACtB;MACD;MACA,IAAID,GAAG,CAACC,OAAO,IAAID,GAAG,CAACC,OAAO,CAACuC,MAAM,GAAG,CAAC,EAAE;QAC1Cb,OAAO,CAAC3B,GAAG,CAACC,OAAO,CAAC;QACpB,OAAOD,GAAG,CAACC,OAAO;MACnB;MACA,MAAM,IAAIwC,KAAK,CAAC,mBAAmB,CAAC;IACrC,CAAC;IACD,QAAQjE,QAAQ,CAACoB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;QACbb,UAAU,CAAC,GAAGyC,WAAW,IAAIxB,GAAG,CAACO,QAAQ,EAAE,CAAC,CAC1C0B,IAAI,CAACJ,UAAU,CAAC,CAChBK,KAAK,CAAC,MAAM;UACZ;UACAC,YAAY,CAACnC,GAAG,CAAC,CAACiC,IAAI,CAACN,OAAO,CAAC;QAChC,CAAC,CAAC;QACH;MACD;QACC;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,MAAMe,4BAA4B,GAAG,MAAAA,CAAA,KAAY;EAChD,OAAO,IAAIhB,OAAO,CAAUC,OAAO,IAAK;IACvC,MAAMgB,QAAQ,GAAIL,WAAsC,IAAK;MAC5D,IAAIA,WAAW,EAAE;QAChB,MAAMM,SAAS,GAAGd,IAAI,CAACS,KAAK,CAACD,WAAW,CAAC;QACzCX,OAAO,CAACiB,SAAS,CAAC;QAClB,OAAOA,SAAS;MACjB,CAAC,MAAM;QACNjB,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE;MACV;IACD,CAAC;IACD,QAAQnD,QAAQ,CAACoB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;QACbb,UAAU,CAAC,GAAGyC,WAAW,6BAA6B,CAAC,CAACS,IAAI,CAACU,QAAQ,CAAC;QACtE;MACD;QACC;QACA;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAME,aAAa,GAAGA,CAC5B7C,GAAmB,EACnBC,OAA+B,KAC3B;EACJ,MAAM6C,OAAO,GAAG9B,0BAA0B,CAAChB,GAAG,EAAEC,OAAO,CAAC;EACxD,OAAOf,GAAG,CAAC6D,IAAI,CAAC,GAAGzD,WAAW,SAAS,EAAEwD,OAAO,EAAE;IACjDE,QAAQ,EAAEhD,GAAG,CAACS;EACf,CAAC,CAAC,CACAwB,IAAI,CAAC,MAAMhC,OAAO,IAAID,GAAG,CAACC,OAAO,CAAC,CAClCgC,IAAI,CAAEgB,iBAAiB,IAAKxB,YAAY,CAACzB,GAAG,EAAEiD,iBAAiB,CAAC,CAAC,CACjEf,KAAK,CAAEgB,KAAK,IAAK;IACjB;IACA,MAAMA,KAAK;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAAS/B,cAAcA,CAC7Bb,UAAkB,EAClBC,QAAgB,EAChBK,UAAkB,EACT;EACT,IAAIA,UAAU,KAAK,EAAE,IAAIN,UAAU,KAAK,EAAE,IAAIC,QAAQ,KAAK,EAAE,EAAE;IAC9D,OAAO,EAAE;EACV,CAAC,MAAM;IACN,IAAI;MACH,MAAM4C,OAAO,GAAG,IAAIzE,WAAW,CAAC,CAAC;MACjC,MAAM0E,IAAI,GAAGD,OAAO,CAACE,MAAM,CAAC,GAAG/C,UAAU,IAAIC,QAAQ,IAAIK,UAAU,EAAE,CAAC;MACtE,MAAM0C,IAAI,GAAG/E,MAAM,CAACgF,WAAW,CAACH,IAAI,CAAC;MACrC,MAAMI,MAAM,GAAGpE,MAAM,CAACqE,IAAI,CAACH,IAAI,CAAC,CAACI,QAAQ,CAAC,QAAQ,CAAC;MACnD,MAAMC,WAAW,GAAGH,MAAM,CAACI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;MAClE,OAAOD,WAAW;IACnB,CAAC,CAAC,OAAOT,KAAK,EAAE;MACf;MACA,OAAO,EAAE;IACV;EACD;AACD;AAEA,OAAO,MAAMW,YAAY,GAAG,MAAO7D,GAAmB,IAAK;EAC1D,MAAM;IAAEM,UAAU;IAAEC,QAAQ;IAAEK;EAAW,CAAC,GAAGZ,GAAG;EAEhD,IAAI;IACH,MAAMC,OAAO,GAAG,MAAMoC,eAAe,CAACrC,GAAG,CAAC;IAE1C,MAAM8D,cAAc,GAAG3C,cAAc,CAACb,UAAU,EAAEC,QAAQ,EAAEK,UAAU,CAAC;;IAEvE;IACA,IAAIkD,cAAc,KAAK,EAAE,IAAI9D,GAAG,CAAC+D,MAAM,CAACC,aAAa,KAAK,KAAK,EAAE;MAChE,OAAO/D,OAAO;IACf;IAEA,MAAMgE,QAAQ,GAAG,MAAM/E,GAAG,CAACgF,GAAG,CAC7B,GAAG3E,WAAW,aAAae,UAAU,WAAWC,QAAQ,SAASuD,cAAc,UAChF,CAAC;IAED,MAAM;MAAEtD,SAAS;MAAE2D;IAAqB,CAAC,GACxCF,QAAqC;IAEtC,IAAI,CAACzD,SAAS,IAAI,CAAC2D,oBAAoB,EAAE;MACxC;MACA,MAAM1C,YAAY,CAACzB,GAAG,EAAEC,OAAO,CAAC;MAChC,OAAOA,OAAO;IACf;IAEA,MAAMmE,iBAAiB,GAAG,MAAM1B,4BAA4B,CAAC,CAAC;IAC9D,IAAI;MACH,IACC,IAAIV,IAAI,CAACmC,oBAAoB,CAAC,GAAG,IAAInC,IAAI,CAACoC,iBAAiB,CAAC,IAC5DA,iBAAiB,KAAK,EAAE,EACvB;QACD;QACA,MAAMC,uBAAuB,GAAG7D,SAAS,CAAC8D,GAAG,CAC3CC,QAAQ,IACR3F,mBAAmB,CAAC2F,QAAQ,CAC9B,CAAC;QACD,MAAM9C,YAAY,CAACzB,GAAG,EAAEqE,uBAAuB,CAAC;QAEhD,OAAOA,uBAAuB;MAC/B;IACD,CAAC,CAAC,OAAOnB,KAAK,EAAE;MACf;IAAA;IAGD,OAAOjD,OAAO;EACf,CAAC,CAAC,OAAOiD,KAAK,EAAE;IACf/D,WAAW,CAAC+D,KAAK,CAAC,yBAAyB,EAAEA,KAAc,CAAC;IAC5D;IACA,MAAMjD,OAAO,GAAG,MAAMoC,eAAe,CAACrC,GAAG,CAAC;IAC1C,OAAOC,OAAO;EACf;AACD,CAAC;AAED,OAAO,MAAMuE,WAAW,GAAGA,CAAClE,UAAkB,EAAEC,QAAgB,KAAK;EACpE,OAAOrB,GAAG,CAACgF,GAAG,CAAC,GAAG1E,YAAY,IAAIc,UAAU,IAAIC,QAAQ,cAAc,EAAE,IAAI,CAAC,CAC3E0B,IAAI,CAAEgC,QAAQ,IAAK;IACnB,MAAM;MAAEQ,OAAO;MAAEC;IAAK,CAAC,GAAGT,QAGzB;IACD,OAAOhF,KAAK,CACX;MACC,GAAGyF,IAAI;MACPC,OAAO,EAAEF,OAAO,CAACP,GAAG,CAAC,iBAAiB,CAAC;MACvCU,MAAM,EAAEH,OAAO,CAACP,GAAG,CAAC,gBAAgB,CAAC;MACrCpE,OAAO,EAAE2E,OAAO,CAACP,GAAG,CAAC,iBAAiB,CAAC;MACvCW,WAAW,EAAEJ,OAAO,CAACP,GAAG,CAAC,sBAAsB,CAAC,KAAK;IACtD,CAAC,EACDrE,cACD,CAAC;EACF,CAAC,CAAC,CACDqC,KAAK,CAAC,MAAM;IACZ;IACA,MAAM,IAAIO,KAAK,CAAC,uBAAuB,CAAC;EACzC,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMqC,eAAe,GAAG,MAC9BvE,QAAgB,IACY;EAC5B,IAAI;IACH,MAAMwD,MAAM,GAAG,MAAMhF,UAAU,CAAC,GAAGyC,WAAW,IAAIjB,QAAQ,SAAS,CAAC;IACpE,IAAIwD,MAAM,EAAE;MACX,OAAOjC,IAAI,CAACS,KAAK,CAACwB,MAAM,CAAC;IAC1B;EACD,CAAC,CAAC,OAAOb,KAAK,EAAE;IACf;EAAA;EAED,OAAO,IAAI;AACZ,CAAC;AAED,OAAO,MAAM6B,WAAW,GAAG,MAAAA,CAC1BxE,QAAgB,EAChBwD,MAAc,KACK;EACnB,IAAI;IACH,MAAMrC,OAAO,CAACsD,GAAG,CAAC,CACjBhG,UAAU,CAAC,GAAGwC,WAAW,IAAIjB,QAAQ,SAAS,EAAEuB,IAAI,CAACC,SAAS,CAACgC,MAAM,CAAC,CAAC,EACvE/E,UAAU,CACT,GAAGwC,WAAW,IAAIjB,QAAQ,wBAAwB,EAClDuB,IAAI,CAACC,SAAS,CAAC,IAAIC,IAAI,CAAC,CAAC,CAC1B,CAAC,CACD,CAAC;EACH,CAAC,CAAC,OAAOkB,KAAK,EAAE;IACf,MAAM,IAAIT,KAAK,CAAC,wBAAwB,CAAC;EAC1C;AACD,CAAC;AAED,OAAO,MAAMwC,qBAAqB,GAAG,MACpC1E,QAAgB,IACU;EAC1B,IAAI;IACH,MAAM2E,YAAY,GAAG,MAAMnG,UAAU,CACpC,GAAGyC,WAAW,IAAIjB,QAAQ,wBAC3B,CAAC;IACD,IAAI2E,YAAY,EAAE;MACjB,OAAO,IAAIlD,IAAI,CAACF,IAAI,CAACS,KAAK,CAAC2C,YAAY,CAAC,CAAC;IAC1C;EACD,CAAC,CAAC,OAAOhC,KAAK,EAAE;IACf;EAAA;EAED,OAAO,IAAI;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMiC,cAAc,GAAG,MAAO5E,QAAgB,IAAuB;EAC3E,MAAM2E,YAAY,GAAG,MAAMD,qBAAqB,CAAC1E,QAAQ,CAAC;EAC1D,IAAI,CAAC2E,YAAY,EAAE;IAClB,OAAO,IAAI;EACZ;EACA,MAAME,GAAG,GAAG,IAAIpD,IAAI,CAAC,CAAC;EACtB,MAAMqD,IAAI,GAAGD,GAAG,CAACE,OAAO,CAAC,CAAC,GAAGJ,YAAY,CAACI,OAAO,CAAC,CAAC;EACnD,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,GAAG,KAAK,CAAC;EAC9C,OAAOE,aAAa,GAAG,IAAI,CAAC,CAAC;AAC9B,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["sha512","Platform","NativeModules","TextEncoder","ConsentCategory","ConsentCategoryType","env","clearStorage","getStorage","setStorage","merge","API","osanoLogger","Buffer","require","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","IS_OFFICIAL_SAMPLE","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","OS","overrideConfig","variant","createConsentPayload","cmp","consent","Object","fromEntries","entries","customerId","configId","consented","consentingDomain","consentingPlatform","deviceId","extUsrData","filter","value","undefined","createConsentRecordPayload","consentedCategories","hashedExtUsrData","hashExtUsrData","osnoCustomerId","osnoConfigId","join","userConsentId","STORAGE_KEY","storeConsent","Promise","resolve","reject","resConsent","userSuffix","JSON","stringify","Date","then","catch","clearConsent","ESSENTIAL","migrateConsentStorage","oldKey","oldTimestampKey","oldConsent","parse","length","retrieveConsent","consentJson","Error","newKey","migratedConsent","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","trim","remoteConsentCategories","map","category","internalTimestamp","fetchConfig","headers","json","country","region","gdprApplies","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","now","diff","getTime","diffInMinutes","Math","floor"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
2
|
export function hashExtUsrData(customerId: any, configId: any, extUsrData: any): string;
|
|
3
3
|
export function clearConsent(cmp: any): Promise<any>;
|
|
4
|
+
export function migrateConsentStorage(cmp: any): Promise<any>;
|
|
4
5
|
export function recordConsent(cmp: any, consent: any): any;
|
|
5
6
|
export function fetchConsent(cmp: any): Promise<any>;
|
|
6
7
|
export function fetchConfig(customerId: any, configId: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../commonjs/services/consent.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../commonjs/services/consent.js"],"names":[],"mappings":";AA8MA,wFAgBC;AArJD,qDAmBC;AAED,8DAsCC;AAgED,2DAQC;AAmBD,qDAmDC;AAED,iEAiBC;AAED,6DAUC;AAED,uEAMC;AAED,2EAUC;AAUD,gEASC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export function hashExtUsrData(customerId: any, configId: any, extUsrData: any): string;
|
|
2
2
|
export function clearConsent(cmp: any): Promise<any>;
|
|
3
|
+
export function migrateConsentStorage(cmp: any): Promise<any>;
|
|
3
4
|
export function recordConsent(cmp: any, consent: any): Promise<any>;
|
|
4
5
|
export function fetchConsent(cmp: any): Promise<any>;
|
|
5
6
|
export function fetchConfig(customerId: any, configId: any): Promise<any>;
|
|
@@ -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":"AAkMA,wFAgBC;AAlJM,qDAmBN;AACM,8DAsCN;AA+DM,oEAQN;AAkBM,qDAmDN;AACM,0EAiBN;AACM,6DAUN;AACM,uEAMN;AACM,2EAUN;AASM,yCAHI,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAW5B"}
|
|
@@ -25,8 +25,9 @@ export type ConsentLookupResponseType = {
|
|
|
25
25
|
userConsentId: string;
|
|
26
26
|
};
|
|
27
27
|
export declare const clearConsent: (cmp: ConsentManager) => Promise<ConsentCategory[]>;
|
|
28
|
+
export declare const migrateConsentStorage: (cmp: ConsentManager) => Promise<ConsentCategoryType[] | null>;
|
|
28
29
|
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 function hashExtUsrData(customerId: string, configId: string, extUsrData: string | undefined): string;
|
|
30
31
|
export declare const fetchConsent: (cmp: ConsentManager) => Promise<ConsentCategory[]>;
|
|
31
32
|
export declare const fetchConfig: (customerId: string, configId: string) => Promise<Config>;
|
|
32
33
|
export declare const getStoredConfig: (configId: string) => Promise<Config | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../src/services/consent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACN,eAAe,EACf,eAAe,IAAI,mBAAmB,EAEtC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAkBtD,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;
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../../../src/services/consent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACN,eAAe,EACf,eAAe,IAAI,mBAAmB,EAEtC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAkBtD,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;AA6EF,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,+BAmBrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,KAAK,cAAc,KAAG,OAAO,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAyCrG,CAAC;AAsEF,eAAO,MAAM,aAAa,GACzB,KAAK,cAAc,EACnB,UAAU,mBAAmB,EAAE,+BAY/B,CAAC;AAEF,wBAAgB,cAAc,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAgBR;AAED,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,+BA+DrD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,oBAsB/D,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAUvB,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACZ,OAAO,CAAC,IAAI,CAYd,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,UAAU,MAAM,KACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAYrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAStE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osano/osano-cmp-react-native",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.2",
|
|
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",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"update:locale": "node ./scripts/updateLocalization.js",
|
|
42
42
|
"prepare": "bob build",
|
|
43
43
|
"release": "release-it",
|
|
44
|
-
"release:prod": "release-it
|
|
44
|
+
"release:prod": "release-it --no-increment --no-git --ci -VV",
|
|
45
45
|
"doc:start": "docusaurus start ./documentation",
|
|
46
46
|
"doc:build": "docusaurus build ./documentation",
|
|
47
47
|
"doc:clear": "docusaurus clear ./documentation",
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
],
|
|
55
55
|
"repository": {
|
|
56
56
|
"type": "git",
|
|
57
|
-
"url": "
|
|
57
|
+
"url": ""
|
|
58
58
|
},
|
|
59
59
|
"author": "Osano (A Public Benefit Company) <engineering@osano.com> (https://www.osano.com)",
|
|
60
60
|
"license": "UNLICENSED",
|
|
61
61
|
"bugs": {
|
|
62
62
|
"url": "https://github.com/osano/osano-consentmgr-react-native/issues"
|
|
63
63
|
},
|
|
64
|
-
"homepage": "https://
|
|
64
|
+
"homepage": "https://developers.osano.com/cmp/mobile-sdks/",
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"registry": "https://registry.npmjs.org/",
|
|
67
67
|
"access": "public"
|
|
@@ -135,11 +135,21 @@
|
|
|
135
135
|
]
|
|
136
136
|
},
|
|
137
137
|
"release-it": {
|
|
138
|
+
"git": {
|
|
139
|
+
"requireBranch": false,
|
|
140
|
+
"commit": false,
|
|
141
|
+
"tag": false,
|
|
142
|
+
"push": false
|
|
143
|
+
},
|
|
138
144
|
"npm": {
|
|
139
|
-
"publish": true
|
|
145
|
+
"publish": true,
|
|
146
|
+
"versionArgs": "--no-git-tag-version"
|
|
140
147
|
},
|
|
141
148
|
"github": {
|
|
142
149
|
"release": false
|
|
150
|
+
},
|
|
151
|
+
"hooks": {
|
|
152
|
+
"before:init": "echo 'Using version from package.json: ${version}'"
|
|
143
153
|
}
|
|
144
154
|
},
|
|
145
155
|
"react-native-builder-bob": {
|
package/src/services/consent.ts
CHANGED
|
@@ -56,7 +56,6 @@ function createConsentPayload(
|
|
|
56
56
|
cmp: ConsentManager,
|
|
57
57
|
consent?: ConsentCategoryType[],
|
|
58
58
|
): ConsentPayload {
|
|
59
|
-
osanoLogger.debug(`Consenting Platform: ${CONSENTING_PLATFORM_TAG}`);
|
|
60
59
|
return Object.fromEntries(
|
|
61
60
|
Object.entries({
|
|
62
61
|
customerId: cmp.customerId,
|
|
@@ -105,16 +104,18 @@ const storeConsent = async (
|
|
|
105
104
|
resolve(cmp.consent ?? []);
|
|
106
105
|
return cmp.consent;
|
|
107
106
|
};
|
|
107
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
108
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
108
109
|
switch (Platform.OS) {
|
|
109
110
|
case 'ios':
|
|
110
111
|
case 'android':
|
|
111
112
|
setStorage(
|
|
112
|
-
`${STORAGE_KEY}_last_recorded_consent_date`,
|
|
113
|
+
`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`,
|
|
113
114
|
JSON.stringify(new Date()),
|
|
114
115
|
)
|
|
115
116
|
.then(() => {
|
|
116
117
|
setStorage(
|
|
117
|
-
`${STORAGE_KEY}_${cmp.configId}`,
|
|
118
|
+
`${STORAGE_KEY}_${cmp.configId}${userSuffix}`,
|
|
118
119
|
JSON.stringify(cmp.consent),
|
|
119
120
|
)
|
|
120
121
|
.then(resConsent)
|
|
@@ -133,10 +134,12 @@ export const clearConsent = async (cmp: ConsentManager) => {
|
|
|
133
134
|
resolve([ConsentCategory.ESSENTIAL]);
|
|
134
135
|
return cmp.consent;
|
|
135
136
|
};
|
|
137
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
138
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
136
139
|
switch (Platform.OS) {
|
|
137
140
|
case 'android':
|
|
138
141
|
case 'ios':
|
|
139
|
-
clearStorage(`${STORAGE_KEY}_${cmp.configId}`).then(resConsent);
|
|
142
|
+
clearStorage(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`).then(resConsent);
|
|
140
143
|
break;
|
|
141
144
|
default:
|
|
142
145
|
resConsent();
|
|
@@ -145,6 +148,49 @@ export const clearConsent = async (cmp: ConsentManager) => {
|
|
|
145
148
|
});
|
|
146
149
|
};
|
|
147
150
|
|
|
151
|
+
export const migrateConsentStorage = async (cmp: ConsentManager): Promise<ConsentCategoryType[] | null> => {
|
|
152
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
153
|
+
|
|
154
|
+
// Only migrate if we have extUsrData (user-specific storage needed)
|
|
155
|
+
if (!hashedExtUsrData) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return new Promise<ConsentCategoryType[] | null>((resolve) => {
|
|
160
|
+
const oldKey = `${STORAGE_KEY}_${cmp.configId}`; // Legacy key without user suffix
|
|
161
|
+
const oldTimestampKey = `${STORAGE_KEY}_last_recorded_consent_date`; // Legacy timestamp key
|
|
162
|
+
|
|
163
|
+
switch (Platform.OS) {
|
|
164
|
+
case 'ios':
|
|
165
|
+
case 'android':
|
|
166
|
+
getStorage(oldKey)
|
|
167
|
+
.then((oldConsent) => {
|
|
168
|
+
if (oldConsent) {
|
|
169
|
+
const consent = JSON.parse(oldConsent) as ConsentCategoryType[];
|
|
170
|
+
if (consent.length > 0) {
|
|
171
|
+
// Store with new user-specific key
|
|
172
|
+
storeConsent(cmp, consent).then(() => {
|
|
173
|
+
// Clean up old storage
|
|
174
|
+
clearStorage(oldKey);
|
|
175
|
+
clearStorage(oldTimestampKey);
|
|
176
|
+
resolve(consent);
|
|
177
|
+
});
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
resolve(null); // No old consent found
|
|
182
|
+
})
|
|
183
|
+
.catch(() => {
|
|
184
|
+
resolve(null); // Old key not found
|
|
185
|
+
});
|
|
186
|
+
break;
|
|
187
|
+
default:
|
|
188
|
+
resolve(null);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
|
|
148
194
|
const retrieveConsent = async (cmp: ConsentManager) => {
|
|
149
195
|
return new Promise<ConsentCategoryType[]>((resolve) => {
|
|
150
196
|
const resConsent = (consentJson: string | null | undefined) => {
|
|
@@ -160,14 +206,25 @@ const retrieveConsent = async (cmp: ConsentManager) => {
|
|
|
160
206
|
}
|
|
161
207
|
throw new Error('Consent not found');
|
|
162
208
|
};
|
|
209
|
+
|
|
210
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
211
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
212
|
+
const newKey = `${STORAGE_KEY}_${cmp.configId}${userSuffix}`;
|
|
213
|
+
|
|
163
214
|
switch (Platform.OS) {
|
|
164
215
|
case 'ios':
|
|
165
216
|
case 'android':
|
|
166
|
-
getStorage(
|
|
217
|
+
getStorage(newKey)
|
|
167
218
|
.then(resConsent)
|
|
168
|
-
.catch(() => {
|
|
169
|
-
//
|
|
170
|
-
|
|
219
|
+
.catch(async () => {
|
|
220
|
+
// Try migration if new key not found
|
|
221
|
+
const migratedConsent = await migrateConsentStorage(cmp);
|
|
222
|
+
if (migratedConsent) {
|
|
223
|
+
resolve(migratedConsent);
|
|
224
|
+
} else {
|
|
225
|
+
// No consent found, clear consent
|
|
226
|
+
clearConsent(cmp).then(resolve);
|
|
227
|
+
}
|
|
171
228
|
});
|
|
172
229
|
break;
|
|
173
230
|
default:
|
|
@@ -176,7 +233,7 @@ const retrieveConsent = async (cmp: ConsentManager) => {
|
|
|
176
233
|
});
|
|
177
234
|
};
|
|
178
235
|
|
|
179
|
-
const retrieveLastConsentTimestamp = async () => {
|
|
236
|
+
const retrieveLastConsentTimestamp = async (cmp: ConsentManager) => {
|
|
180
237
|
return new Promise<string>((resolve) => {
|
|
181
238
|
const resValue = (consentJson: string | null | undefined) => {
|
|
182
239
|
if (consentJson) {
|
|
@@ -188,10 +245,12 @@ const retrieveLastConsentTimestamp = async () => {
|
|
|
188
245
|
return '';
|
|
189
246
|
}
|
|
190
247
|
};
|
|
248
|
+
const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
|
|
249
|
+
const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
|
|
191
250
|
switch (Platform.OS) {
|
|
192
251
|
case 'ios':
|
|
193
252
|
case 'android':
|
|
194
|
-
getStorage(`${STORAGE_KEY}_last_recorded_consent_date`).then(resValue);
|
|
253
|
+
getStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`).then(resValue);
|
|
195
254
|
break;
|
|
196
255
|
default:
|
|
197
256
|
// nothing
|
|
@@ -219,9 +278,9 @@ export const recordConsent = (
|
|
|
219
278
|
export function hashExtUsrData(
|
|
220
279
|
customerId: string,
|
|
221
280
|
configId: string,
|
|
222
|
-
extUsrData: string,
|
|
281
|
+
extUsrData: string | undefined,
|
|
223
282
|
): string {
|
|
224
|
-
if (extUsrData === '' || customerId === '' || configId === '') {
|
|
283
|
+
if (!extUsrData || extUsrData === '' || customerId === '' || configId === '') {
|
|
225
284
|
return '';
|
|
226
285
|
} else {
|
|
227
286
|
try {
|
|
@@ -264,7 +323,18 @@ export const fetchConsent = async (cmp: ConsentManager) => {
|
|
|
264
323
|
return consent;
|
|
265
324
|
}
|
|
266
325
|
|
|
267
|
-
|
|
326
|
+
// If extUsrData is not null and not empty, always use remote consent (cross-device consent enabled)
|
|
327
|
+
if (extUsrData && extUsrData.trim() !== '') {
|
|
328
|
+
const remoteConsentCategories = consented.map(
|
|
329
|
+
(category) =>
|
|
330
|
+
ConsentCategoryType[category as keyof typeof ConsentCategoryType],
|
|
331
|
+
);
|
|
332
|
+
await storeConsent(cmp, remoteConsentCategories);
|
|
333
|
+
return remoteConsentCategories;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Otherwise, validate timestamps (cross-device consent not enabled)
|
|
337
|
+
const internalTimestamp = await retrieveLastConsentTimestamp(cmp);
|
|
268
338
|
try {
|
|
269
339
|
if (
|
|
270
340
|
new Date(lastConsentTimestamp) > new Date(internalTimestamp) ||
|