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

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 (69) hide show
  1. package/lib/commonjs/ConsentManager.js +70 -3
  2. package/lib/commonjs/ConsentManager.js.map +1 -1
  3. package/lib/commonjs/constants.js +2 -3
  4. package/lib/commonjs/constants.js.map +1 -1
  5. package/lib/commonjs/context.js +1 -0
  6. package/lib/commonjs/context.js.map +1 -1
  7. package/lib/commonjs/doNotSell.js +95 -0
  8. package/lib/commonjs/doNotSell.js.map +1 -0
  9. package/lib/commonjs/index.js +13 -1
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/reducer.js +41 -41
  12. package/lib/commonjs/reducer.js.map +1 -1
  13. package/lib/commonjs/selectors.js +20 -2
  14. package/lib/commonjs/selectors.js.map +1 -1
  15. package/lib/commonjs/services/consent.js +163 -34
  16. package/lib/commonjs/services/consent.js.map +1 -1
  17. package/lib/commonjs/services/gdprMappings.js +115 -0
  18. package/lib/commonjs/services/gdprMappings.js.map +1 -0
  19. package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js +1 -1
  20. package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js.map +1 -1
  21. package/lib/module/ConsentManager.js +70 -3
  22. package/lib/module/ConsentManager.js.map +1 -1
  23. package/lib/module/constants.js +2 -3
  24. package/lib/module/constants.js.map +1 -1
  25. package/lib/module/context.js +1 -0
  26. package/lib/module/context.js.map +1 -1
  27. package/lib/module/doNotSell.js +87 -0
  28. package/lib/module/doNotSell.js.map +1 -0
  29. package/lib/module/index.js +13 -1
  30. package/lib/module/index.js.map +1 -1
  31. package/lib/module/reducer.js +41 -41
  32. package/lib/module/reducer.js.map +1 -1
  33. package/lib/module/selectors.js +16 -1
  34. package/lib/module/selectors.js.map +1 -1
  35. package/lib/module/services/consent.js +161 -33
  36. package/lib/module/services/consent.js.map +1 -1
  37. package/lib/module/services/gdprMappings.js +109 -0
  38. package/lib/module/services/gdprMappings.js.map +1 -0
  39. package/lib/module/views/Drawer/Drawer.ConsentCategories.js +2 -2
  40. package/lib/module/views/Drawer/Drawer.ConsentCategories.js.map +1 -1
  41. package/lib/typescript/src/ConsentManager.d.ts +29 -1
  42. package/lib/typescript/src/ConsentManager.d.ts.map +1 -1
  43. package/lib/typescript/src/constants.d.ts.map +1 -1
  44. package/lib/typescript/src/context.d.ts +1 -0
  45. package/lib/typescript/src/context.d.ts.map +1 -1
  46. package/lib/typescript/src/doNotSell.d.ts +48 -0
  47. package/lib/typescript/src/doNotSell.d.ts.map +1 -0
  48. package/lib/typescript/src/index.d.ts.map +1 -1
  49. package/lib/typescript/src/reducer.d.ts.map +1 -1
  50. package/lib/typescript/src/selectors.d.ts +3 -0
  51. package/lib/typescript/src/selectors.d.ts.map +1 -1
  52. package/lib/typescript/src/services/consent.d.ts +8 -3
  53. package/lib/typescript/src/services/consent.d.ts.map +1 -1
  54. package/lib/typescript/src/services/gdprMappings.d.ts +32 -0
  55. package/lib/typescript/src/services/gdprMappings.d.ts.map +1 -0
  56. package/lib/typescript/src/views/Drawer/Drawer.ConsentCategories.d.ts.map +1 -1
  57. package/package.json +4 -4
  58. package/src/ConsentManager.ts +88 -7
  59. package/src/constants.ts +2 -3
  60. package/src/context.ts +2 -0
  61. package/src/doNotSell.ts +122 -0
  62. package/src/index.tsx +20 -1
  63. package/src/reducer.ts +53 -56
  64. package/src/selectors.ts +25 -2
  65. package/src/services/consent.ts +217 -44
  66. package/src/services/gdprMappings.ts +126 -0
  67. package/src/types/consent-config.d.ts +6 -0
  68. package/src/types/index.d.ts +9 -0
  69. package/src/views/Drawer/Drawer.ConsentCategories.tsx +2 -1
