@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.
@@ -124,5 +124,5 @@ dependencies {
124
124
 
125
125
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
126
126
 
127
- implementation "io.didomi.sdk:android:2.4.0"
127
+ implementation "io.didomi.sdk:android:2.6.0"
128
128
  }
@@ -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
@@ -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.2.0";
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.2.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":[]}
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;UACVA,MAAM,CAACL,OAAO,CAAEO,EAAO,IAAK;YAC1BA,EAAE,CAACH,MAAM,CAAC;UACZ,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EAEDI,KAAK,EAAEA,CAAA,KAAM;IACX;IACAnB,cAAc,CAACE,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;EACtC,CAAC;EAEDiB,gBAAgB,EAAEA,CAChBC,SAA0B,EAC1BC,QAA6B,KAC1B;IACH,IAAIN,MAAM,GAAGhB,cAAc,CAACE,SAAS,CAACe,GAAG,CAACI,SAAS,CAAC;IACpD,IAAI,CAACL,MAAM,EAAE;MACXA,MAAM,GAAG,EAAE;MACXhB,cAAc,CAACE,SAAS,CAACqB,GAAG,CAACF,SAAS,EAAEL,MAAM,CAAC;IACjD;IACAA,MAAM,CAACQ,IAAI,CAACF,QAAQ,CAAC;EACvB,CAAC;EAEDG,mBAAmB,EAAEA,CACnBJ,SAA0B,EAC1BC,QAA6B,KAC1B;IACH,IAAIN,MAAM,GAAGhB,cAAc,CAACE,SAAS,CAACe,GAAG,CAACI,SAAS,CAAC;IACpD,IAAIL,MAAM,EAAE;MACV,IAAIU,KAAK,GAAGV,MAAM,CAACW,OAAO,CAACL,QAAQ,CAAC;MACpC,IAAII,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBV,MAAM,CAACY,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MACzB;IACF;EACF,CAAC;EAEDG,kBAAkB,EAAEA,CAAA,KAAqB;IACvC,OAAO,IAAIC,OAAO,CAAQC,OAAO,IAAK;MACpC,IAAIC,YAAiC;MACrC,MAAMC,QAAQ,GAAIlB,MAAW,IAAK;QAChCgB,OAAO,CAAC,CAAC;QACT,IAAIC,YAAY,EAAE;UAChBA,YAAY,CAACE,MAAM,CAAC,CAAC;QACvB,CAAC,MAAM,IAAI,gBAAgB,IAAIlC,cAAc,CAACK,YAAY,EAAE;UAC1DL,cAAc,CAACK,YAAY,CAAC8B,cAAc,CACxCpC,iBAAiB,CAACqC,cAAc,EAChCH,QACF,CAAC;QACH;MACF,CAAC;MACDD,YAAY,GAAGhC,cAAc,CAACK,YAAY,CAACS,WAAW,CACpDf,iBAAiB,CAACqC,cAAc,EAChCH,QACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEDI,kBAAkB,EAAEA,CAAA,KAAqB;IACvC,OAAO,IAAIP,OAAO,CAAQC,OAAO,IAAK;MACpC,IAAIC,YAAiC;MACrC,MAAMC,QAAQ,GAAIlB,MAAW,IAAK;QAChCgB,OAAO,CAAChB,MAAM,CAAC;QACf,IAAIiB,YAAY,EAAE;UAChBA,YAAY,CAACE,MAAM,CAAC,CAAC;QACvB,CAAC,MAAM,IAAI,gBAAgB,IAAIlC,cAAc,CAACK,YAAY,EAAE;UAC1DL,cAAc,CAACK,YAAY,CAAC8B,cAAc,CACxCpC,iBAAiB,CAACuC,cAAc,EAChCL,QACF,CAAC;QACH;MACF,CAAC;MACDD,YAAY,GAAGhC,cAAc,CAACK,YAAY,CAACS,WAAW,CACpDf,iBAAiB,CAACuC,cAAc,EAChCL,QACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEDM,uBAAuB,EAAEA,CACvBC,QAAgB,EAChBlB,QAA8C,KAC3C;IACH,IAAIN,MAAM,GAAGhB,cAAc,CAACI,qBAAqB,CAACa,GAAG,CAACuB,QAAQ,CAAC;IAC/D,IAAI,CAACxB,MAAM,EAAE;MACXA,MAAM,GAAG,EAAE;MACXhB,cAAc,CAACI,qBAAqB,CAACmB,GAAG,CAACiB,QAAQ,EAAExB,MAAM,CAAC;MAE1DhB,cAAc,CAACK,YAAY,CAACS,WAAW,CAACf,iBAAiB,CAAC0C,2BAA2B,GAAGD,QAAQ,EAAGzB,MAAW,IAAK;QACjH,IAAIC,MAAM,GAAGhB,cAAc,CAACI,qBAAqB,CAACa,GAAG,CAACuB,QAAQ,CAAC;QAC/D,IAAIxB,MAAM,EAAE;UACVA,MAAM,CAACL,OAAO,CAAEO,EAAO,IAAK;YAC1BA,EAAE,CAACH,MAAM,CAAC;UACZ,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;IACAC,MAAM,CAACQ,IAAI,CAACF,QAAQ,CAAC;EACvB,CAAC;EAEDoB,0BAA0B,EAAGF,QAAgB,IAAK;IAChD,IAAIxB,MAAM,GAAGhB,cAAc,CAACI,qBAAqB,CAACa,GAAG,CAACuB,QAAQ,CAAC;IAC/D,IAAIxB,MAAM,EAAE;MACVhB,cAAc,CAACK,YAAY,CAACQ,kBAAkB,CAACd,iBAAiB,CAAC0C,2BAA2B,GAAGD,QAAQ,CAAC;MACxGxC,cAAc,CAACI,qBAAqB,CAACmB,GAAG,CAACiB,QAAQ,EAAEG,SAAS,CAAC;IAC/D;EACF;AACF,CAAC","ignoreList":[]}
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["SYNC_DONE"] = "on_sync_done";
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 SYNC_DONE = \"on_sync_done\",\n SYNC_ERROR = \"on_sync_error\",\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"],"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;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
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":[]}
@@ -1,5 +1,5 @@
1
1
  // User agent name
