@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.
Files changed (92) hide show
  1. package/README.md +5 -5
  2. package/android/build-legacy.gradle +11 -1
  3. package/android/build.gradle.kts +44 -14
  4. package/android/gradle.properties +2 -0
  5. package/android/settings.gradle.kts +1 -1
  6. package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/RNUsercentricsModuleTest.kt +5 -5
  7. package/android/src/androidTest/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
  8. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModule.kt +3 -3
  9. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/RNUsercentricsModuleSpec.kt +1 -1
  10. package/android/src/main/java/com/usercentrics/reactnative/RNUsercentricsPackage.kt +51 -0
  11. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProvider.kt +1 -1
  12. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/ReactContextProviderImpl.kt +1 -1
  13. package/android/src/main/java/com/usercentrics/reactnative/UCRNFlag.kt +4 -0
  14. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/api/UsercentricsProxy.kt +2 -2
  15. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerFontExtensions.kt +1 -1
  16. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/BannerSettingsExtensions.kt +1 -1
  17. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/CCPADataExtensions.kt +1 -1
  18. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ConsentDisclosureSerializer.kt +1 -1
  19. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/ReadableMapExtensions.kt +1 -1
  20. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/TCFDataExtensions.kt +1 -1
  21. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserDecisionExtensions.kt +1 -1
  22. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UserOptionsExtensions.kt +1 -1
  23. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsCMPDataExtensions.kt +1 -1
  24. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsConsentUserResponseExtensions.kt +1 -1
  25. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsReadyStatusExtensions.kt +1 -1
  26. package/android/src/main/java/com/usercentrics/{reactnativeusercentrics → reactnative}/extensions/UsercentricsServiceConsentExtensions.kt +1 -1
  27. package/android/src/main/jni/CMakeLists.txt +85 -0
  28. package/android/src/main/jni/RNUsercentricsModule.cpp +21 -0
  29. package/android/src/main/jni/rn_usercentrics.cpp +22 -0
  30. package/android/src/test/java/com/usercentrics/reactnative/RNUsercentricsModuleTest.kt +159 -0
  31. package/android/src/test/java/com/usercentrics/reactnative/fake/FakePromise.kt +73 -0
  32. package/ios/Extensions/BannerSettings+Dict.swift +1 -0
  33. package/ios/Extensions/UIColor+Extensions.swift +1 -1
  34. package/ios/Extensions/UIImage+UsercentricsLogoDict.swift +1 -0
  35. package/ios/RNUsercentricsModule.swift +1 -0
  36. package/lib/NativeUsercentrics.d.ts +1 -1
  37. package/lib/NativeUsercentrics.js +10 -2
  38. package/lib/NativeUsercentrics.js.map +1 -1
  39. package/lib/fabric/NativeUsercentricsModule.d.ts +30 -0
  40. package/lib/fabric/NativeUsercentricsModule.js +3 -0
  41. package/lib/fabric/NativeUsercentricsModule.js.map +1 -0
  42. package/package.json +108 -96
  43. package/react-native.config.js +15 -0
  44. package/src/NativeUsercentrics.ts +75 -0
  45. package/src/Usercentrics.tsx +145 -0
  46. package/src/__tests__/index.test.ts +476 -0
  47. package/src/__tests__/mocks.ts +402 -0
  48. package/src/fabric/NativeUsercentricsModule.ts +51 -0
  49. package/src/index.tsx +2 -0
  50. package/src/models/AdditionalConsentModeData.tsx +33 -0
  51. package/src/models/BannerSettings.tsx +117 -0
  52. package/src/models/CCPAData.tsx +32 -0
  53. package/src/models/CCPASettings.tsx +49 -0
  54. package/src/models/ConsentDisclosureObject.tsx +47 -0
  55. package/src/models/FirstLayerSettings.tsx +185 -0
  56. package/src/models/GeolocationRuleset.tsx +10 -0
  57. package/src/models/LegalBasisLocalization.tsx +100 -0
  58. package/src/models/NetworkMode.tsx +5 -0
  59. package/src/models/SecondLayerSettings.tsx +12 -0
  60. package/src/models/TCF2Settings.tsx +209 -0
  61. package/src/models/TCFData.tsx +297 -0
  62. package/src/models/TCFDecisionUILayer.tsx +5 -0
  63. package/src/models/TCFUserDecisions.tsx +73 -0
  64. package/src/models/UserDecision.tsx +10 -0
  65. package/src/models/UsercentricsAnalyticsEventType.tsx +15 -0
  66. package/src/models/UsercentricsCMPData.tsx +38 -0
  67. package/src/models/UsercentricsCategory.tsx +26 -0
  68. package/src/models/UsercentricsConsentType.tsx +5 -0
  69. package/src/models/UsercentricsConsentUserResponse.tsx +14 -0
  70. package/src/models/UsercentricsLabels.tsx +276 -0
  71. package/src/models/UsercentricsLocation.tsx +32 -0
  72. package/src/models/UsercentricsLoggerLevel.tsx +7 -0
  73. package/src/models/UsercentricsOptions.tsx +45 -0
  74. package/src/models/UsercentricsReadyStatus.tsx +20 -0
  75. package/src/models/UsercentricsService.tsx +134 -0
  76. package/src/models/UsercentricsServiceConsent.tsx +37 -0
  77. package/src/models/UsercentricsSettings.tsx +177 -0
  78. package/src/models/UsercentricsUserInteraction.tsx +7 -0
  79. package/src/models/UsercentricsVariant.tsx +6 -0
  80. package/src/models/index.tsx +29 -0
  81. package/android/src/androidTest/java/com/usercentrics/reactnativemodule/fake/FakePromise.kt +0 -67
  82. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsPackage.kt +0 -22
  83. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/UCRNFlag.kt +0 -4
  84. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/api/FakeUsercentricsProxy.kt +0 -0
  85. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetCMPDataMock.kt +0 -0
  86. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetConsentsMock.kt +0 -0
  87. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetTCFDataMock.kt +0 -0
  88. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUSPDataMock.kt +0 -0
  89. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/GetUserSessionDataMock.kt +0 -0
  90. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/ReactContextProviderMock.kt +0 -0
  91. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsForTCFMock.kt +0 -0
  92. /package/android/src/androidTest/java/com/usercentrics/{reactnativemodule → reactnative}/mock/SaveDecisionsMock.kt +0 -0
