cm-sdk-react-native-v3 3.2.3 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/android/build.gradle +1 -1
- package/ios/CmSdkReactNativeV3-Bridging-Header.h +1 -0
- package/ios/CmSdkReactNativeV3.mm +5 -1
- package/ios/CmSdkReactNativeV3.swift +62 -6
- package/lib/commonjs/index.js +23 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +19 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +4 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +4 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-cm-sdk-react-native-v3.podspec +1 -1
- package/src/index.tsx +26 -4
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# ``consentmanager CMP SDK v3.
|
|
1
|
+
# ``consentmanager CMP SDK v3.3.0``
|
|
2
2
|
|
|
3
3
|
# cm-sdk-react-native-v3
|
|
4
4
|
|
|
5
5
|
cm-sdk-react-native-v3 is a comprehensive Consent Management Platform (CMP) SDK bridge for React Native developed applications. It provides easy-to-use APIs for handling user consent in compliance with various privacy regulations.
|
|
6
6
|
|
|
7
|
-
For further information, please refer to [our documentation](https://help.consentmanager.net/books/cmp/
|
|
7
|
+
For further information, please refer to [our documentation](https://help.consentmanager.net/books/cmp/chapter/integration-into-your-app---v3)
|
|
8
8
|
## License
|
|
9
9
|
|
|
10
10
|
CMPManager is available under the MIT license. See the LICENSE file for more info.
|
package/android/build.gradle
CHANGED
|
@@ -96,5 +96,5 @@ dependencies {
|
|
|
96
96
|
//noinspection GradleDynamicVersion
|
|
97
97
|
implementation "com.facebook.react:react-native:+"
|
|
98
98
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
99
|
-
implementation "net.consentmanager.sdkv3:cmsdkv3:3.
|
|
99
|
+
implementation "net.consentmanager.sdkv3:cmsdkv3:3.3.0"
|
|
100
100
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import <React/RCTEventEmitter.h>
|
|
2
3
|
|
|
3
|
-
@interface RCT_EXTERN_MODULE(CmSdkReactNativeV3,
|
|
4
|
+
@interface RCT_EXTERN_MODULE(CmSdkReactNativeV3, RCTEventEmitter)
|
|
5
|
+
|
|
6
|
+
// Event emitter methods
|
|
7
|
+
RCT_EXTERN_METHOD(supportedEvents)
|
|
4
8
|
|
|
5
9
|
// Core methods
|
|
6
10
|
RCT_EXTERN_METHOD(setUrlConfig:(NSDictionary *)config
|
|
@@ -1,14 +1,51 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import cm_sdk_ios_v3
|
|
3
|
+
import React
|
|
3
4
|
|
|
4
5
|
@objc(CmSdkReactNativeV3)
|
|
5
|
-
class CmSdkReactNativeV3:
|
|
6
|
+
class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
7
|
+
func didChangeATTStatus(oldStatus: Int, newStatus: Int, lastUpdated: Date?) {
|
|
8
|
+
sendEventIfListening(name: "didChangeATTStatus", body: [
|
|
9
|
+
"oldStatus": oldStatus,
|
|
10
|
+
"newStatus": newStatus,
|
|
11
|
+
"lastUpdated": lastUpdated?.timeIntervalSince1970 ?? 0
|
|
12
|
+
])
|
|
13
|
+
}
|
|
6
14
|
|
|
7
15
|
private let cmpManager: CMPManager
|
|
16
|
+
private var hasListeners: Bool = false
|
|
8
17
|
|
|
9
18
|
override init() {
|
|
10
19
|
self.cmpManager = CMPManager.shared
|
|
11
20
|
super.init()
|
|
21
|
+
// Set ourselves as the delegate to receive events
|
|
22
|
+
self.cmpManager.delegate = self
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Required override for RCTEventEmitter
|
|
26
|
+
override static func requiresMainQueueSetup() -> Bool {
|
|
27
|
+
return true
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Define the events that this module can emit
|
|
31
|
+
override func supportedEvents() -> [String]! {
|
|
32
|
+
return ["didReceiveConsent", "didShowConsentLayer", "didCloseConsentLayer", "didReceiveError"]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Track when listeners are added or removed
|
|
36
|
+
override func startObserving() {
|
|
37
|
+
hasListeners = true
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
override func stopObserving() {
|
|
41
|
+
hasListeners = false
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Helper method to check if we have listeners before sending events
|
|
45
|
+
private func sendEventIfListening(name: String, body: [String: Any]?) {
|
|
46
|
+
if hasListeners {
|
|
47
|
+
self.sendEvent(withName: name, body: body)
|
|
48
|
+
}
|
|
12
49
|
}
|
|
13
50
|
|
|
14
51
|
private func runOnMainThread(_ block: @escaping () -> Void) {
|
|
@@ -19,6 +56,30 @@ class CmSdkReactNativeV3: NSObject {
|
|
|
19
56
|
}
|
|
20
57
|
}
|
|
21
58
|
|
|
59
|
+
// MARK: - CMPManagerDelegate methods
|
|
60
|
+
|
|
61
|
+
@objc public func didReceiveConsent(consent: String, jsonObject: [String: Any]) {
|
|
62
|
+
// Forward the consent event to React Native
|
|
63
|
+
sendEventIfListening(name: "didReceiveConsent", body: [
|
|
64
|
+
"consent": consent,
|
|
65
|
+
"jsonObject": jsonObject
|
|
66
|
+
])
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@objc public func didShowConsentLayer() {
|
|
70
|
+
sendEventIfListening(name: "didShowConsentLayer", body: nil)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@objc public func didCloseConsentLayer() {
|
|
74
|
+
sendEventIfListening(name: "didCloseConsentLayer", body: nil)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@objc public func didReceiveError(error: String) {
|
|
78
|
+
sendEventIfListening(name: "didReceiveError", body: ["error": error])
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// MARK: - Configuration methods
|
|
82
|
+
|
|
22
83
|
@objc(setWebViewConfig:withResolver:withRejecter:)
|
|
23
84
|
func setWebViewConfig(_ config: [String: Any], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
24
85
|
let uiConfig = ConsentLayerUIConfig(
|
|
@@ -289,9 +350,4 @@ class CmSdkReactNativeV3: NSObject {
|
|
|
289
350
|
self.cmpManager.resetConsentManagementData(completion: { success in resolve(success)})
|
|
290
351
|
resolve(nil)
|
|
291
352
|
}
|
|
292
|
-
|
|
293
|
-
@objc
|
|
294
|
-
static func requiresMainQueueSetup() -> Bool {
|
|
295
|
-
return true
|
|
296
|
-
}
|
|
297
353
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.setWebViewConfig = exports.setUrlConfig = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.openConsentLayer = exports.jumpToSettings = exports.importCMPInfo = exports.hasVendorConsent = exports.hasUserChoice = exports.hasPurposeConsent = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.getEnabledVendorsIDs = exports.getEnabledPurposesIDs = exports.getDisabledVendorsIDs = exports.getDisabledPurposesIDs = exports.getAllVendorsIDs = exports.getAllPurposesIDs = exports.
|
|
6
|
+
exports.setWebViewConfig = exports.setUrlConfig = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.openConsentLayer = exports.jumpToSettings = exports.importCMPInfo = exports.hasVendorConsent = exports.hasUserChoice = exports.hasPurposeConsent = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.getEnabledVendorsIDs = exports.getEnabledPurposesIDs = exports.getDisabledVendorsIDs = exports.getDisabledPurposesIDs = exports.getAllVendorsIDs = exports.getAllPurposesIDs = exports.forceOpen = exports.exportCMPInfo = exports.default = exports.checkWithServerAndOpenIfNecessary = exports.checkIfConsentIsRequired = exports.checkAndOpen = exports.addShowConsentLayerListener = exports.addErrorListener = exports.addConsentListener = exports.addCloseConsentLayerListener = exports.acceptVendors = exports.acceptPurposes = exports.acceptAll = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
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({
|
|
9
9
|
ios: "- You have run 'pod install'\n",
|
|
@@ -14,8 +14,30 @@ const CmSdkReactNativeV3 = _reactNative.NativeModules.CmSdkReactNativeV3 ? _reac
|
|
|
14
14
|
throw new Error(LINKING_ERROR);
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
+
const isIOS = _reactNative.Platform.OS === 'ios';
|
|
18
|
+
const eventEmitter = isIOS ? new _reactNative.NativeEventEmitter(CmSdkReactNativeV3) : _reactNative.DeviceEventEmitter;
|
|
19
|
+
const addConsentListener = callback => {
|
|
20
|
+
return eventEmitter.addListener('didReceiveConsent', event => {
|
|
21
|
+
callback(event.consent, event.jsonObject);
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
exports.addConsentListener = addConsentListener;
|
|
25
|
+
const addShowConsentLayerListener = callback => {
|
|
26
|
+
return eventEmitter.addListener('didShowConsentLayer', callback);
|
|
27
|
+
};
|
|
28
|
+
exports.addShowConsentLayerListener = addShowConsentLayerListener;
|
|
29
|
+
const addCloseConsentLayerListener = callback => {
|
|
30
|
+
return eventEmitter.addListener('didCloseConsentLayer', callback);
|
|
31
|
+
};
|
|
32
|
+
exports.addCloseConsentLayerListener = addCloseConsentLayerListener;
|
|
33
|
+
const addErrorListener = callback => {
|
|
34
|
+
return eventEmitter.addListener('didReceiveError', event => {
|
|
35
|
+
callback(event.error);
|
|
36
|
+
});
|
|
37
|
+
};
|
|
17
38
|
|
|
18
39
|
// Core configuration methods
|
|
40
|
+
exports.addErrorListener = addErrorListener;
|
|
19
41
|
const setUrlConfig = exports.setUrlConfig = CmSdkReactNativeV3.setUrlConfig;
|
|
20
42
|
const setWebViewConfig = exports.setWebViewConfig = CmSdkReactNativeV3.setWebViewConfig;
|
|
21
43
|
|
|
@@ -33,9 +55,6 @@ const exportCMPInfo = exports.exportCMPInfo = CmSdkReactNativeV3.exportCMPInfo;
|
|
|
33
55
|
const importCMPInfo = exports.importCMPInfo = CmSdkReactNativeV3.importCMPInfo;
|
|
34
56
|
const resetConsentManagementData = exports.resetConsentManagementData = CmSdkReactNativeV3.resetConsentManagementData;
|
|
35
57
|
|
|
36
|
-
// iOS App Tracking Transparency
|
|
37
|
-
const getATTAuthorizationStatus = exports.getATTAuthorizationStatus = CmSdkReactNativeV3.getATTAuthorizationStatus;
|
|
38
|
-
|
|
39
58
|
// Consent modification methods
|
|
40
59
|
const acceptVendors = exports.acceptVendors = CmSdkReactNativeV3.acceptVendors;
|
|
41
60
|
const rejectVendors = exports.rejectVendors = CmSdkReactNativeV3.rejectVendors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","CmSdkReactNativeV3","NativeModules","Proxy","get","Error","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","CmSdkReactNativeV3","NativeModules","Proxy","get","Error","isIOS","OS","eventEmitter","NativeEventEmitter","DeviceEventEmitter","addConsentListener","callback","addListener","event","consent","jsonObject","exports","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","setUrlConfig","setWebViewConfig","checkAndOpen","forceOpen","jumpToSettings","getUserStatus","getStatusForPurpose","getStatusForVendor","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","resetConsentManagementData","acceptVendors","rejectVendors","acceptPurposes","rejectPurposes","rejectAll","acceptAll","checkWithServerAndOpenIfNecessary","openConsentLayer","checkIfConsentIsRequired","hasUserChoice","hasPurposeConsent","hasVendorConsent","getAllPurposesIDs","getEnabledPurposesIDs","getDisabledPurposesIDs","getAllVendorsIDs","getEnabledVendorsIDs","getDisabledVendorsIDs","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { NativeModules, Platform } from 'react-native';
|
|
3
|
+
import { NativeModules, Platform, NativeEventEmitter, DeviceEventEmitter } from 'react-native';
|
|
4
4
|
const LINKING_ERROR = `The package 'react-native-cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
5
5
|
ios: "- You have run 'pod install'\n",
|
|
6
6
|
default: ''
|
|
@@ -10,6 +10,24 @@ const CmSdkReactNativeV3 = NativeModules.CmSdkReactNativeV3 ? NativeModules.CmSd
|
|
|
10
10
|
throw new Error(LINKING_ERROR);
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
|
+
const isIOS = Platform.OS === 'ios';
|
|
14
|
+
const eventEmitter = isIOS ? new NativeEventEmitter(CmSdkReactNativeV3) : DeviceEventEmitter;
|
|
15
|
+
export const addConsentListener = callback => {
|
|
16
|
+
return eventEmitter.addListener('didReceiveConsent', event => {
|
|
17
|
+
callback(event.consent, event.jsonObject);
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
export const addShowConsentLayerListener = callback => {
|
|
21
|
+
return eventEmitter.addListener('didShowConsentLayer', callback);
|
|
22
|
+
};
|
|
23
|
+
export const addCloseConsentLayerListener = callback => {
|
|
24
|
+
return eventEmitter.addListener('didCloseConsentLayer', callback);
|
|
25
|
+
};
|
|
26
|
+
export const addErrorListener = callback => {
|
|
27
|
+
return eventEmitter.addListener('didReceiveError', event => {
|
|
28
|
+
callback(event.error);
|
|
29
|
+
});
|
|
30
|
+
};
|
|
13
31
|
|
|
14
32
|
// Core configuration methods
|
|
15
33
|
export const setUrlConfig = CmSdkReactNativeV3.setUrlConfig;
|
|
@@ -29,9 +47,6 @@ export const exportCMPInfo = CmSdkReactNativeV3.exportCMPInfo;
|
|
|
29
47
|
export const importCMPInfo = CmSdkReactNativeV3.importCMPInfo;
|
|
30
48
|
export const resetConsentManagementData = CmSdkReactNativeV3.resetConsentManagementData;
|
|
31
49
|
|
|
32
|
-
// iOS App Tracking Transparency
|
|
33
|
-
export const getATTAuthorizationStatus = CmSdkReactNativeV3.getATTAuthorizationStatus;
|
|
34
|
-
|
|
35
50
|
// Consent modification methods
|
|
36
51
|
export const acceptVendors = CmSdkReactNativeV3.acceptVendors;
|
|
37
52
|
export const rejectVendors = CmSdkReactNativeV3.rejectVendors;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","CmSdkReactNativeV3","Proxy","get","Error","setUrlConfig","setWebViewConfig","checkAndOpen","forceOpen","jumpToSettings","getUserStatus","getStatusForPurpose","getStatusForVendor","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","resetConsentManagementData","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","DeviceEventEmitter","LINKING_ERROR","select","ios","default","CmSdkReactNativeV3","Proxy","get","Error","isIOS","OS","eventEmitter","addConsentListener","callback","addListener","event","consent","jsonObject","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","setUrlConfig","setWebViewConfig","checkAndOpen","forceOpen","jumpToSettings","getUserStatus","getStatusForPurpose","getStatusForVendor","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","resetConsentManagementData","acceptVendors","rejectVendors","acceptPurposes","rejectPurposes","rejectAll","acceptAll","checkWithServerAndOpenIfNecessary","openConsentLayer","checkIfConsentIsRequired","hasUserChoice","hasPurposeConsent","hasVendorConsent","getAllPurposesIDs","getEnabledPurposesIDs","getDisabledPurposesIDs","getAllVendorsIDs","getEnabledVendorsIDs","getDisabledVendorsIDs"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
declare const CmSdkReactNativeV3: any;
|
|
2
|
+
export declare const addConsentListener: (callback: (consent: string, jsonObject: any) => void) => import("react-native").EmitterSubscription;
|
|
3
|
+
export declare const addShowConsentLayerListener: (callback: () => void) => import("react-native").EmitterSubscription;
|
|
4
|
+
export declare const addCloseConsentLayerListener: (callback: () => void) => import("react-native").EmitterSubscription;
|
|
5
|
+
export declare const addErrorListener: (callback: (error: string) => void) => import("react-native").EmitterSubscription;
|
|
2
6
|
export declare const setUrlConfig: any;
|
|
3
7
|
export declare const setWebViewConfig: any;
|
|
4
8
|
export declare const checkAndOpen: any;
|
|
@@ -11,7 +15,6 @@ export declare const getGoogleConsentModeStatus: any;
|
|
|
11
15
|
export declare const exportCMPInfo: any;
|
|
12
16
|
export declare const importCMPInfo: any;
|
|
13
17
|
export declare const resetConsentManagementData: any;
|
|
14
|
-
export declare const getATTAuthorizationStatus: any;
|
|
15
18
|
export declare const acceptVendors: any;
|
|
16
19
|
export declare const rejectVendors: any;
|
|
17
20
|
export declare const acceptPurposes: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB,KASnB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB,KASnB,CAAC;AAKN,eAAO,MAAM,kBAAkB,GAC7B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,+CAKrD,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,IAAI,+CAE/D,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,IAAI,+CAEhE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,+CAIjE,CAAC;AAGF,eAAO,MAAM,YAAY,KAAkC,CAAC;AAC5D,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AAGpE,eAAO,MAAM,YAAY,KAAkC,CAAC;AAC5D,eAAO,MAAM,SAAS,KAA+B,CAAC;AACtD,eAAO,MAAM,cAAc,KAAoC,CAAC;AAGhE,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,mBAAmB,KAAyC,CAAC;AAC1E,eAAO,MAAM,kBAAkB,KAAwC,CAAC;AACxE,eAAO,MAAM,0BAA0B,KAAgD,CAAC;AACxF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,0BAA0B,KAAgD,CAAC;AAGxF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,cAAc,KAAoC,CAAC;AAChE,eAAO,MAAM,cAAc,KAAoC,CAAC;AAChE,eAAO,MAAM,SAAS,KAA+B,CAAC;AACtD,eAAO,MAAM,SAAS,KAA+B,CAAC;AAGtD,eAAO,MAAM,iCAAiC,KAAuD,CAAC;AACtG,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,wBAAwB,KAA8C,CAAC;AACpF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,iBAAiB,KAAuC,CAAC;AACtE,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,iBAAiB,KAAuC,CAAC;AACtE,eAAO,MAAM,qBAAqB,KAA2C,CAAC;AAC9E,eAAO,MAAM,sBAAsB,KAA4C,CAAC;AAChF,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,oBAAoB,KAA0C,CAAC;AAC5E,eAAO,MAAM,qBAAqB,KAA2C,CAAC;AAE9E,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
declare const CmSdkReactNativeV3: any;
|
|
2
|
+
export declare const addConsentListener: (callback: (consent: string, jsonObject: any) => void) => import("react-native").EmitterSubscription;
|
|
3
|
+
export declare const addShowConsentLayerListener: (callback: () => void) => import("react-native").EmitterSubscription;
|
|
4
|
+
export declare const addCloseConsentLayerListener: (callback: () => void) => import("react-native").EmitterSubscription;
|
|
5
|
+
export declare const addErrorListener: (callback: (error: string) => void) => import("react-native").EmitterSubscription;
|
|
2
6
|
export declare const setUrlConfig: any;
|
|
3
7
|
export declare const setWebViewConfig: any;
|
|
4
8
|
export declare const checkAndOpen: any;
|
|
@@ -11,7 +15,6 @@ export declare const getGoogleConsentModeStatus: any;
|
|
|
11
15
|
export declare const exportCMPInfo: any;
|
|
12
16
|
export declare const importCMPInfo: any;
|
|
13
17
|
export declare const resetConsentManagementData: any;
|
|
14
|
-
export declare const getATTAuthorizationStatus: any;
|
|
15
18
|
export declare const acceptVendors: any;
|
|
16
19
|
export declare const rejectVendors: any;
|
|
17
20
|
export declare const acceptPurposes: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB,KASnB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAQA,QAAA,MAAM,kBAAkB,KASnB,CAAC;AAKN,eAAO,MAAM,kBAAkB,GAC7B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,+CAKrD,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,IAAI,+CAE/D,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,IAAI,+CAEhE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,+CAIjE,CAAC;AAGF,eAAO,MAAM,YAAY,KAAkC,CAAC;AAC5D,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AAGpE,eAAO,MAAM,YAAY,KAAkC,CAAC;AAC5D,eAAO,MAAM,SAAS,KAA+B,CAAC;AACtD,eAAO,MAAM,cAAc,KAAoC,CAAC;AAGhE,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,mBAAmB,KAAyC,CAAC;AAC1E,eAAO,MAAM,kBAAkB,KAAwC,CAAC;AACxE,eAAO,MAAM,0BAA0B,KAAgD,CAAC;AACxF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,0BAA0B,KAAgD,CAAC;AAGxF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,cAAc,KAAoC,CAAC;AAChE,eAAO,MAAM,cAAc,KAAoC,CAAC;AAChE,eAAO,MAAM,SAAS,KAA+B,CAAC;AACtD,eAAO,MAAM,SAAS,KAA+B,CAAC;AAGtD,eAAO,MAAM,iCAAiC,KAAuD,CAAC;AACtG,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,wBAAwB,KAA8C,CAAC;AACpF,eAAO,MAAM,aAAa,KAAmC,CAAC;AAC9D,eAAO,MAAM,iBAAiB,KAAuC,CAAC;AACtE,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,iBAAiB,KAAuC,CAAC;AACtE,eAAO,MAAM,qBAAqB,KAA2C,CAAC;AAC9E,eAAO,MAAM,sBAAsB,KAA4C,CAAC;AAChF,eAAO,MAAM,gBAAgB,KAAsC,CAAC;AACpE,eAAO,MAAM,oBAAoB,KAA0C,CAAC;AAC5E,eAAO,MAAM,qBAAqB,KAA2C,CAAC;AAE9E,eAAe,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@ Pod::Spec.new do |s|
|
|
|
15
15
|
s.source = { :git => "https://github.com/iubenda/cm-sdk-react-native-v3.git", :tag => "#{s.version}" }
|
|
16
16
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
|
-
s.dependency "cm-sdk-ios-v3", "3.
|
|
18
|
+
s.dependency "cm-sdk-ios-v3", "3.3.0"
|
|
19
19
|
|
|
20
20
|
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
21
21
|
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
package/src/index.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeModules, Platform } from 'react-native';
|
|
1
|
+
import { NativeModules, Platform, NativeEventEmitter, DeviceEventEmitter } from 'react-native';
|
|
2
2
|
|
|
3
3
|
const LINKING_ERROR =
|
|
4
4
|
`The package 'react-native-cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -17,6 +17,31 @@ const CmSdkReactNativeV3 = NativeModules.CmSdkReactNativeV3
|
|
|
17
17
|
}
|
|
18
18
|
);
|
|
19
19
|
|
|
20
|
+
const isIOS = Platform.OS === 'ios';
|
|
21
|
+
const eventEmitter = isIOS ? new NativeEventEmitter(CmSdkReactNativeV3) : DeviceEventEmitter;
|
|
22
|
+
|
|
23
|
+
export const addConsentListener = (
|
|
24
|
+
callback: (consent: string, jsonObject: any) => void
|
|
25
|
+
) => {
|
|
26
|
+
return eventEmitter.addListener('didReceiveConsent', (event) => {
|
|
27
|
+
callback(event.consent, event.jsonObject);
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const addShowConsentLayerListener = (callback: () => void) => {
|
|
32
|
+
return eventEmitter.addListener('didShowConsentLayer', callback);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const addCloseConsentLayerListener = (callback: () => void) => {
|
|
36
|
+
return eventEmitter.addListener('didCloseConsentLayer', callback);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const addErrorListener = (callback: (error: string) => void) => {
|
|
40
|
+
return eventEmitter.addListener('didReceiveError', (event) => {
|
|
41
|
+
callback(event.error);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
20
45
|
// Core configuration methods
|
|
21
46
|
export const setUrlConfig = CmSdkReactNativeV3.setUrlConfig;
|
|
22
47
|
export const setWebViewConfig = CmSdkReactNativeV3.setWebViewConfig;
|
|
@@ -35,9 +60,6 @@ export const exportCMPInfo = CmSdkReactNativeV3.exportCMPInfo;
|
|
|
35
60
|
export const importCMPInfo = CmSdkReactNativeV3.importCMPInfo;
|
|
36
61
|
export const resetConsentManagementData = CmSdkReactNativeV3.resetConsentManagementData;
|
|
37
62
|
|
|
38
|
-
// iOS App Tracking Transparency
|
|
39
|
-
export const getATTAuthorizationStatus = CmSdkReactNativeV3.getATTAuthorizationStatus;
|
|
40
|
-
|
|
41
63
|
// Consent modification methods
|
|
42
64
|
export const acceptVendors = CmSdkReactNativeV3.acceptVendors;
|
|
43
65
|
export const rejectVendors = CmSdkReactNativeV3.rejectVendors;
|