@usercentrics/react-native-sdk 2.23.2 → 2.24.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 +5 -5
- package/android/build-legacy.gradle +11 -1
- package/android/build.gradle.kts +44 -14
- package/android/gradle.properties +2 -0
- package/android/settings.gradle.kts +1 -1
- package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/RNUsercentricsModuleTest.kt +5 -5
- package/android/src/androidTest/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModule.kt +3 -3
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModuleSpec.kt +1 -1
- package/android/src/main/java/com/usercentrics/reactnative/RNUsercentricsPackage.kt +51 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProvider.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProviderImpl.kt +1 -1
- package/android/src/main/java/com/usercentrics/reactnative/UCRNFlag.kt +4 -0
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/api/UsercentricsProxy.kt +2 -2
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerFontExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerSettingsExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/CCPADataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ConsentDisclosureSerializer.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ReadableMapExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/TCFDataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserDecisionExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserOptionsExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsCMPDataExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsConsentUserResponseExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsReadyStatusExtensions.kt +1 -1
- package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsServiceConsentExtensions.kt +1 -1
- package/android/src/main/jni/CMakeLists.txt +85 -0
- package/android/src/main/jni/RNUsercentricsModule.cpp +21 -0
- package/android/src/main/jni/rn_usercentrics.cpp +22 -0
- package/android/src/test/java/com/usercentrics/reactnative/RNUsercentricsModuleTest.kt +159 -0
- package/android/src/test/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
- package/ios/Extensions/BannerSettings+Dict.swift +1 -0
- package/ios/Extensions/UIColor+Extensions.swift +1 -1
- package/ios/Extensions/UIImage+UsercentricsLogoDict.swift +1 -0
- package/ios/RNUsercentricsModule.swift +1 -0
- package/lib/NativeUsercentrics.d.ts +1 -1
- package/lib/NativeUsercentrics.js +10 -2
- package/lib/NativeUsercentrics.js.map +1 -1
- package/lib/fabric/NativeUsercentricsModule.d.ts +30 -0
- package/lib/fabric/NativeUsercentricsModule.js +3 -0
- package/lib/fabric/NativeUsercentricsModule.js.map +1 -0
- package/package.json +108 -96
- package/react-native.config.js +15 -0
- package/src/NativeUsercentrics.ts +75 -0
- package/src/Usercentrics.tsx +145 -0
- package/src/__tests__/index.test.ts +476 -0
- package/src/__tests__/mocks.ts +402 -0
- package/src/fabric/NativeUsercentricsModule.ts +51 -0
- package/src/index.tsx +2 -0
- package/src/models/AdditionalConsentModeData.tsx +33 -0
- package/src/models/BannerSettings.tsx +117 -0
- package/src/models/CCPAData.tsx +32 -0
- package/src/models/CCPASettings.tsx +49 -0
- package/src/models/ConsentDisclosureObject.tsx +47 -0
- package/src/models/FirstLayerSettings.tsx +185 -0
- package/src/models/GeolocationRuleset.tsx +10 -0
- package/src/models/LegalBasisLocalization.tsx +100 -0
- package/src/models/NetworkMode.tsx +5 -0
- package/src/models/SecondLayerSettings.tsx +12 -0
- package/src/models/TCF2Settings.tsx +209 -0
- package/src/models/TCFData.tsx +297 -0
- package/src/models/TCFDecisionUILayer.tsx +5 -0
- package/src/models/TCFUserDecisions.tsx +73 -0
- package/src/models/UserDecision.tsx +10 -0
- package/src/models/UsercentricsAnalyticsEventType.tsx +15 -0
- package/src/models/UsercentricsCMPData.tsx +38 -0
- package/src/models/UsercentricsCategory.tsx +26 -0
- package/src/models/UsercentricsConsentType.tsx +5 -0
- package/src/models/UsercentricsConsentUserResponse.tsx +14 -0
- package/src/models/UsercentricsLabels.tsx +276 -0
- package/src/models/UsercentricsLocation.tsx +32 -0
- package/src/models/UsercentricsLoggerLevel.tsx +7 -0
- package/src/models/UsercentricsOptions.tsx +45 -0
- package/src/models/UsercentricsReadyStatus.tsx +20 -0
- package/src/models/UsercentricsService.tsx +134 -0
- package/src/models/UsercentricsServiceConsent.tsx +37 -0
- package/src/models/UsercentricsSettings.tsx +177 -0
- package/src/models/UsercentricsUserInteraction.tsx +7 -0
- package/src/models/UsercentricsVariant.tsx +6 -0
- package/src/models/index.tsx +29 -0
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/fake/FakePromise.kt +0 -67
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt +0 -22
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/UCRNFlag.kt +0 -4
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/api/FakeUsercentricsProxy.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetCMPDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetConsentsMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetTCFDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUSPDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUserSessionDataMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/ReactContextProviderMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsForTCFMock.kt +0 -0
- /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsMock.kt +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import {CCPASettings} from "./CCPASettings"
|
|
2
|
+
import {TCF2Settings} from "./TCF2Settings"
|
|
3
|
+
import {UsercentricsLabels} from "./UsercentricsLabels"
|
|
4
|
+
|
|
5
|
+
export class UsercentricsSettings {
|
|
6
|
+
labels: UsercentricsLabels
|
|
7
|
+
version: string
|
|
8
|
+
language: string
|
|
9
|
+
imprintUrl: string
|
|
10
|
+
privacyPolicyUrl: string
|
|
11
|
+
cookiePolicyUrl: string
|
|
12
|
+
firstLayerDescriptionHtml: string
|
|
13
|
+
firstLayerMobileDescriptionHtml: string
|
|
14
|
+
settingsId: string
|
|
15
|
+
bannerMobileDescriptionIsActive: boolean
|
|
16
|
+
enablePoweredBy: boolean
|
|
17
|
+
displayOnlyForEU: boolean
|
|
18
|
+
tcf2Enabled: boolean
|
|
19
|
+
reshowBanner: number
|
|
20
|
+
editableLanguages: [string]
|
|
21
|
+
languagesAvailable: [string]
|
|
22
|
+
showInitialViewForVersionChange: [string]
|
|
23
|
+
ccpa?: CCPASettings
|
|
24
|
+
tcf2?: TCF2Settings
|
|
25
|
+
customization?: string
|
|
26
|
+
firstLayer?: FirstLayer
|
|
27
|
+
secondLayer?: SecondLayer
|
|
28
|
+
variants?: VariantsSettings
|
|
29
|
+
dpsDisplayFormat?: DpsDisplayFormat
|
|
30
|
+
framework?: USAFrameworks
|
|
31
|
+
publishedApps?: [PublishedApp]
|
|
32
|
+
renewConsentsTimestamp?: number
|
|
33
|
+
consentWebhook?: boolean
|
|
34
|
+
|
|
35
|
+
constructor(
|
|
36
|
+
labels: UsercentricsLabels,
|
|
37
|
+
version: string,
|
|
38
|
+
language: string,
|
|
39
|
+
imprintUrl: string,
|
|
40
|
+
privacyPolicyUrl: string,
|
|
41
|
+
cookiePolicyUrl: string,
|
|
42
|
+
firstLayerDescriptionHtml: string,
|
|
43
|
+
firstLayerMobileDescriptionHtml: string,
|
|
44
|
+
settingsId: string,
|
|
45
|
+
bannerMobileDescriptionIsActive: boolean,
|
|
46
|
+
enablePoweredBy: boolean,
|
|
47
|
+
displayOnlyForEU: boolean,
|
|
48
|
+
tcf2Enabled: boolean,
|
|
49
|
+
reshowBanner: number,
|
|
50
|
+
editableLanguages: [string],
|
|
51
|
+
languagesAvailable: [string],
|
|
52
|
+
showInitialViewForVersionChange: [string],
|
|
53
|
+
ccpa?: CCPASettings,
|
|
54
|
+
tcf2?: TCF2Settings,
|
|
55
|
+
customization?: string,
|
|
56
|
+
firstLayer?: FirstLayer,
|
|
57
|
+
secondLayer?: SecondLayer,
|
|
58
|
+
variants?: VariantsSettings,
|
|
59
|
+
dpsDisplayFormat?: DpsDisplayFormat,
|
|
60
|
+
framework?: USAFrameworks,
|
|
61
|
+
publishedApps?: [PublishedApp],
|
|
62
|
+
renewConsentsTimestamp?: number,
|
|
63
|
+
consentWebhook?: boolean,
|
|
64
|
+
) {
|
|
65
|
+
this.labels = labels
|
|
66
|
+
this.version = version
|
|
67
|
+
this.language = language
|
|
68
|
+
this.imprintUrl = imprintUrl
|
|
69
|
+
this.privacyPolicyUrl = privacyPolicyUrl
|
|
70
|
+
this.cookiePolicyUrl = cookiePolicyUrl
|
|
71
|
+
this.firstLayerDescriptionHtml = firstLayerDescriptionHtml
|
|
72
|
+
this.firstLayerMobileDescriptionHtml = firstLayerMobileDescriptionHtml
|
|
73
|
+
this.settingsId = settingsId
|
|
74
|
+
this.bannerMobileDescriptionIsActive = bannerMobileDescriptionIsActive
|
|
75
|
+
this.enablePoweredBy = enablePoweredBy
|
|
76
|
+
this.displayOnlyForEU = displayOnlyForEU
|
|
77
|
+
this.tcf2Enabled = tcf2Enabled
|
|
78
|
+
this.reshowBanner = reshowBanner
|
|
79
|
+
this.editableLanguages = editableLanguages
|
|
80
|
+
this.languagesAvailable = languagesAvailable
|
|
81
|
+
this.showInitialViewForVersionChange = showInitialViewForVersionChange
|
|
82
|
+
this.ccpa = ccpa
|
|
83
|
+
this.tcf2 = tcf2
|
|
84
|
+
this.customization = customization
|
|
85
|
+
this.firstLayer = firstLayer
|
|
86
|
+
this.secondLayer = secondLayer
|
|
87
|
+
this.variants = variants
|
|
88
|
+
this.dpsDisplayFormat = dpsDisplayFormat
|
|
89
|
+
this.framework = framework
|
|
90
|
+
this.publishedApps = publishedApps
|
|
91
|
+
this.renewConsentsTimestamp = renewConsentsTimestamp
|
|
92
|
+
this.consentWebhook = consentWebhook
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export class FirstLayer {
|
|
97
|
+
hideButtonDeny?: boolean
|
|
98
|
+
|
|
99
|
+
constructor(
|
|
100
|
+
hideButtonDeny?: boolean,
|
|
101
|
+
) {
|
|
102
|
+
this.hideButtonDeny = hideButtonDeny
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export class SecondLayer {
|
|
107
|
+
tabsCategoriesLabel: string
|
|
108
|
+
tabsServicesLabel: string
|
|
109
|
+
hideButtonDeny?: boolean
|
|
110
|
+
hideLanguageSwitch?: boolean
|
|
111
|
+
acceptButtonText?: string
|
|
112
|
+
denyButtonText?: string
|
|
113
|
+
|
|
114
|
+
constructor(
|
|
115
|
+
tabsCategoriesLabel: string,
|
|
116
|
+
tabsServicesLabel: string,
|
|
117
|
+
hideButtonDeny?: boolean,
|
|
118
|
+
hideLanguageSwitch?: boolean,
|
|
119
|
+
acceptButtonText?: string,
|
|
120
|
+
denyButtonText?: string
|
|
121
|
+
) {
|
|
122
|
+
this.tabsCategoriesLabel = tabsCategoriesLabel
|
|
123
|
+
this.tabsServicesLabel = tabsServicesLabel
|
|
124
|
+
this.hideButtonDeny = hideButtonDeny
|
|
125
|
+
this.hideLanguageSwitch = hideLanguageSwitch
|
|
126
|
+
this.acceptButtonText = acceptButtonText
|
|
127
|
+
this.denyButtonText = denyButtonText
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export class VariantsSettings {
|
|
132
|
+
|
|
133
|
+
enabled: boolean
|
|
134
|
+
experimentsJson: string
|
|
135
|
+
activateWith: string
|
|
136
|
+
|
|
137
|
+
constructor(
|
|
138
|
+
enabled: boolean,
|
|
139
|
+
experimentsJson: string,
|
|
140
|
+
activateWith: string,
|
|
141
|
+
) {
|
|
142
|
+
this.enabled = enabled
|
|
143
|
+
this.experimentsJson = experimentsJson
|
|
144
|
+
this.activateWith = activateWith
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export enum DpsDisplayFormat {
|
|
149
|
+
all = 0,
|
|
150
|
+
short = 1
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export enum USAFrameworks {
|
|
154
|
+
cpra = 0,
|
|
155
|
+
vcdpa = 1,
|
|
156
|
+
cpa = 2,
|
|
157
|
+
ctdpa = 3,
|
|
158
|
+
ucpa = 4,
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export class PublishedApp {
|
|
162
|
+
bundleId: string
|
|
163
|
+
platform: PublishedAppPlatform
|
|
164
|
+
|
|
165
|
+
constructor(
|
|
166
|
+
bundleId: string,
|
|
167
|
+
platform: PublishedAppPlatform,
|
|
168
|
+
) {
|
|
169
|
+
this.bundleId = bundleId
|
|
170
|
+
this.platform = platform
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export enum PublishedAppPlatform {
|
|
175
|
+
android = 0,
|
|
176
|
+
ios = 1
|
|
177
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * from './BannerSettings';
|
|
2
|
+
export * from './CCPAData';
|
|
3
|
+
export * from './FirstLayerSettings';
|
|
4
|
+
export * from './NetworkMode';
|
|
5
|
+
export * from './SecondLayerSettings';
|
|
6
|
+
export * from './TCFData';
|
|
7
|
+
export * from './TCFDecisionUILayer';
|
|
8
|
+
export * from './TCFUserDecisions';
|
|
9
|
+
export * from './UsercentricsCMPData';
|
|
10
|
+
export * from './UsercentricsConsentType';
|
|
11
|
+
export * from './UsercentricsConsentUserResponse';
|
|
12
|
+
export * from './UsercentricsLoggerLevel';
|
|
13
|
+
export * from './UsercentricsOptions';
|
|
14
|
+
export * from './UsercentricsReadyStatus';
|
|
15
|
+
export * from './UsercentricsServiceConsent';
|
|
16
|
+
export * from './UsercentricsUserInteraction';
|
|
17
|
+
export * from './UsercentricsVariant';
|
|
18
|
+
export * from './UserDecision';
|
|
19
|
+
export * from './UsercentricsAnalyticsEventType';
|
|
20
|
+
export * from './AdditionalConsentModeData';
|
|
21
|
+
export * from './CCPASettings';
|
|
22
|
+
export * from './ConsentDisclosureObject';
|
|
23
|
+
export * from './TCF2Settings';
|
|
24
|
+
export * from './UsercentricsCategory';
|
|
25
|
+
export * from './UsercentricsLabels';
|
|
26
|
+
export * from './UsercentricsLocation';
|
|
27
|
+
export * from './UsercentricsSettings';
|
|
28
|
+
export * from './GeolocationRuleset';
|
|
29
|
+
export * from './LegalBasisLocalization'
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
package com.usercentrics.reactnativemodule.fake
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Promise
|
|
4
|
-
import com.facebook.react.bridge.WritableMap
|
|
5
|
-
import java.util.concurrent.CountDownLatch
|
|
6
|
-
|
|
7
|
-
internal class FakePromise : Promise {
|
|
8
|
-
|
|
9
|
-
var resolveValue: Any? = null
|
|
10
|
-
var rejectThrowable: Throwable? = null
|
|
11
|
-
|
|
12
|
-
val lock = CountDownLatch(1)
|
|
13
|
-
|
|
14
|
-
fun await() {
|
|
15
|
-
lock.await()
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
override fun resolve(value: Any?) {
|
|
19
|
-
this.resolveValue = value
|
|
20
|
-
lock.countDown()
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
override fun reject(code: String?, message: String?) {
|
|
24
|
-
TODO("Not yet implemented")
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
override fun reject(code: String?, throwable: Throwable?) {
|
|
28
|
-
TODO("Not yet implemented")
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
override fun reject(code: String?, message: String?, throwable: Throwable?) {
|
|
32
|
-
TODO("Not yet implemented")
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
override fun reject(throwable: Throwable?) {
|
|
36
|
-
this.rejectThrowable = throwable
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
override fun reject(throwable: Throwable?, userInfo: WritableMap?) {
|
|
40
|
-
TODO("Not yet implemented")
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
override fun reject(code: String?, userInfo: WritableMap) {
|
|
44
|
-
TODO("Not yet implemented")
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
override fun reject(code: String?, throwable: Throwable?, userInfo: WritableMap?) {
|
|
48
|
-
TODO("Not yet implemented")
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
override fun reject(code: String?, message: String?, userInfo: WritableMap) {
|
|
52
|
-
TODO("Not yet implemented")
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
override fun reject(
|
|
56
|
-
code: String?,
|
|
57
|
-
message: String?,
|
|
58
|
-
throwable: Throwable?,
|
|
59
|
-
userInfo: WritableMap?
|
|
60
|
-
) {
|
|
61
|
-
TODO("Not yet implemented")
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
override fun reject(message: String?) {
|
|
65
|
-
TODO("Not yet implemented")
|
|
66
|
-
}
|
|
67
|
-
}
|
package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
package com.usercentrics.reactnativeusercentrics
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.ReactPackage
|
|
4
|
-
import com.facebook.react.bridge.NativeModule
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
-
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
|
8
|
-
import com.usercentrics.reactnativeusercentrics.api.UsercentricsProxyImpl
|
|
9
|
-
|
|
10
|
-
class RNUsercentricsPackage : ReactPackage {
|
|
11
|
-
|
|
12
|
-
private val usercentricsProxy = UsercentricsProxyImpl()
|
|
13
|
-
|
|
14
|
-
override fun createViewManagers(reactContext: ReactApplicationContext): MutableList<ViewManager<*, *>> {
|
|
15
|
-
return mutableListOf()
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
override fun createNativeModules(reactContext: ReactApplicationContext): MutableList<NativeModule> {
|
|
19
|
-
val reactContextProvider = ReactContextProviderImpl(reactContext)
|
|
20
|
-
return mutableListOf(RNUsercentricsModule(reactContext, usercentricsProxy, reactContextProvider))
|
|
21
|
-
}
|
|
22
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|