@osano/osano-cmp-react-native 0.18.4 → 0.18.5

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 (36) hide show
  1. package/lib/commonjs/ConsentManager.js +50 -1
  2. package/lib/commonjs/ConsentManager.js.map +1 -1
  3. package/lib/commonjs/context.js +1 -0
  4. package/lib/commonjs/context.js.map +1 -1
  5. package/lib/commonjs/index.js +4 -0
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/services/consent.js +129 -29
  8. package/lib/commonjs/services/consent.js.map +1 -1
  9. package/lib/commonjs/services/gdprMappings.js +115 -0
  10. package/lib/commonjs/services/gdprMappings.js.map +1 -0
  11. package/lib/module/ConsentManager.js +50 -1
  12. package/lib/module/ConsentManager.js.map +1 -1
  13. package/lib/module/context.js +1 -0
  14. package/lib/module/context.js.map +1 -1
  15. package/lib/module/index.js +4 -0
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/services/consent.js +127 -28
  18. package/lib/module/services/consent.js.map +1 -1
  19. package/lib/module/services/gdprMappings.js +109 -0
  20. package/lib/module/services/gdprMappings.js.map +1 -0
  21. package/lib/typescript/src/ConsentManager.d.ts +24 -0
  22. package/lib/typescript/src/ConsentManager.d.ts.map +1 -1
  23. package/lib/typescript/src/context.d.ts +1 -0
  24. package/lib/typescript/src/context.d.ts.map +1 -1
  25. package/lib/typescript/src/index.d.ts.map +1 -1
  26. package/lib/typescript/src/services/consent.d.ts +6 -1
  27. package/lib/typescript/src/services/consent.d.ts.map +1 -1
  28. package/lib/typescript/src/services/gdprMappings.d.ts +32 -0
  29. package/lib/typescript/src/services/gdprMappings.d.ts.map +1 -0
  30. package/package.json +4 -4
  31. package/src/ConsentManager.ts +68 -2
  32. package/src/context.ts +2 -0
  33. package/src/index.tsx +10 -0
  34. package/src/services/consent.ts +168 -35
  35. package/src/services/gdprMappings.ts +126 -0
  36. package/src/types/index.d.ts +9 -0
@@ -5,6 +5,7 @@ import { Platform, NativeModules } from 'react-native';
5
5
  import { TextEncoder } from 'text-encoding';
6
6
  import { ConsentCategory, env, formatConsentArray, makeConsentFromCategories } from '../constants';
7
7
  import { clearStorage, getStorage, setStorage } from '../native/OsanoCmp';
8
+ import { getConsentExpirationSeconds } from './gdprMappings';
8
9
  import { merge } from '../utils';
9
10
  import API from '../utils/API';
10
11
  import { osanoLogger } from '../utils/OsanoLogger';
@@ -36,6 +37,13 @@ function createConsentRecordPayload(cmp, consent) {
36
37
  }).filter(([, value]) => value !== undefined));
37
38
  }
38
39
  const STORAGE_KEY = 'osano_consentmanager';