@@ -1,10 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  import { initialState, ConsentCategory } from './constants';
4
+ import { resolveDoNotSellCategories } from './doNotSell';
4
5
  import { get } from './utils';
5
6
  export const isCategoryAccepted = (state, category) => getConsent(state).includes(category);
6
7
  export const isAnalyticsAlwaysAllowed = state => !!state.config?.type.analyticsAlways;
7
- export const isCategoryDisabled = (state, category) => category === ConsentCategory.ESSENTIAL || category === ConsentCategory.OPT_OUT && isGPCSupportEnabled(state) || category === ConsentCategory.MARKETING && (state.config?.shouldRenderOptOut || isGPCSupportEnabled(state)) && isCategoryAccepted(state, ConsentCategory.OPT_OUT);
8
+ export const isBrowsingFromUS = state => !!state.config?.browsingFromUS;
9
+ export const isDoNotSellEnabled = state => !!state.config?.enableDoNotSell;
10
+
11
+ // Whether to render the "Do Not Sell / Share" opt-out toggle. Delegates to the
12
+ // config's visibility rule (tenant flag AND ccpaApplies/US).
13
+ export const shouldRenderOptOut = state => !!state.config?.isDoNotSellVisible;
14
+
15
+ // The categories the opt-out governs (config's doNotSellCategories, defaulting
16
+ // to Marketing). ESSENTIAL and OPT_OUT are never governed.
17
+ const isGovernedByOptOut = (state, category) => resolveDoNotSellCategories(state.config?.doNotSellCategories).includes(category);
18
+ export const isCategoryDisabled = (state, category) => category === ConsentCategory.ESSENTIAL || category === ConsentCategory.OPT_OUT && isGPCSupportEnabled(state) ||
19
+ // A governed category is locked off while the opt-out is active. Keyed off the
20
+ // configured governed categories, so a non-governed category (e.g. Marketing
21
+ // when the tenant governs Analytics) stays enabled.
22
+ isGovernedByOptOut(state, category) && (shouldRenderOptOut(state) || isGPCSupportEnabled(state)) && isCategoryAccepted(state, ConsentCategory.OPT_OUT);
8
23
  export const isDrawerOpen = state => state.stack.length > 0;
9
24
  export const isDialogOpen = state => state.dialogOpen && !isDrawerOpen(state);