@@ -0,0 +1,297 @@
1
+ export class TCFData {
2
+ /// A list of all the TCF features that need to be disclosed to the end-user if TCF is enabled.
3
+ features: TCFFeature[]
4
+
5
+ /// A list of all the TCF purposes that need to be disclosed to the end-user if TCF is enabled.
6
+ purposes: TCFPurpose[]
7
+
8
+ /// A list of all the TCF special features that need to be disclosed to the end-user if TCF is enabled
9
+ specialFeatures: TCFSpecialFeature[]
10
+
11
+ /// A list of all the TCF special purposes that need to be disclosed to the end-user if TCF is enabled
12
+ specialPurposes: TCFSpecialPurpose[]
13
+
14
+ /// A list of all TCF stacks that need to be disclosed to the end-user if TCF is enabled. On the first layer of a
15
+ /// TCF UI, stacks may be shown as alternative its comprising purposes and special features. However, on the second
16
+ /// layer, this is not allowed according to the IAB TCF v.2.0 guidelines. Also on the first layer, a purpose or special
17
+ /// feature may not be shown if a stack containing this purpose or special feature is already displayed. Note, that all
18
+ /// purposes and special features that are part of stacks will still be listed in the TCFData purposes and special
19
+ /// features fields, but they will be flagged with isPartOfASelectedStack = true and include a non-null stackId.
20
+ stacks: TCFStack[]
21
+
22
+ /// A list of all TCF vendors that need to be disclosed to the end-user if TCF is enabled */
23
+ vendors: TCFVendor[]
24
+
25
+ /// The TCF string
26
+ tcString: String
27
+
28
+ /// The total of vendors and services
29
+ thirdPartyCount: number
30
+
31
+ constructor(
32
+ features: TCFFeature[],
33
+ purposes: TCFPurpose[],
34
+ specialFeatures: TCFSpecialFeature[],
35
+ specialPurposes: TCFSpecialPurpose[],
36
+ stacks: TCFStack[],
37
+ vendors: TCFVendor[],
38
+ tcString: String,
39
+ thirdPartyCount: number
40
+ ) {
41
+ this.features = features
42
+ this.purposes = purposes
43
+ this.specialFeatures = specialFeatures
44
+ this.specialPurposes = specialPurposes
45
+ this.stacks = stacks
46
+ this.vendors = vendors
47
+ this.tcString = tcString
48
+ this.thirdPartyCount = thirdPartyCount
49
+ }
50
+ }
51
+
52
+ export class TCFFeature {
53
+ purposeDescription: string
54
+ illustrations: [string]
55
+ id: number
56
+ name: string
57
+
58
+
59
+ constructor(
60
+ purposeDescription: string,
61
+ illustrations: [string],
62
+ id: number,
63
+ name: string
64
+ ) {
65
+ this.purposeDescription = purposeDescription
66
+ this.illustrations = illustrations
67
+ this.id = id
68
+ this.name = name
69
+ }
70
+ }
71
+
72
+ export class TCFPurpose {
73
+ purposeDescription: string
74
+ illustrations: [string]
75
+ id: number
76
+ name: string
77
+ consent?: boolean
78
+ isPartOfASelectedStack: boolean
79
+ legitimateInterestConsent?: boolean
80
+ showConsentToggle: boolean
81
+ showLegitimateInterestToggle: boolean
82
+ stackId?: number
83
+ numberOfVendors?: number
84
+
85
+ constructor(
86
+ purposeDescription: string,
87
+ illustrations: [string],
88
+ id: number,
89
+ name: string,
90
+ isPartOfASelectedStack: boolean,
91
+ showConsentToggle: boolean,
92
+ showLegitimateInterestToggle: boolean,
93
+ legitimateInterestConsent?: boolean,
94
+ consent?: boolean,
95
+ stackId?: number,
96
+ numberOfVendors?: number,
97
+ ) {
98
+ this.purposeDescription = purposeDescription
99
+ this.illustrations = illustrations
100
+ this.id = id
101
+ this.name = name
102
+ this.consent = consent
103
+ this.isPartOfASelectedStack = isPartOfASelectedStack
104
+ this.legitimateInterestConsent = legitimateInterestConsent
105
+ this.showConsentToggle = showConsentToggle
106
+ this.showLegitimateInterestToggle = showLegitimateInterestToggle
107
+ this.stackId = stackId
108
+ this.numberOfVendors = numberOfVendors
109
+ }
110
+ }
111
+
112
+ export class TCFSpecialFeature {
113
+ purposeDescription: string
114
+ illustrations: [string]
115
+ id: number
116
+ name: string
117
+ consent?: boolean
118
+ isPartOfASelectedStack: boolean
119
+ stackId?: number
120
+ showConsentToggle: boolean
121
+
122
+
123
+ constructor(
124
+ purposeDescription: string,
125
+ illustrations: [string],
126
+ id: number,
127
+ isPartOfASelectedStack: boolean,
128
+ showConsentToggle: boolean,
129
+ name: string,
130
+ consent?: boolean,
131
+ stackId?: number
132
+ ) {
133
+ this.purposeDescription = purposeDescription
134
+ this.illustrations = illustrations
135
+ this.id = id
136
+ this.name = name
137
+ this.consent = consent
138
+ this.isPartOfASelectedStack = isPartOfASelectedStack
139
+ this.stackId = stackId
140
+ this.showConsentToggle = showConsentToggle
141
+ }
142
+
143
+ }
144
+
145
+ export class TCFSpecialPurpose {
146
+ purposeDescription: string
147
+ illustrations: [string]
148
+ id: number
149
+ name: string
150
+
151
+
152
+ constructor(
153
+ purposeDescription: string,
154
+ illustrations: [string],
155
+ id: number,
156
+ name: string
157
+ ) {
158
+ this.purposeDescription = purposeDescription
159
+ this.illustrations = illustrations
160
+ this.id = id
161
+ this.name = name
162
+ }
163
+ }
164
+
165
+ export class TCFStack {
166
+ description: string
167
+ id: number
168
+ name: string
169
+ purposeIds: [number]
170
+ specialFeatureIds: [number]
171
+
172
+
173
+ constructor(
174
+ description: string,
175
+ id: number,
176
+ name: string,
177
+ purposeIds: [number],
178
+ specialFeatureIds: [number]
179
+ ) {
180
+ this.description = description
181
+ this.id = id
182
+ this.name = name
183
+ this.purposeIds = purposeIds
184
+ this.specialFeatureIds = specialFeatureIds
185
+ }
186
+
187
+ }
188
+
189
+ export class TCFVendor {
190
+ consent?: boolean
191
+ features: [number]
192
+ flexiblePurposes: [number]
193
+ id: number
194
+ legitimateInterestConsent?: boolean
195
+ legitimateInterestPurposes: [number]
196
+ name: string
197
+ policyUrl: string
198
+ purposes: [number]
199
+ specialFeatures: [number]
200
+ specialPurposes: [number]
201
+ showConsentToggle: boolean
202
+ showLegitimateInterestToggle: boolean
203
+ cookieMaxAgeSeconds: number
204
+ usesNonCookieAccess: boolean
205
+ deviceStorageDisclosureUrl?: string
206
+ usesCookies: boolean
207
+ cookieRefresh?: boolean
208
+ dataSharedOutsideEU: boolean
209
+ dataCategories: [number]
210
+ vendorUrls: VendorUrl[]
211
+ restrictions: TCFVendorRestriction[]
212
+
213
+ constructor(
214
+ features: [number],
215
+ flexiblePurposes: [number],
216
+ id: number,
217
+ legitimateInterestPurposes: [number],
218
+ name: string,
219
+ policyUrl: string,
220
+ purposes: [number],
221
+ specialFeatures: [number],
222
+ specialPurposes: [number],
223
+ showConsentToggle: boolean,
224
+ showLegitimateInterestToggle: boolean,
225
+ cookieMaxAgeSeconds: number,
226
+ usesNonCookieAccess: boolean,
227
+ usesCookies: boolean,
228
+ dataSharedOutsideEU: boolean,
229
+ dataCategories: [number],
230
+ vendorUrls: VendorUrl[],
231
+ restrictions: TCFVendorRestriction[],
232
+ deviceStorageDisclosureUrl?: string,
233
+ legitimateInterestConsent?: boolean,
234
+ consent?: boolean,
235
+ cookieRefresh?: boolean,
236
+ ) {
237
+ this.consent = consent
238
+ this.features = features
239
+ this.flexiblePurposes = flexiblePurposes
240
+ this.id = id
241
+ this.legitimateInterestConsent = legitimateInterestConsent
242
+ this.legitimateInterestPurposes = legitimateInterestPurposes
243
+ this.name = name
244
+ this.policyUrl = policyUrl
245
+ this.purposes = purposes
246
+ this.specialFeatures = specialFeatures
247
+ this.specialPurposes = specialPurposes
248
+ this.showConsentToggle = showConsentToggle
249
+ this.showLegitimateInterestToggle = showLegitimateInterestToggle
250
+ this.cookieMaxAgeSeconds = cookieMaxAgeSeconds
251
+ this.usesNonCookieAccess = usesNonCookieAccess
252
+ this.deviceStorageDisclosureUrl = deviceStorageDisclosureUrl
253
+ this.usesCookies = usesCookies
254
+ this.cookieRefresh = cookieRefresh
255
+ this.dataSharedOutsideEU = dataSharedOutsideEU
256
+ this.dataCategories = dataCategories
257
+ this.vendorUrls = vendorUrls
258
+ this.restrictions = restrictions
259
+ }
260
+ }
261
+
262
+ export class VendorUrl {
263
+ langId?: string
264
+ privacy?: string
265
+ legIntClaim?: string
266
+
267
+ constructor(
268
+ langId: string,
269
+ privacy: string,
270
+ legIntClaim: string
271
+ ) {
272
+ this.langId = langId
273
+ this.privacy = privacy
274
+ this.legIntClaim = legIntClaim
275
+ }
276
+
277
+ }
278
+
279
+ export class TCFVendorRestriction {
280
+
281
+ purposeId: number
282
+ restrictionType: RestrictionType
283
+
284
+ constructor(
285
+ purposeId: number,
286
+ restrictionType: RestrictionType
287
+ ) {
288
+ this.purposeId = purposeId
289
+ this.restrictionType = restrictionType
290
+ }
291
+ }
292
+
293
+ export enum RestrictionType {
294
+ notAllowed = 0,
295
+ requireConsent = 1,
296
+ requireLi = 2,
297
+ }
@@ -0,0 +1,5 @@
1
+ export enum TCFDecisionUILayer {
2
+
3
+ firstLayer = 0,
4
+ secondLayer = 1
5
+ }
@@ -0,0 +1,73 @@
1
+ export class TCFUserDecisions {
2
+
3
+ /// A user's consent decision on TCF purposes.
4
+ purposes: TCFUserDecisionOnPurpose[]
5
+
6
+ /// A user's consent decision on TCF special features.
7
+ specialFeatures: TCFUserDecisionOnSpecialFeature[]
8
+
9
+ /// A user's consent decision on TCF vendors.
10
+ vendors: TCFUserDecisionOnVendor[]
11
+
12
+ /// A user's consent decision on Google Ad Tech Providers
13
+ adTechProviders: AdTechProviderDecision[]
14
+
15
+ constructor(purposes: TCFUserDecisionOnPurpose[],
16
+ specialFeatures: TCFUserDecisionOnSpecialFeature[],
17
+ vendors: TCFUserDecisionOnVendor[],
18
+ adTechProviders: AdTechProviderDecision[]) {
19
+ this.purposes = purposes
20
+ this.specialFeatures = specialFeatures
21
+ this.vendors = vendors
22
+ this.adTechProviders = adTechProviders
23
+ }
24
+ }
25
+
26
+ export class TCFUserDecisionOnPurpose {
27
+
28
+ id: number
29
+ consent?: boolean
30
+ legitimateInterestConsent?: boolean
31
+
32
+
33
+ constructor(id: number, consent?: boolean, legitimateInterestConsent?: boolean) {
34
+ this.id = id
35
+ this.consent = consent
36
+ this.legitimateInterestConsent = legitimateInterestConsent
37
+ }
38
+ }
39
+
40
+ export class TCFUserDecisionOnSpecialFeature {
41
+
42
+ id: number
43
+ consent?: boolean
44
+
45
+ constructor(id: number, consent?: boolean) {
46
+ this.id = id
47
+ this.consent = consent
48
+ }
49
+ }
50
+
51
+ export class TCFUserDecisionOnVendor {
52
+
53
+ id: number
54
+ consent?: boolean
55
+ legitimateInterestConsent?: boolean
56
+
57
+ constructor(id: number, consent?: boolean, legitimateInterestConsent?: boolean) {
58
+ this.id = id
59
+ this.consent = consent
60
+ this.legitimateInterestConsent = legitimateInterestConsent
61
+ }
62
+ }
63
+
64
+ export class AdTechProviderDecision {
65
+
66
+ id: number
67
+ consent: boolean
68
+
69
+ constructor(id: number, consent: boolean) {
70
+ this.id = id
71
+ this.consent = consent
72
+ }
73
+ }
@@ -0,0 +1,10 @@
1
+ export class UserDecision {
2
+
3
+ serviceId: string
4
+ consent: boolean
5
+
6
+ constructor(serviceId: string, consent: boolean) {
7
+ this.serviceId = serviceId
8
+ this.consent = consent
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ export enum UsercentricsAnalyticsEventType {
2
+
3
+ cmpShown = 0,
4
+ acceptAllFirstLayer = 1,
5
+ denyAllFirstLayer = 2,
6
+ saveFirstLayer = 3,
7
+ acceptAllSecondLayer = 4,
8
+ denyAllSecondLayer = 5,
9
+ saveSecondLayer = 6,
10
+ imprintLink = 7,
11
+ moreInformationLink = 8,
12
+ privacyPolicyLink = 9,
13
+ ccpaTogglesOn = 10,
14
+ ccpaTogglesOff = 11,
15
+ }
@@ -0,0 +1,38 @@
1
+ import {UsercentricsCategory} from "./UsercentricsCategory";
2
+ import {UsercentricsLocation} from "./UsercentricsLocation";
3
+ import {UsercentricsService} from "./UsercentricsService";
4
+ import {UsercentricsSettings} from "./UsercentricsSettings";
5
+ import {UsercentricsVariant} from "./UsercentricsVariant";
6
+ import { LegalBasisLocalization } from "./LegalBasisLocalization";
7
+
8
+ export class UsercentricsCMPData {
9
+
10
+ /// The general settings defined for the settingsId.
11
+ settings: UsercentricsSettings
12
+ /// The services defined for the settingsId.
13
+ services: [UsercentricsService]
14
+ /// The categories defined for the settingsId.
15
+ categories: [UsercentricsCategory]
16
+ /// The active variant.
17
+ activeVariant: UsercentricsVariant
18
+ /// The current user location.
19
+ userLocation: UsercentricsLocation
20
+ // The current legal basis localization
21
+ legalBasis: LegalBasisLocalization
22
+
23
+ constructor(
24
+ settings: UsercentricsSettings,
25
+ services: [UsercentricsService],
26
+ categories: [UsercentricsCategory],
27
+ activeVariant: UsercentricsVariant,
28
+ userLocation: UsercentricsLocation,
29
+ legalBasis: LegalBasisLocalization
30
+ ) {
31
+ this.settings = settings
32
+ this.services = services
33
+ this.categories = categories
34
+ this.activeVariant = activeVariant
35
+ this.userLocation = userLocation
36
+ this.legalBasis = legalBasis
37
+ }
38
+ }
@@ -0,0 +1,26 @@
1
+ export class UsercentricsCategory {
2
+
3
+ /// The category slug identifier.
4
+ categorySlug: string
5
+
6
+ /// The label of the category if any.
7
+ label: string
8
+
9
+ /// The description of the category if any.
10
+ description: string
11
+
12
+ /// True, if it is an essential category. False, if not.
13
+ isEssential: boolean
14
+
15
+ constructor(
16
+ categorySlug: string,
17
+ label: string,
18
+ description: string,
19
+ isEssential: boolean
20
+ ) {
21
+ this.categorySlug = categorySlug
22
+ this.label = label
23
+ this.description = description
24
+ this.isEssential = isEssential
25
+ }
26
+ }
@@ -0,0 +1,5 @@
1
+ export enum UsercentricsConsentType {
2
+
3
+ explicit = 0,
4
+ implicit = 1
5
+ }
@@ -0,0 +1,14 @@
1
+ import {UsercentricsServiceConsent, UsercentricsUserInteraction} from "."
2
+
3
+ export class UsercentricsConsentUserResponse {
4
+
5
+ controllerId: string
6
+ userInteraction: UsercentricsUserInteraction
7
+ consents: [UsercentricsServiceConsent]
8
+
9
+ constructor(controllerId: string, userIntaction: UsercentricsUserInteraction, consents: [UsercentricsServiceConsent]) {
10
+ this.controllerId = controllerId;
11
+ this.userInteraction = userIntaction
12
+ this.consents = consents
13
+ }
14
+ }