@didomi/react-native 1.11.0 → 1.12.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/android/build.gradle +14 -22
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +6 -4
- package/android/gradlew +154 -103
- package/android/gradlew.bat +7 -18
- package/android/src/main/java/com/reactnativedidomi/DidomiModule.kt +186 -111
- package/ios/Didomi.m +4 -2
- package/ios/Didomi.xcodeproj/project.pbxproj +4 -4
- package/ios/RNDidomi.swift +51 -30
- package/lib/commonjs/Constants.js +3 -3
- package/lib/commonjs/Constants.js.map +1 -1
- package/lib/commonjs/Didomi.js +40 -87
- package/lib/commonjs/Didomi.js.map +1 -1
- package/lib/commonjs/DidomiListener.js +16 -18
- package/lib/commonjs/DidomiListener.js.map +1 -1
- package/lib/commonjs/DidomiTypes.js +0 -1
- package/lib/commonjs/DidomiTypes.js.map +1 -1
- package/lib/commonjs/index.js +0 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/Constants.js +3 -3
- package/lib/module/Constants.js.map +1 -1
- package/lib/module/Didomi.js +40 -82
- package/lib/module/Didomi.js.map +1 -1
- package/lib/module/DidomiListener.js +16 -15
- package/lib/module/DidomiListener.js.map +1 -1
- package/lib/module/DidomiTypes.js +0 -1
- package/lib/module/DidomiTypes.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/Constants.d.ts +1 -1
- package/lib/typescript/Didomi.d.ts +46 -46
- package/lib/typescript/DidomiListener.d.ts +2 -2
- package/lib/typescript/DidomiTypes.d.ts +17 -12
- package/package.json +5 -5
- package/react-native-didomi.podspec +2 -2
- package/src/Constants.ts +1 -1
- package/src/Didomi.ts +47 -39
- package/src/DidomiListener.ts +24 -14
- package/src/DidomiTypes.ts +17 -12
package/src/Didomi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NativeModules } from 'react-native';
|
|
2
2
|
import { DidomiListener } from './DidomiListener';
|
|
3
|
-
import { DidomiEventType, UserStatus } from './DidomiTypes';
|
|
3
|
+
import { DidomiEventType, Purpose, UserStatus, Vendor } from './DidomiTypes';
|
|
4
4
|
import { DIDOMI_USER_AGENT_NAME, DIDOMI_VERSION } from './Constants';
|
|
5
5
|
|
|
6
6
|
const { Didomi: RNDidomi } = NativeModules;
|
|
@@ -52,12 +52,20 @@ export const Didomi = {
|
|
|
52
52
|
/**
|
|
53
53
|
* Listen to SDK ready state
|
|
54
54
|
*/
|
|
55
|
-
onReady: (): Promise<void> =>
|
|
55
|
+
onReady: (): Promise<void> => {
|
|
56
|
+
var promise = DidomiListener.setOnReadyListener();
|
|
57
|
+
RNDidomi.onReady();
|
|
58
|
+
return promise;
|
|
59
|
+
},
|
|
56
60
|
|
|
57
61
|
/**
|
|
58
62
|
* Listen to SDK errors
|
|
59
63
|
*/
|
|
60
|
-
onError: (): Promise<
|
|
64
|
+
onError: (): Promise<void> => {
|
|
65
|
+
var promise = DidomiListener.setOnErrorListener();
|
|
66
|
+
RNDidomi.onError();
|
|
67
|
+
return promise;
|
|
68
|
+
},
|
|
61
69
|
|
|
62
70
|
/**
|
|
63
71
|
* Provide the objects required to display UI elements
|
|
@@ -116,65 +124,65 @@ export const Didomi = {
|
|
|
116
124
|
* Method used to get an array of disabled purposes.
|
|
117
125
|
* @returns: array of disabled purposes.
|
|
118
126
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
119
|
-
* has been replaced by getUserStatus().
|
|
127
|
+
* has been replaced by getUserStatus().purposes.consent.disabled.
|
|
120
128
|
*/
|
|
121
|
-
getDisabledPurposes: (): Promise<
|
|
129
|
+
getDisabledPurposes: (): Promise<Purpose[]> => RNDidomi.getDisabledPurposes(),
|
|
122
130
|
|
|
123
131
|
/**
|
|
124
132
|
* Method used to get a set of disabled purpose IDs.
|
|
125
133
|
* @returns: set that contains the IDs of disabled purposes.
|
|
126
134
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
127
|
-
* has been replaced by getUserStatus().
|
|
135
|
+
* has been replaced by getUserStatus().purposes.consent.enabled.
|
|
128
136
|
*/
|
|
129
|
-
getDisabledPurposeIds: (): Promise<
|
|
137
|
+
getDisabledPurposeIds: (): Promise<string[]> => RNDidomi.getDisabledPurposeIds(),
|
|
130
138
|
|
|
131
139
|
/**
|
|
132
140
|
* Method used to get an array of disabled vendors.
|
|
133
141
|
* @returns: array of disabled vendors.
|
|
134
142
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
135
|
-
* has been replaced by getUserStatus().
|
|
143
|
+
* has been replaced by getUserStatus().vendors.consent.disabled.
|
|
136
144
|
*/
|
|
137
|
-
getDisabledVendors: (): Promise<
|
|
145
|
+
getDisabledVendors: (): Promise<Vendor[]> => RNDidomi.getDisabledVendors(),
|
|
138
146
|
|
|
139
147
|
/**
|
|
140
148
|
* Method used to get a set of disabled vendor IDs.
|
|
141
149
|
* @returns: set that contains the IDs of disabled vendors.
|
|
142
150
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
143
|
-
* has been replaced by getUserStatus().
|
|
151
|
+
* has been replaced by getUserStatus().vendors.consent.disabled.
|
|
144
152
|
*/
|
|
145
|
-
getDisabledVendorIds: (): Promise<
|
|
153
|
+
getDisabledVendorIds: (): Promise<string[]> => RNDidomi.getDisabledVendorIds(),
|
|
146
154
|
|
|
147
155
|
/**
|
|
148
156
|
* Method used to get an array of enabled purposes.
|
|
149
157
|
* @returns: array of enabled purposes.
|
|
150
158
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
151
|
-
* has been replaced by getUserStatus().
|
|
159
|
+
* has been replaced by getUserStatus().purposes.consent.enabled.
|
|
152
160
|
*/
|
|
153
|
-
getEnabledPurposes: (): Promise<
|
|
161
|
+
getEnabledPurposes: (): Promise<Purpose[]> => RNDidomi.getEnabledPurposes(),
|
|
154
162
|
|
|
155
163
|
/**
|
|
156
164
|
* Method used to get a set of enabled purpose IDs.
|
|
157
165
|
* @returns: set that contains the IDs of enabled purposes.
|
|
158
166
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
159
|
-
* has been replaced by getUserStatus().
|
|
167
|
+
* has been replaced by getUserStatus().purposes.consent.enabled.
|
|
160
168
|
*/
|
|
161
|
-
getEnabledPurposeIds: (): Promise<
|
|
169
|
+
getEnabledPurposeIds: (): Promise<string[]> => RNDidomi.getEnabledPurposeIds(),
|
|
162
170
|
|
|
163
171
|
/**
|
|
164
172
|
* Method used to get an array of enabled vendors.
|
|
165
173
|
* @returns: array of enabled vendors.
|
|
166
174
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
167
|
-
* has been replaced by getUserStatus().
|
|
175
|
+
* has been replaced by getUserStatus().vendors.consent.enabled.
|
|
168
176
|
*/
|
|
169
|
-
getEnabledVendors: (): Promise<
|
|
177
|
+
getEnabledVendors: (): Promise<Vendor[]> => RNDidomi.getEnabledVendors(),
|
|
170
178
|
|
|
171
179
|
/**
|
|
172
180
|
* Method used to get a set of enabled vendor IDs.
|
|
173
181
|
* @returns: set that contains the IDs of enabled vendors.
|
|
174
182
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method
|
|
175
|
-
* has been replaced by getUserStatus().
|
|
183
|
+
* has been replaced by getUserStatus().vendors.consent.enabled.
|
|
176
184
|
*/
|
|
177
|
-
getEnabledVendorIds: (): Promise<
|
|
185
|
+
getEnabledVendorIds: (): Promise<string[]> => RNDidomi.getEnabledVendorIds(),
|
|
178
186
|
|
|
179
187
|
/**
|
|
180
188
|
* Get JavaScript to embed into a WebView to pass the consent status from the app
|
|
@@ -192,32 +200,32 @@ export const Didomi = {
|
|
|
192
200
|
* @param purposeId: purpose ID used in the search.
|
|
193
201
|
* @returns: purpose found in the array.
|
|
194
202
|
*/
|
|
195
|
-
getPurpose: (purposeId: string): Promise<
|
|
203
|
+
getPurpose: (purposeId: string): Promise<Purpose> => RNDidomi.getPurpose(purposeId),
|
|
196
204
|
|
|
197
205
|
/**
|
|
198
206
|
* Method used to get an array of required purposes.
|
|
199
207
|
*
|
|
200
208
|
* @returns: array of required purposes.
|
|
201
209
|
*/
|
|
202
|
-
getRequiredPurposes: (): Promise<
|
|
210
|
+
getRequiredPurposes: (): Promise<Purpose[]> => RNDidomi.getRequiredPurposes(),
|
|
203
211
|
|
|
204
212
|
/**
|
|
205
213
|
* Get the configured purpose IDs
|
|
206
214
|
* @returns: set of purpose IDs.
|
|
207
215
|
*/
|
|
208
|
-
getRequiredPurposeIds: (): Promise<
|
|
216
|
+
getRequiredPurposeIds: (): Promise<string[]> => RNDidomi.getRequiredPurposeIds(),
|
|
209
217
|
|
|
210
218
|
/**
|
|
211
219
|
* Method used to get an array of required vendors.
|
|
212
220
|
* @returns: array of required vendors.
|
|
213
221
|
*/
|
|
214
|
-
getRequiredVendors: (): Promise<
|
|
222
|
+
getRequiredVendors: (): Promise<Vendor[]> => RNDidomi.getRequiredVendors(),
|
|
215
223
|
|
|
216
224
|
/**
|
|
217
225
|
* Get the configured vendor IDs
|
|
218
226
|
* @returns: set of vendor IDs.
|
|
219
227
|
*/
|
|
220
|
-
getRequiredVendorIds: (): Promise<
|
|
228
|
+
getRequiredVendorIds: (): Promise<string[]> => RNDidomi.getRequiredVendorIds(),
|
|
221
229
|
|
|
222
230
|
/**
|
|
223
231
|
* Method used to get a dictionary/map in the form of { "en": "Key in English", "fr": "Key in French." }
|
|
@@ -255,8 +263,8 @@ export const Didomi = {
|
|
|
255
263
|
* @param purposeId: The purpose ID to check consent for
|
|
256
264
|
* @returns: The user consent status for the specified purpose
|
|
257
265
|
* @deprecated use {@link #getUserStatus()} instead. Search the purposeId in
|
|
258
|
-
|
|
259
|
-
* getUserStatus().
|
|
266
|
+
* getUserStatus().purposes.consent.enabled or
|
|
267
|
+
* getUserStatus().purposes.consent.enabled.
|
|
260
268
|
*/
|
|
261
269
|
getUserConsentStatusForPurpose: (purposeId: string): Promise<boolean> => RNDidomi.getUserConsentStatusForPurpose(purposeId),
|
|
262
270
|
|
|
@@ -265,8 +273,8 @@ export const Didomi = {
|
|
|
265
273
|
* @param vendorId: The vendor ID to check consent for
|
|
266
274
|
* @returns: The user consent status for the specified vendor
|
|
267
275
|
* @deprecated use {@link #getUserStatus()} instead. Search the vendorId in
|
|
268
|
-
* getUserStatus().
|
|
269
|
-
* getUserStatus().
|
|
276
|
+
* getUserStatus().vendors.consent.enabled or
|
|
277
|
+
* getUserStatus().vendors.consent.disabled.
|
|
270
278
|
*/
|
|
271
279
|
getUserConsentStatusForVendor: (vendorId: string): Promise<boolean> => RNDidomi.getUserConsentStatusForVendor(vendorId),
|
|
272
280
|
|
|
@@ -275,8 +283,8 @@ export const Didomi = {
|
|
|
275
283
|
* @param vendorId: The ID of the vendor
|
|
276
284
|
* @returns: The user consent status corresponding to the specified vendor and all its required purposes.
|
|
277
285
|
* @deprecated use {@link #getUserStatus()} instead. The result of this method has been replaced
|
|
278
|
-
* by getUserStatus().
|
|
279
|
-
* getUserStatus().
|
|
286
|
+
* by getUserStatus().vendors.global_consent.enabled or
|
|
287
|
+
* getUserStatus().vendors.global_consent.disabled.
|
|
280
288
|
*/
|
|
281
289
|
getUserConsentStatusForVendorAndRequiredPurposes: (vendorId: string): Promise<boolean> => RNDidomi.getUserConsentStatusForVendorAndRequiredPurposes(vendorId),
|
|
282
290
|
|
|
@@ -285,8 +293,8 @@ export const Didomi = {
|
|
|
285
293
|
* @param purposeId: purpose ID.
|
|
286
294
|
* @returns: LI status of a purpose.
|
|
287
295
|
* @deprecated use {@link #getUserStatus()} instead. Search the purposeId in
|
|
288
|
-
* getUserStatus().
|
|
289
|
-
* getUserStatus().
|
|
296
|
+
* getUserStatus().purposes.consent.enabled or
|
|
297
|
+
* getUserStatus().purposes.consent.enabled.
|
|
290
298
|
*/
|
|
291
299
|
getUserLegitimateInterestStatusForPurpose: (purposeId: string): Promise<boolean> => RNDidomi.getUserLegitimateInterestStatusForPurpose(purposeId),
|
|
292
300
|
|
|
@@ -295,8 +303,8 @@ export const Didomi = {
|
|
|
295
303
|
* @param vendorId: vendor ID.
|
|
296
304
|
* @returns: LI status of a vendor.
|
|
297
305
|
* @deprecated use {@link #getUserStatus()} instead. Search the vendorId in
|
|
298
|
-
* getUserStatus().
|
|
299
|
-
* getUserStatus().
|
|
306
|
+
* getUserStatus().vendors.legitimate_interest.enabled or
|
|
307
|
+
* getUserStatus().vendors.legitimate_interest.disabled.
|
|
300
308
|
*/
|
|
301
309
|
getUserLegitimateInterestForVendor: (vendorId: string): Promise<boolean> => RNDidomi.getUserLegitimateInterestStatusForVendor(vendorId),
|
|
302
310
|
|
|
@@ -305,8 +313,8 @@ export const Didomi = {
|
|
|
305
313
|
* @param vendorId: vendor ID.
|
|
306
314
|
* @returns: The user LI status corresponding to the specified vendor and all its required purposes.
|
|
307
315
|
* @deprecated use {@link #getUserStatus()} instead. Search the purposeId in
|
|
308
|
-
* getUserStatus().
|
|
309
|
-
* getUserStatus().
|
|
316
|
+
* getUserStatus().vendors.global_legitimate_interest.enabled or
|
|
317
|
+
* getUserStatus().vendors.global_legitimate_interest.disabled.
|
|
310
318
|
*/
|
|
311
319
|
getUserLegitimateInterestStatusForVendorAndRequiredPurposes: (vendorId: string): boolean => RNDidomi.getUserLegitimateInterestStatusForVendorAndRequiredPurposes(vendorId),
|
|
312
320
|
|
|
@@ -321,8 +329,8 @@ export const Didomi = {
|
|
|
321
329
|
* @param vendorId: vendor ID.
|
|
322
330
|
* @returns: status that represents both consent and legitimate interest status of a vendor.
|
|
323
331
|
* @deprecated use {@link #getUserStatus()} instead. Search the vendorId in
|
|
324
|
-
* getUserStatus().
|
|
325
|
-
* getUserStatus().
|
|
332
|
+
* getUserStatus().vendors.global.enabled or
|
|
333
|
+
* getUserStatus().vendors.global.disabled.
|
|
326
334
|
*/
|
|
327
335
|
getUserStatusForVendor: (vendorId: string): Promise<boolean> => RNDidomi.getUserStatusForVendor(vendorId),
|
|
328
336
|
|
|
@@ -331,7 +339,7 @@ export const Didomi = {
|
|
|
331
339
|
* @param vendorId: vendor ID used in the search.
|
|
332
340
|
* @returns: vendor found in the array.
|
|
333
341
|
*/
|
|
334
|
-
getVendor: (vendorId: string): Promise<
|
|
342
|
+
getVendor: (vendorId: string): Promise<Vendor> => RNDidomi.getVendor(vendorId),
|
|
335
343
|
|
|
336
344
|
/**
|
|
337
345
|
* Hide the notice if it is currently displayed
|
package/src/DidomiListener.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
1
|
+
import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';
|
|
2
2
|
import { DidomiEventType } from './DidomiTypes';
|
|
3
3
|
|
|
4
4
|
const { Didomi: RNDidomi } = NativeModules;
|
|
@@ -58,32 +58,42 @@ export const DidomiListener = {
|
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
setOnReadyListener: (): Promise<void> => {
|
|
62
62
|
return new Promise<void>((resolve) => {
|
|
63
|
+
let subscription: EmitterSubscription;
|
|
63
64
|
const listener = (_event: any) => {
|
|
64
65
|
resolve();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
if (subscription) {
|
|
67
|
+
subscription.remove();
|
|
68
|
+
} else if ('removeListener' in DidomiListener.eventEmitter) {
|
|
69
|
+
DidomiListener.eventEmitter.removeListener(
|
|
70
|
+
InternalEventType.READY_CALLBACK,
|
|
71
|
+
listener
|
|
72
|
+
);
|
|
73
|
+
}
|
|
69
74
|
};
|
|
70
|
-
DidomiListener.eventEmitter.addListener(
|
|
75
|
+
subscription = DidomiListener.eventEmitter.addListener(
|
|
71
76
|
InternalEventType.READY_CALLBACK,
|
|
72
77
|
listener
|
|
73
78
|
);
|
|
74
79
|
});
|
|
75
80
|
},
|
|
76
81
|
|
|
77
|
-
|
|
78
|
-
return new Promise<
|
|
82
|
+
setOnErrorListener: (): Promise<void> => {
|
|
83
|
+
return new Promise<void>((resolve) => {
|
|
84
|
+
let subscription: EmitterSubscription;
|
|
79
85
|
const listener = (_event: any) => {
|
|
80
86
|
resolve(_event);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
if (subscription) {
|
|
88
|
+
subscription.remove();
|
|
89
|
+
} else if ('removeListener' in DidomiListener.eventEmitter) {
|
|
90
|
+
DidomiListener.eventEmitter.removeListener(
|
|
91
|
+
InternalEventType.ERROR_CALLBACK,
|
|
92
|
+
listener
|
|
93
|
+
);
|
|
94
|
+
}
|
|
85
95
|
};
|
|
86
|
-
DidomiListener.eventEmitter.addListener(
|
|
96
|
+
subscription = DidomiListener.eventEmitter.addListener(
|
|
87
97
|
InternalEventType.ERROR_CALLBACK,
|
|
88
98
|
listener
|
|
89
99
|
);
|
package/src/DidomiTypes.ts
CHANGED
|
@@ -37,14 +37,19 @@ export enum DidomiEventType {
|
|
|
37
37
|
|
|
38
38
|
export interface Vendor {
|
|
39
39
|
id: string;
|
|
40
|
+
iabId: string
|
|
40
41
|
name: string;
|
|
41
|
-
|
|
42
|
+
policyUrl: string;
|
|
42
43
|
namespace: string;
|
|
43
44
|
namespaces: VendorNamespaces;
|
|
44
45
|
iabVendor: boolean;
|
|
45
|
-
|
|
46
|
+
purposeIds: string[];
|
|
47
|
+
flexiblePurposeIds: string[];
|
|
48
|
+
specialPurposeIds: string[];
|
|
46
49
|
legIntPurposeIds: string[];
|
|
47
|
-
|
|
50
|
+
specialFeatureIds: string[];
|
|
51
|
+
cookieMaxAgeSeconds: number
|
|
52
|
+
usesNonCookieAccess: boolean;
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
export interface VendorNamespaces {
|
|
@@ -67,11 +72,11 @@ export interface Purpose {
|
|
|
67
72
|
|
|
68
73
|
export interface PurposeCategory {
|
|
69
74
|
id: string;
|
|
70
|
-
|
|
75
|
+
purposeId: string;
|
|
71
76
|
icon: string;
|
|
72
77
|
type: string;
|
|
73
78
|
name: Map<string>;
|
|
74
|
-
|
|
79
|
+
description: Map<string>;
|
|
75
80
|
children: PurposeCategory[];
|
|
76
81
|
}
|
|
77
82
|
|
|
@@ -83,27 +88,27 @@ export interface Map<T> {
|
|
|
83
88
|
export interface UserStatus {
|
|
84
89
|
purposes: UserStatusPurposes;
|
|
85
90
|
vendors: UserStatusVendors;
|
|
86
|
-
|
|
91
|
+
user_id: string;
|
|
87
92
|
created: string;
|
|
88
93
|
updated: string;
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
consent_string: string;
|
|
95
|
+
additional_consent: string;
|
|
91
96
|
regulation: string;
|
|
92
97
|
}
|
|
93
98
|
|
|
94
99
|
export interface UserStatusPurposes {
|
|
95
100
|
global: UserStatusIds;
|
|
96
101
|
consent: UserStatusIds;
|
|
97
|
-
|
|
102
|
+
legitimate_interest: UserStatusIds;
|
|
98
103
|
essential: UserStatusIds;
|
|
99
104
|
}
|
|
100
105
|
|
|
101
106
|
export interface UserStatusVendors {
|
|
102
107
|
global: UserStatusIds;
|
|
103
|
-
|
|
104
|
-
|
|
108
|
+
global_consent: UserStatusIds;
|
|
109
|
+
global_legitimate_interest: UserStatusIds;
|
|
105
110
|
consent: UserStatusIds;
|
|
106
|
-
|
|
111
|
+
legitimate_interest: UserStatusIds;
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
export interface UserStatusIds {
|