10
25
  export const isGPCSupportEnabled = state => !!state.config?.gpcSupport && typeof navigator !== 'undefined' && (
@@ -1 +1 @@
1
- {"version":3,"names":["initialState","ConsentCategory","get","isCategoryAccepted","state","category","getConsent","includes","isAnalyticsAlwaysAllowed","config","type","analyticsAlways","isCategoryDisabled","ESSENTIAL","OPT_OUT","isGPCSupportEnabled","MARKETING","shouldRenderOptOut","isDrawerOpen","stack","length","isDialogOpen","dialogOpen","gpcSupport","navigator","Object","hasOwnProperty","call","window","shouldUseGPCOptOut","acceptOrDeny","hasOwn","consent","entries","filter","_key","value","map","key","getFinalOptOutValue","pendingNewValue","undefined","existingOptOut","getSavedConsent","getPriorConsent","previousConsent","ANALYTICS","getConsentTimestamp","loadingDisclosures","noDisclosures","name","isConsentReady","isLoadingDisclosures","disclosures","loading","hasFetchedDisclosuresForCategory","fetched","indexOf","getCategoryDisclosures","getStack","index"],"sourceRoot":"../../src","sources":["selectors.ts"],"mappings":";;AAAA,SACCA,YAAY,EACZC,eAAe,QAET,aAAa;AAGpB,SAASC,GAAG,QAAQ,SAAS;AAE7B,OAAO,MAAMC,kBAAkB,GAAGA,CACjCC,KAAiB,EACjBC,QAA6B,KACzBC,UAAU,CAACF,KAAK,CAAC,CAACG,QAAQ,CAACF,QAAQ,CAAC;AAEzC,OAAO,MAAMG,wBAAwB,GAAIJ,KAAiB,IACzD,CAAC,CAACA,KAAK,CAACK,MAAM,EAAEC,IAAI,CAACC,eAAe;AACrC,OAAO,MAAMC,kBAAkB,GAAGA,CACjCR,KAAiB,EACjBC,QAA6B,KAE7BA,QAAQ,KAAKJ,eAAe,CAACY,SAAS,IACrCR,QAAQ,KAAKJ,eAAe,CAACa,OAAO,IAAIC,mBAAmB,CAACX,KAAK,CAAE,IACnEC,QAAQ,KAAKJ,eAAe,CAACe,SAAS,KACrCZ,KAAK,CAACK,MAAM,EAAEQ,kBAAkB,IAAIF,mBAAmB,CAACX,KAAK,CAAC,CAAC,IAChED,kBAAkB,CAACC,KAAK,EAAEH,eAAe,CAACa,OAAO,CAAE;AAErD,OAAO,MAAMI,YAAY,GAAId,KAAiB,IAAKA,KAAK,CAACe,KAAK,CAACC,MAAM,GAAG,CAAC;AACzE,OAAO,MAAMC,YAAY,GAAIjB,KAAiB,IAC7CA,KAAK,CAACkB,UAAU,IAAI,CAACJ,YAAY,CAACd,KAAK,CAAC;AAEzC,OAAO,MAAMW,mBAAmB,GAAIX,KAAiB,IACpD,CAAC,CAACA,KAAK,CAACK,MAAM,EAAEc,UAAU,IAC1B,OAAOC,SAAS,KAAK,WAAW;AAChC;AACCC,MAAM,CAACC,cAAc,CAACC,IAAI,CAACH,SAAS,EAAE,sBAAsB,CAAC;AAC7D;AACAC,MAAM,CAACC,cAAc,CAACC,IAAI,CAACC,MAAM,EAAEJ,SAAS,EAAE,sBAAsB,CAAC,CAAC;AACxE,OAAO,MAAMK,kBAAkB,GAAGA,CAACzB,KAAiB,EAAE0B,YAAqB,KAC1Ef,mBAAmB,CAACX,KAAK,CAAC,GACvBqB,MAAM,CAACM,MAAM,CAACH,MAAM,CAACJ,SAAS,EAAE,sBAAsB,CAAC,GACtD,IAAI,GACJ,KAAK,GACNM,YAAY;AAOhB,OAAO,SAASxB,UAAUA,CAACF,KAAiB,EAAEC,QAA8B,EAAE;EAC7E,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IACjC,OAAOD,KAAK,CAAC4B,OAAO,CAAC3B,QAAQ,CAAC;EAC/B;EACA,OAAOoB,MAAM,CAACQ,OAAO,CAAC7B,KAAK,CAAC4B,OAAO,CAAC,CAClCE,MAAM,CAAC,CAAC,CAACC,IAAI,EAAEC,KAAK,CAAC,KAAKA,KAAK,CAAC,CAChCC,GAAG,CAAC,CAAC,CAACC,GAAG,CAAC,KAAKA,GAAG,CAAC;AACtB;AACA,OAAO,SAASC,mBAAmBA,CAClCnC,KAAkB,EAClBoC,eAAyB,EACxB;EACD,IAAIA,eAAe,KAAK,IAAI,EAAE;IAC7B,OAAO,IAAI;EACZ,CAAC,MAAM,IAAIA,eAAe,KAAKC,SAAS,EAAE;IACzC,MAAMC,cAAc,GACnBxC,GAAG,CAACE,KAAK,EAAE,CAAC,SAAS,EAAEH,eAAe,CAACa,OAAO,CAAC,CAAC,IAChDd,YAAY,CAACgC,OAAO,CAAC/B,eAAe,CAACa,OAAO,CAAC;IAC9C,OAAO4B,cAAc;EACtB;EAEA,OAAO,KAAK;AACb;AACA,OAAO,SAASC,eAAeA,CAACvC,KAAiB,EAAE;EAClD,OAAOF,GAAG,CAACE,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC;AACxC;AACA,OAAO,SAASwC,eAAeA,CAC9BxC,KAAiB,EACkC;EACnD,MAAMyC,eAAe,GAAG;IACvB,IAAIF,eAAe,CAACvC,KAAK,CAAC,IAAIJ,YAAY,CAACgC,OAAO;EACnD,CAAC;EACD,IAAI,CAACW,eAAe,CAACvC,KAAK,CAAC,EAAE;IAC5ByC,eAAe,CAAC5C,eAAe,CAACa,OAAO,CAAC,GAAGyB,mBAAmB,CAC7DnC,KAAK,EACLyC,eAAe,CAAC5C,eAAe,CAACa,OAAO,CACxC,CAAC;IACD+B,eAAe,CAAC5C,eAAe,CAAC6C,SAAS,CAAC,GAAGtC,wBAAwB,CAACJ,KAAK,CAAC,GACzE,IAAI,GACJ,KAAK;EACT;EACA,OAAOyC,eAAe;AACvB;AACA,OAAO,MAAME,mBAAmB,GAAI3C,KAAiB,IACpDF,GAAG,CAACE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC;;AAEpC;AACA,MAAM4C,kBAAgC,GAAG,EAAE;AAC3C,MAAMC,aAA2B,GAAG,CACnC;EAAEvC,IAAI,EAAE,YAAY;EAAEwC,IAAI,EAAE;AAAkB,CAAC,CAC/C;AAED,OAAO,MAAMC,cAAc,GAAI/C,KAAiB,IAC/CF,GAAG,CAACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AAC9B,OAAO,MAAMgD,oBAAoB,GAAIhD,KAAiB,IAAK;EAC1D,OAAOA,KAAK,CAACiD,WAAW,CAACC,OAAO;AACjC,CAAC;AACD,OAAO,MAAMC,gCAAgC,GAAGA,CAC/CnD,KAAiB,EACjBC,QAA6B,KACzB;EACJ,MAAMmD,OAAO,GAAGnD,QAAQ,GAAGD,KAAK,CAACiD,WAAW,CAACG,OAAO,IAAI,EAAE,GAAG,EAAE;EAC/D,IAAIA,OAAO,CAACC,OAAO,CAACpD,QAAQ,CAAC,IAAI,CAAC,EAAE;IACnC,OAAO,IAAI;EACZ;EACA,OAAO,KAAK;AACb,CAAC;AACD,OAAO,MAAMqD,sBAAsB,GAAGA,CACrCtD,KAAiB,EACjBC,QAA6B,KACX;EAClB,MAAMgD,WAAyB,GAC9BnD,GAAG,CAACE,KAAK,EAAE,uBAAuBC,QAAQ,EAAE,CAAC,IAAI,EAAE;EACpD,IAAIgD,WAAW,CAACjC,MAAM,EAAE;IACvB,OAAOiC,WAAW;EACnB;EACA,MAAMC,OAAO,GACZF,oBAAoB,CAAChD,KAAK,CAAC,IAC3B,CAACmD,gCAAgC,CAACnD,KAAK,EAAEC,QAAQ,CAAC;EACnD,OAAOiD,OAAO,GAAGN,kBAAkB,GAAGC,aAAa;AACpD,CAAC;AAID,OAAO,SAASU,QAAQA,CAACvD,KAAiB,EAAEwD,KAAc,EAAE;EAC3D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC9B,IAAIA,KAAK,GAAG,CAAC,EAAE;MACd,IAAIA,KAAK,IAAI,CAACxD,KAAK,CAACe,KAAK,CAACC,MAAM,EAAE;QACjC,OAAOhB,KAAK,CAACe,KAAK,CAACf,KAAK,CAACe,KAAK,CAACC,MAAM,GAAGwC,KAAK,CAAC;MAC/C;MACA,OAAOnB,SAAS;IACjB;IACA,OAAOrC,KAAK,CAACe,KAAK,CAACyC,KAAK,CAAC;EAC1B;EACA,OAAOxD,KAAK,CAACe,KAAK;AACnB","ignoreList":[]}
1
+ {"version":3,"names":["initialState","ConsentCategory","resolveDoNotSellCategories","get","isCategoryAccepted","state","category","getConsent","includes","isAnalyticsAlwaysAllowed","config","type","analyticsAlways","isBrowsingFromUS","browsingFromUS","isDoNotSellEnabled","enableDoNotSell","shouldRenderOptOut","isDoNotSellVisible","isGovernedByOptOut","doNotSellCategories","isCategoryDisabled","ESSENTIAL","OPT_OUT","isGPCSupportEnabled","isDrawerOpen","stack","length","isDialogOpen","dialogOpen","gpcSupport","navigator","Object","hasOwnProperty","call","window","shouldUseGPCOptOut","acceptOrDeny","hasOwn","consent","entries","filter","_key","value","map","key","getFinalOptOutValue","pendingNewValue","undefined","existingOptOut","getSavedConsent","getPriorConsent","previousConsent","ANALYTICS","getConsentTimestamp","loadingDisclosures","noDisclosures","name","isConsentReady","isLoadingDisclosures","disclosures","loading","hasFetchedDisclosuresForCategory","fetched","indexOf","getCategoryDisclosures","getStack","index"],"sourceRoot":"../../src","sources":["selectors.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,9 @@ import { sha512 } from 'js-sha512';
4
4
  import { Platform, NativeModules } from 'react-native';
5
5
  import { TextEncoder } from 'text-encoding';
6
6
  import { ConsentCategory, env, formatConsentArray, makeConsentFromCategories } from '../constants';
7
+ import { applyDoNotSellDefault, normalizeDoNotSellConsent } from '../doNotSell';
7
8
  import { clearStorage, getStorage, setStorage } from '../native/OsanoCmp';
9
+ import { getConsentExpirationSeconds } from './gdprMappings';
8
10
  import { merge } from '../utils';
9
11
  import API from '../utils/API';
10
12
  import { osanoLogger } from '../utils/OsanoLogger';
@@ -36,6 +38,13 @@ function createConsentRecordPayload(cmp, consent) {
36
38
  }).filter(([, value]) => value !== undefined));
37
39
  }