2
2
  export const DIDOMI_USER_AGENT_NAME = "Didomi React-Native SDK";
3
3
  // User agent version
4
- export const DIDOMI_VERSION = "2.2.0";
4
+ export const DIDOMI_VERSION = "2.3.0";
5
5
  //# sourceMappingURL=Constants.js.map
@@ -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.2.0\"\n"],"mappings":"AAAA;AACA,OAAO,MAAMA,sBAAsB,GAAG,yBAAyB;AAC/D;AACA,OAAO,MAAMC,cAAc,GAAG,OAAO","ignoreList":[]}
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":"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","ignoreList":[]}
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["SYNC_DONE"] = "on_sync_done";
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 SYNC_DONE = \"on_sync_done\",\n SYNC_ERROR = \"on_sync_error\",\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"],"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;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
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.0";
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
- SYNC_DONE = "on_sync_done",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@didomi/react-native",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Didomi React Native SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -16,5 +16,5 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm,swift}"
17
17
 
18
18
  s.dependency "React-Core"
19
- s.dependency "Didomi-XCFramework", "2.4.0"
19
+ s.dependency "Didomi-XCFramework", "2.6.0"
20
20
  end
package/src/Constants.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  // User agent name
2
2
  export const DIDOMI_USER_AGENT_NAME = "Didomi React-Native SDK"
3
3
  // User agent version
4
- export const DIDOMI_VERSION = "2.2.0"
4
+ export const DIDOMI_VERSION = "2.3.0"
@@ -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
  });
@@ -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
- SYNC_DONE = "on_sync_done",
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
+ }