cm-sdk-react-native-v3 3.6.6 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,9 @@ RCT_EXTERN_METHOD(forceOpen:(BOOL)jumpToSettings
29
29
  RCT_EXTERN_METHOD(getUserStatus:(RCTPromiseResolveBlock)resolve
30
30
  reject:(RCTPromiseRejectBlock)reject)
31
31
 
32
+ RCT_EXTERN_METHOD(isConsentRequired:(RCTPromiseResolveBlock)resolve
33
+ reject:(RCTPromiseRejectBlock)reject)
34
+
32
35
  RCT_EXTERN_METHOD(getStatusForPurpose:(NSString *)purposeId
33
36
  resolve:(RCTPromiseResolveBlock)resolve
34
37
  reject:(RCTPromiseRejectBlock)reject)
@@ -75,6 +78,23 @@ RCT_EXTERN_METHOD(importCMPInfo:(NSString *)cmpString
75
78
  RCT_EXTERN_METHOD(resetConsentManagementData:(RCTPromiseResolveBlock)resolve
76
79
  reject:(RCTPromiseRejectBlock)reject)
77
80
 
81
+ RCT_EXTERN_METHOD(configureAutomaticFirebaseConsentUpdates:(BOOL)enabled
82
+ resolve:(RCTPromiseResolveBlock)resolve
83
+ reject:(RCTPromiseRejectBlock)reject)
84
+
85
+ RCT_EXTERN_METHOD(setAutomaticFirebaseConsentUpdatesEnabled:(BOOL)enabled
86
+ resolve:(RCTPromiseResolveBlock)resolve
87
+ reject:(RCTPromiseRejectBlock)reject)
88
+
89
+ RCT_EXTERN_METHOD(isAutomaticFirebaseConsentUpdatesEnabled:(RCTPromiseResolveBlock)resolve
90
+ reject:(RCTPromiseRejectBlock)reject)
91
+
92
+ RCT_EXTERN_METHOD(updateFirebaseConsent:(RCTPromiseResolveBlock)resolve
93
+ reject:(RCTPromiseRejectBlock)reject)
94
+
95
+ RCT_EXTERN_METHOD(isFirebaseAnalyticsAvailable:(RCTPromiseResolveBlock)resolve
96
+ reject:(RCTPromiseRejectBlock)reject)
97
+
78
98
  // Event emitter support methods
79
99
  RCT_EXTERN_METHOD(addListener:(NSString *)eventName)
80
100
  RCT_EXTERN_METHOD(removeListeners:(double)count)
@@ -1,5 +1,6 @@
1
1
  import Foundation
2
2
  import UIKit
3
+ import WebKit
3
4
  import cm_sdk_ios_v3
4
5
  import React
5
6
 
@@ -77,6 +78,21 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
77
78
  // MARK: - CMPManagerDelegate methods
78
79
 
79
80
  @objc public func didReceiveConsent(consent: String, jsonObject: [String: Any]) {
81
+ print("[CMP iOS] didReceiveConsent called")
82
+ print("[CMP iOS] consent parameter length: \(consent.count)")
83
+ print("[CMP iOS] consent first 60 chars: \(String(consent.prefix(60)))")
84
+ if let firstChar = consent.first {
85
+ print("[CMP iOS] consent first char: '\(firstChar)' code: \(firstChar.asciiValue ?? 0)")
86
+ }
87
+ if let lastChar = consent.last {
88
+ print("[CMP iOS] consent last char: '\(lastChar)' code: \(lastChar.asciiValue ?? 0)")
89
+ }
90
+ print("[CMP iOS] jsonObject keys: \(jsonObject.keys)")
91
+ if let cmpString = jsonObject["cmpString"] as? String {
92
+ print("[CMP iOS] jsonObject.cmpString exists! Length: \(cmpString.count)")
93
+ print("[CMP iOS] Are consent param and jsonObject.cmpString same? \(consent == cmpString)")
94
+ }
95
+
80
96
  sendEventIfListening(name: "didReceiveConsent", body: [
81
97
  "consent": consent,
82
98
  "jsonObject": jsonObject
@@ -111,6 +127,7 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
111
127
  let cornerRadius = CGFloat(config["cornerRadius"] as? Double ?? 5)
112
128
  let respectsSafeArea = config["respectsSafeArea"] as? Bool ?? true
113
129
  let allowsOrientationChanges = config["allowsOrientationChanges"] as? Bool ?? true
130
+ let darkMode = config["darkMode"] as? Bool ?? false
114
131
 
115
132
  let position = self.mapPosition(config: config, respectsSafeArea: respectsSafeArea)
116
133
  let backgroundStyle = self.mapBackgroundStyle(config: config)
@@ -120,7 +137,8 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
120
137
  backgroundStyle: backgroundStyle,
121
138
  cornerRadius: cornerRadius,
122
139
  respectsSafeArea: respectsSafeArea,
123
- allowsOrientationChanges: allowsOrientationChanges
140
+ allowsOrientationChanges: allowsOrientationChanges,
141
+ darkMode: darkMode
124
142
  )
125
143
 
126
144
  self.cmpManager.setWebViewConfig(uiConfig)
@@ -240,10 +258,22 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
240
258
  let appName = config["appName"] as? String else {
241
259
  throw NSError(domain: "CmSdkReactNativeV3", code: 0, userInfo: [NSLocalizedDescriptionKey: "Invalid config parameters"])
242
260
  }
261
+ let jsonConfig = config["jsonConfig"] as? String
243
262
  let noHash = config["noHash"] as? Bool ?? false
263
+ let webViewConnectionTimeoutMillis = (config["webViewConnectionTimeoutMillis"] as? NSNumber)?.intValue ?? 3000
264
+ let forceRegulation = config["forceRegulation"] as? String
244
265
  print("ID: \(id) - Domain: \(domain)")
245
266
 
246
- let urlConfig = UrlConfig(id: id, domain: domain, language: language, appName: appName, jsonConfig: nil, noHash: noHash)
267
+ let urlConfig = UrlConfig(
268
+ id: id,
269
+ domain: domain,
270
+ language: language,
271
+ appName: appName,
272
+ jsonConfig: jsonConfig,
273
+ noHash: noHash,
274
+ webViewConnectionTimeoutMillis: webViewConnectionTimeoutMillis,
275
+ forceRegulation: forceRegulation
276
+ )
247
277
  print("urlConfig = \(urlConfig)")
248
278
  self.cmpManager.setUrlConfig(urlConfig)
249
279
  resolve(nil)
@@ -275,16 +305,27 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
275
305
  resolve(response)
276
306
  }
277
307
 
308
+ @objc(isConsentRequired:reject:)
309
+ func isConsentRequired(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
310
+ cmpManager.isConsentRequired { isRequired, error in
311
+ if let error = error {
312
+ reject("ERROR", "Failed to check if consent is required: \(error.localizedDescription)", error)
313
+ } else {
314
+ resolve(isRequired)
315
+ }
316
+ }
317
+ }
318
+
278
319
  @objc(getStatusForPurpose:resolve:reject:)
279
320
  func getStatusForPurpose(_ purposeId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
280
321
  let status = cmpManager.getStatusForPurpose(id: purposeId)
281
- resolve(status.rawValue)
322
+ resolve(stringValue(for: status))
282
323
  }
283
324
 
284
325
  @objc(getStatusForVendor:resolve:reject:)
285
326
  func getStatusForVendor(_ vendorId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
286
327
  let status = cmpManager.getStatusForVendor(id: vendorId)
287
- resolve(status.rawValue)
328
+ resolve(stringValue(for: status))
288
329
  }
289
330
 
290
331
  @objc(getGoogleConsentModeStatus:reject:)
@@ -295,23 +336,29 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
295
336
 
296
337
  @objc(checkAndOpen:resolve:reject:)
297
338
  func checkAndOpen(_ jumpToSettings: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
298
- cmpManager.checkAndOpen(jumpToSettings: jumpToSettings) { error in
299
- if let error = error {
300
- reject("ERROR", "Failed to check and open: \(error.localizedDescription)", error)
301
- } else {
302
- resolve(true)
303
- }
339
+ runOnMainThread {
340
+ self.updatePresentingViewControllerIfNeeded()
341
+ self.cmpManager.checkAndOpen(jumpToSettings: jumpToSettings) { error in
342
+ if let error = error {
343
+ reject("ERROR", "Failed to check and open: \(error.localizedDescription)", error)
344
+ } else {
345
+ resolve(true)
346
+ }
347
+ }
304
348
  }
305
349
  }
306
350
 
307
351
  @objc(forceOpen:resolve:reject:)
308
352
  func forceOpen(_ jumpToSettings: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
309
- cmpManager.forceOpen(jumpToSettings: jumpToSettings) { error in
310
- if let error = error {
311
- reject("ERROR", "Failed to force open: \(error.localizedDescription)", error)
312
- } else {
313
- resolve(true)
314
- }
353
+ runOnMainThread {
354
+ self.updatePresentingViewControllerIfNeeded()
355
+ self.cmpManager.forceOpen(jumpToSettings: jumpToSettings) { error in
356
+ if let error = error {
357
+ reject("ERROR", "Failed to force open: \(error.localizedDescription)", error)
358
+ } else {
359
+ resolve(true)
360
+ }
361
+ }
315
362
  }
316
363
  }
317
364
 
@@ -323,29 +370,29 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
323
370
 
324
371
  @objc(acceptVendors:resolve:reject:)
325
372
  func acceptVendors(_ vendors: [String], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
326
- self.cmpManager.acceptVendors(vendors) { success in
327
- resolve(success)
328
- }
373
+ self.cmpManager.acceptVendors(vendors) { error in
374
+ self.resolveBooleanCompletion(error: error, successMessage: "Failed to accept vendors", resolve: resolve, reject: reject)
375
+ }
329
376
  }
330
377
 
331
378
  @objc(rejectVendors:resolve:reject:)
332
379
  func rejectVendors(_ vendors: [String], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
333
- self.cmpManager.rejectVendors(vendors) { success in
334
- resolve(success)
380
+ self.cmpManager.rejectVendors(vendors) { error in
381
+ self.resolveBooleanCompletion(error: error, successMessage: "Failed to reject vendors", resolve: resolve, reject: reject)
335
382
  }
336
383
  }
337
384
 
338
385
  @objc(acceptPurposes:updatePurpose:resolve:reject:)
339
386
  func acceptPurposes(_ purposes: [String], updatePurpose: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
340
- self.cmpManager.acceptPurposes(purposes, updatePurpose: updatePurpose) { success in
341
- resolve(success)
387
+ self.cmpManager.acceptPurposes(purposes, updatePurpose: updatePurpose) { error in
388
+ self.resolveBooleanCompletion(error: error, successMessage: "Failed to accept purposes", resolve: resolve, reject: reject)
342
389
  }
343
390
  }
344
391
 
345
392
  @objc(rejectPurposes:updateVendor:resolve:reject:)
346
393
  func rejectPurposes(_ purposes: [String], updateVendor: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
347
- self.cmpManager.rejectPurposes(purposes, updateVendor: updateVendor) { success in
348
- resolve(success)
394
+ self.cmpManager.rejectPurposes(purposes, updateVendor: updateVendor) { error in
395
+ self.resolveBooleanCompletion(error: error, successMessage: "Failed to reject purposes", resolve: resolve, reject: reject)
349
396
  }
350
397
  }
351
398
 
@@ -384,7 +431,43 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
384
431
 
385
432
  @objc(resetConsentManagementData:reject:)
386
433
  func resetConsentManagementData(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
387
- self.cmpManager.resetConsentManagementData(completion: { success in resolve(success)})
434
+ self.cmpManager.resetConsentManagementData { error in
435
+ if let error = error {
436
+ reject("ERROR", "Failed to reset consent management data: \(error.localizedDescription)", error)
437
+ return
438
+ }
439
+
440
+ self.clearWebViewData {
441
+ resolve(true)
442
+ }
443
+ }
444
+ }
445
+
446
+ @objc(configureAutomaticFirebaseConsentUpdates:resolve:reject:)
447
+ func configureAutomaticFirebaseConsentUpdates(_ enabled: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
448
+ CMPManager.configureAutomaticFirebaseConsentUpdates(enabled)
449
+ resolve(nil)
450
+ }
451
+
452
+ @objc(setAutomaticFirebaseConsentUpdatesEnabled:resolve:reject:)
453
+ func setAutomaticFirebaseConsentUpdatesEnabled(_ enabled: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
454
+ cmpManager.setAutomaticFirebaseConsentUpdatesEnabled(enabled)
455
+ resolve(nil)
456
+ }
457
+
458
+ @objc(isAutomaticFirebaseConsentUpdatesEnabled:reject:)
459
+ func isAutomaticFirebaseConsentUpdatesEnabled(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
460
+ resolve(cmpManager.isAutomaticFirebaseConsentUpdatesEnabled())
461
+ }
462
+
463
+ @objc(updateFirebaseConsent:reject:)
464
+ func updateFirebaseConsent(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
465
+ resolve(cmpManager.updateFirebaseConsent())
466
+ }
467
+
468
+ @objc(isFirebaseAnalyticsAvailable:reject:)
469
+ func isFirebaseAnalyticsAvailable(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
470
+ resolve(cmpManager.isFirebaseAnalyticsAvailable())
388
471
  }
389
472
 
390
473
  // MARK: - Event emitter methods
@@ -398,4 +481,99 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
398
481
  override func removeListeners(_ count: Double) {
399
482
  super.removeListeners(Double(Int(count)))
400
483
  }
484
+
485
+ private func clearWebViewData(completion: @escaping () -> Void) {
486
+ let dataStore = WKWebsiteDataStore.default()
487
+ let types = WKWebsiteDataStore.allWebsiteDataTypes()
488
+ let domainsToClear = [
489
+ "consentmanager.net",
490
+ "delivery.consentmanager.net",
491
+ "a.delivery.consentmanager.net"
492
+ ]
493
+
494
+ DispatchQueue.main.async {
495
+ dataStore.fetchDataRecords(ofTypes: types) { records in
496
+ let toDelete = records.filter { record in
497
+ domainsToClear.contains { domain in
498
+ record.displayName.contains(domain)
499
+ }
500
+ }
501
+
502
+ let deleteAndComplete = {
503
+ self.clearCookiesForDomains(domainsToClear)
504
+ completion()
505
+ }
506
+
507
+ guard !toDelete.isEmpty else {
508
+ deleteAndComplete()
509
+ return
510
+ }
511
+
512
+ dataStore.removeData(ofTypes: types, for: toDelete) {
513
+ deleteAndComplete()
514
+ }
515
+ }
516
+ }
517
+ }
518
+
519
+ private func clearCookiesForDomains(_ domains: [String]) {
520
+ let cookieStorage = HTTPCookieStorage.shared
521
+ cookieStorage.cookies?.forEach { cookie in
522
+ if domains.contains(where: { domain in cookie.domain.contains(domain) }) {
523
+ cookieStorage.deleteCookie(cookie)
524
+ }
525
+ }
526
+ }
527
+
528
+ private func stringValue(for status: UniqueConsentStatus) -> String {
529
+ switch status {
530
+ case .choiceDoesntExist:
531
+ return "choiceDoesntExist"
532
+ case .granted:
533
+ return "granted"
534
+ case .denied:
535
+ return "denied"
536
+ @unknown default:
537
+ return "choiceDoesntExist"
538
+ }
539
+ }
540
+
541
+ private func resolveBooleanCompletion(
542
+ error: NSError?,
543
+ successMessage: String,
544
+ resolve: @escaping RCTPromiseResolveBlock,
545
+ reject: @escaping RCTPromiseRejectBlock
546
+ ) {
547
+ if let error = error {
548
+ reject("ERROR", "\(successMessage): \(error.localizedDescription)", error)
549
+ } else {
550
+ resolve(true)
551
+ }
552
+ }
553
+
554
+ private func updatePresentingViewControllerIfNeeded() {
555
+ if let viewController = currentPresentingViewController() {
556
+ cmpManager.setPresentingViewController(viewController)
557
+ }
558
+ }
559
+
560
+ private func currentPresentingViewController() -> UIViewController? {
561
+ if #available(iOS 13.0, *) {
562
+ let windowScene = UIApplication.shared.connectedScenes
563
+ .compactMap { $0 as? UIWindowScene }
564
+ .first { $0.activationState == .foregroundActive }
565
+ let rootViewController = windowScene?.windows.first { $0.isKeyWindow }?.rootViewController
566
+ return topMostViewController(from: rootViewController)
567
+ }
568
+
569
+ return topMostViewController(from: UIApplication.shared.keyWindow?.rootViewController)
570
+ }
571
+
572
+ private func topMostViewController(from rootViewController: UIViewController?) -> UIViewController? {
573
+ var current = rootViewController
574
+ while let presented = current?.presentedViewController {
575
+ current = presented
576
+ }
577
+ return current
578
+ }
401
579
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","WebViewPosition","exports","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3","NativeModules","_default","default"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAoBA;AAAA,IASYC,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAcfE,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAA,IAOnBC,eAAe,GAAAF,OAAA,CAAAE,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAMfC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAqErB,MAAM;EAAEC;AAAmB,CAAC,GAAGC,0BAAa;AAAC,IAAAC,QAAA,GAAAN,OAAA,CAAAO,OAAA,GAE9BH,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","WebViewPosition","exports","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3","NativeModules","_default","default"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAoBA;AAAA,IAeYC,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAcfE,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAA,IAOnBC,eAAe,GAAAF,OAAA,CAAAE,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAMfC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AA4FrB,MAAM;EAAEC;AAAmB,CAAC,GAAGC,0BAAa;AAAC,IAAAC,QAAA,GAAAN,OAAA,CAAAO,OAAA,GAE9BH,kBAAkB","ignoreList":[]}
@@ -28,13 +28,13 @@ Object.defineProperty(exports, "WebViewPosition", {
28
28
  return _NativeCmSdkReactNativeV.WebViewPosition;
29
29
  }
30
30
  });
31
- exports.setWebViewConfig = exports.setUrlConfig = exports.setATTStatus = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.importCMPInfo = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.forceOpen = exports.exportCMPInfo = exports.default = exports.checkAndOpen = exports.addShowConsentLayerListener = exports.addErrorListener = exports.addConsentListener = exports.addCloseConsentLayerListener = exports.addClickLinkListener = exports.addATTStatusChangeListener = exports.acceptVendors = exports.acceptPurposes = exports.acceptAll = void 0;
31
+ exports.updateThirdPartyConsent = exports.updateFirebaseConsent = exports.setWebViewConfig = exports.setUrlConfig = exports.setAutomaticFirebaseConsentUpdatesEnabled = exports.setAutomaticConsentUpdatesEnabled = exports.setATTStatus = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.isFirebaseAnalyticsAvailable = exports.isConsentRequired = exports.isAutomaticFirebaseConsentUpdatesEnabled = exports.importCMPInfo = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.forceOpen = exports.exportCMPInfo = exports.default = exports.configureAutomaticFirebaseConsentUpdates = exports.checkAndOpen = exports.addShowConsentLayerListener = exports.addErrorListener = exports.addConsentListener = exports.addCloseConsentLayerListener = exports.addClickLinkListener = exports.addATTStatusChangeListener = exports.acceptVendors = exports.acceptPurposes = exports.acceptAll = void 0;
32
32
  var _reactNative = require("react-native");
33
33
  var _NativeCmSdkReactNativeV = _interopRequireWildcard(require("./NativeCmSdkReactNativeV3.js"));
34
34
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
35
35
  // Re-export enums/constants for consumers
36
36
 
37
- const LINKING_ERROR = `The package 'react-native-cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
37
+ const LINKING_ERROR = `The package 'cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
38
38
  ios: "- You have run 'pod install'\n",
39
39
  default: ''
40
40
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
@@ -44,6 +44,13 @@ const CmSdkReactNativeV3 = _NativeCmSdkReactNativeV.default ?? _reactNative.Nati
44
44
  }
45
45
  });
46
46
  const eventEmitter = new _reactNative.NativeEventEmitter(CmSdkReactNativeV3);
47
+ const getOptionalNativeMethod = methodName => {
48
+ const method = CmSdkReactNativeV3[methodName];
49
+ if (typeof method !== 'function') {
50
+ throw new Error(`[cm-sdk-react-native-v3] ${String(methodName)} is not available on ${_reactNative.Platform.OS}.`);
51
+ }
52
+ return method.bind(CmSdkReactNativeV3);
53
+ };
47
54
  const addConsentListener = callback => {
48
55
  return eventEmitter.addListener('didReceiveConsent', event => {
49
56
  callback(event.consent, event.jsonObject);
@@ -108,9 +115,13 @@ exports.forceOpen = forceOpen;
108
115
  const getUserStatus = () => {
109
116
  return CmSdkReactNativeV3.getUserStatus();
110
117
  };
118
+ exports.getUserStatus = getUserStatus;
119
+ const isConsentRequired = () => {
120
+ return CmSdkReactNativeV3.isConsentRequired();
121
+ };
111
122
 
112
123
  // Helpers
113
- exports.getUserStatus = getUserStatus;
124
+ exports.isConsentRequired = isConsentRequired;
114
125
  const normalizeWebViewConfig = config => {
115
126
  const position = config.position ?? _NativeCmSdkReactNativeV.WebViewPosition.FullScreen;
116
127
  const allowedPositions = [_NativeCmSdkReactNativeV.WebViewPosition.FullScreen, _NativeCmSdkReactNativeV.WebViewPosition.HalfScreenTop, _NativeCmSdkReactNativeV.WebViewPosition.HalfScreenBottom, _NativeCmSdkReactNativeV.WebViewPosition.Custom];
@@ -122,7 +133,7 @@ const normalizeWebViewConfig = config => {
122
133
  throw new Error('customRect is required when position is "custom"');
123
134
  }
124
135
  if (_reactNative.Platform.OS === 'android') {
125
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores customRect/position "custom"; it will fall back to full screen.');
136
+ console.warn('[cm-sdk-react-native-v3] Android native SDK uses width/height/gravity for custom positioning, so RN customRect falls back to full screen.');
126
137
  }
127
138
  }
128
139
  const backgroundStyle = (() => {
@@ -155,12 +166,11 @@ const normalizeWebViewConfig = config => {
155
166
  if (blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.Dark && blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.Light && blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.ExtraLight) {
156
167
  throw new Error(`Invalid blurEffectStyle: ${blurStyle}`);
157
168
  }
158
- if (_reactNative.Platform.OS === 'android') {
159
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores blur backgrounds; using dimmed.');
160
- }
161
169
  return {
162
170
  type,
163
- blurEffectStyle: blurStyle
171
+ blurEffectStyle: blurStyle,
172
+ fallbackColor: normalizeColor(config.backgroundStyle.fallbackColor ?? 'black'),
173
+ fallbackOpacity: config.backgroundStyle.fallbackOpacity ?? 0.5
164
174
  };
165
175
  }
166
176
  case _NativeCmSdkReactNativeV.BackgroundStyleType.None:
@@ -171,15 +181,14 @@ const normalizeWebViewConfig = config => {
171
181
  throw new Error(`Invalid backgroundStyle type: ${config.backgroundStyle.type}`);
172
182
  }
173
183
  })();
174
- if (_reactNative.Platform.OS === 'android' && config.backgroundStyle) {
175
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores backgroundStyle overrides; it always uses a dimmed background.');
176
- }
177
184
  return {
178
185
  position,
179
186
  customRect: config.customRect,
180
187
  cornerRadius: config.cornerRadius ?? 5,
181
188
  respectsSafeArea: config.respectsSafeArea ?? true,
182
189
  allowsOrientationChanges: config.allowsOrientationChanges ?? true,
190
+ darkMode: config.darkMode ?? false,
191
+ navigationBarColor: normalizeColor(config.navigationBarColor),
183
192
  backgroundStyle
184
193
  };
185
194
  };
@@ -238,9 +247,37 @@ exports.rejectAll = rejectAll;
238
247
  const acceptAll = () => {
239
248
  return CmSdkReactNativeV3.acceptAll();
240
249
  };
250
+ exports.acceptAll = acceptAll;
251
+ const setAutomaticConsentUpdatesEnabled = enabled => {
252
+ return getOptionalNativeMethod('setAutomaticConsentUpdatesEnabled')(enabled);
253
+ };
254
+ exports.setAutomaticConsentUpdatesEnabled = setAutomaticConsentUpdatesEnabled;
255
+ const updateThirdPartyConsent = () => {
256
+ return getOptionalNativeMethod('updateThirdPartyConsent')();
257
+ };
258
+ exports.updateThirdPartyConsent = updateThirdPartyConsent;
259
+ const configureAutomaticFirebaseConsentUpdates = enabled => {
260
+ return getOptionalNativeMethod('configureAutomaticFirebaseConsentUpdates')(enabled);
261
+ };
262
+ exports.configureAutomaticFirebaseConsentUpdates = configureAutomaticFirebaseConsentUpdates;
263
+ const setAutomaticFirebaseConsentUpdatesEnabled = enabled => {
264
+ return getOptionalNativeMethod('setAutomaticFirebaseConsentUpdatesEnabled')(enabled);
265
+ };
266
+ exports.setAutomaticFirebaseConsentUpdatesEnabled = setAutomaticFirebaseConsentUpdatesEnabled;
267
+ const isAutomaticFirebaseConsentUpdatesEnabled = () => {
268
+ return getOptionalNativeMethod('isAutomaticFirebaseConsentUpdatesEnabled')();
269
+ };
270
+ exports.isAutomaticFirebaseConsentUpdatesEnabled = isAutomaticFirebaseConsentUpdatesEnabled;
271
+ const updateFirebaseConsent = () => {
272
+ return getOptionalNativeMethod('updateFirebaseConsent')();
273
+ };
274
+ exports.updateFirebaseConsent = updateFirebaseConsent;
275
+ const isFirebaseAnalyticsAvailable = () => {
276
+ return getOptionalNativeMethod('isFirebaseAnalyticsAvailable')();
277
+ };
241
278
 
242
279
  // Re-export types for consumer convenience
243
- exports.acceptAll = acceptAll;
280
+ exports.isFirebaseAnalyticsAvailable = isFirebaseAnalyticsAvailable;
244
281
  /**
245
282
  * Helper factory to build strongly-typed background styles.
246
283
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeCmSdkReactNativeV","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","CmSdkReactNativeV3","NativeCmSdkReactNativeV3","NativeModules","Proxy","Error","eventEmitter","NativeEventEmitter","addConsentListener","callback","addListener","event","consent","jsonObject","exports","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","addClickLinkListener","url","addATTStatusChangeListener","setUrlConfig","config","setWebViewConfig","normalized","normalizeWebViewConfig","setATTStatus","status","allowed","Set","ATTStatus","NotDetermined","Restricted","Denied","Authorized","checkAndOpen","jumpToSettings","forceOpen","getUserStatus","position","WebViewPosition","FullScreen","allowedPositions","HalfScreenTop","HalfScreenBottom","Custom","includes","customRect","OS","console","warn","backgroundStyle","type","BackgroundStyleType","Dimmed","color","normalizeColor","opacity","Color","Blur","blurStyle","blurEffectStyle","BlurEffectStyle","Dark","Light","ExtraLight","None","cornerRadius","respectsSafeArea","allowsOrientationChanges","undefined","processed","processColor","getStatusForPurpose","purposeId","getStatusForVendor","vendorId","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","cmpString","resetConsentManagementData","acceptVendors","vendors","rejectVendors","acceptPurposes","purposes","updatePurpose","rejectPurposes","updateVendor","rejectAll","acceptAll","BackgroundStyle","dimmed","blur","none","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeCmSdkReactNativeV","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","CmSdkReactNativeV3","NativeCmSdkReactNativeV3","NativeModules","Proxy","Error","eventEmitter","NativeEventEmitter","getOptionalNativeMethod","methodName","method","String","OS","bind","addConsentListener","callback","addListener","event","consent","jsonObject","exports","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","addClickLinkListener","url","addATTStatusChangeListener","setUrlConfig","config","setWebViewConfig","normalized","normalizeWebViewConfig","setATTStatus","status","allowed","Set","ATTStatus","NotDetermined","Restricted","Denied","Authorized","checkAndOpen","jumpToSettings","forceOpen","getUserStatus","isConsentRequired","position","WebViewPosition","FullScreen","allowedPositions","HalfScreenTop","HalfScreenBottom","Custom","includes","customRect","console","warn","backgroundStyle","type","BackgroundStyleType","Dimmed","color","normalizeColor","opacity","Color","Blur","blurStyle","blurEffectStyle","BlurEffectStyle","Dark","Light","ExtraLight","fallbackColor","fallbackOpacity","None","cornerRadius","respectsSafeArea","allowsOrientationChanges","darkMode","navigationBarColor","undefined","processed","processColor","getStatusForPurpose","purposeId","getStatusForVendor","vendorId","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","cmpString","resetConsentManagementData","acceptVendors","vendors","rejectVendors","acceptPurposes","purposes","updatePurpose","rejectPurposes","updateVendor","rejectAll","acceptAll","setAutomaticConsentUpdatesEnabled","enabled","updateThirdPartyConsent","configureAutomaticFirebaseConsentUpdates","setAutomaticFirebaseConsentUpdatesEnabled","isAutomaticFirebaseConsentUpdatesEnabled","updateFirebaseConsent","isFirebaseAnalyticsAvailable","BackgroundStyle","dimmed","blur","none","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","WebViewPosition","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;;AAE5C;;AAoBA;;AASA,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAc3B,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAO/B,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAM3B,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAqErB,MAAM;EAAEC;AAAmB,CAAC,GAAGL,aAAa;AAE5C,eAAeK,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","WebViewPosition","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;;AAE5C;;AAoBA;;AAeA,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAc3B,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAO/B,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAM3B,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AA4FrB,MAAM;EAAEC;AAAmB,CAAC,GAAGL,aAAa;AAE5C,eAAeK,kBAAkB","ignoreList":[]}
@@ -5,7 +5,7 @@ import NativeCmSdkReactNativeV3, { WebViewPosition, BackgroundStyleType, BlurEff
5
5
 
6
6
  // Re-export enums/constants for consumers
7
7
  export { WebViewPosition, BackgroundStyleType, BlurEffectStyle, ATTStatus };
8
- const LINKING_ERROR = `The package 'react-native-cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
8
+ const LINKING_ERROR = `The package 'cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
9
9
  ios: "- You have run 'pod install'\n",
10
10
  default: ''
11
11
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
@@ -15,6 +15,13 @@ const CmSdkReactNativeV3 = NativeCmSdkReactNativeV3 ?? NativeModules.CmSdkReactN
15
15
  }
16
16
  });
17
17
  const eventEmitter = new NativeEventEmitter(CmSdkReactNativeV3);
18
+ const getOptionalNativeMethod = methodName => {
19
+ const method = CmSdkReactNativeV3[methodName];
20
+ if (typeof method !== 'function') {
21
+ throw new Error(`[cm-sdk-react-native-v3] ${String(methodName)} is not available on ${Platform.OS}.`);
22
+ }
23
+ return method.bind(CmSdkReactNativeV3);
24
+ };
18
25
  export const addConsentListener = callback => {
19
26
  return eventEmitter.addListener('didReceiveConsent', event => {
20
27
  callback(event.consent, event.jsonObject);
@@ -68,6 +75,9 @@ export const forceOpen = jumpToSettings => {
68
75
  export const getUserStatus = () => {
69
76
  return CmSdkReactNativeV3.getUserStatus();
70
77
  };
78
+ export const isConsentRequired = () => {
79
+ return CmSdkReactNativeV3.isConsentRequired();
80
+ };
71
81
 
72
82
  // Helpers
73
83
  const normalizeWebViewConfig = config => {
@@ -81,7 +91,7 @@ const normalizeWebViewConfig = config => {
81
91
  throw new Error('customRect is required when position is "custom"');
82
92
  }
83
93
  if (Platform.OS === 'android') {
84
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores customRect/position "custom"; it will fall back to full screen.');
94
+ console.warn('[cm-sdk-react-native-v3] Android native SDK uses width/height/gravity for custom positioning, so RN customRect falls back to full screen.');
85
95
  }
86
96
  }
87
97
  const backgroundStyle = (() => {
@@ -114,12 +124,11 @@ const normalizeWebViewConfig = config => {
114
124
  if (blurStyle !== BlurEffectStyle.Dark && blurStyle !== BlurEffectStyle.Light && blurStyle !== BlurEffectStyle.ExtraLight) {
115
125
  throw new Error(`Invalid blurEffectStyle: ${blurStyle}`);
116
126
  }
117
- if (Platform.OS === 'android') {
118
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores blur backgrounds; using dimmed.');
119
- }
120
127
  return {
121
128
  type,
122
- blurEffectStyle: blurStyle
129
+ blurEffectStyle: blurStyle,
130
+ fallbackColor: normalizeColor(config.backgroundStyle.fallbackColor ?? 'black'),
131
+ fallbackOpacity: config.backgroundStyle.fallbackOpacity ?? 0.5
123
132
  };
124
133
  }
125
134
  case BackgroundStyleType.None:
@@ -130,15 +139,14 @@ const normalizeWebViewConfig = config => {
130
139
  throw new Error(`Invalid backgroundStyle type: ${config.backgroundStyle.type}`);
131
140
  }
132
141
  })();
133
- if (Platform.OS === 'android' && config.backgroundStyle) {
134
- console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores backgroundStyle overrides; it always uses a dimmed background.');
135
- }
136
142
  return {
137
143
  position,
138
144
  customRect: config.customRect,
139
145
  cornerRadius: config.cornerRadius ?? 5,
140
146
  respectsSafeArea: config.respectsSafeArea ?? true,
141
147
  allowsOrientationChanges: config.allowsOrientationChanges ?? true,
148
+ darkMode: config.darkMode ?? false,
149
+ navigationBarColor: normalizeColor(config.navigationBarColor),
142
150
  backgroundStyle
143
151
  };
144
152
  };
@@ -186,6 +194,27 @@ export const rejectAll = () => {
186
194
  export const acceptAll = () => {
187
195
  return CmSdkReactNativeV3.acceptAll();
188
196
  };
197
+ export const setAutomaticConsentUpdatesEnabled = enabled => {
198
+ return getOptionalNativeMethod('setAutomaticConsentUpdatesEnabled')(enabled);
199
+ };
200
+ export const updateThirdPartyConsent = () => {
201
+ return getOptionalNativeMethod('updateThirdPartyConsent')();
202
+ };
203
+ export const configureAutomaticFirebaseConsentUpdates = enabled => {
204
+ return getOptionalNativeMethod('configureAutomaticFirebaseConsentUpdates')(enabled);
205
+ };
206
+ export const setAutomaticFirebaseConsentUpdatesEnabled = enabled => {
207
+ return getOptionalNativeMethod('setAutomaticFirebaseConsentUpdatesEnabled')(enabled);
208
+ };
209
+ export const isAutomaticFirebaseConsentUpdatesEnabled = () => {
210
+ return getOptionalNativeMethod('isAutomaticFirebaseConsentUpdatesEnabled')();
211
+ };
212
+ export const updateFirebaseConsent = () => {
213
+ return getOptionalNativeMethod('updateFirebaseConsent')();
214
+ };
215
+ export const isFirebaseAnalyticsAvailable = () => {
216
+ return getOptionalNativeMethod('isFirebaseAnalyticsAvailable')();
217
+ };
189
218
 
190
219
  // Re-export types for consumer convenience
191
220