38
40
  const STORAGE_KEY = 'osano_consentmanager';
41
+
42
+ // The consent timestamp is scoped by configId so it tracks the consent record
43
+ // for that config (both also carry the userSuffix). Older builds wrote a single
44
+ // un-scoped key shared across configs; retrieveLastConsentTimestamp falls back
45
+ // to it so existing installs keep their recorded date until the next write.
46
+ const lastConsentDateKey = (configId, userSuffix) => `${STORAGE_KEY}_last_recorded_consent_date_${configId}${userSuffix}`;
47
+ const legacyLastConsentDateKey = userSuffix => `${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`;
39
48
  function consentRecordedRemotely(configId, success, hashedExtUsrData) {
40
49
  const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
41
50
  if (success) {
@@ -44,7 +53,7 @@ function consentRecordedRemotely(configId, success, hashedExtUsrData) {
44
53
  setStorage(`${STORAGE_KEY}_${configId}${userSuffix}_last_failed_remote_record`, JSON.stringify(new Date()));
45
54
  }
46
55
  }
47
- export const storeConsent = async (cmp, consent, recordedRemotely) => {
56
+ export const storeConsent = async (cmp, consent, recordedRemotely, consentDate) => {
48
57
  cmp.consent = consent ?? cmp.consent;
49
58
  return new Promise((resolve, reject) => {
50
59
  const resConsent = () => {
@@ -53,12 +62,14 @@ export const storeConsent = async (cmp, consent, recordedRemotely) => {
53
62
  };
54
63
  const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
55
64
  const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
65
+ const parsedDate = consentDate ? new Date(consentDate) : new Date();
66
+ const recordedDate = Number.isNaN(parsedDate.getTime()) ? new Date() : parsedDate;
56
67
  switch (Platform.OS) {
57
68
  case 'ios':
58
69
  case 'android':
59
70
  default:
60
71
  {
61
- setStorage(`${STORAGE_KEY}_last_recorded_consent_date${userSuffix}`, JSON.stringify(new Date())).then(() => {
72
+ setStorage(lastConsentDateKey(cmp.configId, userSuffix), JSON.stringify(recordedDate)).then(() => {
62
73
  setStorage(`${STORAGE_KEY}_${cmp.configId}${userSuffix}`, JSON.stringify(cmp.consent)).then(resConsent).catch(reject);
63
74
  }).catch(reject);
64
75
  if (recordedRemotely !== undefined) {
@@ -108,7 +119,10 @@ export const migrateConsentStorage = async cmp => {
108
119
  if (oldConsent) {
109
120
  let consent = JSON.parse(oldConsent);
110
121
  if (consent.length > 0) {
111
- consent = formatConsentArray(makeConsentFromCategories(consent));
122
+ consent = formatConsentArray(normalizeDoNotSellConsent(makeConsentFromCategories(consent), {
123
+ enableDoNotSell: cmp.config.enableDoNotSell,
124
+ doNotSellCategories: cmp.config.doNotSellCategories
125
+ }));
112
126
  // Store with new user-specific key
113
127
  storeConsent(cmp, consent).then(() => {
114
128
  // Clean up old storage
@@ -133,7 +147,23 @@ export const migrateConsentStorage = async cmp => {
133
147
 
134
148
  // The consent to fall back to when a visitor has no stored consent yet. Flavor 7
135
149
  // shows analytics enabled on first load; every other flavor stays essential-only.
136
- const firstLoadConsent = cmp => cmp.config?.analyticsDefaultsOnAtFirstLoad ? [ConsentCategory.ESSENTIAL, ConsentCategory.ANALYTICS] : [ConsentCategory.ESSENTIAL];
150
+ // The Do-Not-Sell default is then applied, but only when the opt-out would
151
+ // actually be visible (tenant flag + CCPA/US), so we never seed an OPT_OUT the
152
+ // user cannot see or control.
153
+ const firstLoadConsent = cmp => {
154
+ let categories = [ConsentCategory.ESSENTIAL];
155
+ if (cmp.config?.analyticsDefaultsOnAtFirstLoad) {
156
+ categories.push(ConsentCategory.ANALYTICS);
157
+ }
158
+ if (cmp.config?.isDoNotSellVisible) {
159
+ categories = applyDoNotSellDefault(categories, {
160
+ enableDoNotSell: cmp.config.enableDoNotSell,
161
+ enableDoNotSellDefault: cmp.config.enableDoNotSellDefault,
162
+ doNotSellCategories: cmp.config.doNotSellCategories
163
+ });
164
+ }
165
+ return categories;
166
+ };
137
167
 
138
168
  // Clear any stale storage, then seed the first-load default. Because this only
139
169
  // runs when there is no stored consent, a returning visitor's saved opt-out is
@@ -144,7 +174,24 @@ const clearToFirstLoadDefault = async cmp => {
144
174
  cmp.consent = seed;
145
175
  return seed;
146
176
  };
177
+
178
+ // After an expired/invalid record, settle on a persisted essential-only state.
179
+ // Persisting (rather than only clearing the payload with clearConsent) keeps a
180
+ // subsequent load in this safe state instead of falling back to the first-load
181
+ // default — which, for Flavor 7, would re-enable analytics. This matters
182
+ // because a later load may resolve no expiration window (testing off, offline
183
+ // with no mappings cache, or a country with no interval), in which case empty
184
+ // storage would otherwise re-seed the first-load default.
185
+ const settleEssentialOnly = cmp => storeConsent(cmp, [ConsentCategory.ESSENTIAL]);
147
186
  const retrieveConsent = async cmp => {
187
+ // If stored consent has aged past its expiration window (production
188
+ // per-country interval, or the debug testing override), settle on a persisted
189
+ // essential-only state so callers see essential-only and a later load stays
190
+ // here (mirrors Android's clearExpiredConsent() + essential-only
191
+ // getConsentedCategories()).
192
+ if (await isConsentExpired(cmp)) {
193
+ return settleEssentialOnly(cmp);
194
+ }
148
195
  return new Promise(resolve => {
149
196
  const resConsent = consentJson => {
150
197
  if (consentJson) {
@@ -186,34 +233,90 @@ const retrieveConsent = async cmp => {
186
233
  });
187
234
  };
188
235
  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;
236
+ const hashedExtUsrData = hashExtUsrData(cmp.customerId, cmp.configId, cmp.extUsrData);
237
+ const userSuffix = hashedExtUsrData ? `_${hashedExtUsrData}` : '';
238
+ const parse = json => {
239
+ if (!json) {
240
+ return '';
208
241
  }
209
- });
242
+ try {
243
+ return JSON.parse(json);
244
+ } catch {
245
+ return '';
246
+ }
247
+ };
248
+ try {
249
+ const scoped = parse(await getStorage(lastConsentDateKey(cmp.configId, userSuffix)));
250
+ if (scoped) {
251
+ return scoped;
252
+ }
253
+ // Fall back to the legacy un-scoped key for installs written before the
254
+ // timestamp was scoped by configId.
255
+ return parse(await getStorage(legacyLastConsentDateKey(userSuffix)));
256
+ } catch {
257
+ // Fail closed: a storage rejection resolves to no timestamp instead of
258
+ // hanging the consent load.
259
+ return '';
260
+ }
261
+ };
262
+
263
+ /**
264
+ * Resolves the effective expiration window in seconds, mirroring the Android
265
+ * SDK's single path:
266
+ *
267
+ * debug testing override ?? production interval (per-country, from the GDPR
268
+ * mappings served at /mappings.json)
269
+ *
270
+ * Testing mode does not create a separate expiration path — it overrides the
271
+ * production interval. Returns null when neither is configured, in which case
272
+ * consent has no expiration.
273
+ */
274
+ const effectiveExpirationSeconds = async cmp => {
275
+ const testingSeconds = cmp.consentExpirationTestingSeconds;
276
+ // Testing override short-circuits the production lookup entirely, so debug
277
+ // runs never depend on the mappings fetch.
278
+ const seconds = testingSeconds ?? (await getConsentExpirationSeconds(cmp.config?.country));
279
+ return seconds && seconds > 0 ? seconds : null;
280
+ };
281
+
282
+ /**
283
+ * True when `timestamp` is older than the `seconds` window. Fails closed
284
+ * (returns false) for a missing or unparseable timestamp, or when no window is
285
+ * configured, so a storage hiccup or a null window never wrongly expires
286
+ * consent.
287
+ */
288
+ const isTimestampExpired = (timestamp, seconds) => {
289
+ if (!seconds || !timestamp) {
290
+ return false;
291
+ }
292
+ const consentedAtMs = new Date(timestamp).getTime();
293
+ if (Number.isNaN(consentedAtMs)) {
294
+ return false;
295
+ }
296
+ return Date.now() - consentedAtMs > seconds * 1000;
297
+ };
298
+
299
+ /**
300
+ * Returns true when the locally stored consent has aged past its expiration
301
+ * window (see {@link effectiveExpirationSeconds}).
302
+ */
303
+ export const isConsentExpired = async cmp => {
304
+ const seconds = await effectiveExpirationSeconds(cmp);
305
+ if (!seconds) {
306
+ return false;
307
+ }
308
+ const timestamp = await retrieveLastConsentTimestamp(cmp);
309
+ return isTimestampExpired(timestamp, seconds);
210
310
  };
211
311
  export const recordConsent = (cmp, consent) => {
212
312
  const payload = createConsentRecordPayload(cmp, consent);
213
313
  return API.post(`${CONSENT_URI}/record`, payload, {
214
314
  referrer: cmp.consentingDomain
215
315
  }).then(() => consent ?? cmp.consent ?? [ConsentCategory.ESSENTIAL]).then(consentCategories => {
216
- consentCategories = formatConsentArray(makeConsentFromCategories(consentCategories));
316
+ consentCategories = formatConsentArray(normalizeDoNotSellConsent(makeConsentFromCategories(consentCategories), {
317
+ enableDoNotSell: cmp.config.enableDoNotSell,
318
+ doNotSellCategories: cmp.config.doNotSellCategories
319
+ }));
217
320
  storeConsent(cmp, consentCategories, true);
218
321
  return consentCategories;
219
322
  }).catch(error => {
@@ -259,25 +362,50 @@ export const fetchConsent = async cmp => {
259
362
  lastConsentTimestamp
260
363
  } = response;
261
364
  if (!consented || !lastConsentTimestamp) {
262
- // No remote consent found, use local consent
263
- await storeConsent(cmp, consent);
365
+ // No remote record — keep the local consent as-is. Re-storing it here
366
+ // would reset the recorded-consent timestamp to "now" on every load, so
367
+ // expiration would never fire for remote + extUsrData users, and it
368
+ // could re-persist an essential-only clear. The local consent is already
369
+ // stored with its real timestamp (or is a first-load default that stays
370
+ // re-seeded).
264
371
  return consent;
265
372
  }
266
373
 
374
+ // Evaluate the remote record against the server's own timestamp (when the
375
+ // visitor actually consented), not "now", so an already-expired remote
376
+ // record is never restored and re-dated as fresh.
377
+ const seconds = await effectiveExpirationSeconds(cmp);
378
+ const remoteExpired = isTimestampExpired(lastConsentTimestamp, seconds);
379
+
267
380
  // If extUsrData is not null and not empty, always use remote consent (cross-device consent enabled)
268
381
  if (extUsrData && extUsrData.trim() !== '') {
269
- const remoteConsentCategories = consented.map(category => ConsentCategory[category]);
270
- await storeConsent(cmp, remoteConsentCategories, true);
382
+ if (remoteExpired) {
383
+ // The authoritative remote record has expired; settle on a persisted
384
+ // essential-only state rather than restoring stale consent, so a
385
+ // subsequent load stays here instead of falling back to the
386
+ // first-load default.
387
+ return settleEssentialOnly(cmp);
388
+ }
389
+ const remoteConsentCategories = formatConsentArray(normalizeDoNotSellConsent(makeConsentFromCategories(consented.map(category => ConsentCategory[category])), {
390
+ enableDoNotSell: cmp.config.enableDoNotSell,
391
+ doNotSellCategories: cmp.config.doNotSellCategories
392
+ }));
393
+ // Preserve the server timestamp so restoring can't re-date the record.
394
+ await storeConsent(cmp, remoteConsentCategories, true, lastConsentTimestamp);
271
395
  return remoteConsentCategories;
272
396
  }
273
397
 
274
398
  // Otherwise, validate timestamps (cross-device consent not enabled)
275
399
  const internalTimestamp = await retrieveLastConsentTimestamp(cmp);
276
400
  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.
279
- const remoteConsentCategories = formatConsentArray(makeConsentFromCategories(consented));
280
- await storeConsent(cmp, remoteConsentCategories, true);
401
+ if (!remoteExpired && (new Date(lastConsentTimestamp) > new Date(internalTimestamp) || internalTimestamp === '')) {
402
+ // Remote consent is newer, unexpired, or we haven't recorded any
403
+ // consent yet. Store it, preserving the server timestamp.
404
+ const remoteConsentCategories = formatConsentArray(normalizeDoNotSellConsent(makeConsentFromCategories(consented), {
405
+ enableDoNotSell: cmp.config.enableDoNotSell,
406
+ doNotSellCategories: cmp.config.doNotSellCategories
407
+ }));
408
+ await storeConsent(cmp, remoteConsentCategories, true, lastConsentTimestamp);
281
409
  return remoteConsentCategories;
282
410
  }
283
411
  } 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":"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","ignoreList":[]}
1
+ {"version":3,"names":["sha512","Platform","NativeModules","TextEncoder","ConsentCategory","env","formatConsentArray","makeConsentFromCategories","applyDoNotSellDefault","normalizeDoNotSellConsent","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","enableDoNotSell","config","doNotSellCategories","firstLoadConsent","categories","analyticsDefaultsOnAtFirstLoad","push","ANALYTICS","isDoNotSellVisible","enableDoNotSellDefault","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"],"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":[]}
@@ -18,7 +18,7 @@ import useBoundCallback from '../../hooks/useBoundCallback';
18
18
  import { usePrevious } from '../../hooks/usePrevious';
19
19
  import { setSpecialFeatureConsent } from '../../iab/tcf/actions';
20
20
  import { purposeMap } from '../../iab/tcf/constants';
21
- import { getCategoryDisclosures, getStack, isCategoryAccepted, isCategoryDisabled } from '../../selectors';
21
+ import { getCategoryDisclosures, getStack, isCategoryAccepted, isCategoryDisabled, shouldRenderOptOut } from '../../selectors';
22
22
  import DrawerHeader from './Drawer.Header';
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  const Loading = () => {
@@ -583,7 +583,7 @@ export const ConsentCategoriesDrawer = () => {
583
583
  return 'none';
584
584
  }, [previousStack, stack]);
585
585
  const useTcf = config?.tcfIsApplicable;
586
- const needsOptOut = config?.shouldRenderOptOut;
586
+ const needsOptOut = shouldRenderOptOut(state);
587
587
  const categories = useMemo(() => {
588
588
  const newCategories = (useTcf ? config.iabCategories : config?.categories || []).map(category => {
589
589
  return {