@didomi/react-native 2.2.0 → 2.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/android/build.gradle +1 -1
- package/android/src/main/java/com/reactnativedidomi/DidomiModule.kt +48 -9
- package/android/src/main/java/com/reactnativedidomi/EventTypes.kt +1 -0
- package/ios/Didomi.m +8 -0
- package/ios/RNDidomi.swift +39 -1
- package/lib/commonjs/Constants.js +1 -1
- package/lib/commonjs/Constants.js.map +1 -1
- package/lib/commonjs/DidomiListener.js +12 -1
- package/lib/commonjs/DidomiListener.js.map +1 -1
- package/lib/commonjs/DidomiTypes.js +2 -1
- package/lib/commonjs/DidomiTypes.js.map +1 -1
- package/lib/module/Constants.js +1 -1
- package/lib/module/Constants.js.map +1 -1
- package/lib/module/DidomiListener.js +12 -1
- package/lib/module/DidomiListener.js.map +1 -1
- package/lib/module/DidomiTypes.js +2 -1
- package/lib/module/DidomiTypes.js.map +1 -1
- package/lib/typescript/Constants.d.ts +1 -1
- package/lib/typescript/DidomiTypes.d.ts +6 -1
- package/package.json +1 -1
- package/react-native-didomi.podspec +1 -1
- package/src/Constants.ts +1 -1
- package/src/DidomiListener.ts +11 -1
- package/src/DidomiTypes.ts +8 -1
package/android/build.gradle
CHANGED
|
@@ -208,6 +208,7 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
208
208
|
/**
|
|
209
209
|
* Sync finished
|
|
210
210
|
*/
|
|
211
|
+
@Deprecated("Use syncReady instead", replaceWith = ReplaceWith("syncReady()"))
|
|
211
212
|
override fun syncDone(event: SyncDoneEvent) = prepareEvent(EventTypes.SYNC_DONE.event, event.organizationUserId)
|
|
212
213
|
|
|
213
214
|
/**
|
|
@@ -215,6 +216,11 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
215
216
|
*/
|
|
216
217
|
override fun syncError(event: SyncErrorEvent) = prepareEvent(EventTypes.SYNC_ERROR.event, event.error)
|
|
217
218
|
|
|
219
|
+
/**
|
|
220
|
+
* Sync ready
|
|
221
|
+
*/
|
|
222
|
+
override fun syncReady(event: SyncReadyEvent) = prepareSyncReadyEvent(event)
|
|
223
|
+
|
|
218
224
|
/**
|
|
219
225
|
* Language updated
|
|
220
226
|
*/
|
|
@@ -226,6 +232,8 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
226
232
|
override fun languageUpdateFailed(event: LanguageUpdateFailedEvent) = prepareEvent(EventTypes.LANGUAGE_UPDATE_FAILED.event, event.reason)
|
|
227
233
|
}
|
|
228
234
|
private val vendorStatusListeners: MutableSet<String> = mutableSetOf()
|
|
235
|
+
private val syncAcknowledgedCallbacks: MutableMap<Int, () -> Boolean> = mutableMapOf()
|
|
236
|
+
private var syncAcknowledgedCallbackIndex = 0
|
|
229
237
|
|
|
230
238
|
override fun getName() = "Didomi"
|
|
231
239
|
|
|
@@ -637,14 +645,14 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
637
645
|
promise: Promise
|
|
638
646
|
) {
|
|
639
647
|
Didomi.getInstance().setUser(
|
|
640
|
-
UserAuthWithHashParams(
|
|
648
|
+
userAuthParams = UserAuthWithHashParams(
|
|
641
649
|
organizationUserId,
|
|
642
650
|
algorithm,
|
|
643
651
|
secretId,
|
|
644
652
|
digest,
|
|
645
653
|
salt
|
|
646
654
|
),
|
|
647
|
-
currentActivity as? FragmentActivity
|
|
655
|
+
activity = currentActivity as? FragmentActivity
|
|
648
656
|
)
|
|
649
657
|
promise.resolve(0)
|
|
650
658
|
}
|
|
@@ -683,7 +691,7 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
683
691
|
promise: Promise
|
|
684
692
|
) {
|
|
685
693
|
Didomi.getInstance().setUser(
|
|
686
|
-
UserAuthWithHashParams(
|
|
694
|
+
userAuthParams = UserAuthWithHashParams(
|
|
687
695
|
organizationUserId,
|
|
688
696
|
algorithm,
|
|
689
697
|
secretId,
|
|
@@ -691,7 +699,7 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
691
699
|
salt,
|
|
692
700
|
expiration.toLong()
|
|
693
701
|
),
|
|
694
|
-
currentActivity as? FragmentActivity
|
|
702
|
+
activity = currentActivity as? FragmentActivity
|
|
695
703
|
)
|
|
696
704
|
promise.resolve(0)
|
|
697
705
|
}
|
|
@@ -724,13 +732,13 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
724
732
|
promise: Promise
|
|
725
733
|
) {
|
|
726
734
|
Didomi.getInstance().setUser(
|
|
727
|
-
UserAuthWithEncryptionParams(
|
|
735
|
+
userAuthParams = UserAuthWithEncryptionParams(
|
|
728
736
|
organizationUserId,
|
|
729
737
|
algorithm,
|
|
730
738
|
secretId,
|
|
731
739
|
initializationVector
|
|
732
740
|
),
|
|
733
|
-
currentActivity as? FragmentActivity
|
|
741
|
+
activity = currentActivity as? FragmentActivity
|
|
734
742
|
)
|
|
735
743
|
promise.resolve(0)
|
|
736
744
|
}
|
|
@@ -766,14 +774,14 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
766
774
|
promise: Promise
|
|
767
775
|
) {
|
|
768
776
|
Didomi.getInstance().setUser(
|
|
769
|
-
UserAuthWithEncryptionParams(
|
|
777
|
+
userAuthParams = UserAuthWithEncryptionParams(
|
|
770
778
|
organizationUserId,
|
|
771
779
|
algorithm,
|
|
772
780
|
secretId,
|
|
773
781
|
initializationVector,
|
|
774
782
|
expiration.toLong()
|
|
775
783
|
),
|
|
776
|
-
currentActivity as? FragmentActivity
|
|
784
|
+
activity = currentActivity as? FragmentActivity
|
|
777
785
|
)
|
|
778
786
|
promise.resolve(0)
|
|
779
787
|
}
|
|
@@ -968,6 +976,23 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
968
976
|
promise.resolve(transaction.commit())
|
|
969
977
|
}
|
|
970
978
|
|
|
979
|
+
@ReactMethod
|
|
980
|
+
fun syncAcknowledged(callbackIndex: Int, promise: Promise) {
|
|
981
|
+
val result = syncAcknowledgedCallbacks[callbackIndex]?.let { it() }
|
|
982
|
+
syncAcknowledgedCallbacks.remove(callbackIndex)
|
|
983
|
+
if (result != null) {
|
|
984
|
+
promise.resolve(result)
|
|
985
|
+
} else {
|
|
986
|
+
promise.reject(java.lang.IllegalStateException("SyncAcknowledged: Native callback not found. The method can be called only once."))
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
@ReactMethod
|
|
991
|
+
fun removeSyncAcknowledgedCallback(callbackIndex: Int, promise: Promise) {
|
|
992
|
+
syncAcknowledgedCallbacks.remove(callbackIndex)
|
|
993
|
+
promise.resolve(0)
|
|
994
|
+
}
|
|
995
|
+
|
|
971
996
|
private fun prepareEvent(eventName: String, params: Any?) {
|
|
972
997
|
Log.d("prepareEvent", "Sending $eventName")
|
|
973
998
|
reactContext
|
|
@@ -975,8 +1000,22 @@ class DidomiModule(reactContext: ReactApplicationContext) : ReactContextBaseJava
|
|
|
975
1000
|
.emit(eventName, params)
|
|
976
1001
|
}
|
|
977
1002
|
|
|
1003
|
+
private fun prepareSyncReadyEvent(event: SyncReadyEvent) {
|
|
1004
|
+
val eventName = EventTypes.SYNC_READY.event
|
|
1005
|
+
Log.d("prepareEvent", "Sending $eventName")
|
|
1006
|
+
val callbackIndex = syncAcknowledgedCallbackIndex++
|
|
1007
|
+
syncAcknowledgedCallbacks[callbackIndex] = event.syncAcknowledged
|
|
1008
|
+
val params = WritableNativeMap().apply {
|
|
1009
|
+
putBoolean("statusApplied", event.statusApplied)
|
|
1010
|
+
putInt("syncAcknowledgedIndex", callbackIndex)
|
|
1011
|
+
}
|
|
1012
|
+
reactContext
|
|
1013
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
1014
|
+
.emit(eventName, params)
|
|
1015
|
+
}
|
|
1016
|
+
|
|
978
1017
|
// Required to transform from array to variadic.
|
|
979
1018
|
private fun readableArrayToStringArray(readableArray: ReadableArray): Array<String> {
|
|
980
|
-
return Array(readableArray.size()) { i -> readableArray.getString(i)
|
|
1019
|
+
return Array(readableArray.size()) { i -> readableArray.getString(i) }
|
|
981
1020
|
}
|
|
982
1021
|
}
|
|
@@ -49,6 +49,7 @@ enum class EventTypes(val event: String) {
|
|
|
49
49
|
PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES("on_preferences_click_spi_purpose_save_choices"),
|
|
50
50
|
// Sync
|
|
51
51
|
SYNC_DONE("on_sync_done"),
|
|
52
|
+
SYNC_READY("on_sync_ready"),
|
|
52
53
|
SYNC_ERROR("on_sync_error"),
|
|
53
54
|
// Language
|
|
54
55
|
LANGUAGE_UPDATED("on_language_updated"),
|
package/ios/Didomi.m
CHANGED
|
@@ -257,6 +257,14 @@ RCT_EXTERN_METHOD(commitCurrentUserStatusTransaction:(NSArray<NSString *> *)enab
|
|
|
257
257
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
258
258
|
reject:(RCTPromiseRejectBlock)reject)
|
|
259
259
|
|
|
260
|
+
RCT_EXTERN_METHOD(syncAcknowledged:(int)callbackIndex
|
|
261
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
262
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
263
|
+
|
|
264
|
+
RCT_EXTERN_METHOD(removeSyncAcknowledgedCallback:(int)callbackIndex
|
|
265
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
266
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
267
|
+
|
|
260
268
|
RCT_EXTERN_METHOD(supportedEvents)
|
|
261
269
|
|
|
262
270
|
@end
|
package/ios/RNDidomi.swift
CHANGED
|
@@ -7,6 +7,8 @@ class RNDidomi: RCTEventEmitter {
|
|
|
7
7
|
|
|
8
8
|
var didomiEventListener: EventListener
|
|
9
9
|
var vendorStatusListeners: Set<String> = Set()
|
|
10
|
+
var syncAcknowledgedCallbacks: Dictionary<Int, (() -> Bool)> = [:]
|
|
11
|
+
private var syncAcknowledgedCallbackIndex: Int = 0
|
|
10
12
|
|
|
11
13
|
override init() {
|
|
12
14
|
didomiEventListener = EventListener()
|
|
@@ -513,7 +515,31 @@ class RNDidomi: RCTEventEmitter {
|
|
|
513
515
|
transaction.enableVendors(enabledVendors)
|
|
514
516
|
transaction.disableVendors(disabledVendors)
|
|
515
517
|
resolve(transaction.commit())
|
|
516
|
-
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
@objc(syncAcknowledged:resolve:reject:)
|
|
521
|
+
dynamic func syncAcknowledged(
|
|
522
|
+
callbackIndex: Int,
|
|
523
|
+
resolve:RCTPromiseResolveBlock,
|
|
524
|
+
reject:RCTPromiseRejectBlock
|
|
525
|
+
) {
|
|
526
|
+
if let callback = syncAcknowledgedCallbacks[callbackIndex] {
|
|
527
|
+
syncAcknowledgedCallbacks.removeValue(forKey: callbackIndex)
|
|
528
|
+
resolve(callback())
|
|
529
|
+
} else {
|
|
530
|
+
reject("not_found", "SyncAcknowledged: Native callback not found. The method can be called only once.", NSError.init(domain: "Didomi", code: 404))
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
@objc(removeSyncAcknowledgedCallback:resolve:reject:)
|
|
535
|
+
dynamic func removeSyncAcknowledgedCallback(
|
|
536
|
+
callbackIndex: Int,
|
|
537
|
+
resolve:RCTPromiseResolveBlock,
|
|
538
|
+
reject:RCTPromiseRejectBlock
|
|
539
|
+
) {
|
|
540
|
+
syncAcknowledgedCallbacks.removeValue(forKey: callbackIndex)
|
|
541
|
+
resolve(0)
|
|
542
|
+
}
|
|
517
543
|
}
|
|
518
544
|
|
|
519
545
|
// MARK: Didomi Specific structs
|
|
@@ -588,6 +614,7 @@ extension RNDidomi {
|
|
|
588
614
|
"on_preferences_click_spi_purpose_save_choices",
|
|
589
615
|
// Sync
|
|
590
616
|
"on_sync_done",
|
|
617
|
+
"on_sync_ready",
|
|
591
618
|
"on_sync_error",
|
|
592
619
|
// Language
|
|
593
620
|
"on_language_updated",
|
|
@@ -748,6 +775,17 @@ extension RNDidomi {
|
|
|
748
775
|
didomiEventListener.onSyncDone = { [weak self] event, organizationUserId in
|
|
749
776
|
self?.dispatchEvent(withName: "on_sync_done", body: organizationUserId)
|
|
750
777
|
}
|
|
778
|
+
|
|
779
|
+
didomiEventListener.onSyncReady = { [weak self] event in
|
|
780
|
+
let callbackIndex = self?.syncAcknowledgedCallbackIndex ?? -1
|
|
781
|
+
self?.syncAcknowledgedCallbackIndex += 1
|
|
782
|
+
self?.syncAcknowledgedCallbacks[callbackIndex] = event.syncAcknowledged
|
|
783
|
+
let result = [
|
|
784
|
+
"statusApplied": event.statusApplied,
|
|
785
|
+
"syncAcknowledgedIndex": callbackIndex
|
|
786
|
+
]
|
|
787
|
+
self?.dispatchEvent(withName: "on_sync_ready", body: result)
|
|
788
|
+
}
|
|
751
789
|
|
|
752
790
|
didomiEventListener.onSyncError = { [weak self] event, error in
|
|
753
791
|
self?.dispatchEvent(withName: "on_sync_error", body: error)
|
|
@@ -7,5 +7,5 @@ exports.DIDOMI_VERSION = exports.DIDOMI_USER_AGENT_NAME = void 0;
|
|
|
7
7
|
// User agent name
|
|
8
8
|
const DIDOMI_USER_AGENT_NAME = exports.DIDOMI_USER_AGENT_NAME = "Didomi React-Native SDK";
|
|
9
9
|
// User agent version
|
|
10
|
-
const DIDOMI_VERSION = exports.DIDOMI_VERSION = "2.
|
|
10
|
+
const DIDOMI_VERSION = exports.DIDOMI_VERSION = "2.3.0";
|
|
11
11
|
//# sourceMappingURL=Constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DIDOMI_USER_AGENT_NAME","exports","DIDOMI_VERSION"],"sources":["Constants.ts"],"sourcesContent":["// User agent name\nexport const DIDOMI_USER_AGENT_NAME = \"Didomi React-Native SDK\"\n// User agent version\nexport const DIDOMI_VERSION = \"2.
|
|
1
|
+
{"version":3,"names":["DIDOMI_USER_AGENT_NAME","exports","DIDOMI_VERSION"],"sources":["Constants.ts"],"sourcesContent":["// User agent name\nexport const DIDOMI_USER_AGENT_NAME = \"Didomi React-Native SDK\"\n// User agent version\nexport const DIDOMI_VERSION = \"2.3.0\"\n"],"mappings":";;;;;;AAAA;AACO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,yBAAyB;AAC/D;AACO,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAG,OAAO","ignoreList":[]}
|
|
@@ -26,10 +26,21 @@ const DidomiListener = exports.DidomiListener = {
|
|
|
26
26
|
DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);
|
|
27
27
|
DidomiListener.eventEmitter.addListener(eventTypeValue, _event => {
|
|
28
28
|
let events = DidomiListener.listeners.get(eventTypeValue);
|
|
29
|
-
if (events) {
|
|
29
|
+
if (events && events.length > 0) {
|
|
30
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
31
|
+
_event.syncAcknowledged = () => {
|
|
32
|
+
return RNDidomi.syncAcknowledged(_event.syncAcknowledgedIndex);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
30
35
|
events.forEach(el => {
|
|
31
36
|
el(_event);
|
|
32
37
|
});
|
|
38
|
+
} else {
|
|
39
|
+
// No listener for this event type
|
|
40
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
41
|
+
// We can remove syncAcknowledgedCallback as it will never be called
|
|
42
|
+
RNDidomi.removeSyncAcknowledgedCallback(_event.syncAcknowledgedIndex);
|
|
43
|
+
}
|
|
33
44
|
}
|
|
34
45
|
});
|
|
35
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_DidomiTypes","Didomi","RNDidomi","NativeModules","InternalEventType","DidomiListener","exports","listeners","Map","vendorStatusListeners","eventEmitter","NativeEventEmitter","init","Object","values","DidomiEventType","forEach","eventTypeValue","removeAllListeners","addListener","_event","events","get","el","reset","addEventListener","eventType","callback","set","push","removeEventListener","index","indexOf","splice","setOnReadyListener","Promise","resolve","subscription","listener","remove","removeListener","READY_CALLBACK","setOnErrorListener","ERROR_CALLBACK","addVendorStatusListener","vendorId","VENDOR_STATUS_CHANGE_PREFIX","removeVendorStatusListener","undefined"],"sources":["DidomiListener.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\nimport { DidomiEventType, VendorStatus } from './DidomiTypes';\n\nconst { Didomi: RNDidomi } = NativeModules;\n\nenum InternalEventType {\n READY_CALLBACK = 'on_ready_callback',\n ERROR_CALLBACK = 'on_error_callback',\n VENDOR_STATUS_CHANGE_PREFIX = 'on_vendor_status_change_',\n}\n\nexport const DidomiListener = {\n listeners: new Map(),\n vendorStatusListeners: new Map(),\n eventEmitter: new NativeEventEmitter(RNDidomi),\n\n init: () => {\n // Register all native event listeners\n Object.values(DidomiEventType).forEach((eventTypeValue) => {\n // Remove previous listeners, as init() can be called several times in some configs\n DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);\n DidomiListener.eventEmitter.addListener(eventTypeValue, (_event: any) => {\n let events = DidomiListener.listeners.get(eventTypeValue);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n });\n },\n\n reset: () => {\n // Reset listeners\n DidomiListener.listeners = new Map();\n },\n\n addEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (!events) {\n events = [];\n DidomiListener.listeners.set(eventType, events);\n }\n events.push(callback);\n },\n\n removeEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (events) {\n var index = events.indexOf(callback);\n if (index !== -1) {\n events.splice(index, 1);\n }\n }\n },\n\n setOnReadyListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve();\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n });\n },\n\n setOnErrorListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve(_event);\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n });\n },\n\n addVendorStatusListener: (\n vendorId: string,\n callback: (vendorStatus: VendorStatus) => void\n ) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (!events) {\n events = [];\n DidomiListener.vendorStatusListeners.set(vendorId, events);\n\n DidomiListener.eventEmitter.addListener(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId, (_event: any) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n }\n events.push(callback);\n },\n\n removeVendorStatusListener: (vendorId: string) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n DidomiListener.eventEmitter.removeAllListeners(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId);\n DidomiListener.vendorStatusListeners.set(vendorId, undefined);\n }\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,MAAM;EAAEE,MAAM,EAAEC;AAAS,CAAC,GAAGC,0BAAa;AAAC,IAEtCC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA,EAAjBA,iBAAiB;AAMf,MAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;EACpBC,qBAAqB,EAAE,IAAID,GAAG,CAAC,CAAC;EAChCE,YAAY,EAAE,IAAIC,+BAAkB,CAACT,QAAQ,CAAC;EAE9CU,IAAI,EAAEA,CAAA,KAAM;IACV;IACAC,MAAM,CAACC,MAAM,CAACC,4BAAe,CAAC,CAACC,OAAO,CAAEC,cAAc,IAAK;MACzD;MACAZ,cAAc,CAACK,YAAY,CAACQ,kBAAkB,CAACD,cAAc,CAAC;MAC9DZ,cAAc,CAACK,YAAY,CAACS,WAAW,CAACF,cAAc,EAAGG,MAAW,IAAK;QACvE,IAAIC,MAAM,GAAGhB,cAAc,CAACE,SAAS,CAACe,GAAG,CAACL,cAAc,CAAC;QACzD,IAAII,MAAM,EAAE;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_DidomiTypes","Didomi","RNDidomi","NativeModules","InternalEventType","DidomiListener","exports","listeners","Map","vendorStatusListeners","eventEmitter","NativeEventEmitter","init","Object","values","DidomiEventType","forEach","eventTypeValue","removeAllListeners","addListener","_event","events","get","length","syncAcknowledged","syncAcknowledgedIndex","el","removeSyncAcknowledgedCallback","reset","addEventListener","eventType","callback","set","push","removeEventListener","index","indexOf","splice","setOnReadyListener","Promise","resolve","subscription","listener","remove","removeListener","READY_CALLBACK","setOnErrorListener","ERROR_CALLBACK","addVendorStatusListener","vendorId","VENDOR_STATUS_CHANGE_PREFIX","removeVendorStatusListener","undefined"],"sources":["DidomiListener.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\nimport { DidomiEventType, VendorStatus } from './DidomiTypes';\n\nconst { Didomi: RNDidomi } = NativeModules;\n\nenum InternalEventType {\n READY_CALLBACK = 'on_ready_callback',\n ERROR_CALLBACK = 'on_error_callback',\n VENDOR_STATUS_CHANGE_PREFIX = 'on_vendor_status_change_',\n}\n\nexport const DidomiListener = {\n listeners: new Map(),\n vendorStatusListeners: new Map(),\n eventEmitter: new NativeEventEmitter(RNDidomi),\n\n init: () => {\n // Register all native event listeners\n Object.values(DidomiEventType).forEach((eventTypeValue) => {\n // Remove previous listeners, as init() can be called several times in some configs\n DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);\n DidomiListener.eventEmitter.addListener(eventTypeValue, (_event: any) => {\n let events = DidomiListener.listeners.get(eventTypeValue);\n if (events && events.length > 0) {\n if (eventTypeValue == \"on_sync_ready\") {\n _event.syncAcknowledged = (): Promise<boolean> => { \n return RNDidomi.syncAcknowledged(_event.syncAcknowledgedIndex)\n }\n }\n events.forEach((el: any) => {\n el(_event);\n });\n } else { // No listener for this event type\n if (eventTypeValue == \"on_sync_ready\") { \n // We can remove syncAcknowledgedCallback as it will never be called\n RNDidomi.removeSyncAcknowledgedCallback(_event.syncAcknowledgedIndex);\n }\n }\n });\n });\n },\n\n reset: () => {\n // Reset listeners\n DidomiListener.listeners = new Map();\n },\n\n addEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (!events) {\n events = [];\n DidomiListener.listeners.set(eventType, events);\n }\n events.push(callback);\n },\n\n removeEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (events) {\n var index = events.indexOf(callback);\n if (index !== -1) {\n events.splice(index, 1);\n }\n }\n },\n\n setOnReadyListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve();\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n });\n },\n\n setOnErrorListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve(_event);\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n });\n },\n\n addVendorStatusListener: (\n vendorId: string,\n callback: (vendorStatus: VendorStatus) => void\n ) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (!events) {\n events = [];\n DidomiListener.vendorStatusListeners.set(vendorId, events);\n\n DidomiListener.eventEmitter.addListener(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId, (_event: any) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n }\n events.push(callback);\n },\n\n removeVendorStatusListener: (vendorId: string) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n DidomiListener.eventEmitter.removeAllListeners(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId);\n DidomiListener.vendorStatusListeners.set(vendorId, undefined);\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,8 +42,9 @@ let DidomiEventType = exports.DidomiEventType = /*#__PURE__*/function (DidomiEve
|
|
|
42
42
|
DidomiEventType["PREFERENCES_CLICK_SPI_CATEGORY_AGREE"] = "on_preferences_click_spi_category_agree";
|
|
43
43
|
DidomiEventType["PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE"] = "on_preferences_click_spi_category_disagree";
|
|
44
44
|
DidomiEventType["PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES"] = "on_preferences_click_spi_purpose_save_choices";
|
|
45
|
-
DidomiEventType["
|
|
45
|
+
DidomiEventType["SYNC_READY"] = "on_sync_ready";
|
|
46
46
|
DidomiEventType["SYNC_ERROR"] = "on_sync_error";
|
|
47
|
+
DidomiEventType["SYNC_DONE"] = "on_sync_done";
|
|
47
48
|
DidomiEventType["LANGUAGE_UPDATED"] = "on_language_updated";
|
|
48
49
|
DidomiEventType["LANGUAGE_UPDATE_FAILED"] = "on_language_update_failed";
|
|
49
50
|
return DidomiEventType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DidomiEventType","exports"],"sources":["DidomiTypes.ts"],"sourcesContent":["// TODO\nexport enum DidomiEventType {\n // Consent\n CONSENT_CHANGED = \"on_consent_changed\",\n // SDK lifecycle events\n ERROR = \"on_error\",\n READY = \"on_ready\",\n // Notice\n HIDE_NOTICE = \"on_hide_notice\",\n SHOW_NOTICE = \"on_show_notice\",\n NOTICE_CLICK_AGREE = \"on_notice_click_agree\",\n NOTICE_CLICK_DISAGREE = \"on_notice_click_disagree\",\n NOTICE_CLICK_VIEW_VENDORS = \"on_notice_click_view_vendors\",\n NOTICE_CLICK_VIEW_SPI_PURPOSES = \"on_notice_click_view_spi_purposes\",\n NOTICE_CLICK_MORE_INFO = \"on_notice_click_more_info\",\n NOTICE_CLICK_PRIVACY_POLICY = \"on_notice_click_privacy_policy\",\n // Preferences\n HIDE_PREFERENCES = \"on_hide_preferences\",\n SHOW_PREFERENCES = \"on_show_preferences\",\n // Preferences - Views\n PREFERENCES_CLICK_VIEW_PURPOSES = \"on_preferences_click_view_purposes\",\n PREFERENCES_CLICK_VIEW_VENDORS = \"on_preferences_click_view_vendors\",\n PREFERENCES_CLICK_VIEW_SPI_PURPOSES = \"on_preferences_click_view_spi_purposes\",\n // Preferences - Purpose\n PREFERENCES_CLICK_AGREE_TO_ALL = \"on_preferences_click_agree_to_all\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL = \"on_preferences_click_disagree_to_all\",\n PREFERENCES_CLICK_AGREE_TO_ALL_PURPOSES = \"on_preferences_click_agree_to_all_purposes\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_PURPOSES = \"on_preferences_click_disagree_to_all_purposes\",\n PREFERENCES_CLICK_RESET_ALL_PURPOSES = \"on_preferences_click_reset_all_purposes\",\n PREFERENCES_CLICK_PURPOSE_AGREE = \"on_preferences_click_purpose_agree\",\n PREFERENCES_CLICK_PURPOSE_DISAGREE = \"on_preferences_click_purpose_disagree\",\n PREFERENCES_CLICK_CATEGORY_AGREE = \"on_preferences_click_category_agree\",\n PREFERENCES_CLICK_CATEGORY_DISAGREE = \"on_preferences_click_category_disagree\",\n PREFERENCES_CLICK_SAVE_CHOICES = \"on_preferences_click_save_choices\",\n // Preferences - Vendor\n PREFERENCES_CLICK_AGREE_TO_ALL_VENDORS = \"on_preferences_click_agree_to_all_vendors\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_VENDORS = \"on_preferences_click_disagree_to_all_vendors\",\n PREFERENCES_CLICK_VENDOR_AGREE = \"on_preferences_click_vendor_agree\",\n PREFERENCES_CLICK_VENDOR_DISAGREE = \"on_preferences_click_vendor_disagree\",\n PREFERENCES_CLICK_VENDOR_SAVE_CHOICES = \"on_preferences_click_vendor_save_choices\",\n // Preferences - Sensitive Personal Information\n PREFERENCES_CLICK_SPI_PURPOSE_AGREE = \"on_preferences_click_spi_purpose_agree\",\n PREFERENCES_CLICK_SPI_PURPOSE_DISAGREE = \"on_preferences_click_spi_purpose_disagree\",\n PREFERENCES_CLICK_SPI_CATEGORY_AGREE = \"on_preferences_click_spi_category_agree\",\n PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = \"on_preferences_click_spi_category_disagree\",\n PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = \"on_preferences_click_spi_purpose_save_choices\",\n // Sync\n
|
|
1
|
+
{"version":3,"names":["DidomiEventType","exports"],"sources":["DidomiTypes.ts"],"sourcesContent":["// TODO\nexport enum DidomiEventType {\n // Consent\n CONSENT_CHANGED = \"on_consent_changed\",\n // SDK lifecycle events\n ERROR = \"on_error\",\n READY = \"on_ready\",\n // Notice\n HIDE_NOTICE = \"on_hide_notice\",\n SHOW_NOTICE = \"on_show_notice\",\n NOTICE_CLICK_AGREE = \"on_notice_click_agree\",\n NOTICE_CLICK_DISAGREE = \"on_notice_click_disagree\",\n NOTICE_CLICK_VIEW_VENDORS = \"on_notice_click_view_vendors\",\n NOTICE_CLICK_VIEW_SPI_PURPOSES = \"on_notice_click_view_spi_purposes\",\n NOTICE_CLICK_MORE_INFO = \"on_notice_click_more_info\",\n NOTICE_CLICK_PRIVACY_POLICY = \"on_notice_click_privacy_policy\",\n // Preferences\n HIDE_PREFERENCES = \"on_hide_preferences\",\n SHOW_PREFERENCES = \"on_show_preferences\",\n // Preferences - Views\n PREFERENCES_CLICK_VIEW_PURPOSES = \"on_preferences_click_view_purposes\",\n PREFERENCES_CLICK_VIEW_VENDORS = \"on_preferences_click_view_vendors\",\n PREFERENCES_CLICK_VIEW_SPI_PURPOSES = \"on_preferences_click_view_spi_purposes\",\n // Preferences - Purpose\n PREFERENCES_CLICK_AGREE_TO_ALL = \"on_preferences_click_agree_to_all\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL = \"on_preferences_click_disagree_to_all\",\n PREFERENCES_CLICK_AGREE_TO_ALL_PURPOSES = \"on_preferences_click_agree_to_all_purposes\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_PURPOSES = \"on_preferences_click_disagree_to_all_purposes\",\n PREFERENCES_CLICK_RESET_ALL_PURPOSES = \"on_preferences_click_reset_all_purposes\",\n PREFERENCES_CLICK_PURPOSE_AGREE = \"on_preferences_click_purpose_agree\",\n PREFERENCES_CLICK_PURPOSE_DISAGREE = \"on_preferences_click_purpose_disagree\",\n PREFERENCES_CLICK_CATEGORY_AGREE = \"on_preferences_click_category_agree\",\n PREFERENCES_CLICK_CATEGORY_DISAGREE = \"on_preferences_click_category_disagree\",\n PREFERENCES_CLICK_SAVE_CHOICES = \"on_preferences_click_save_choices\",\n // Preferences - Vendor\n PREFERENCES_CLICK_AGREE_TO_ALL_VENDORS = \"on_preferences_click_agree_to_all_vendors\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_VENDORS = \"on_preferences_click_disagree_to_all_vendors\",\n PREFERENCES_CLICK_VENDOR_AGREE = \"on_preferences_click_vendor_agree\",\n PREFERENCES_CLICK_VENDOR_DISAGREE = \"on_preferences_click_vendor_disagree\",\n PREFERENCES_CLICK_VENDOR_SAVE_CHOICES = \"on_preferences_click_vendor_save_choices\",\n // Preferences - Sensitive Personal Information\n PREFERENCES_CLICK_SPI_PURPOSE_AGREE = \"on_preferences_click_spi_purpose_agree\",\n PREFERENCES_CLICK_SPI_PURPOSE_DISAGREE = \"on_preferences_click_spi_purpose_disagree\",\n PREFERENCES_CLICK_SPI_CATEGORY_AGREE = \"on_preferences_click_spi_category_agree\",\n PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = \"on_preferences_click_spi_category_disagree\",\n PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = \"on_preferences_click_spi_purpose_save_choices\",\n // Sync\n SYNC_READY = \"on_sync_ready\",\n SYNC_ERROR = \"on_sync_error\",\n // @deprecated use {@link #SYNC_READY} instead.\n SYNC_DONE = \"on_sync_done\",\n // Language\n LANGUAGE_UPDATED = \"on_language_updated\",\n LANGUAGE_UPDATE_FAILED = \"on_language_update_failed\",\n}\n\nexport interface Vendor {\n id: string;\n name: string;\n namespaces: VendorNamespaces;\n policyUrl: string;\n purposeIds: string[];\n flexibleIds: string[];\n legIntPurposeIds: string[];\n flexiblePurposeIds: string[];\n specialFeatureIds: string[];\n specialPurposeIds: string[];\n urls: VendorUrls[];\n}\n\nexport interface VendorNamespaces {\n iab2: string;\n}\n\nexport interface VendorUrls {\n privacy: string;\n legIntClaim: string;\n langId: string;\n}\n\nexport interface VendorDataRetention {\n stdRetention: number;\n purposes: Map<number>;\n specialPurposes: Map<number>;\n}\n\nexport interface Purpose {\n id: string;\n name: string;\n description: string;\n}\n\nexport interface Map<T> {\n [index: string]: T;\n [index: number]: T;\n}\n\nexport interface UserStatus {\n purposes: UserStatusPurposes;\n vendors: UserStatusVendors;\n user_id: string;\n created: string;\n updated: string;\n consent_string: string;\n additional_consent: string;\n didomi_dcs: string;\n regulation: string;\n}\n\nexport interface UserStatusPurposes {\n global: UserStatusIds;\n consent: UserStatusIds;\n legitimate_interest: UserStatusIds;\n essential: UserStatusIds;\n}\n\nexport interface UserStatusVendors {\n global: UserStatusIds;\n global_consent: UserStatusIds;\n global_legitimate_interest: UserStatusIds;\n consent: UserStatusIds;\n legitimate_interest: UserStatusIds;\n}\n\nexport interface UserStatusIds {\n disabled: string[];\n enabled: string[];\n}\n\nexport interface CurrentUserStatus {\n purposes: Map<PurposeStatus>;\n vendors: Map<VendorStatus>;\n user_id: string;\n created: string;\n updated: string;\n consent_string: string;\n addtl_consent: string;\n didomi_dcs: string;\n regulation: string;\n}\n\nexport interface PurposeStatus {\n id: string;\n enabled: boolean;\n}\n\nexport interface VendorStatus {\n id: string;\n enabled: boolean;\n}\n\nexport interface SyncReadyEvent {\n statusApplied: boolean;\n syncAcknowledged: () => Promise<boolean>;\n}\n"],"mappings":";;;;;;AAAA;AAAA,IACYA,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
|
package/lib/module/Constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DIDOMI_USER_AGENT_NAME","DIDOMI_VERSION"],"sources":["Constants.ts"],"sourcesContent":["// User agent name\nexport const DIDOMI_USER_AGENT_NAME = \"Didomi React-Native SDK\"\n// User agent version\nexport const DIDOMI_VERSION = \"2.
|
|
1
|
+
{"version":3,"names":["DIDOMI_USER_AGENT_NAME","DIDOMI_VERSION"],"sources":["Constants.ts"],"sourcesContent":["// User agent name\nexport const DIDOMI_USER_AGENT_NAME = \"Didomi React-Native SDK\"\n// User agent version\nexport const DIDOMI_VERSION = \"2.3.0\"\n"],"mappings":"AAAA;AACA,OAAO,MAAMA,sBAAsB,GAAG,yBAAyB;AAC/D;AACA,OAAO,MAAMC,cAAc,GAAG,OAAO","ignoreList":[]}
|
|
@@ -20,10 +20,21 @@ export const DidomiListener = {
|
|
|
20
20
|
DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);
|
|
21
21
|
DidomiListener.eventEmitter.addListener(eventTypeValue, _event => {
|
|
22
22
|
let events = DidomiListener.listeners.get(eventTypeValue);
|
|
23
|
-
if (events) {
|
|
23
|
+
if (events && events.length > 0) {
|
|
24
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
25
|
+
_event.syncAcknowledged = () => {
|
|
26
|
+
return RNDidomi.syncAcknowledged(_event.syncAcknowledgedIndex);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
24
29
|
events.forEach(el => {
|
|
25
30
|
el(_event);
|
|
26
31
|
});
|
|
32
|
+
} else {
|
|
33
|
+
// No listener for this event type
|
|
34
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
35
|
+
// We can remove syncAcknowledgedCallback as it will never be called
|
|
36
|
+
RNDidomi.removeSyncAcknowledgedCallback(_event.syncAcknowledgedIndex);
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
39
|
});
|
|
29
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","DidomiEventType","Didomi","RNDidomi","InternalEventType","DidomiListener","listeners","Map","vendorStatusListeners","eventEmitter","init","Object","values","forEach","eventTypeValue","removeAllListeners","addListener","_event","events","get","el","reset","addEventListener","eventType","callback","set","push","removeEventListener","index","indexOf","splice","setOnReadyListener","Promise","resolve","subscription","listener","remove","removeListener","READY_CALLBACK","setOnErrorListener","ERROR_CALLBACK","addVendorStatusListener","vendorId","VENDOR_STATUS_CHANGE_PREFIX","removeVendorStatusListener","undefined"],"sources":["DidomiListener.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\nimport { DidomiEventType, VendorStatus } from './DidomiTypes';\n\nconst { Didomi: RNDidomi } = NativeModules;\n\nenum InternalEventType {\n READY_CALLBACK = 'on_ready_callback',\n ERROR_CALLBACK = 'on_error_callback',\n VENDOR_STATUS_CHANGE_PREFIX = 'on_vendor_status_change_',\n}\n\nexport const DidomiListener = {\n listeners: new Map(),\n vendorStatusListeners: new Map(),\n eventEmitter: new NativeEventEmitter(RNDidomi),\n\n init: () => {\n // Register all native event listeners\n Object.values(DidomiEventType).forEach((eventTypeValue) => {\n // Remove previous listeners, as init() can be called several times in some configs\n DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);\n DidomiListener.eventEmitter.addListener(eventTypeValue, (_event: any) => {\n let events = DidomiListener.listeners.get(eventTypeValue);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n });\n },\n\n reset: () => {\n // Reset listeners\n DidomiListener.listeners = new Map();\n },\n\n addEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (!events) {\n events = [];\n DidomiListener.listeners.set(eventType, events);\n }\n events.push(callback);\n },\n\n removeEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (events) {\n var index = events.indexOf(callback);\n if (index !== -1) {\n events.splice(index, 1);\n }\n }\n },\n\n setOnReadyListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve();\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n });\n },\n\n setOnErrorListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve(_event);\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n });\n },\n\n addVendorStatusListener: (\n vendorId: string,\n callback: (vendorStatus: VendorStatus) => void\n ) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (!events) {\n events = [];\n DidomiListener.vendorStatusListeners.set(vendorId, events);\n\n DidomiListener.eventEmitter.addListener(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId, (_event: any) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n }\n events.push(callback);\n },\n\n removeVendorStatusListener: (vendorId: string) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n DidomiListener.eventEmitter.removeAllListeners(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId);\n DidomiListener.vendorStatusListeners.set(vendorId, undefined);\n }\n },\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,QAA6B,cAAc;AACrF,SAASC,eAAe,QAAsB,eAAe;AAE7D,MAAM;EAAEC,MAAM,EAAEC;AAAS,CAAC,GAAGJ,aAAa;AAAC,IAEtCK,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA,EAAjBA,iBAAiB;AAMtB,OAAO,MAAMC,cAAc,GAAG;EAC5BC,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;EACpBC,qBAAqB,EAAE,IAAID,GAAG,CAAC,CAAC;EAChCE,YAAY,EAAE,IAAIT,kBAAkB,CAACG,QAAQ,CAAC;EAE9CO,IAAI,EAAEA,CAAA,KAAM;IACV;IACAC,MAAM,CAACC,MAAM,CAACX,eAAe,CAAC,CAACY,OAAO,CAAEC,cAAc,IAAK;MACzD;MACAT,cAAc,CAACI,YAAY,CAACM,kBAAkB,CAACD,cAAc,CAAC;MAC9DT,cAAc,CAACI,YAAY,CAACO,WAAW,CAACF,cAAc,EAAGG,MAAW,IAAK;QACvE,IAAIC,MAAM,GAAGb,cAAc,CAACC,SAAS,CAACa,GAAG,CAACL,cAAc,CAAC;QACzD,IAAII,MAAM,EAAE;
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","DidomiEventType","Didomi","RNDidomi","InternalEventType","DidomiListener","listeners","Map","vendorStatusListeners","eventEmitter","init","Object","values","forEach","eventTypeValue","removeAllListeners","addListener","_event","events","get","length","syncAcknowledged","syncAcknowledgedIndex","el","removeSyncAcknowledgedCallback","reset","addEventListener","eventType","callback","set","push","removeEventListener","index","indexOf","splice","setOnReadyListener","Promise","resolve","subscription","listener","remove","removeListener","READY_CALLBACK","setOnErrorListener","ERROR_CALLBACK","addVendorStatusListener","vendorId","VENDOR_STATUS_CHANGE_PREFIX","removeVendorStatusListener","undefined"],"sources":["DidomiListener.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\nimport { DidomiEventType, VendorStatus } from './DidomiTypes';\n\nconst { Didomi: RNDidomi } = NativeModules;\n\nenum InternalEventType {\n READY_CALLBACK = 'on_ready_callback',\n ERROR_CALLBACK = 'on_error_callback',\n VENDOR_STATUS_CHANGE_PREFIX = 'on_vendor_status_change_',\n}\n\nexport const DidomiListener = {\n listeners: new Map(),\n vendorStatusListeners: new Map(),\n eventEmitter: new NativeEventEmitter(RNDidomi),\n\n init: () => {\n // Register all native event listeners\n Object.values(DidomiEventType).forEach((eventTypeValue) => {\n // Remove previous listeners, as init() can be called several times in some configs\n DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);\n DidomiListener.eventEmitter.addListener(eventTypeValue, (_event: any) => {\n let events = DidomiListener.listeners.get(eventTypeValue);\n if (events && events.length > 0) {\n if (eventTypeValue == \"on_sync_ready\") {\n _event.syncAcknowledged = (): Promise<boolean> => { \n return RNDidomi.syncAcknowledged(_event.syncAcknowledgedIndex)\n }\n }\n events.forEach((el: any) => {\n el(_event);\n });\n } else { // No listener for this event type\n if (eventTypeValue == \"on_sync_ready\") { \n // We can remove syncAcknowledgedCallback as it will never be called\n RNDidomi.removeSyncAcknowledgedCallback(_event.syncAcknowledgedIndex);\n }\n }\n });\n });\n },\n\n reset: () => {\n // Reset listeners\n DidomiListener.listeners = new Map();\n },\n\n addEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (!events) {\n events = [];\n DidomiListener.listeners.set(eventType, events);\n }\n events.push(callback);\n },\n\n removeEventListener: (\n eventType: DidomiEventType,\n callback: (data: any) => void\n ) => {\n let events = DidomiListener.listeners.get(eventType);\n if (events) {\n var index = events.indexOf(callback);\n if (index !== -1) {\n events.splice(index, 1);\n }\n }\n },\n\n setOnReadyListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve();\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.READY_CALLBACK,\n listener\n );\n });\n },\n\n setOnErrorListener: (): Promise<void> => {\n return new Promise<void>((resolve) => {\n let subscription: EmitterSubscription;\n const listener = (_event: any) => {\n resolve(_event);\n if (subscription) {\n subscription.remove();\n } else if ('removeListener' in DidomiListener.eventEmitter) {\n DidomiListener.eventEmitter.removeListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n }\n };\n subscription = DidomiListener.eventEmitter.addListener(\n InternalEventType.ERROR_CALLBACK,\n listener\n );\n });\n },\n\n addVendorStatusListener: (\n vendorId: string,\n callback: (vendorStatus: VendorStatus) => void\n ) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (!events) {\n events = [];\n DidomiListener.vendorStatusListeners.set(vendorId, events);\n\n DidomiListener.eventEmitter.addListener(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId, (_event: any) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n events.forEach((el: any) => {\n el(_event);\n });\n }\n });\n }\n events.push(callback);\n },\n\n removeVendorStatusListener: (vendorId: string) => {\n let events = DidomiListener.vendorStatusListeners.get(vendorId);\n if (events) {\n DidomiListener.eventEmitter.removeAllListeners(InternalEventType.VENDOR_STATUS_CHANGE_PREFIX + vendorId);\n DidomiListener.vendorStatusListeners.set(vendorId, undefined);\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,8 +36,9 @@ export let DidomiEventType = /*#__PURE__*/function (DidomiEventType) {
|
|
|
36
36
|
DidomiEventType["PREFERENCES_CLICK_SPI_CATEGORY_AGREE"] = "on_preferences_click_spi_category_agree";
|
|
37
37
|
DidomiEventType["PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE"] = "on_preferences_click_spi_category_disagree";
|
|
38
38
|
DidomiEventType["PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES"] = "on_preferences_click_spi_purpose_save_choices";
|
|
39
|
-
DidomiEventType["
|
|
39
|
+
DidomiEventType["SYNC_READY"] = "on_sync_ready";
|
|
40
40
|
DidomiEventType["SYNC_ERROR"] = "on_sync_error";
|
|
41
|
+
DidomiEventType["SYNC_DONE"] = "on_sync_done";
|
|
41
42
|
DidomiEventType["LANGUAGE_UPDATED"] = "on_language_updated";
|
|
42
43
|
DidomiEventType["LANGUAGE_UPDATE_FAILED"] = "on_language_update_failed";
|
|
43
44
|
return DidomiEventType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DidomiEventType"],"sources":["DidomiTypes.ts"],"sourcesContent":["// TODO\nexport enum DidomiEventType {\n // Consent\n CONSENT_CHANGED = \"on_consent_changed\",\n // SDK lifecycle events\n ERROR = \"on_error\",\n READY = \"on_ready\",\n // Notice\n HIDE_NOTICE = \"on_hide_notice\",\n SHOW_NOTICE = \"on_show_notice\",\n NOTICE_CLICK_AGREE = \"on_notice_click_agree\",\n NOTICE_CLICK_DISAGREE = \"on_notice_click_disagree\",\n NOTICE_CLICK_VIEW_VENDORS = \"on_notice_click_view_vendors\",\n NOTICE_CLICK_VIEW_SPI_PURPOSES = \"on_notice_click_view_spi_purposes\",\n NOTICE_CLICK_MORE_INFO = \"on_notice_click_more_info\",\n NOTICE_CLICK_PRIVACY_POLICY = \"on_notice_click_privacy_policy\",\n // Preferences\n HIDE_PREFERENCES = \"on_hide_preferences\",\n SHOW_PREFERENCES = \"on_show_preferences\",\n // Preferences - Views\n PREFERENCES_CLICK_VIEW_PURPOSES = \"on_preferences_click_view_purposes\",\n PREFERENCES_CLICK_VIEW_VENDORS = \"on_preferences_click_view_vendors\",\n PREFERENCES_CLICK_VIEW_SPI_PURPOSES = \"on_preferences_click_view_spi_purposes\",\n // Preferences - Purpose\n PREFERENCES_CLICK_AGREE_TO_ALL = \"on_preferences_click_agree_to_all\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL = \"on_preferences_click_disagree_to_all\",\n PREFERENCES_CLICK_AGREE_TO_ALL_PURPOSES = \"on_preferences_click_agree_to_all_purposes\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_PURPOSES = \"on_preferences_click_disagree_to_all_purposes\",\n PREFERENCES_CLICK_RESET_ALL_PURPOSES = \"on_preferences_click_reset_all_purposes\",\n PREFERENCES_CLICK_PURPOSE_AGREE = \"on_preferences_click_purpose_agree\",\n PREFERENCES_CLICK_PURPOSE_DISAGREE = \"on_preferences_click_purpose_disagree\",\n PREFERENCES_CLICK_CATEGORY_AGREE = \"on_preferences_click_category_agree\",\n PREFERENCES_CLICK_CATEGORY_DISAGREE = \"on_preferences_click_category_disagree\",\n PREFERENCES_CLICK_SAVE_CHOICES = \"on_preferences_click_save_choices\",\n // Preferences - Vendor\n PREFERENCES_CLICK_AGREE_TO_ALL_VENDORS = \"on_preferences_click_agree_to_all_vendors\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_VENDORS = \"on_preferences_click_disagree_to_all_vendors\",\n PREFERENCES_CLICK_VENDOR_AGREE = \"on_preferences_click_vendor_agree\",\n PREFERENCES_CLICK_VENDOR_DISAGREE = \"on_preferences_click_vendor_disagree\",\n PREFERENCES_CLICK_VENDOR_SAVE_CHOICES = \"on_preferences_click_vendor_save_choices\",\n // Preferences - Sensitive Personal Information\n PREFERENCES_CLICK_SPI_PURPOSE_AGREE = \"on_preferences_click_spi_purpose_agree\",\n PREFERENCES_CLICK_SPI_PURPOSE_DISAGREE = \"on_preferences_click_spi_purpose_disagree\",\n PREFERENCES_CLICK_SPI_CATEGORY_AGREE = \"on_preferences_click_spi_category_agree\",\n PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = \"on_preferences_click_spi_category_disagree\",\n PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = \"on_preferences_click_spi_purpose_save_choices\",\n // Sync\n
|
|
1
|
+
{"version":3,"names":["DidomiEventType"],"sources":["DidomiTypes.ts"],"sourcesContent":["// TODO\nexport enum DidomiEventType {\n // Consent\n CONSENT_CHANGED = \"on_consent_changed\",\n // SDK lifecycle events\n ERROR = \"on_error\",\n READY = \"on_ready\",\n // Notice\n HIDE_NOTICE = \"on_hide_notice\",\n SHOW_NOTICE = \"on_show_notice\",\n NOTICE_CLICK_AGREE = \"on_notice_click_agree\",\n NOTICE_CLICK_DISAGREE = \"on_notice_click_disagree\",\n NOTICE_CLICK_VIEW_VENDORS = \"on_notice_click_view_vendors\",\n NOTICE_CLICK_VIEW_SPI_PURPOSES = \"on_notice_click_view_spi_purposes\",\n NOTICE_CLICK_MORE_INFO = \"on_notice_click_more_info\",\n NOTICE_CLICK_PRIVACY_POLICY = \"on_notice_click_privacy_policy\",\n // Preferences\n HIDE_PREFERENCES = \"on_hide_preferences\",\n SHOW_PREFERENCES = \"on_show_preferences\",\n // Preferences - Views\n PREFERENCES_CLICK_VIEW_PURPOSES = \"on_preferences_click_view_purposes\",\n PREFERENCES_CLICK_VIEW_VENDORS = \"on_preferences_click_view_vendors\",\n PREFERENCES_CLICK_VIEW_SPI_PURPOSES = \"on_preferences_click_view_spi_purposes\",\n // Preferences - Purpose\n PREFERENCES_CLICK_AGREE_TO_ALL = \"on_preferences_click_agree_to_all\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL = \"on_preferences_click_disagree_to_all\",\n PREFERENCES_CLICK_AGREE_TO_ALL_PURPOSES = \"on_preferences_click_agree_to_all_purposes\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_PURPOSES = \"on_preferences_click_disagree_to_all_purposes\",\n PREFERENCES_CLICK_RESET_ALL_PURPOSES = \"on_preferences_click_reset_all_purposes\",\n PREFERENCES_CLICK_PURPOSE_AGREE = \"on_preferences_click_purpose_agree\",\n PREFERENCES_CLICK_PURPOSE_DISAGREE = \"on_preferences_click_purpose_disagree\",\n PREFERENCES_CLICK_CATEGORY_AGREE = \"on_preferences_click_category_agree\",\n PREFERENCES_CLICK_CATEGORY_DISAGREE = \"on_preferences_click_category_disagree\",\n PREFERENCES_CLICK_SAVE_CHOICES = \"on_preferences_click_save_choices\",\n // Preferences - Vendor\n PREFERENCES_CLICK_AGREE_TO_ALL_VENDORS = \"on_preferences_click_agree_to_all_vendors\",\n PREFERENCES_CLICK_DISAGREE_TO_ALL_VENDORS = \"on_preferences_click_disagree_to_all_vendors\",\n PREFERENCES_CLICK_VENDOR_AGREE = \"on_preferences_click_vendor_agree\",\n PREFERENCES_CLICK_VENDOR_DISAGREE = \"on_preferences_click_vendor_disagree\",\n PREFERENCES_CLICK_VENDOR_SAVE_CHOICES = \"on_preferences_click_vendor_save_choices\",\n // Preferences - Sensitive Personal Information\n PREFERENCES_CLICK_SPI_PURPOSE_AGREE = \"on_preferences_click_spi_purpose_agree\",\n PREFERENCES_CLICK_SPI_PURPOSE_DISAGREE = \"on_preferences_click_spi_purpose_disagree\",\n PREFERENCES_CLICK_SPI_CATEGORY_AGREE = \"on_preferences_click_spi_category_agree\",\n PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = \"on_preferences_click_spi_category_disagree\",\n PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = \"on_preferences_click_spi_purpose_save_choices\",\n // Sync\n SYNC_READY = \"on_sync_ready\",\n SYNC_ERROR = \"on_sync_error\",\n // @deprecated use {@link #SYNC_READY} instead.\n SYNC_DONE = \"on_sync_done\",\n // Language\n LANGUAGE_UPDATED = \"on_language_updated\",\n LANGUAGE_UPDATE_FAILED = \"on_language_update_failed\",\n}\n\nexport interface Vendor {\n id: string;\n name: string;\n namespaces: VendorNamespaces;\n policyUrl: string;\n purposeIds: string[];\n flexibleIds: string[];\n legIntPurposeIds: string[];\n flexiblePurposeIds: string[];\n specialFeatureIds: string[];\n specialPurposeIds: string[];\n urls: VendorUrls[];\n}\n\nexport interface VendorNamespaces {\n iab2: string;\n}\n\nexport interface VendorUrls {\n privacy: string;\n legIntClaim: string;\n langId: string;\n}\n\nexport interface VendorDataRetention {\n stdRetention: number;\n purposes: Map<number>;\n specialPurposes: Map<number>;\n}\n\nexport interface Purpose {\n id: string;\n name: string;\n description: string;\n}\n\nexport interface Map<T> {\n [index: string]: T;\n [index: number]: T;\n}\n\nexport interface UserStatus {\n purposes: UserStatusPurposes;\n vendors: UserStatusVendors;\n user_id: string;\n created: string;\n updated: string;\n consent_string: string;\n additional_consent: string;\n didomi_dcs: string;\n regulation: string;\n}\n\nexport interface UserStatusPurposes {\n global: UserStatusIds;\n consent: UserStatusIds;\n legitimate_interest: UserStatusIds;\n essential: UserStatusIds;\n}\n\nexport interface UserStatusVendors {\n global: UserStatusIds;\n global_consent: UserStatusIds;\n global_legitimate_interest: UserStatusIds;\n consent: UserStatusIds;\n legitimate_interest: UserStatusIds;\n}\n\nexport interface UserStatusIds {\n disabled: string[];\n enabled: string[];\n}\n\nexport interface CurrentUserStatus {\n purposes: Map<PurposeStatus>;\n vendors: Map<VendorStatus>;\n user_id: string;\n created: string;\n updated: string;\n consent_string: string;\n addtl_consent: string;\n didomi_dcs: string;\n regulation: string;\n}\n\nexport interface PurposeStatus {\n id: string;\n enabled: boolean;\n}\n\nexport interface VendorStatus {\n id: string;\n enabled: boolean;\n}\n\nexport interface SyncReadyEvent {\n statusApplied: boolean;\n syncAcknowledged: () => Promise<boolean>;\n}\n"],"mappings":"AAAA;AACA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const DIDOMI_USER_AGENT_NAME = "Didomi React-Native SDK";
|
|
2
|
-
export declare const DIDOMI_VERSION = "2.
|
|
2
|
+
export declare const DIDOMI_VERSION = "2.3.0";
|
|
@@ -35,8 +35,9 @@ export declare enum DidomiEventType {
|
|
|
35
35
|
PREFERENCES_CLICK_SPI_CATEGORY_AGREE = "on_preferences_click_spi_category_agree",
|
|
36
36
|
PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = "on_preferences_click_spi_category_disagree",
|
|
37
37
|
PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = "on_preferences_click_spi_purpose_save_choices",
|
|
38
|
-
|
|
38
|
+
SYNC_READY = "on_sync_ready",
|
|
39
39
|
SYNC_ERROR = "on_sync_error",
|
|
40
|
+
SYNC_DONE = "on_sync_done",
|
|
40
41
|
LANGUAGE_UPDATED = "on_language_updated",
|
|
41
42
|
LANGUAGE_UPDATE_FAILED = "on_language_update_failed"
|
|
42
43
|
}
|
|
@@ -122,3 +123,7 @@ export interface VendorStatus {
|
|
|
122
123
|
id: string;
|
|
123
124
|
enabled: boolean;
|
|
124
125
|
}
|
|
126
|
+
export interface SyncReadyEvent {
|
|
127
|
+
statusApplied: boolean;
|
|
128
|
+
syncAcknowledged: () => Promise<boolean>;
|
|
129
|
+
}
|
package/package.json
CHANGED
package/src/Constants.ts
CHANGED
package/src/DidomiListener.ts
CHANGED
|
@@ -21,10 +21,20 @@ export const DidomiListener = {
|
|
|
21
21
|
DidomiListener.eventEmitter.removeAllListeners(eventTypeValue);
|
|
22
22
|
DidomiListener.eventEmitter.addListener(eventTypeValue, (_event: any) => {
|
|
23
23
|
let events = DidomiListener.listeners.get(eventTypeValue);
|
|
24
|
-
if (events) {
|
|
24
|
+
if (events && events.length > 0) {
|
|
25
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
26
|
+
_event.syncAcknowledged = (): Promise<boolean> => {
|
|
27
|
+
return RNDidomi.syncAcknowledged(_event.syncAcknowledgedIndex)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
25
30
|
events.forEach((el: any) => {
|
|
26
31
|
el(_event);
|
|
27
32
|
});
|
|
33
|
+
} else { // No listener for this event type
|
|
34
|
+
if (eventTypeValue == "on_sync_ready") {
|
|
35
|
+
// We can remove syncAcknowledgedCallback as it will never be called
|
|
36
|
+
RNDidomi.removeSyncAcknowledgedCallback(_event.syncAcknowledgedIndex);
|
|
37
|
+
}
|
|
28
38
|
}
|
|
29
39
|
});
|
|
30
40
|
});
|
package/src/DidomiTypes.ts
CHANGED
|
@@ -45,8 +45,10 @@ export enum DidomiEventType {
|
|
|
45
45
|
PREFERENCES_CLICK_SPI_CATEGORY_DISAGREE = "on_preferences_click_spi_category_disagree",
|
|
46
46
|
PREFERENCES_CLICK_SPI_PURPOSE_SAVE_CHOICES = "on_preferences_click_spi_purpose_save_choices",
|
|
47
47
|
// Sync
|
|
48
|
-
|
|
48
|
+
SYNC_READY = "on_sync_ready",
|
|
49
49
|
SYNC_ERROR = "on_sync_error",
|
|
50
|
+
// @deprecated use {@link #SYNC_READY} instead.
|
|
51
|
+
SYNC_DONE = "on_sync_done",
|
|
50
52
|
// Language
|
|
51
53
|
LANGUAGE_UPDATED = "on_language_updated",
|
|
52
54
|
LANGUAGE_UPDATE_FAILED = "on_language_update_failed",
|
|
@@ -146,3 +148,8 @@ export interface VendorStatus {
|
|
|
146
148
|
id: string;
|
|
147
149
|
enabled: boolean;
|
|
148
150
|
}
|
|
151
|
+
|
|
152
|
+
export interface SyncReadyEvent {
|
|
153
|
+
statusApplied: boolean;
|
|
154
|
+
syncAcknowledged: () => Promise<boolean>;
|
|
155
|
+
}
|