40
+
41
+ // The consent timestamp is scoped by configId so it tracks the consent record
42
+ // for that config (both also carry the userSuffix). Older builds wrote a single
43
+ // un-scoped key shared across configs; retrieveLastConsentTimestamp falls back
44
+ // to it so existing installs keep their recorded date until the next write.
45
+ const lastConsentDateKey = (configId, userSuffix) => `${STORAGE_KEY}_last_recorded_consent_date_${configId}${userSuffix}`;
46
+ const legacyLastConsentDateKey = userSuffix => `${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`;
39
47
  function consentRecordedRemotely(configId, success, hashedExtUsrData) {
40
48
  const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
41
49
  if (success) {
@@ -44,7 +52,7 @@ function consentRecordedRemotely(configId, success, hashedExtUsrData) {
44
52
  setStorage(`${STORAGE_KEY}_${configId}${userSuffix}_last_failed_remote_record`, JSON.stringify(new Date()));
45
53
  }
46
54
  }
47
- export const storeConsent = async (cmp, consent, recordedRemotely) => {
55
+ export const storeConsent = async (cmp, consent, recordedRemotely, consentDate) => {
48
56
  cmp.consent = consent ?? cmp.consent;
49
57
  return new Promise((resolve, reject) => {
50
58
  const resConsent = () => {
@@ -53,12 +61,14 @@ export const storeConsent = async (cmp, consent, recordedRemotely) => {
53
61
  };
54
62
  const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
55
63
  const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
64
+ const parsedDate = consentDate ? new Date(consentDate) : new Date();
65
+ const recordedDate = Number.isNaN(parsedDate.getTime()) ? new Date() : parsedDate;
56
66
  switch (Platform.OS) {
57
67
  case 'ios':
58
68
  case 'android':
59
69
  default:
60
70
  {
61
- setStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`, JSON.stringify(new Date())).then(() => {
71
+ setStorage(lastConsentDateKey(cmp.configId, userSuffix), JSON.stringify(recordedDate)).then(() => {
62
72
  setStorage(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
63
73
  }).catch(reject);
64
74
  if (recordedRemotely !== undefined) {
@@ -144,7 +154,24 @@ const clearToFirstLoadDefault = async cmp => {
144
154
  cmp.consent = seed;
145
155
  return seed;
146
156
  };
157
+
158
+ // After an expired/invalid record, settle on a persisted essential-only state.
159
+ // Persisting (rather than only clearing the payload with clearConsent) keeps a
160
+ // subsequent load in this safe state instead of falling back to the first-load
161
+ // default — which, for Flavor 7, would re-enable analytics. This matters
162
+ // because a later load may resolve no expiration window (testing off, offline
163
+ // with no mappings cache, or a country with no interval), in which case empty
164
+ // storage would otherwise re-seed the first-load default.
165
+ const settleEssentialOnly = cmp => storeConsent(cmp, [ConsentCategory.ESSENTIAL]);
147
166
  const retrieveConsent = async cmp => {
167
+ // If stored consent has aged past its expiration window (production
168
+ // per-country interval, or the debug testing override), settle on a persisted
169
+ // essential-only state so callers see essential-only and a later load stays
170
+ // here (mirrors Android's clearExpiredConsent() + essential-only
171
+ // getConsentedCategories()).
172
+ if (await isConsentExpired(cmp)) {
173
+ return settleEssentialOnly(cmp);
174
+ }
148
175
  return new Promise(resolve => {
149
176
  const resConsent = consentJson => {
150
177
  if (consentJson) {
@@ -186,27 +213,80 @@ const retrieveConsent = async cmp => {
186
213
  });
187
214
  };
188
215
  const retrieveLastConsentTimestamp = async cmp => {
189
- return new Promise(resolve => {
190
- const resValue = consentJson => {
191
- if (consentJson) {
192
- const timestamp = JSON.parse(consentJson);
193
- resolve(timestamp);
194
- return timestamp;
195
- } else {
196
- resolve('');
197
- return '';
198
- }
199
- };
200
- const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
201
- const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
202
- switch (Platform.OS) {
203
- case 'ios':
204
- case 'android':
205
- default:
206
- getStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`).then(resValue);
207
- break;
216
+ const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
217
+ const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
218
+ const parse = json => {
219
+ if (!json) {
220
+ return '';
208
221
  }
209
- });
222
+ try {
223
+ return JSON.parse(json);
224
+ } catch {
225
+ return '';
226
+ }
227
+ };
228
+ try {
229
+ const scoped = parse(await getStorage(lastConsentDateKey(cmp.configId, userSuffix)));
230
+ if (scoped) {
231
+ return scoped;
232
+ }
233
+ // Fall back to the legacy un-scoped key for installs written before the
234
+ // timestamp was scoped by configId.
235
+ return parse(await getStorage(legacyLastConsentDateKey(userSuffix)));
236
+ } catch {
237
+ // Fail closed: a storage rejection resolves to no timestamp instead of
238
+ // hanging the consent load.
239
+ return '';
240
+ }
241
+ };
242
+
243
+ /**
244
+ * Resolves the effective expiration window in seconds, mirroring the Android
245
+ * SDK's single path:
246
+ *
247
+ * debug testing override ?? production interval (per-country, from the GDPR
248
+ * mappings served at /mappings.json)
249
+ *
250
+ * Testing mode does not create a separate expiration path — it overrides the
251
+ * production interval. Returns null when neither is configured, in which case
252
+ * consent has no expiration.
253
+ */
254
+ const effectiveExpirationSeconds = async cmp => {
255
+ const testingSeconds = cmp.consentExpirationTestingSeconds;
256
+ // Testing override short-circuits the production lookup entirely, so debug
257
+ // runs never depend on the mappings fetch.
258
+ const seconds = testingSeconds ?? (await getConsentExpirationSeconds(cmp.config?.country));
259
+ return seconds && seconds > 0 ? seconds : null;
260
+ };
261
+
262
+ /**
263
+ * True when `timestamp` is older than the `seconds` window. Fails closed
264
+ * (returns false) for a missing or unparseable timestamp, or when no window is
265
+ * configured, so a storage hiccup or a null window never wrongly expires
266
+ * consent.
267
+ */
268
+ const isTimestampExpired = (timestamp, seconds) => {
269
+ if (!seconds || !timestamp) {
270
+ return false;
271
+ }
272
+ const consentedAtMs = new Date(timestamp).getTime();
273
+ if (Number.isNaN(consentedAtMs)) {
274
+ return false;
275
+ }
276
+ return Date.now() - consentedAtMs > seconds * 1000;
277
+ };
278
+
279
+ /**
280
+ * Returns true when the locally stored consent has aged past its expiration
281
+ * window (see {@link effectiveExpirationSeconds}).
282
+ */
283
+ export const isConsentExpired = async cmp => {
284
+ const seconds = await effectiveExpirationSeconds(cmp);
285
+ if (!seconds) {
286
+ return false;
287
+ }
288
+ const timestamp = await retrieveLastConsentTimestamp(cmp);
289
+ return isTimestampExpired(timestamp, seconds);
210
290
  };
211
291
  export const recordConsent = (cmp, consent) => {
212
292
  const payload = createConsentRecordPayload(cmp, consent);
@@ -259,25 +339,44 @@ export const fetchConsent = async cmp => {
259
339
  lastConsentTimestamp
260
340
  } = response;
261
341
  if (!consented || !lastConsentTimestamp) {
262
- // No remote consent found, use local consent
263
- await storeConsent(cmp, consent);
342
+ // No remote record — keep the local consent as-is. Re-storing it here
343
+ // would reset the recorded-consent timestamp to "now" on every load, so
344
+ // expiration would never fire for remote + extUsrData users, and it
345
+ // could re-persist an essential-only clear. The local consent is already
346
+ // stored with its real timestamp (or is a first-load default that stays
347
+ // re-seeded).
264
348
  return consent;
265
349
  }
266
350
 
351
+ // Evaluate the remote record against the server's own timestamp (when the
352
+ // visitor actually consented), not "now", so an already-expired remote
353
+ // record is never restored and re-dated as fresh.
354
+ const seconds = await effectiveExpirationSeconds(cmp);
355
+ const remoteExpired = isTimestampExpired(lastConsentTimestamp, seconds);
356
+
267
357
  // If extUsrData is not null and not empty, always use remote consent (cross-device consent enabled)
268
358
  if (extUsrData && extUsrData.trim() !== '') {
359
+ if (remoteExpired) {
360
+ // The authoritative remote record has expired; settle on a persisted
361
+ // essential-only state rather than restoring stale consent, so a
362
+ // subsequent load stays here instead of falling back to the
363
+ // first-load default.
364
+ return settleEssentialOnly(cmp);
365
+ }
269
366
  const remoteConsentCategories = consented.map(category => ConsentCategory[category]);
270
- await storeConsent(cmp, remoteConsentCategories, true);
367
+ // Preserve the server timestamp so restoring can't re-date the record.
368
+ await storeConsent(cmp, remoteConsentCategories, true, lastConsentTimestamp);
271
369
  return remoteConsentCategories;
272
370
  }
273
371
 
274
372
  // Otherwise, validate timestamps (cross-device consent not enabled)
275
373
  const internalTimestamp = await retrieveLastConsentTimestamp(cmp);
276
374
  try {
277
- if (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '') {
278
- // Remote consent is newer or we haven't recorded any consent yet. Store remote consent.
375
+ if (!remoteExpired && (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '')) {
376
+ // Remote consent is newer, unexpired, or we haven't recorded any
377
+ // consent yet. Store it, preserving the server timestamp.
279
378
  const remoteConsentCategories = formatConsentArray(makeConsentFromCategories(consented));
280
- await storeConsent(cmp, remoteConsentCategories, true);
379
+ await storeConsent(cmp, remoteConsentCategories, true, lastConsentTimestamp);
281
380
  return remoteConsentCategories;
282
381
  }
283
382
  } catch {
@@ -1 +1 @@
1
- {"version":3,"names":["sha512","Platform","NativeModules","TextEncoder","ConsentCategory","env","formatConsentArray","makeConsentFromCategories","clearStorage","getStorage","setStorage","merge","API","osanoLogger","Buffer","require","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","IS_OFFICIAL_SAMPLE","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","OS","overrideConfig","variant","createConsentRecordPayload","cmp","consent","consentedCategories","hashedExtUsrData","hashExtUsrData","customerId","configId","extUsrData","undefined","Object","fromEntries","entries","osnoCustomerId","osnoConfigId","consented","join","consentingDomain","consentingPlatform","userConsentId","deviceId","filter","value","STORAGE_KEY","consentRecordedRemotely","success","userSuffix","JSON","stringify","Date","storeConsent","recordedRemotely","Promise","resolve","reject","resConsent","then","catch","clearConsent","ESSENTIAL","migrateConsentStorage","oldKey","oldTimestampKey","oldConsent","parse","length","firstLoadConsent","config","analyticsDefaultsOnAtFirstLoad","ANALYTICS","clearToFirstLoadDefault","seed","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","remoteConsent","response","get","lastConsentTimestamp","trim","remoteConsentCategories","map","category","internalTimestamp","configCacheKey","suffix","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","now","getTime","getFullYear","getMonth","getDate","getStoredEtag","getStoredLastModified","fetchConfig","cachedConfig","stale","storedEtag","storedLastModified","conditionalHeaders","fetch","method","headers","Accept","mode","status","country","region","gdprAppliesHeader","gdprApplies","updated","ok","json","newEtag","newLastModified","writes","push"],"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,EAEfC,GAAG,EACHC,kBAAkB,EAClBC,yBAAyB,QACnB,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;AACA,MAAMC,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC,CAACD,MAAM;AAEvC,MAAM;EAAEE,WAAW;EAAEC,WAAW;EAAEC;AAAa,CAAC,GAAGb,GAAG;AAEtD,MAAMc,kBAA2B,GAAIjB,aAAa,EAAUkB,WAAW,EACpED,kBAAkB;AAErB,MAAME,uBAAuB,GAAGF,kBAAkB,GAC/C,GAAGlB,QAAQ,CAACqB,EAAE,sBAAsB,GACpC,GAAGrB,QAAQ,CAACqB,EAAE,eAAe;AAEhC,MAAMC,cAA+B,GAAG;EACvC;EACAC,OAAO,EAAE;AACV,CAAC;AA4BD,SAASC,0BAA0BA,CAClCC,GAAmB,EACnBC,OAA+B,EACR;EACvB,MAAMC,mBAAmB,GAAGD,OAAO,IAAID,GAAG,CAACC,OAAO,IAAI,EAAE;EACxD,MAAME,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UAAU,IAAIC,SACnB,CAAC;EACD,OAAOC,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACE,OAAO,CAAC;IACdC,cAAc,EAAEZ,GAAG,CAACK,UAAU;IAC9BQ,YAAY,EAAEb,GAAG,CAACM,QAAQ;IAC1BQ,SAAS,EAAEZ,mBAAmB,CAACa,IAAI,CAAC,GAAG,CAAC;IACxCC,gBAAgB,EAAEhB,GAAG,CAACgB,gBAAgB;IACtCC,kBAAkB,EAAEtB,uBAAuB;IAC3CuB,aAAa,EAAElB,GAAG,CAACmB,QAAQ;IAC3BZ,UAAU,EAAEJ,gBAAgB,IAAIK;EACjC,CAAC,CAAC,CAACY,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAKA,KAAK,KAAKb,SAAS,CAC7C,CAAC;AACF;AAEA,MAAMc,WAAW,GAAG,sBAAsB;AAE1C,SAASC,uBAAuBA,CAC/BjB,QAAgB,EAChBkB,OAAgB,EAChBrB,gBAAyB,EACxB;EACD,MAAMsB,UAAU,GAAGtB,gBAAgB,GAAG,IAAIA,gBAAgB,EAAE,GAAG,EAAE;EACjE,IAAIqB,OAAO,EAAE;IACZ1C,YAAY,CACX,GAAGwC,WAAW,IAAIhB,QAAQ,GAAGmB,UAAU,4BACxC,CAAC;EACF,CAAC,MAAM;IACNzC,UAAU,CACT,GAAGsC,WAAW,IAAIhB,QAAQ,GAAGmB,UAAU,4BAA4B,EACnEC,IAAI,CAACC,SAAS,CAAC,IAAIC,IAAI,CAAC,CAAC,CAC1B,CAAC;EACF;AACD;AAEA,OAAO,MAAMC,YAAY,GAAG,MAAAA,CAC3B7B,GAAmB,EACnBC,OAA+B,EAC/B6B,gBAA0B,KACU;EACpC9B,GAAG,CAACC,OAAO,GAAGA,OAAO,IAAID,GAAG,CAACC,OAAO;EACpC,OAAO,IAAI8B,OAAO,CAAwB,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC9D,MAAMC,UAAU,GAAGA,CAAA,KAAM;MACxBF,OAAO,CAAChC,GAAG,CAACC,OAAO,IAAI,EAAE,CAAC;MAC1B,OAAOD,GAAG,CAACC,OAAO;IACnB,CAAC;IACD,MAAME,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UACL,CAAC;IACD,MAAMkB,UAAU,GAAGtB,gBAAgB,GAAG,IAAIA,gBAAgB,EAAE,GAAG,EAAE;IACjE,QAAQ5B,QAAQ,CAACqB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;MACd;QAAS;UACRZ,UAAU,CACT,GAAGsC,WAAW,8BAA8BG,UAAU,EAAE,EACxDC,IAAI,CAACC,SAAS,CAAC,IAAIC,IAAI,CAAC,CAAC,CAC1B,CAAC,CACCO,IAAI,CAAC,MAAM;YACXnD,UAAU,CACT,GAAGsC,WAAW,IAAItB,GAAG,CAACM,QAAQ,GAAGmB,UAAU,EAAE,EAC7CC,IAAI,CAACC,SAAS,CAAC3B,GAAG,CAACC,OAAO,CAC3B,CAAC,CACCkC,IAAI,CAACD,UAAU,CAAC,CAChBE,KAAK,CAACH,MAAM,CAAC;UAChB,CAAC,CAAC,CACDG,KAAK,CAACH,MAAM,CAAC;UACf,IAAIH,gBAAgB,KAAKtB,SAAS,EAAE;YACnCe,uBAAuB,CACtBvB,GAAG,CAACM,QAAQ,EACZwB,gBAAgB,EAChB3B,gBACD,CAAC;UACF;UACA;QACD;IACD;EACD,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAMkC,YAAY,GAAG,MAAOrC,GAAmB,IAAK;EAC1D,OAAO,IAAI+B,OAAO,CAAyBC,OAAO,IAAK;IACtD,MAAME,UAAU,GAAGA,CAAA,KAAM;MACxBlC,GAAG,CAACC,OAAO,GAAG,CAACvB,eAAe,CAAC4D,SAAS,CAAC;MACzCN,OAAO,CAAC,CAACtD,eAAe,CAAC4D,SAAS,CAAC,CAAC;MACpC,OAAOtC,GAAG,CAACC,OAAO;IACnB,CAAC;IACD,MAAME,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UACL,CAAC;IACD,MAAMkB,UAAU,GAAGtB,gBAAgB,GAAG,IAAIA,gBAAgB,EAAE,GAAG,EAAE;IACjE,QAAQ5B,QAAQ,CAACqB,EAAE;MAClB,KAAK,SAAS;MACd,KAAK,KAAK;MACV;QAAS;UACRd,YAAY,CAAC,GAAGwC,WAAW,IAAItB,GAAG,CAACM,QAAQ,GAAGmB,UAAU,EAAE,CAAC,CAACU,IAAI,CAC/DD,UACD,CAAC;UACDX,uBAAuB,CAACvB,GAAG,CAACM,QAAQ,EAAE,KAAK,EAAEH,gBAAgB,CAAC;UAC9D;QACD;IACD;EACD,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAMoC,qBAAqB,GAAG,MACpCvC,GAAmB,IACwB;EAC3C,MAAMG,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UACL,CAAC;;EAED;EACA,IAAI,CAACJ,gBAAgB,EAAE;IACtB,OAAO,IAAI;EACZ;EAEA,OAAO,IAAI4B,OAAO,CAAgCC,OAAO,IAAK;IAC7D,MAAMQ,MAAM,GAAG,GAAGlB,WAAW,IAAItB,GAAG,CAACM,QAAQ,EAAE,CAAC,CAAC;IACjD,MAAMmC,eAAe,GAAG,GAAGnB,WAAW,6BAA6B,CAAC,CAAC;;IAErE,QAAQ/C,QAAQ,CAACqB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;QACbb,UAAU,CAACyD,MAAM,CAAC,CAChBL,IAAI,CAAEO,UAAU,IAAK;UACrB,IAAIA,UAAU,EAAE;YACf,IAAIzC,OAAO,GAAGyB,IAAI,CAACiB,KAAK,CAACD,UAAU,CAA0B;YAC7D,IAAIzC,OAAO,CAAC2C,MAAM,GAAG,CAAC,EAAE;cACvB3C,OAAO,GAAGrB,kBAAkB,CAC3BC,yBAAyB,CAACoB,OAAO,CAClC,CAAC;cACD;cACA4B,YAAY,CAAC7B,GAAG,EAAEC,OAAO,CAAC,CAACkC,IAAI,CAAC,MAAM;gBACrC;gBACArD,YAAY,CAAC0D,MAAM,CAAC;gBACpB1D,YAAY,CAAC2D,eAAe,CAAC;gBAC7BT,OAAO,CAAC/B,OAAO,CAAC;cACjB,CAAC,CAAC;cACF;YACD;UACD;UACA+B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CACDI,KAAK,CAAC,MAAM;UACZJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;QACH;MACD;QACCA,OAAO,CAAC,IAAI,CAAC;QACb;IACF;EACD,CAAC,CAAC;AACH,CAAC;;AAED;AACA;AACA,MAAMa,gBAAgB,GAAI7C,GAAmB,IAC5CA,GAAG,CAAC8C,MAAM,EAAEC,8BAA8B,GACvC,CAACrE,eAAe,CAAC4D,SAAS,EAAE5D,eAAe,CAACsE,SAAS,CAAC,GACtD,CAACtE,eAAe,CAAC4D,SAAS,CAAC;;AAE/B;AACA;AACA;AACA,MAAMW,uBAAuB,GAAG,MAC/BjD,GAAmB,IACiB;EACpC,MAAMqC,YAAY,CAACrC,GAAG,CAAC;EACvB,MAAMkD,IAAI,GAAGL,gBAAgB,CAAC7C,GAAG,CAAC;EAClCA,GAAG,CAACC,OAAO,GAAGiD,IAAI;EAClB,OAAOA,IAAI;AACZ,CAAC;AAED,MAAMC,eAAe,GAAG,MAAOnD,GAAmB,IAAK;EACtD,OAAO,IAAI+B,OAAO,CAAyBC,OAAO,IAAK;IACtD,MAAME,UAAU,GAAIkB,WAAsC,IAAK;MAC9D,IAAIA,WAAW,EAAE;QAChB,MAAMnD,OAAO,GAAGyB,IAAI,CAACiB,KAAK,CAACS,WAAW,CAA0B;QAChE,IAAInD,OAAO,CAAC2C,MAAM,GAAG,CAAC,EAAE;UACvB5C,GAAG,CAACC,OAAO,GAAGA,OAAO;QACtB;MACD;MACA,IAAID,GAAG,CAACC,OAAO,IAAID,GAAG,CAACC,OAAO,CAAC2C,MAAM,GAAG,CAAC,EAAE;QAC1CZ,OAAO,CAAChC,GAAG,CAACC,OAAO,CAAC;QACpB,OAAOD,GAAG,CAACC,OAAO;MACnB;MACA,MAAM,IAAIoD,KAAK,CAAC,mBAAmB,CAAC;IACrC,CAAC;IAED,MAAMlD,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UACL,CAAC;IACD,MAAMkB,UAAU,GAAGtB,gBAAgB,GAAG,IAAIA,gBAAgB,EAAE,GAAG,EAAE;IACjE,MAAMmD,MAAM,GAAG,GAAGhC,WAAW,IAAItB,GAAG,CAACM,QAAQ,GAAGmB,UAAU,EAAE;IAE5D,QAAQlD,QAAQ,CAACqB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;QACbb,UAAU,CAACuE,MAAM,CAAC,CAChBnB,IAAI,CAACD,UAAU,CAAC,CAChBE,KAAK,CAAC,YAAY;UAClB;UACA,MAAMmB,eAAe,GAAG,MAAMhB,qBAAqB,CAACvC,GAAG,CAAC;UACxD,IAAIuD,eAAe,EAAE;YACpBvB,OAAO,CAACuB,eAAe,CAAC;UACzB,CAAC,MAAM;YACN;YACAN,uBAAuB,CAACjD,GAAG,CAAC,CAACmC,IAAI,CAACH,OAAO,CAAC;UAC3C;QACD,CAAC,CAAC;QACH;MACD;QACC;QACAjD,UAAU,CAACuE,MAAM,CAAC,CAChBnB,IAAI,CAACD,UAAU,CAAC,CAChBE,KAAK,CAAC,MAAM;UACZa,uBAAuB,CAACjD,GAAG,CAAC,CAACmC,IAAI,CAACH,OAAO,CAAC;QAC3C,CAAC,CAAC;QACH;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,MAAMwB,4BAA4B,GAAG,MAAOxD,GAAmB,IAAK;EACnE,OAAO,IAAI+B,OAAO,CAAUC,OAAO,IAAK;IACvC,MAAMyB,QAAQ,GAAIL,WAAsC,IAAK;MAC5D,IAAIA,WAAW,EAAE;QAChB,MAAMM,SAAS,GAAGhC,IAAI,CAACiB,KAAK,CAACS,WAAW,CAAC;QACzCpB,OAAO,CAAC0B,SAAS,CAAC;QAClB,OAAOA,SAAS;MACjB,CAAC,MAAM;QACN1B,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE;MACV;IACD,CAAC;IACD,MAAM7B,gBAAgB,GAAGC,cAAc,CACtCJ,GAAG,CAACK,UAAU,EACdL,GAAG,CAACM,QAAQ,EACZN,GAAG,CAACO,UACL,CAAC;IACD,MAAMkB,UAAU,GAAGtB,gBAAgB,GAAG,IAAIA,gBAAgB,EAAE,GAAG,EAAE;IACjE,QAAQ5B,QAAQ,CAACqB,EAAE;MAClB,KAAK,KAAK;MACV,KAAK,SAAS;MACd;QACCb,UAAU,CACT,GAAGuC,WAAW,8BAA8BG,UAAU,EACvD,CAAC,CAACU,IAAI,CAACsB,QAAQ,CAAC;QAChB;IACF;EACD,CAAC,CAAC;AACH,CAAC;AAED,OAAO,MAAME,aAAa,GAAGA,CAC5B3D,GAAmB,EACnBC,OAA+B,KAC3B;EACJ,MAAM2D,OAAO,GAAG7D,0BAA0B,CAACC,GAAG,EAAEC,OAAO,CAAC;EACxD,OAAOf,GAAG,CAAC2E,IAAI,CAAC,GAAGvE,WAAW,SAAS,EAAEsE,OAAO,EAAE;IACjDE,QAAQ,EAAE9D,GAAG,CAACgB;EACf,CAAC,CAAC,CACAmB,IAAI,CAAC,MAAMlC,OAAO,IAAID,GAAG,CAACC,OAAO,IAAI,CAACvB,eAAe,CAAC4D,SAAS,CAAC,CAAC,CACjEH,IAAI,CAAE4B,iBAAiB,IAAK;IAC5BA,iBAAiB,GAAGnF,kBAAkB,CACrCC,yBAAyB,CAACkF,iBAAiB,CAC5C,CAAC;IACDlC,YAAY,CAAC7B,GAAG,EAAE+D,iBAAiB,EAAE,IAAI,CAAC;IAC1C,OAAOA,iBAAiB;EACzB,CAAC,CAAC,CACD3B,KAAK,CAAE4B,KAAK,IAAK;IACjB;IACAnC,YAAY,CAAC7B,GAAG,EAAEC,OAAO,EAAE,KAAK,CAAC;IACjC,MAAM+D,KAAK;EACZ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAAS5D,cAAcA,CAC7BC,UAAkB,EAClBC,QAAgB,EAChBC,UAA8B,EACrB;EACT,IACC,CAACA,UAAU,IACXA,UAAU,KAAK,EAAE,IACjBF,UAAU,KAAK,EAAE,IACjBC,QAAQ,KAAK,EAAE,EACd;IACD,OAAO,EAAE;EACV,CAAC,MAAM;IACN,IAAI;MACH,MAAM2D,OAAO,GAAG,IAAIxF,WAAW,CAAC,CAAC;MACjC,MAAMyF,IAAI,GAAGD,OAAO,CAACE,MAAM,CAAC,GAAG9D,UAAU,IAAIC,QAAQ,IAAIC,UAAU,EAAE,CAAC;MACtE,MAAM6D,IAAI,GAAG9F,MAAM,CAAC+F,WAAW,CAACH,IAAI,CAAC;MACrC,MAAMI,MAAM,GAAGlF,MAAM,CAACmF,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,MAAM;MACP;MACA,OAAO,EAAE;IACV;EACD;AACD;AAEA,OAAO,MAAME,YAAY,GAAG,MAAO3E,GAAmB,IAAK;EAC1D,MAAM;IAAEK,UAAU;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAGP,GAAG;EAEhD,IAAI;IACH,MAAMC,OAAO,GAAG,MAAMkD,eAAe,CAACnD,GAAG,CAAC;IAE1C,MAAM4E,cAAc,GAAGxE,cAAc,CAACC,UAAU,EAAEC,QAAQ,EAAEC,UAAU,CAAC;;IAEvE;IACA,IAAIqE,cAAc,KAAK,EAAE,IAAI5E,GAAG,CAAC8C,MAAM,CAAC+B,aAAa,KAAK,KAAK,EAAE;MAChE,OAAO5E,OAAO;IACf;IAEA,MAAM6E,QAAQ,GAAG,MAAM5F,GAAG,CAAC6F,GAAG,CAC7B,GAAGxF,WAAW,aAAac,UAAU,WAAWC,QAAQ,SAASsE,cAAc,UAChF,CAAC;IAED,MAAM;MAAE9D,SAAS;MAAEkE;IAAqB,CAAC,GACxCF,QAAqC;IAEtC,IAAI,CAAChE,SAAS,IAAI,CAACkE,oBAAoB,EAAE;MACxC;MACA,MAAMnD,YAAY,CAAC7B,GAAG,EAAEC,OAAO,CAAC;MAChC,OAAOA,OAAO;IACf;;IAEA;IACA,IAAIM,UAAU,IAAIA,UAAU,CAAC0E,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MAC3C,MAAMC,uBAAuB,GAAGpE,SAAS,CAACqE,GAAG,CAC3CC,QAAQ,IAAK1G,eAAe,CAAC0G,QAAQ,CACvC,CAAC;MACD,MAAMvD,YAAY,CAAC7B,GAAG,EAAEkF,uBAAuB,EAAE,IAAI,CAAC;MACtD,OAAOA,uBAAuB;IAC/B;;IAEA;IACA,MAAMG,iBAAiB,GAAG,MAAM7B,4BAA4B,CAACxD,GAAG,CAAC;IACjE,IAAI;MACH,IACC,IAAI4B,IAAI,CAACoD,oBAAoB,CAAC,GAAG,IAAIpD,IAAI,CAACyD,iBAAiB,CAAC,IAC5DA,iBAAiB,KAAK,EAAE,EACvB;QACD;QACA,MAAMH,uBAAuB,GAAGtG,kBAAkB,CACjDC,yBAAyB,CAACiC,SAAS,CACpC,CAAC;QACD,MAAMe,YAAY,CAAC7B,GAAG,EAAEkF,uBAAuB,EAAE,IAAI,CAAC;QAEtD,OAAOA,uBAAuB;MAC/B;IACD,CAAC,CAAC,MAAM;MACP;IAAA;IAGD,OAAOjF,OAAO;EACf,CAAC,CAAC,OAAO+D,KAAK,EAAE;IACf7E,WAAW,CAAC6E,KAAK,CAAC,yBAAyB,EAAEA,KAAc,CAAC;IAC5D;IACA,MAAM/D,OAAO,GAAG,MAAMkD,eAAe,CAACnD,GAAG,CAAC;IAC1C,OAAOC,OAAO;EACf;AACD,CAAC;AAED,MAAMqF,cAAc,GAAGA,CAACjF,UAAkB,EAAEC,QAAgB,EAAEiF,MAAc,KAC3E,GAAGjE,WAAW,IAAIjB,UAAU,IAAIC,QAAQ,IAAIiF,MAAM,EAAE;AAErD,OAAO,MAAMC,eAAe,GAAG,MAAAA,CAC9BnF,UAAkB,EAClBC,QAAgB,KACY;EAC5B,IAAI;IACH,MAAMwC,MAAM,GAAG,MAAM/D,UAAU,CAC9BuG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,QAAQ,CAC9C,CAAC;IACD,IAAIwC,MAAM,EAAE;MACX,OAAOpB,IAAI,CAACiB,KAAK,CAACG,MAAM,CAAC;IAC1B;EACD,CAAC,CAAC,MAAM;IACP;EAAA;EAED,OAAO,IAAI;AACZ,CAAC;AAED,OAAO,MAAM2C,WAAW,GAAG,MAAAA,CAC1BpF,UAAkB,EAClBC,QAAgB,EAChBwC,MAAc,KACK;EACnB,IAAI;IACH,MAAMf,OAAO,CAAC2D,GAAG,CAAC,CACjB1G,UAAU,CACTsG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,QAAQ,CAAC,EAC9CoB,IAAI,CAACC,SAAS,CAACmB,MAAM,CACtB,CAAC,EACD9D,UAAU,CACTsG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,uBAAuB,CAAC,EAC7DoB,IAAI,CAACC,SAAS,CAAC,IAAIC,IAAI,CAAC,CAAC,CAC1B,CAAC,CACD,CAAC;EACH,CAAC,CAAC,MAAM;IACP,MAAM,IAAIyB,KAAK,CAAC,wBAAwB,CAAC;EAC1C;AACD,CAAC;AAED,OAAO,MAAMsC,qBAAqB,GAAG,MAAAA,CACpCtF,UAAkB,EAClBC,QAAgB,KACU;EAC1B,IAAI;IACH,MAAMsF,YAAY,GAAG,MAAM7G,UAAU,CACpCuG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,uBAAuB,CAC7D,CAAC;IACD,IAAIsF,YAAY,EAAE;MACjB,OAAO,IAAIhE,IAAI,CAACF,IAAI,CAACiB,KAAK,CAACiD,YAAY,CAAC,CAAC;IAC1C;EACD,CAAC,CAAC,MAAM;IACP;EAAA;EAED,OAAO,IAAI;AACZ,CAAC;AAED,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAC7BxF,UAAkB,EAClBC,QAAgB,KACM;EACtB,MAAMsF,YAAY,GAAG,MAAMD,qBAAqB,CAACtF,UAAU,EAAEC,QAAQ,CAAC;EACtE,IAAI,CAACsF,YAAY,EAAE;IAClB,OAAO,IAAI;EACZ;EACA,MAAME,GAAG,GAAG,IAAIlE,IAAI,CAAC,CAAC;EACtB;EACA,IAAIgE,YAAY,CAACG,OAAO,CAAC,CAAC,GAAGD,GAAG,CAACC,OAAO,CAAC,CAAC,EAAE;IAC3C,OAAO,IAAI;EACZ;EACA,OACCH,YAAY,CAACI,WAAW,CAAC,CAAC,KAAKF,GAAG,CAACE,WAAW,CAAC,CAAC,IAChDJ,YAAY,CAACK,QAAQ,CAAC,CAAC,KAAKH,GAAG,CAACG,QAAQ,CAAC,CAAC,IAC1CL,YAAY,CAACM,OAAO,CAAC,CAAC,KAAKJ,GAAG,CAACI,OAAO,CAAC,CAAC;AAE1C,CAAC;AAED,OAAO,MAAMC,aAAa,GAAG,MAAAA,CAC5B9F,UAAkB,EAClBC,QAAgB,KACY;EAC5B,IAAI;IACH,OACC,CAAC,MAAMvB,UAAU,CAACuG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,aAAa,CAAC,CAAC,KACtE,IAAI;EAEN,CAAC,CAAC,MAAM;IACP,OAAO,IAAI;EACZ;AACD,CAAC;AAED,OAAO,MAAM8F,qBAAqB,GAAG,MAAAA,CACpC/F,UAAkB,EAClBC,QAAgB,KACY;EAC5B,IAAI;IACH,OACC,CAAC,MAAMvB,UAAU,CAChBuG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,sBAAsB,CAC5D,CAAC,KAAK,IAAI;EAEZ,CAAC,CAAC,MAAM;IACP,OAAO,IAAI;EACZ;AACD,CAAC;AAED,OAAO,MAAM+F,WAAW,GAAG,MAAAA,CAC1BhG,UAAkB,EAClBC,QAAgB,KACK;EACrB,MAAM,CAACgG,YAAY,EAAEC,KAAK,EAAEC,UAAU,EAAEC,kBAAkB,CAAC,GAC1D,MAAM1E,OAAO,CAAC2D,GAAG,CAAC,CACjBF,eAAe,CAACnF,UAAU,EAAEC,QAAQ,CAAC,EACrCuF,cAAc,CAACxF,UAAU,EAAEC,QAAQ,CAAC,EACpC6F,aAAa,CAAC9F,UAAU,EAAEC,QAAQ,CAAC,EACnC8F,qBAAqB,CAAC/F,UAAU,EAAEC,QAAQ,CAAC,CAC3C,CAAC;EAEH,MAAMoG,kBAA0C,GAAG,CAAC,CAAC;EACrD,IAAIJ,YAAY,IAAI,CAACC,KAAK,EAAE;IAC3B,IAAIC,UAAU,EAAEE,kBAAkB,CAAC,eAAe,CAAC,GAAGF,UAAU;IAChE,IAAIC,kBAAkB,EACrBC,kBAAkB,CAAC,mBAAmB,CAAC,GAAGD,kBAAkB;EAC9D;EAEA,IAAI;IACH,MAAM3B,QAAQ,GAAG,MAAM6B,KAAK,CAC3B,GAAGnH,YAAY,IAAIa,UAAU,IAAIC,QAAQ,cAAc,EACvD;MACCsG,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE;QACRC,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,UAAU;QAC3B,GAAGJ;MACJ,CAAC;MACDK,IAAI,EAAE,MAAM;MACZjD,QAAQ,EAAE;IACX,CACD,CAAC;IAED,IAAIgB,QAAQ,CAACkC,MAAM,KAAK,GAAG,EAAE;MAC5B,IAAI,CAACV,YAAY,EAAE;QAClB,MAAM,IAAIjD,KAAK,CAAC,2BAA2B,CAAC;MAC7C;;MAEA;MACA;MACA;MACA;MACA,MAAMvD,OAAO,GACZgF,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,iBAAiB,CAAC,IAAIuB,YAAY,CAACxG,OAAO;MAChE,MAAMmH,OAAO,GACZnC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,iBAAiB,CAAC,IAAIuB,YAAY,CAACW,OAAO;MAChE,MAAMC,MAAM,GACXpC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,gBAAgB,CAAC,IAAIuB,YAAY,CAACY,MAAM;MAC9D,MAAMC,iBAAiB,GAAGrC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,sBAAsB,CAAC;MACtE,MAAMqC,WAAW,GAChBD,iBAAiB,IAAI,IAAI,GACtBA,iBAAiB,KAAK,MAAM,GAC5Bb,YAAY,CAACc,WAAW;MAE5B,MAAMC,OAAO,GAAGpI,KAAK,CACpB;QAAE,GAAGqH,YAAY;QAAEW,OAAO;QAAEC,MAAM;QAAEpH,OAAO;QAAEsH;MAAY,CAAC,EAC1DvH,cACD,CAAW;;MAEX;MACA;MACA,MAAMb,UAAU,CACfsG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,QAAQ,CAAC,EAC9CoB,IAAI,CAACC,SAAS,CAAC0F,OAAO,CACvB,CAAC;MAED,OAAOA,OAAO;IACf;IAEA,IAAI,CAACvC,QAAQ,CAACwC,EAAE,EAAE;MACjB,MAAMxC,QAAQ;IACf;IAEA,MAAMyC,IAAI,GAAI,MAAMzC,QAAQ,CAACyC,IAAI,CAAC,CAAY;IAE9C,MAAMzH,OAAO,GAAGgF,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,iBAAiB,CAAC,IAAI,KAAK;IAChE,MAAMkC,OAAO,GAAGnC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI;IAC/D,MAAMmC,MAAM,GAAGpC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAC3D,MAAMqC,WAAW,GAAGtC,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,sBAAsB,CAAC,KAAK,MAAM;IAC3E,MAAMyC,OAAO,GAAG1C,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,MAAM,CAAC;IAC5C,MAAM0C,eAAe,GAAG3C,QAAQ,CAAC+B,OAAO,CAAC9B,GAAG,CAAC,eAAe,CAAC;IAE7D,MAAMjC,MAAM,GAAG7D,KAAK,CACnB;MAAE,GAAGsI,IAAI;MAAEN,OAAO;MAAEC,MAAM;MAAEpH,OAAO;MAAEsH;IAAY,CAAC,EAClDvH,cACD,CAAW;IAEX,MAAM6H,MAA0B,GAAG,CAClCjC,WAAW,CAACpF,UAAU,EAAEC,QAAQ,EAAEwC,MAAM,CAAC,CACzC;IACD,IAAI0E,OAAO,EAAE;MACZE,MAAM,CAACC,IAAI,CACV3I,UAAU,CACTsG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,aAAa,CAAC,EACnDkH,OACD,CACD,CAAC;IACF;IACA,IAAIC,eAAe,EAAE;MACpBC,MAAM,CAACC,IAAI,CACV3I,UAAU,CACTsG,cAAc,CAACjF,UAAU,EAAEC,QAAQ,EAAE,sBAAsB,CAAC,EAC5DmH,eACD,CACD,CAAC;IACF;IACA,MAAM1F,OAAO,CAAC2D,GAAG,CAACgC,MAAM,CAAC;IAEzB,OAAO5E,MAAM;EACd,CAAC,CAAC,MAAM;IACP,IAAIwD,YAAY,EAAE;MACjB,OAAOA,YAAY;IACpB;IACA,MAAM,IAAIjD,KAAK,CAAC,uBAAuB,CAAC;EACzC;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["sha512","Platform","NativeModules","TextEncoder","ConsentCategory","env","formatConsentArray","makeConsentFromCategories","clearStorage","getStorage","setStorage","getConsentExpirationSeconds","merge","API","osanoLogger","Buffer","require","CONSENT_URI","LOOKUPS_URI","OSANO_ORIGIN","IS_OFFICIAL_SAMPLE","OsanoCmpSdk","CONSENTING_PLATFORM_TAG","OS","overrideConfig","variant","createConsentRecordPayload","cmp","consent","consentedCategories","hashedExtUsrData","hashExtUsrData","customerId","configId","extUsrData","undefined","Object","fromEntries","entries","osnoCustomerId","osnoConfigId","consented","join","consentingDomain","consentingPlatform","userConsentId","deviceId","filter","value","STORAGE_KEY","lastConsentDateKey","userSuffix","legacyLastConsentDateKey","consentRecordedRemotely","success","JSON","stringify","Date","storeConsent","recordedRemotely","consentDate","Promise","resolve","reject","resConsent","parsedDate","recordedDate","Number","isNaN","getTime","then","catch","clearConsent","ESSENTIAL","migrateConsentStorage","oldKey","oldTimestampKey","oldConsent","parse","length","firstLoadConsent","config","analyticsDefaultsOnAtFirstLoad","ANALYTICS","clearToFirstLoadDefault","seed","settleEssentialOnly","retrieveConsent","isConsentExpired","consentJson","Error","newKey","migratedConsent","retrieveLastConsentTimestamp","json","scoped","effectiveExpirationSeconds","testingSeconds","consentExpirationTestingSeconds","seconds","country","isTimestampExpired","timestamp","consentedAtMs","now","recordConsent","payload","post","referrer","consentCategories","error","encoder","data","encode","hash","arrayBuffer","base64","from","toString","hashUrlSafe","replace","fetchConsent","hashedUserData","remoteConsent","response","get","lastConsentTimestamp","remoteExpired","trim","remoteConsentCategories","map","category","internalTimestamp","configCacheKey","suffix","getStoredConfig","storeConfig","all","getConfigLastStoredAt","lastStoredAt","hasStaleConfig","getFullYear","getMonth","getDate","getStoredEtag","getStoredLastModified","fetchConfig","cachedConfig","stale","storedEtag","storedLastModified","conditionalHeaders","fetch","method","headers","Accept","mode","status","region","gdprAppliesHeader","gdprApplies","updated","ok","newEtag","newLastModified","writes","push"],"sourceRoot":"../../../src","sources":["services/consent.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ import { env } from '../constants';
4
+ import { getStorage, setStorage } from '../native/OsanoCmp';
5
+ import { osanoLogger } from '../utils/OsanoLogger';
6
+ const {
7
+ OSANO_ORIGIN
8
+ } = env;
9
+ const STORAGE_KEY = 'osano_consentmanager';
10
+ const MAPPINGS_KEY = `${STORAGE_KEY}_gdpr_mappings`;
11
+ const MAPPINGS_LAST_FETCHED_KEY = `${STORAGE_KEY}_gdpr_mappings_last_fetched`;
12
+
13
+ // Refresh the mappings at most once a day, matching the Android SDK's
14
+ // GdprCountryCache cache window.
15
+ const CACHE_DURATION_MS = 24 * 60 * 60 * 1000;
16
+
17
+ // Fallback bucket in the mappings document, used when the visitor's country has
18
+ // no entry of its own. Mirrors the Android SDK's DEFAULT_GDPR_COUNTRY_KEY.
19
+ const DEFAULT_COUNTRY_KEY = 'defaults';
20
+
21
+ /**
22
+ * Per-country GDPR metadata served at `/mappings.json`. Only the fields the SDK
23
+ * consumes are typed here; the document may carry more (e.g. forced
24
+ * classifications) that we intentionally ignore.
25
+ */
26
+
27
+ const readCachedMappings = async () => {
28
+ try {
29
+ const raw = await getStorage(MAPPINGS_KEY);
30
+ return raw ? JSON.parse(raw) : null;
31
+ } catch {
32
+ return null;
33
+ }
34
+ };
35
+ const isCacheFresh = async () => {
36
+ try {
37
+ const raw = await getStorage(MAPPINGS_LAST_FETCHED_KEY);
38
+ if (!raw) {
39
+ return false;
40
+ }
41
+ const lastFetched = Number(JSON.parse(raw));
42
+ if (Number.isNaN(lastFetched)) {
43
+ return false;
44
+ }
45
+ return Date.now() - lastFetched < CACHE_DURATION_MS;
46
+ } catch {
47
+ return false;
48
+ }
49
+ };
50
+
51
+ /**
52
+ * Returns the GDPR country mappings, preferring a fresh (<24h) cache and
53
+ * otherwise fetching `${OSANO_ORIGIN}/mappings.json`. On a network/parse error
54
+ * it falls back to any stale cache rather than losing production expiration.
55
+ * Returns null only when there is neither a usable network response nor a
56
+ * cached copy.
57
+ */
58
+ export const fetchGdprMappings = async () => {
59
+ if (await isCacheFresh()) {
60
+ const cached = await readCachedMappings();
61
+ if (cached) {
62
+ return cached;
63
+ }
64
+ }
65
+ try {
66
+ const response = await fetch(`${OSANO_ORIGIN}/mappings.json`, {
67
+ method: 'GET',
68
+ headers: {
69
+ Accept: 'application/json',
70
+ 'Content-Type': 'application/json'
71
+ },
72
+ mode: 'cors',
73
+ referrer: 'no-referrer'
74
+ });
75
+ if (!response.ok) {
76
+ throw response;
77
+ }
78
+ const mappings = await response.json();
79
+ await Promise.all([setStorage(MAPPINGS_KEY, JSON.stringify(mappings)), setStorage(MAPPINGS_LAST_FETCHED_KEY, JSON.stringify(Date.now()))]);
80
+ return mappings;
81
+ } catch (error) {
82
+ osanoLogger.error('Error fetching GDPR mappings:', error);
83
+ // Serve stale data over nothing so production expiration keeps working
84
+ // while offline.
85
+ return readCachedMappings();
86
+ }
87
+ };
88
+
89
+ /**
90
+ * Resolves the production consent-expiration interval (in seconds) for a
91
+ * country from the GDPR mappings: the country's own value, falling back to the
92
+ * `defaults` bucket. Returns null when no positive interval is configured — in
93
+ * that case consent has no production expiration.
94
+ *
95
+ * Note: unlike the Android SDK, there is no hardcoded numeric fallback here.
96
+ * Android returns `365` when nothing is configured, but consumes it as seconds
97
+ * (~6 minutes), which would silently expire production consent; failing open is
98
+ * the safer behavior.
99
+ */
100
+ export const getConsentExpirationSeconds = async country => {
101
+ const mappings = await fetchGdprMappings();
102
+ if (!mappings) {
103
+ return null;
104
+ }
105
+ const key = (country ?? '').toLowerCase();
106
+ const value = mappings[key]?.consentExpiration ?? mappings[DEFAULT_COUNTRY_KEY]?.consentExpiration;
107
+ return typeof value === 'number' && value > 0 ? value : null;
108
+ };
109
+ //# sourceMappingURL=gdprMappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["env","getStorage","setStorage","osanoLogger","OSANO_ORIGIN","STORAGE_KEY","MAPPINGS_KEY","MAPPINGS_LAST_FETCHED_KEY","CACHE_DURATION_MS","DEFAULT_COUNTRY_KEY","readCachedMappings","raw","JSON","parse","isCacheFresh","lastFetched","Number","isNaN","Date","now","fetchGdprMappings","cached","response","fetch","method","headers","Accept","mode","referrer","ok","mappings","json","Promise","all","stringify","error","getConsentExpirationSeconds","country","key","toLowerCase","value","consentExpiration"],"sourceRoot":"../../../src","sources":["services/gdprMappings.ts"],"mappings":"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","ignoreList":[]}
@@ -130,8 +130,15 @@ export declare class ConsentManager {
130
130
  private _translator;
131
131
  private _overridePalette?;
132
132
  private _googleConsentModeCallback?;
133
+ private _consentExpirationTestingSeconds?;
133
134
  private _deviceId;
134
135
  get deviceId(): string;
136
+ /**
137
+ * The debug-only consent expiration testing window, in seconds, or
138
+ * `undefined` when testing mode is disabled. Read by the consent service to
139
+ * decide whether stored consent should be treated as expired.
140
+ */
141
+ get consentExpirationTestingSeconds(): number | undefined;
135
142
  get customerId(): string;
136
143
  set customerId(value: string);
137
144
  get configId(): string;
@@ -176,6 +183,23 @@ export declare class ConsentManager {
176
183
  * @returns this ConsentManager instance for method chaining
177
184
  */
178
185
  setGoogleConsentModeCallback(callback: GoogleConsentModeCallback): this;
186
+ /**
187
+ * Debug-only. Force stored consent to expire after `expirationSeconds` so the
188
+ * consent banner can be re-triggered quickly during testing. Pass `null` (or a
189
+ * non-positive value) to disable. The value is held in memory only and is
190
+ * never persisted. Outside `__DEV__` this is a no-op (mirrors the Android
191
+ * SDK's `setConsentExpirationTestingMode`, which is only available in debug
192
+ * builds).
193
+ *
194
+ * Note: the expiration check runs while consent is loaded, so setting this at
195
+ * init time (via `overrides.consentExpirationTestingSeconds`) is the reliable
196
+ * path for a reload-and-reprompt test. A runtime call takes effect on the
197
+ * next consent load.
198
+ *
199
+ * @param expirationSeconds - Seconds until consent expires, or `null` to disable.
200
+ * @returns this ConsentManager instance for method chaining
201
+ */
202
+ setConsentExpirationTestingMode(expirationSeconds: number | null): this;
179
203
  /**
180
204
  * Trigger Google Consent Mode update with current consent categories
181
205
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ConsentManager.d.ts","sourceRoot":"","sources":["../../../src/ConsentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsentManager.d.ts","sourceRoot":"","sources":["../../../src/ConsentManager.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ type OsanoPublicContextType = {
16
16
  setLocale: (locale: string) => void;
17
17
  showBanner: () => void;
18
18
  showDrawer: () => void;
19
+ setConsentExpirationTestingMode: (expirationSeconds: number | null) => void;
19
20
  isReady: boolean;
20
21
  };
21
22
  type OsanoPrivateContextType = {
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,KAAK,EACL,aAAa,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAGN,KAAK,mBAAmB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,KAAK,sBAAsB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CACX,QAAQ,CAAC,EAAE,mBAAmB,KAC1B,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,EAAE,CACR,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,KACjD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC9B,aAAa,EAAE,CACd,CAAC,EAAE,CACF,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KACjC,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,cAAc,CAAC,WAAW,CAAC,KACnE,IAAI,CAAC;IACV,gBAAgB,EAAE,CACjB,CAAC,EAAE,CACF,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KACjC,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,cAAc,CAAC,WAAW,CAAC,KACnE,IAAI,CAAC;IACV,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1D,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACpD,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC5E,CAAC;AAEF,eAAO,MAAM,kBAAkB,uCAa7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,wCAe/B,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,KAAK,EACL,aAAa,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAGN,KAAK,mBAAmB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,KAAK,sBAAsB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CACX,QAAQ,CAAC,EAAE,mBAAmB,KAC1B,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,EAAE,CACR,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,KACjD,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACpC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,+BAA+B,EAAE,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5E,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC9B,aAAa,EAAE,CACd,CAAC,EAAE,CACF,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KACjC,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,cAAc,CAAC,WAAW,CAAC,KACnE,IAAI,CAAC;IACV,gBAAgB,EAAE,CACjB,CAAC,EAAE,CACF,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KACjC,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,cAAc,CAAC,WAAW,CAAC,KACnE,IAAI,CAAC;IACV,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1D,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IACpD,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACnC,4BAA4B,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC5E,CAAC;AAEF,eAAO,MAAM,kBAAkB,uCAc7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,wCAe/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AA4B7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EACX,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,6BAA6B,CAAC;AAQrC,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAC1C,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CA8OnC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwD,MAAM,OAAO,CAAC;AA4B7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EACX,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,GACnB,MAAM,6BAA6B,CAAC;AAQrC,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAC1C,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAwPnC,CAAC"}
@@ -24,9 +24,14 @@ export type ConsentLookupResponseType = {
24
24
  lastConsentTimestamp: string;
25
25
  userConsentId: string;
26
26
  };
27
- export declare const storeConsent: (cmp: ConsentManager, consent?: ConsentCategoryType[], recordedRemotely?: boolean) => Promise<ConsentCategoryType[]>;
27
+ export declare const storeConsent: (cmp: ConsentManager, consent?: ConsentCategoryType[], recordedRemotely?: boolean, consentDate?: string | Date) => Promise<ConsentCategoryType[]>;
28
28
  export declare const clearConsent: (cmp: ConsentManager) => Promise<ConsentCategoryType[]>;
29
29
  export declare const migrateConsentStorage: (cmp: ConsentManager) => Promise<ConsentCategoryType[] | null>;
30
+ /**
31
+ * Returns true when the locally stored consent has aged past its expiration
32
+ * window (see {@link effectiveExpirationSeconds}).
33
+ */
34
+ export declare const isConsentExpired: (cmp: ConsentManager) => Promise<boolean>;
30
35
  export declare const recordConsent: (cmp: ConsentManager, consent?: ConsentCategoryType[]) => Promise<ConsentCategoryType[]>;
31
36
  export declare function hashExtUsrData(customerId: string, configId: string, extUsrData: string | undefined): string;
32
37
  export declare const fetchConsent: (cmp: ConsentManager) => Promise<ConsentCategory[]>;
@@ -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,KAAK,mBAAmB,EAIxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAsBtD,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,mBAAmB,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AA6CF,eAAO,MAAM,YAAY,GACxB,KAAK,cAAc,EACnB,UAAU,mBAAmB,EAAE,EAC/B,mBAAmB,OAAO,KACxB,OAAO,CAAC,mBAAmB,EAAE,CAyC/B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,mCAyBrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,KAAK,cAAc,KACjB,OAAO,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAgDtC,CAAC;AAuGF,eAAO,MAAM,aAAa,GACzB,KAAK,cAAc,EACnB,UAAU,mBAAmB,EAAE,mCAmB/B,CAAC;AAEF,wBAAgB,cAAc,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAqBR;AAED,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,+BA6DrD,CAAC;AAKF,eAAO,MAAM,eAAe,GAC3B,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAYvB,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACZ,OAAO,CAAC,IAAI,CAed,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAYrB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,OAAO,CAejB,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAUvB,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,CAkHhB,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,KAAK,mBAAmB,EAIxB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAsBtD,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,mBAAmB,EAAE,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AAsDF,eAAO,MAAM,YAAY,GACxB,KAAK,cAAc,EACnB,UAAU,mBAAmB,EAAE,EAC/B,mBAAmB,OAAO,EAI1B,cAAc,MAAM,GAAG,IAAI,KACzB,OAAO,CAAC,mBAAmB,EAAE,CA6C/B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,mCAyBrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,KAAK,cAAc,KACjB,OAAO,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAgDtC,CAAC;AA6KF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC5B,KAAK,cAAc,KACjB,OAAO,CAAC,OAAO,CAOjB,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,KAAK,cAAc,EACnB,UAAU,mBAAmB,EAAE,mCAmB/B,CAAC;AAEF,wBAAgB,cAAc,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAqBR;AAED,eAAO,MAAM,YAAY,GAAU,KAAK,cAAc,+BA2FrD,CAAC;AAKF,eAAO,MAAM,eAAe,GAC3B,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAYvB,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,QAAQ,MAAM,KACZ,OAAO,CAAC,IAAI,CAed,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAYrB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,OAAO,CAejB,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CASvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAUvB,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,OAAO,CAAC,MAAM,CAkHhB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Per-country GDPR metadata served at `/mappings.json`. Only the fields the SDK
3
+ * consumes are typed here; the document may carry more (e.g. forced
4
+ * classifications) that we intentionally ignore.
5
+ */
6
+ export type GdprCountryInfo = {
7
+ gdprApplies?: boolean;
8
+ flavor?: string;
9
+ consentExpiration?: number;
10
+ };
11
+ export type GdprMappings = Record<string, GdprCountryInfo>;
12
+ /**
13
+ * Returns the GDPR country mappings, preferring a fresh (<24h) cache and
14
+ * otherwise fetching `${OSANO_ORIGIN}/mappings.json`. On a network/parse error
15
+ * it falls back to any stale cache rather than losing production expiration.
16
+ * Returns null only when there is neither a usable network response nor a
17
+ * cached copy.
18
+ */
19
+ export declare const fetchGdprMappings: () => Promise<GdprMappings | null>;
20
+ /**
21
+ * Resolves the production consent-expiration interval (in seconds) for a
22
+ * country from the GDPR mappings: the country's own value, falling back to the
23
+ * `defaults` bucket. Returns null when no positive interval is configured — in
24
+ * that case consent has no production expiration.
25
+ *
26
+ * Note: unlike the Android SDK, there is no hardcoded numeric fallback here.
27
+ * Android returns `365` when nothing is configured, but consumes it as seconds
28
+ * (~6 minutes), which would silently expire production consent; failing open is
29
+ * the safer behavior.
30
+ */
31
+ export declare const getConsentExpirationSeconds: (country: string | undefined) => Promise<number | null>;
32
+ //# sourceMappingURL=gdprMappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdprMappings.d.ts","sourceRoot":"","sources":["../../../../src/services/gdprMappings.ts"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AA2B3D;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,YAAY,GAAG,IAAI,CAmCrE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,GACvC,SAAS,MAAM,GAAG,SAAS,KACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAUvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osano/osano-cmp-react-native",
3
- "version": "0.18.4",
3
+ "version": "0.18.5",
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",
@@ -31,9 +31,9 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "example": "yarn workspace osano-cmp-sdk-example",
34
- "test": "jest src/services/__tests__/consent.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
35
- "test:legacy": "REACT_NATIVE_NEW_ARCH_ENABLED=false jest src/services/__tests__/consent.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
36
- "test:newarch": "REACT_NATIVE_NEW_ARCH_ENABLED=true jest src/services/__tests__/consent.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
34
+ "test": "jest src/services/__tests__/consent.test.ts src/services/__tests__/gdprMappings.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
35
+ "test:legacy": "REACT_NATIVE_NEW_ARCH_ENABLED=false jest src/services/__tests__/consent.test.ts src/services/__tests__/gdprMappings.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
36
+ "test:newarch": "REACT_NATIVE_NEW_ARCH_ENABLED=true jest src/services/__tests__/consent.test.ts src/services/__tests__/gdprMappings.test.ts src/services/__tests__/fetchConfig.test.ts src/__tests__/index.test.tsx src/services/__tests__/google-consent-mode.test.ts src/__tests__/OsanoLogger.test.ts src/__tests__/constants.test.ts src/__tests__/reducer.test.ts src/__tests__/selectors.test.ts src/__tests__/ConsentManager.test.ts src/__tests__/ConsentUiBuilder.test.tsx src/utils/__tests__/WebStorage.test.ts src/native/__tests__/OsanoCmp.test.ts",
37
37
  "test:google-consent-mode": "jest src/services/__tests__/google-consent-mode.test.ts",
38
38
  "typecheck": "tsc --noEmit",
39
39
  "lint": "eslint",