@attentive-mobile/attentive-react-native-sdk 2.0.0-beta.3 → 2.0.0-beta.4

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.
@@ -85,6 +85,10 @@ dependencies {
85
85
  implementation 'com.attentive:attentive-android-sdk:1.0.1'
86
86
  implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.10"
87
87
  implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.9.10"))
88
+
89
+ // OkHttp for networking debugging (optional, only used when debugging is enabled)
90
+ implementation "com.squareup.okhttp3:okhttp:4.12.0"
91
+ implementation "com.squareup.okhttp3:logging-interceptor:4.12.0"
88
92
  }
89
93
 
90
94
  if (isNewArchitectureEnabled()) {
@@ -22,6 +22,7 @@ import com.facebook.react.bridge.ReadableArray
22
22
  import com.facebook.react.bridge.ReadableMap
23
23
  import com.facebook.react.bridge.UiThreadUtil
24
24
  import com.facebook.react.bridge.Promise
25
+ import com.facebook.react.bridge.Callback
25
26
  import com.attentivereactnativesdk.debug.AttentiveDebugHelper
26
27
  import java.math.BigDecimal
27
28
  import java.security.InvalidParameterException
@@ -236,69 +237,356 @@ class AttentiveReactNativeSdkModule(reactContext: ReactApplicationContext) :
236
237
  }
237
238
 
238
239
  // ==========================================================================
239
- // MARK: - Push Notification Methods (Android Implementation - TODO)
240
+ // MARK: - Push Notification Methods (Android Implementation)
240
241
  // ==========================================================================
241
242
  //
242
- // These methods are stubs for Android push notification support.
243
- // Android push notifications typically use Firebase Cloud Messaging (FCM)
244
- // and require different handling than iOS APNs.
243
+ // These methods provide Android push notification support.
244
+ //
245
+ // IMPORTANT NOTE: The Attentive Android SDK version 1.0.1 has limited push notification
246
+ // support compared to version 2.x. These methods provide logging and debugging infrastructure
247
+ // but may require SDK upgrade or custom implementation for full functionality.
245
248
  //
246
- // TODO: Implement Android push notification support
247
- // - Integrate with Firebase Cloud Messaging (FCM)
248
- // - Register FCM token with Attentive backend
249
- // - Handle push notification opens and foreground notifications
250
- // - Consider using the attentive-android-sdk's push notification features if available
251
- //
252
- // Reference: The iOS implementation uses:
253
- // - registerForPushNotifications() - Request permission
254
- // - registerDeviceToken() - Send token to backend
255
- // - handlePushOpened() - Track push open events
256
- // - handleForegroundNotification() - Handle foreground push display
249
+ // The iOS implementation uses APNs; Android uses Firebase Cloud Messaging (FCM).
257
250
  // ==========================================================================
258
251
 
259
252
  /**
260
253
  * Request push notification permission from the user.
261
254
  *
262
- * TODO: Implement for Android
263
- * - For Android 13+ (API 33+), request POST_NOTIFICATIONS permission
264
- * - For older versions, permissions are granted at install time
265
- * - Initialize FCM and get the registration token
255
+ * Note: For Android 13+ (API 33+), you need to request POST_NOTIFICATIONS permission
256
+ * in your app's AndroidManifest.xml and request it at runtime.
257
+ * For older versions, permissions are granted at install time.
258
+ *
259
+ * This method is currently a logging placeholder for parity with iOS.
260
+ * Actual permission handling should be done in the host app.
266
261
  */
267
262
  override fun registerForPushNotifications() {
268
- Log.i(TAG, "[TODO] registerForPushNotifications called - Android implementation pending")
269
- // TODO: Implement Android push notification registration
270
- // 1. Check/request POST_NOTIFICATIONS permission (Android 13+)
271
- // 2. Initialize Firebase Cloud Messaging
272
- // 3. Get FCM registration token
273
- // 4. Register token with Attentive backend
263
+ Log.i(TAG, "📱 [AttentiveSDK] registerForPushNotifications called (Android)")
264
+ Log.i(TAG, " Note: Push notification permissions should be requested in your host app")
265
+ Log.i(TAG, " For Android 13+, request POST_NOTIFICATIONS permission at runtime")
266
+
267
+ if (debugHelper.isDebuggingEnabled()) {
268
+ val debugData = mutableMapOf<String, Any>()
269
+ debugData["platform"] = "Android"
270
+ debugData["sdk_version"] = "1.0.1"
271
+ debugData["note"] = "Permission handling should be done in host app"
272
+ debugHelper.showDebugInfo("Push Registration Requested", debugData)
273
+ }
274
274
  }
275
275
 
276
276
  /**
277
- * Register the device token with the Attentive backend.
277
+ * Register the device token (FCM token) with the Attentive backend.
278
278
  *
279
- * TODO: Implement for Android
280
- * - Android uses FCM tokens instead of APNs tokens
281
- * - Token format and registration endpoint may differ
279
+ * This method attempts to register the FCM push token with the Attentive SDK.
280
+ * Note: The exact API for push token registration may vary by SDK version.
282
281
  *
283
- * @param token The FCM registration token
284
- * @param authorizationStatus Push authorization status (may not apply to Android)
282
+ * @param token The FCM registration token from Firebase
283
+ * @param authorizationStatus Push authorization status (used for consistency with iOS)
285
284
  */
286
285
  override fun registerDeviceToken(token: String, authorizationStatus: String) {
287
- Log.i(TAG, "[TODO] registerDeviceToken called - Android implementation pending")
288
- Log.d(TAG, "Token: ${token.take(16)}..., Status: $authorizationStatus")
289
- // TODO: Implement Android device token registration
290
- // 1. Send FCM token to Attentive backend
291
- // 2. Handle token refresh via FirebaseMessagingService.onNewToken()
286
+ Log.i(TAG, "🎫 [AttentiveSDK] registerDeviceToken called (Android)")
287
+ Log.i(TAG, " Token (preview): ${token.take(16)}...")
288
+ Log.i(TAG, " Token length: ${token.length}")
289
+ Log.i(TAG, " Authorization status: $authorizationStatus")
290
+
291
+ try {
292
+ // Note: Attentive Android SDK 1.0.1 may not have direct push token registration
293
+ // For SDK version 2.x, use: AttentiveConfig.setDeviceToken() or similar
294
+ // For now, we log the token and make it available for custom implementation
295
+
296
+ Log.i(TAG, "⚠️ [AttentiveSDK] Push token registration requires manual implementation")
297
+ Log.i(TAG, " FCM token available: ${token.take(16)}...")
298
+ Log.i(TAG, " Store this token and register it with Attentive backend manually")
299
+ Log.i(TAG, " Or upgrade to Attentive Android SDK 2.x for built-in support")
300
+
301
+ if (debugHelper.isDebuggingEnabled()) {
302
+ val debugData = mutableMapOf<String, Any>()
303
+ debugData["token_preview"] = "${token.take(16)}..."
304
+ debugData["token_length"] = token.length.toString()
305
+ debugData["authorization_status"] = authorizationStatus
306
+ debugData["sdk_version"] = "1.0.1"
307
+ debugData["implementation_status"] = "manual_required"
308
+ debugHelper.showDebugInfo("Device Token (Android)", debugData)
309
+ }
310
+ } catch (e: Exception) {
311
+ Log.e(TAG, "❌ [AttentiveSDK] Error in registerDeviceToken: ${e.message}", e)
312
+
313
+ if (debugHelper.isDebuggingEnabled()) {
314
+ val debugData = mutableMapOf<String, Any>()
315
+ debugData["error"] = e.message ?: "Unknown error"
316
+ debugData["error_type"] = e.javaClass.simpleName
317
+ debugHelper.showDebugInfo("Device Token Registration Error", debugData)
318
+ }
319
+ }
320
+ }
321
+
322
+ /**
323
+ * Register the device token with callback for network response tracking.
324
+ *
325
+ * Note: The Android SDK version 1.0.1 doesn't provide a callback mechanism for
326
+ * push token registration. This method logs the token and invokes the callback
327
+ * immediately for consistency with the iOS API.
328
+ *
329
+ * @param token The FCM registration token
330
+ * @param authorizationStatus Push authorization status
331
+ * @param callback Callback invoked after registration attempt
332
+ */
333
+ override fun registerDeviceTokenWithCallback(
334
+ token: String,
335
+ authorizationStatus: String,
336
+ callback: Callback
337
+ ) {
338
+ Log.i(TAG, "🎫 [AttentiveSDK] registerDeviceTokenWithCallback called (Android)")
339
+ Log.i(TAG, " Token (preview): ${token.take(16)}...")
340
+ Log.i(TAG, " Authorization status: $authorizationStatus")
341
+
342
+ try {
343
+ // Register using the standard method (which logs the token)
344
+ registerDeviceToken(token, authorizationStatus)
345
+
346
+ // Invoke callback immediately with success response
347
+ val responseData = mapOf(
348
+ "success" to true,
349
+ "token" to "${token.take(16)}...",
350
+ "platform" to "Android",
351
+ "sdk_version" to "1.0.1",
352
+ "note" to "Manual push token registration required"
353
+ )
354
+
355
+ // Invoke callback with: data, url, response, error
356
+ callback.invoke(
357
+ responseData, // data
358
+ null, // url (not available in Android SDK)
359
+ mapOf("statusCode" to 200), // response
360
+ null // error
361
+ )
362
+
363
+ Log.i(TAG, "📥 [AttentiveSDK] Callback invoked with success response")
364
+
365
+ if (debugHelper.isDebuggingEnabled()) {
366
+ val debugData = mutableMapOf<String, Any>()
367
+ debugData["token_preview"] = "${token.take(16)}..."
368
+ debugData["authorization_status"] = authorizationStatus
369
+ debugData["callback_invoked"] = "true"
370
+ debugHelper.showDebugInfo("Device Token (with callback)", debugData)
371
+ }
372
+ } catch (e: Exception) {
373
+ Log.e(TAG, "❌ [AttentiveSDK] Error in registerDeviceTokenWithCallback: ${e.message}", e)
374
+
375
+ val errorData = mapOf(
376
+ "code" to 0,
377
+ "message" to (e.message ?: "Unknown error"),
378
+ "type" to e.javaClass.simpleName
379
+ )
380
+
381
+ // Invoke callback with error
382
+ callback.invoke(null, null, null, errorData)
383
+
384
+ if (debugHelper.isDebuggingEnabled()) {
385
+ val debugData = mutableMapOf<String, Any>()
386
+ debugData["error"] = e.message ?: "Unknown error"
387
+ debugData["error_type"] = e.javaClass.simpleName
388
+ debugHelper.showDebugInfo("Device Token Error (callback)", debugData)
389
+ }
390
+ }
391
+ }
392
+
393
+ /**
394
+ * Handle regular/direct app open (not from a push notification).
395
+ *
396
+ * This tracks app open events using the Attentive SDK's event tracking system.
397
+ *
398
+ * @param authorizationStatus Current push authorization status
399
+ */
400
+ override fun handleRegularOpen(authorizationStatus: String) {
401
+ Log.i(TAG, "🌉 [AttentiveSDK] handleRegularOpen called (Android)")
402
+ Log.i(TAG, " Authorization status: $authorizationStatus")
403
+ Log.i(TAG, " Tracking regular app open event...")
404
+
405
+ try {
406
+ // Attentive Android SDK 1.0.1 doesn't have a built-in handleRegularOpen method
407
+ // We can track this as a custom event or use AttentiveEventTracker
408
+
409
+ // Option 1: Track as custom event
410
+ val properties = mapOf(
411
+ "event_type" to "app_open",
412
+ "authorization_status" to authorizationStatus,
413
+ "platform" to "Android"
414
+ )
415
+
416
+ try {
417
+ val customEvent = com.attentive.androidsdk.events.CustomEvent.Builder(
418
+ "app_open",
419
+ properties
420
+ ).build()
421
+
422
+ AttentiveEventTracker.getInstance().recordEvent(customEvent)
423
+
424
+ Log.i(TAG, "✅ [AttentiveSDK] handleRegularOpen completed (tracked as custom event)")
425
+ Log.i(TAG, " Event sent to Attentive backend")
426
+ } catch (e: Exception) {
427
+ Log.w(TAG, "⚠️ [AttentiveSDK] Could not track app open as custom event: ${e.message}")
428
+ Log.i(TAG, " App open tracking requires manual implementation or SDK upgrade")
429
+ }
430
+
431
+ if (debugHelper.isDebuggingEnabled()) {
432
+ val debugData = mutableMapOf<String, Any>()
433
+ debugData["authorization_status"] = authorizationStatus
434
+ debugData["event_type"] = "regular_open"
435
+ debugData["platform"] = "Android"
436
+ debugData["sdk_version"] = "1.0.1"
437
+ debugHelper.showDebugInfo("Regular Open Event", debugData)
438
+ }
439
+ } catch (e: Exception) {
440
+ Log.e(TAG, "❌ [AttentiveSDK] Error in handleRegularOpen: ${e.message}", e)
441
+
442
+ if (debugHelper.isDebuggingEnabled()) {
443
+ val debugData = mutableMapOf<String, Any>()
444
+ debugData["error"] = e.message ?: "Unknown error"
445
+ debugData["error_type"] = e.javaClass.simpleName
446
+ debugHelper.showDebugInfo("Regular Open Error", debugData)
447
+ }
448
+ }
449
+ }
450
+
451
+ /**
452
+ * Handle when a push notification is opened by the user (app in background/inactive state).
453
+ *
454
+ * This tracks push notification open events using the Attentive SDK's event tracking system.
455
+ *
456
+ * @param userInfo The notification payload
457
+ * @param authorizationStatus Current push authorization status
458
+ */
459
+ override fun handlePushOpen(userInfo: ReadableMap, authorizationStatus: String) {
460
+ Log.i(TAG, "🔔 [AttentiveSDK] handlePushOpen called (Android)")
461
+ Log.i(TAG, " Authorization status: $authorizationStatus")
462
+ Log.i(TAG, " User opened push notification while app was in background/inactive")
463
+
464
+ try {
465
+ // Convert ReadableMap to HashMap for processing
466
+ val payload = userInfo.toHashMap()
467
+
468
+ Log.d(TAG, " Notification payload: $payload")
469
+
470
+ // Track push open as custom event
471
+ val properties = mutableMapOf<String, String>()
472
+ properties["event_type"] = "push_open"
473
+ properties["authorization_status"] = authorizationStatus
474
+ properties["platform"] = "Android"
475
+
476
+ // Add notification payload to properties (converting to strings)
477
+ payload.forEach { (key, value) ->
478
+ properties["notification_$key"] = value?.toString() ?: "null"
479
+ }
480
+
481
+ try {
482
+ val customEvent = com.attentive.androidsdk.events.CustomEvent.Builder(
483
+ "push_open",
484
+ properties
485
+ ).build()
486
+
487
+ AttentiveEventTracker.getInstance().recordEvent(customEvent)
488
+
489
+ Log.i(TAG, "✅ [AttentiveSDK] handlePushOpen completed (tracked as custom event)")
490
+ Log.i(TAG, " Push open event sent to Attentive backend")
491
+ } catch (e: Exception) {
492
+ Log.w(TAG, "⚠️ [AttentiveSDK] Could not track push open as custom event: ${e.message}")
493
+ Log.i(TAG, " Push open tracking requires manual implementation or SDK upgrade")
494
+ }
495
+
496
+ if (debugHelper.isDebuggingEnabled()) {
497
+ val debugData = mutableMapOf<String, Any>()
498
+ debugData["authorization_status"] = authorizationStatus
499
+ debugData["event_type"] = "push_open"
500
+ debugData["platform"] = "Android"
501
+ debugData["payload_keys"] = payload.keys.joinToString(", ")
502
+ debugData["sdk_version"] = "1.0.1"
503
+ debugHelper.showDebugInfo("Push Open Event", debugData)
504
+ }
505
+ } catch (e: Exception) {
506
+ Log.e(TAG, "❌ [AttentiveSDK] Error in handlePushOpen: ${e.message}", e)
507
+
508
+ if (debugHelper.isDebuggingEnabled()) {
509
+ val debugData = mutableMapOf<String, Any>()
510
+ debugData["error"] = e.message ?: "Unknown error"
511
+ debugData["error_type"] = e.javaClass.simpleName
512
+ debugHelper.showDebugInfo("Push Open Error", debugData)
513
+ }
514
+ }
292
515
  }
293
516
 
294
517
  /**
295
- * Handle when a push notification is opened by the user.
518
+ * Handle a push notification when the app is in the foreground (active state).
296
519
  *
297
- * TODO: Implement for Android
298
- * - Track push open events with Attentive
299
- * - Handle deep linking if present in payload
520
+ * This tracks foreground push notification events using the Attentive SDK's event tracking system.
300
521
  *
301
- * @param userInfo The notification payload (from FCM RemoteMessage data)
522
+ * @param userInfo The notification payload
523
+ * @param authorizationStatus Current push authorization status
524
+ */
525
+ override fun handleForegroundPush(userInfo: ReadableMap, authorizationStatus: String) {
526
+ Log.i(TAG, "📱 [AttentiveSDK] handleForegroundPush called (Android)")
527
+ Log.i(TAG, " Authorization status: $authorizationStatus")
528
+ Log.i(TAG, " Push received while app was in foreground (active)")
529
+
530
+ try {
531
+ // Convert ReadableMap to HashMap for processing
532
+ val payload = userInfo.toHashMap()
533
+
534
+ Log.d(TAG, " Notification payload: $payload")
535
+
536
+ // Track foreground push as custom event
537
+ val properties = mutableMapOf<String, String>()
538
+ properties["event_type"] = "foreground_push"
539
+ properties["authorization_status"] = authorizationStatus
540
+ properties["platform"] = "Android"
541
+
542
+ // Add notification payload to properties (converting to strings)
543
+ payload.forEach { (key, value) ->
544
+ properties["notification_$key"] = value?.toString() ?: "null"
545
+ }
546
+
547
+ try {
548
+ val customEvent = com.attentive.androidsdk.events.CustomEvent.Builder(
549
+ "foreground_push",
550
+ properties
551
+ ).build()
552
+
553
+ AttentiveEventTracker.getInstance().recordEvent(customEvent)
554
+
555
+ Log.i(TAG, "✅ [AttentiveSDK] handleForegroundPush completed (tracked as custom event)")
556
+ Log.i(TAG, " Foreground push event sent to Attentive backend")
557
+ } catch (e: Exception) {
558
+ Log.w(TAG, "⚠️ [AttentiveSDK] Could not track foreground push as custom event: ${e.message}")
559
+ Log.i(TAG, " Foreground push tracking requires manual implementation or SDK upgrade")
560
+ }
561
+
562
+ if (debugHelper.isDebuggingEnabled()) {
563
+ val debugData = mutableMapOf<String, Any>()
564
+ debugData["authorization_status"] = authorizationStatus
565
+ debugData["event_type"] = "foreground_push"
566
+ debugData["platform"] = "Android"
567
+ debugData["payload_keys"] = payload.keys.joinToString(", ")
568
+ debugData["sdk_version"] = "1.0.1"
569
+ debugHelper.showDebugInfo("Foreground Push Event", debugData)
570
+ }
571
+ } catch (e: Exception) {
572
+ Log.e(TAG, "❌ [AttentiveSDK] Error in handleForegroundPush: ${e.message}", e)
573
+
574
+ if (debugHelper.isDebuggingEnabled()) {
575
+ val debugData = mutableMapOf<String, Any>()
576
+ debugData["error"] = e.message ?: "Unknown error"
577
+ debugData["error_type"] = e.javaClass.simpleName
578
+ debugHelper.showDebugInfo("Foreground Push Error", debugData)
579
+ }
580
+ }
581
+ }
582
+
583
+ /**
584
+ * Handle when a push notification is opened by the user (legacy method).
585
+ *
586
+ * This is kept for backward compatibility with the iOS implementation.
587
+ * For new code, prefer using handlePushOpen or handleForegroundPush based on app state.
588
+ *
589
+ * @param userInfo The notification payload
302
590
  * @param applicationState App state when notification was opened
303
591
  * @param authorizationStatus Push authorization status
304
592
  */
@@ -307,30 +595,42 @@ class AttentiveReactNativeSdkModule(reactContext: ReactApplicationContext) :
307
595
  applicationState: String,
308
596
  authorizationStatus: String
309
597
  ) {
310
- Log.i(TAG, "[TODO] handlePushOpened called - Android implementation pending")
311
- Log.d(TAG, "App state: $applicationState, Auth status: $authorizationStatus")
312
- // TODO: Implement Android push open tracking
313
- // 1. Parse notification payload
314
- // 2. Send push open event to Attentive backend
315
- // 3. Handle any deep links in the payload
598
+ Log.i(TAG, "🔔 [AttentiveSDK] handlePushOpened called (Android - legacy method)")
599
+ Log.i(TAG, " App state: $applicationState")
600
+ Log.i(TAG, " Authorization status: $authorizationStatus")
601
+
602
+ // Route to the appropriate method based on application state
603
+ when (applicationState.lowercase()) {
604
+ "active" -> {
605
+ Log.i(TAG, " Routing to handleForegroundPush")
606
+ handleForegroundPush(userInfo, authorizationStatus)
607
+ }
608
+ "background", "inactive" -> {
609
+ Log.i(TAG, " Routing to handlePushOpen")
610
+ handlePushOpen(userInfo, authorizationStatus)
611
+ }
612
+ else -> {
613
+ Log.w(TAG, " Unknown application state, defaulting to handlePushOpen")
614
+ handlePushOpen(userInfo, authorizationStatus)
615
+ }
616
+ }
316
617
  }
317
618
 
318
619
  /**
319
- * Handle when a push notification arrives while the app is in foreground.
620
+ * Handle when a push notification arrives while the app is in foreground (legacy method).
320
621
  *
321
- * TODO: Implement for Android
322
- * - Android handles foreground notifications differently than iOS
323
- * - By default, FCM data messages don't show UI in foreground
324
- * - Need to create NotificationCompat.Builder to show notification
622
+ * This is kept for backward compatibility with the iOS implementation.
623
+ * For new code, prefer using handleForegroundPush.
325
624
  *
326
625
  * @param userInfo The notification payload
327
626
  */
328
627
  override fun handleForegroundNotification(userInfo: ReadableMap) {
329
- Log.i(TAG, "[TODO] handleForegroundNotification called - Android implementation pending")
330
- // TODO: Implement Android foreground notification handling
331
- // 1. Create notification channel (required for Android 8+)
332
- // 2. Build and display notification using NotificationCompat
333
- // 3. Track foreground notification event with Attentive
628
+ Log.i(TAG, "📱 [AttentiveSDK] handleForegroundNotification called (Android - legacy method)")
629
+ Log.i(TAG, " Routing to handleForegroundPush with default authorization status")
630
+
631
+ // Route to handleForegroundPush with a default authorization status
632
+ // Note: Authorization status is less relevant on Android than iOS
633
+ handleForegroundPush(userInfo, "authorized")
334
634
  }
335
635
 
336
636
  private fun convertToStringMap(inputMap: Map<String, Any?>): Map<String, String> {
@@ -0,0 +1,220 @@
1
+ package com.attentivereactnativesdk.debug
2
+
3
+ import android.util.Log
4
+ import okhttp3.*
5
+ import okhttp3.logging.HttpLoggingInterceptor
6
+ import java.io.IOException
7
+ import java.util.concurrent.TimeUnit
8
+
9
+ /**
10
+ * Networking helper for debugging HTTP requests made by the Attentive SDK.
11
+ *
12
+ * This class provides:
13
+ * - HTTP request/response logging
14
+ * - Network call tracking for debugging
15
+ * - Integration with the debug overlay
16
+ *
17
+ * Note: This is for debugging purposes only and should be disabled in production builds.
18
+ */
19
+ class NetworkingHelper(private val debugHelper: AttentiveDebugHelper) {
20
+
21
+ companion object {
22
+ private const val TAG = "AttentiveNetworking"
23
+
24
+ /**
25
+ * Creates an OkHttpClient with logging interceptor for debugging network calls.
26
+ * This can be used to wrap network requests and log all traffic.
27
+ *
28
+ * @param enableLogging Whether to enable detailed HTTP logging
29
+ * @return Configured OkHttpClient instance
30
+ */
31
+ fun createDebugClient(enableLogging: Boolean = true): OkHttpClient {
32
+ val builder = OkHttpClient.Builder()
33
+ .connectTimeout(30, TimeUnit.SECONDS)
34
+ .readTimeout(30, TimeUnit.SECONDS)
35
+ .writeTimeout(30, TimeUnit.SECONDS)
36
+
37
+ if (enableLogging) {
38
+ val loggingInterceptor = HttpLoggingInterceptor { message ->
39
+ Log.d(TAG, "🌐 [HTTP] $message")
40
+ }.apply {
41
+ level = HttpLoggingInterceptor.Level.BODY
42
+ }
43
+
44
+ builder.addInterceptor(loggingInterceptor)
45
+ }
46
+
47
+ return builder.build()
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Logs a network request for debugging purposes.
53
+ *
54
+ * @param url The request URL
55
+ * @param method The HTTP method (GET, POST, etc.)
56
+ * @param headers Request headers
57
+ * @param body Request body (if any)
58
+ */
59
+ fun logRequest(
60
+ url: String,
61
+ method: String,
62
+ headers: Map<String, String>? = null,
63
+ body: String? = null
64
+ ) {
65
+ Log.i(TAG, "📤 [Network Request]")
66
+ Log.i(TAG, " Method: $method")
67
+ Log.i(TAG, " URL: $url")
68
+
69
+ headers?.let {
70
+ Log.d(TAG, " Headers:")
71
+ it.forEach { (key, value) ->
72
+ Log.d(TAG, " $key: $value")
73
+ }
74
+ }
75
+
76
+ body?.let {
77
+ Log.d(TAG, " Body: $it")
78
+ }
79
+
80
+ if (debugHelper.isDebuggingEnabled()) {
81
+ val debugData = mutableMapOf<String, Any>()
82
+ debugData["request_method"] = method
83
+ debugData["request_url"] = url
84
+ headers?.let { debugData["headers_count"] = it.size.toString() }
85
+ body?.let { debugData["body_length"] = it.length.toString() }
86
+
87
+ debugHelper.showDebugInfo("Network Request", debugData)
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Logs a network response for debugging purposes.
93
+ *
94
+ * @param url The request URL
95
+ * @param statusCode HTTP status code
96
+ * @param headers Response headers
97
+ * @param body Response body (if any)
98
+ * @param durationMs Request duration in milliseconds
99
+ */
100
+ fun logResponse(
101
+ url: String,
102
+ statusCode: Int,
103
+ headers: Map<String, String>? = null,
104
+ body: String? = null,
105
+ durationMs: Long? = null
106
+ ) {
107
+ val statusEmoji = when {
108
+ statusCode in 200..299 -> "✅"
109
+ statusCode in 300..399 -> "↪️"
110
+ statusCode in 400..499 -> "⚠️"
111
+ statusCode >= 500 -> "❌"
112
+ else -> "❓"
113
+ }
114
+
115
+ Log.i(TAG, "📥 [Network Response] $statusEmoji")
116
+ Log.i(TAG, " URL: $url")
117
+ Log.i(TAG, " Status: $statusCode")
118
+ durationMs?.let { Log.i(TAG, " Duration: ${it}ms") }
119
+
120
+ headers?.let {
121
+ Log.d(TAG, " Headers:")
122
+ it.forEach { (key, value) ->
123
+ Log.d(TAG, " $key: $value")
124
+ }
125
+ }
126
+
127
+ body?.let {
128
+ Log.d(TAG, " Body: ${it.take(500)}${if (it.length > 500) "..." else ""}")
129
+ }
130
+
131
+ if (debugHelper.isDebuggingEnabled()) {
132
+ val debugData = mutableMapOf<String, Any>()
133
+ debugData["response_status"] = statusCode.toString()
134
+ debugData["response_url"] = url
135
+ debugData["status_emoji"] = statusEmoji
136
+ headers?.let { debugData["headers_count"] = it.size.toString() }
137
+ body?.let { debugData["body_length"] = it.length.toString() }
138
+ durationMs?.let { debugData["duration_ms"] = it.toString() }
139
+
140
+ debugHelper.showDebugInfo("Network Response", debugData)
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Logs a network error for debugging purposes.
146
+ *
147
+ * @param url The request URL
148
+ * @param error The error that occurred
149
+ * @param durationMs Request duration in milliseconds (if applicable)
150
+ */
151
+ fun logError(
152
+ url: String,
153
+ error: Throwable,
154
+ durationMs: Long? = null
155
+ ) {
156
+ Log.e(TAG, "❌ [Network Error]")
157
+ Log.e(TAG, " URL: $url")
158
+ Log.e(TAG, " Error: ${error.message}")
159
+ durationMs?.let { Log.e(TAG, " Duration: ${it}ms") }
160
+ Log.e(TAG, " Exception:", error)
161
+
162
+ if (debugHelper.isDebuggingEnabled()) {
163
+ val debugData = mutableMapOf<String, Any>()
164
+ debugData["error_url"] = url
165
+ debugData["error_message"] = error.message ?: "Unknown error"
166
+ debugData["error_type"] = error.javaClass.simpleName
167
+ durationMs?.let { debugData["duration_ms"] = it.toString() }
168
+
169
+ debugHelper.showDebugInfo("Network Error", debugData)
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Creates an interceptor that can be added to OkHttpClient for automatic logging.
175
+ * This is useful for transparently logging all SDK network calls.
176
+ *
177
+ * @return An OkHttp Interceptor for network logging
178
+ */
179
+ fun createLoggingInterceptor(): Interceptor {
180
+ return Interceptor { chain ->
181
+ val request = chain.request()
182
+ val startTime = System.currentTimeMillis()
183
+
184
+ // Log request
185
+ logRequest(
186
+ url = request.url.toString(),
187
+ method = request.method,
188
+ headers = request.headers.toMultimap().mapValues { it.value.firstOrNull() ?: "" },
189
+ body = request.body?.toString()
190
+ )
191
+
192
+ try {
193
+ val response = chain.proceed(request)
194
+ val duration = System.currentTimeMillis() - startTime
195
+
196
+ // Log response
197
+ logResponse(
198
+ url = request.url.toString(),
199
+ statusCode = response.code,
200
+ headers = response.headers.toMultimap().mapValues { it.value.firstOrNull() ?: "" },
201
+ body = response.peekBody(1024).string(),
202
+ durationMs = duration
203
+ )
204
+
205
+ response
206
+ } catch (e: IOException) {
207
+ val duration = System.currentTimeMillis() - startTime
208
+
209
+ // Log error
210
+ logError(
211
+ url = request.url.toString(),
212
+ error = e,
213
+ durationMs = duration
214
+ )
215
+
216
+ throw e
217
+ }
218
+ }
219
+ }
220
+ }
@@ -350,6 +350,7 @@ customIdentifiers:(NSDictionary *)customIdentifiers {
350
350
  - (void)destroyCreative {
351
351
  dispatch_async(dispatch_get_main_queue(), ^{
352
352
  // [self->_sdk closeCreative]
353
+ [self->_sdk notifyCreativeDestroyed];
353
354
  });
354
355
  }
355
356
 
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>AttentiveReactNativeSdk.xcscheme_^#shared#^_</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ </dict>
14
+ </plist>
@@ -124,9 +124,20 @@ struct DebugEvent {
124
124
  }
125
125
  }
126
126
 
127
+ /// Called from the native bridge when destroyCreative is invoked; shows debug overlay when debug mode is on.
128
+ @objc
129
+ public func notifyCreativeDestroyed() {
130
+ if debuggingEnabled {
131
+ showDebugInfo(event: "Creative Destroyed", data: ["action": "destroyCreative"])
132
+ }
133
+ }
134
+
127
135
  @objc(updateDomain:)
128
136
  public func updateDomain(domain: String) {
129
137
  sdk.update(domain:domain)
138
+ if debuggingEnabled {
139
+ showDebugInfo(event: "Domain Updated", data: ["domain": domain])
140
+ }
130
141
  }
131
142
 
132
143
  @objc(identify:)
@@ -136,6 +147,10 @@ struct DebugEvent {
136
147
 
137
148
  sdk.identify(identifiers)
138
149
 
150
+ if debuggingEnabled {
151
+ showDebugInfo(event: "User Identified", data: ["identifiers": identifiers])
152
+ }
153
+
139
154
  print("✅ [AttentiveSDK] identify completed")
140
155
  print(" User is now identified with the SDK")
141
156
  print(" SDK can now make network calls")
@@ -144,6 +159,9 @@ struct DebugEvent {
144
159
  @objc
145
160
  public func clearUser() {
146
161
  sdk.clearUser()
162
+ if debuggingEnabled {
163
+ showDebugInfo(event: "User Cleared", data: ["action": "clearUser"])
164
+ }
147
165
  }
148
166
 
149
167
  // MARK: - Push Notification Methods
@@ -628,13 +646,19 @@ public extension ATTNNativeSDK {
628
646
 
629
647
  @objc
630
648
  func recordPurchaseEvent(_ attributes: [String: Any]) {
631
- let attrOrder = attributes["order"] as? [String: String] ?? [:]
632
- guard let orderId = attrOrder["id"] else { return }
649
+ // React Native bridge sends top-level "orderId"; legacy format used "order"["id"]
650
+ let orderId = (attributes["orderId"] as? String)
651
+ ?? (attributes["order"] as? [String: String])?["id"]
652
+ guard let orderId = orderId else { return }
633
653
  let order = ATTNOrder(orderId: orderId)
634
654
  let items = parseItems(attributes["items"] as? [[String : Any]] ?? [])
635
655
  let event = ATTNPurchaseEvent(items: items, order: order)
656
+
657
+ #if DEBUG
658
+ print("[Attentive]", event.debugDescription)
659
+ #endif
636
660
  ATTNEventTracker.sharedInstance()?.record(event: event)
637
-
661
+
638
662
  if debuggingEnabled {
639
663
  // Enhanced debug data to show parsed item details
640
664
  var debugData: [String: Any] = [
@@ -727,18 +751,35 @@ private extension ATTNNativeSDK {
727
751
  debugHistory.append(debugEvent)
728
752
 
729
753
  DispatchQueue.main.async {
730
- // Create debug overlay with history
731
754
  guard let keyWindow = UIApplication.shared.connectedScenes
732
755
  .compactMap({ $0 as? UIWindowScene })
733
756
  .first?.windows
734
- .first(where: { $0.isKeyWindow }) else { return }
757
+ .first(where: { $0.isKeyWindow }),
758
+ let rootVC = keyWindow.rootViewController else { return }
759
+
760
+ // Present from the topmost view controller so the debug window always appears on top
761
+ let topmost = self.topmostViewController(from: rootVC)
735
762
 
736
763
  let debugVC = DebugOverlayViewController(currentEvent: event, currentData: data, history: self.debugHistory)
737
764
  debugVC.modalPresentationStyle = .overFullScreen
738
765
  debugVC.modalTransitionStyle = .crossDissolve
739
766
 
740
- keyWindow.rootViewController?.present(debugVC, animated: true)
767
+ topmost.present(debugVC, animated: true)
768
+ }
769
+ }
770
+
771
+ /// Returns the topmost view controller so the debug overlay is presented on top of any existing modals.
772
+ func topmostViewController(from base: UIViewController) -> UIViewController {
773
+ if let presented = base.presentedViewController {
774
+ return topmostViewController(from: presented)
775
+ }
776
+ if let nav = base as? UINavigationController, let visible = nav.visibleViewController {
777
+ return topmostViewController(from: visible)
778
+ }
779
+ if let tab = base as? UITabBarController, let selected = tab.selectedViewController {
780
+ return topmostViewController(from: selected)
741
781
  }
782
+ return base
742
783
  }
743
784
  }
744
785
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","isTurboModuleEnabled","global","__turboModuleProxy","AttentiveReactNativeSdkModule","TurboModuleRegistry","get","NativeModules","AttentiveReactNativeSdk","_default","exports","default"],"sourceRoot":"../../src","sources":["NativeAttentiveReactNativeSdk.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AA8IA;AACA;AACA,MAAMC,oBAAoB,GAAIC,MAAM,CAASC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,6BAA6B,GAAGH,oBAAoB,GACtDI,gCAAmB,CAACC,GAAG,CAAO,yBAAyB,CAAC,GACxDC,0BAAa,CAACC,uBAAuB;AAAC,IAAAC,QAAA,GAE3BL,6BAA6B;AAAAM,OAAA,CAAAC,OAAA,GAAAF,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","isTurboModuleEnabled","global","__turboModuleProxy","AttentiveReactNativeSdkModule","TurboModuleRegistry","get","NativeModules","AttentiveReactNativeSdk","_default","exports","default"],"sourceRoot":"../../src","sources":["NativeAttentiveReactNativeSdk.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AA8IA;AACA;AACA,MAAMC,oBAAoB,GAAIC,MAAM,CAASC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,6BAA6B,GAAGH,oBAAoB,GACtDI,gCAAmB,CAACC,GAAG,CAAO,yBAAyB,CAAC,GACxDC,0BAAa,CAACC,uBAAuB;AAAC,IAAAC,QAAA,GAE3BL,6BAA6B;AAAAM,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["eventTypes.tsx"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["eventTypes.tsx"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_NativeAttentiveReactNativeSdk","_interopRequireDefault","obj","__esModule","default","LINKING_ERROR","Platform","select","ios","AttentiveReactNativeSdk","NativeAttentiveReactNativeSdkModule","Proxy","get","Error","initialize","configuration","attentiveDomain","mode","skipFatigueOnCreatives","enableDebugger","triggerCreative","creativeId","destroyCreative","updateDomain","domain","identify","identifiers","phone","email","klaviyoId","shopifyId","clientUserId","customIdentifiers","clearUser","recordAddToCartEvent","attrs","items","deeplink","recordProductViewEvent","recordPurchaseEvent","orderId","cartId","cartCoupon","recordCustomEvent","type","properties","invokeAttentiveDebugHelper","exportDebugLogs","registerForPushNotifications","registerDeviceToken","token","authorizationStatus","registerDeviceTokenWithCallback","callback","handleRegularOpen","console","log","handlePushOpened","userInfo","applicationState","handleForegroundNotification","handleForegroundPush","handlePushOpen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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AACwC,mBAAmB,CAACC,KAAK,EAAEC,mBAAmB,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CACtCF,KAAa,EACbC,mBAA4C,EAC5CE,QAKS,EACH;EACN5C,uBAAuB,CAAC2C,+BAA+B,CACrDF,KAAK,EACLC,mBAAmB,EACnBE,QACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACH,mBAA4C,EAAQ;EAC7EI,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;EAC1ED,OAAO,CAACC,GAAG,CAAC,4BAA4BL,mBAAmB,EAAE,CAAC;EAC9DI,OAAO,CAACC,GAAG,CACT,mEACF,CAAC;EAED/C,uBAAuB,CAAC6C,iBAAiB,CAACH,mBAAmB,CAAC;EAE9DI,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACvBC,QAAkC,EAClCC,gBAAkC,EAClCR,mBAA4C,EACtC;EACN1C,uBAAuB,CAACgD,gBAAgB,CACtCC,QAAQ,EACRC,gBAAgB,EAChBR,mBACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,4BAA4BA,CACnCF,QAAkC,EAC5B;EACNjD,uBAAuB,CAACmD,4BAA4B,CAACF,QAAkB,CAAC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,oBAAoBA,CAC3BH,QAAkC,EAClCP,mBAA4C,EACtC;EACN1C,uBAAuB,CAACoD,oBAAoB,CAC1CH,QAAQ,EACRP,mBACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,cAAcA,CACrBJ,QAAkC,EAClCP,mBAA4C,EACtC;EACN1C,uBAAuB,CAACqD,cAAc,CACpCJ,QAAQ,EACRP,mBACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_NativeAttentiveReactNativeSdk","_interopRequireDefault","obj","__esModule","default","LINKING_ERROR","Platform","select","ios","AttentiveReactNativeSdk","NativeAttentiveReactNativeSdkModule","Proxy","get","Error","initialize","configuration","attentiveDomain","mode","skipFatigueOnCreatives","enableDebugger","triggerCreative","creativeId","destroyCreative","updateDomain","domain","identify","identifiers","phone","email","klaviyoId","shopifyId","clientUserId","customIdentifiers","clearUser","recordAddToCartEvent","attrs","items","deeplink","recordProductViewEvent","recordPurchaseEvent","orderId","cartId","cartCoupon","recordCustomEvent","type","properties","invokeAttentiveDebugHelper","exportDebugLogs","registerForPushNotifications","registerDeviceToken","token","authorizationStatus","registerDeviceTokenWithCallback","callback","handleRegularOpen","console","log","handlePushOpened","userInfo","applicationState","handleForegroundNotification","handleForegroundPush","handlePushOpen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAcA,IAAAC,8BAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEwC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExC,MAAMG,aAAa,GAChB,qFAAoF,GACrFC,qBAAQ,CAACC,MAAM,CAAC;EACdC,GAAG,EAAE,gCAAgC;EACrCJ,OAAO,EAAE;AACX,CAAC,CAAC,GACF,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMK,uBAAuB,GAC3BC,sCAAmC,GAC/BA,sCAAmC,GACnC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CAAC,CAEA;;AAET;AACA;AACA;AACA;AACA,SAASS,UAAUA,CAACC,aAAwC,EAAE;EAC5DN,uBAAuB,CAACK,UAAU,CAChCC,aAAa,CAACC,eAAe,EAC7BD,aAAa,CAACE,IAAI,EAClBF,aAAa,CAACG,sBAAsB,IAAI,KAAK,EAC7CH,aAAa,CAACI,cAAc,IAAI,KAAK,CACtC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAACC,UAAmB,EAAE;EAC5CZ,uBAAuB,CAACW,eAAe,CAACC,UAAU,CAAC;AACrD;;AAEA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAG;EACzBb,uBAAuB,CAACa,eAAe,EAAE;AAC3C;;AAEA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACC,MAAc,EAAE;EACpCf,uBAAuB,CAACc,YAAY,CAACC,MAAM,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAACC,WAA4B,EAAE;EAC9CjB,uBAAuB,CAACgB,QAAQ,CAC9BC,WAAW,CAACC,KAAK,EACjBD,WAAW,CAACE,KAAK,EACjBF,WAAW,CAACG,SAAS,EACrBH,WAAW,CAACI,SAAS,EACrBJ,WAAW,CAACK,YAAY,EACxBL,WAAW,CAACM,iBAAiB,CAC9B;AACH;;AAEA;AACA;AACA;AACA,SAASC,SAASA,CAAA,EAAG;EACnBxB,uBAAuB,CAACwB,SAAS,EAAE;AACrC;;AAEA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACC,KAAgB,EAAE;EAC9C1B,uBAAuB,CAACyB,oBAAoB,CAACC,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAACH,KAAkB,EAAE;EAClD1B,uBAAuB,CAAC6B,sBAAsB,CAACH,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC7E;;AAEA;AACA;AACA;AACA;AACA,SAASE,mBAAmBA,CAACJ,KAAe,EAAE;EAC5C1B,uBAAuB,CAAC8B,mBAAmB,CACzCJ,KAAK,CAACC,KAAK,EACXD,KAAK,CAACK,OAAO,EACbL,KAAK,CAACM,MAAM,EACZN,KAAK,CAACO,UAAU,CACjB;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACR,KAAkB,EAAE;EAC7C1B,uBAAuB,CAACkC,iBAAiB,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,UAAU,CAAC;AACzE;;AAEA;AACA;AACA;AACA,SAASC,0BAA0BA,CAAA,EAAG;EACpCrC,uBAAuB,CAACqC,0BAA0B,EAAE;AACtD;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAoB;EAC1C,OAAOtC,uBAAuB,CAACsC,eAAe,EAAE;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAAA,EAAS;EAC5CvC,uBAAuB,CAACuC,4BAA4B,EAAE;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAC1BC,KAAa,EACbC,mBAA4C,EACtC;EACN1C,uBAAuB,CAACwC,mBAAmB,CAACC,KAAK,EAAEC,mBAAmB,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CACtCF,KAAa,EACbC,mBAA4C,EAC5CE,QAKS,EACH;EACN5C,uBAAuB,CAAC2C,+BAA+B,CACrDF,KAAK,EACLC,mBAAmB,EACnBE,QAAQ,CACT;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACH,mBAA4C,EAAQ;EAC7EI,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;EAC1ED,OAAO,CAACC,GAAG,CAAE,4BAA2BL,mBAAoB,EAAC,CAAC;EAC9DI,OAAO,CAACC,GAAG,CACT,mEAAmE,CACpE;EAED/C,uBAAuB,CAAC6C,iBAAiB,CAACH,mBAAmB,CAAC;EAE9DI,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACvBC,QAAkC,EAClCC,gBAAkC,EAClCR,mBAA4C,EACtC;EACN1C,uBAAuB,CAACgD,gBAAgB,CACtCC,QAAQ,EACRC,gBAAgB,EAChBR,mBAAmB,CACpB;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,4BAA4BA,CACnCF,QAAkC,EAC5B;EACNjD,uBAAuB,CAACmD,4BAA4B,CAACF,QAAQ,CAAW;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,oBAAoBA,CAC3BH,QAAkC,EAClCP,mBAA4C,EACtC;EACN1C,uBAAuB,CAACoD,oBAAoB,CAC1CH,QAAQ,EACRP,mBAAmB,CACpB;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,cAAcA,CACrBJ,QAAkC,EAClCP,mBAA4C,EACtC;EACN1C,uBAAuB,CAACqD,cAAc,CACpCJ,QAAQ,EACRP,mBAAmB,CACpB;AACH"}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","AttentiveReactNativeSdkModule","get","AttentiveReactNativeSdk"],"sourceRoot":"../../src","sources":["NativeAttentiveReactNativeSdk.ts"],"mappings":"AACA,SAASA,mBAAmB,EAAEC,aAAa,QAAQ,cAAc;AA8IjE;AACA;AACA,MAAMC,oBAAoB,GAAIC,MAAM,CAASC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,6BAA6B,GAAGH,oBAAoB,GACtDF,mBAAmB,CAACM,GAAG,CAAO,yBAAyB,CAAC,GACxDL,aAAa,CAACM,uBAAuB;AAEzC,eAAeF,6BAA6B","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","global","__turboModuleProxy","AttentiveReactNativeSdkModule","get","AttentiveReactNativeSdk"],"sourceRoot":"../../src","sources":["NativeAttentiveReactNativeSdk.ts"],"mappings":"AACA,SAASA,mBAAmB,EAAEC,aAAa,QAAQ,cAAc;AA8IjE;AACA;AACA,MAAMC,oBAAoB,GAAIC,MAAM,CAASC,kBAAkB,IAAI,IAAI;AAEvE,MAAMC,6BAA6B,GAAGH,oBAAoB,GACtDF,mBAAmB,CAACM,GAAG,CAAO,yBAAyB,CAAC,GACxDL,aAAa,CAACM,uBAAuB;AAEzC,eAAeF,6BAA6B"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["eventTypes.tsx"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["eventTypes.tsx"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NativeAttentiveReactNativeSdkModule","LINKING_ERROR","select","ios","default","AttentiveReactNativeSdk","Proxy","get","Error","initialize","configuration","attentiveDomain","mode","skipFatigueOnCreatives","enableDebugger","triggerCreative","creativeId","destroyCreative","updateDomain","domain","identify","identifiers","phone","email","klaviyoId","shopifyId","clientUserId","customIdentifiers","clearUser","recordAddToCartEvent","attrs","items","deeplink","recordProductViewEvent","recordPurchaseEvent","orderId","cartId","cartCoupon","recordCustomEvent","type","properties","invokeAttentiveDebugHelper","exportDebugLogs","registerForPushNotifications","registerDeviceToken","token","authorizationStatus","registerDeviceTokenWithCallback","callback","handleRegularOpen","console","log","handlePushOpened","userInfo","applicationState","handleForegroundNotification","handleForegroundPush","handlePushOpen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAcvC,OAAOC,mCAAmC,MAEnC,iCAAiC;AAExC,MAAMC,aAAa,GACjB,qFAAqF,GACrFF,QAAQ,CAACG,MAAM,CAAC;EACdC,GAAG,EAAE,gCAAgC;EACrCC,OAAO,EAAE;AACX,CAAC,CAAC,GACF,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,uBAAuB,GAC3BL,mCAAmC,GAC/BA,mCAAmC,GACnC,IAAIM,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CACG;;AAET;AACA;AACA;AACA;AACA,SAASQ,UAAUA,CAACC,aAAwC,EAAE;EAC5DL,uBAAuB,CAACI,UAAU,CAChCC,aAAa,CAACC,eAAe,EAC7BD,aAAa,CAACE,IAAI,EAClBF,aAAa,CAACG,sBAAsB,IAAI,KAAK,EAC7CH,aAAa,CAACI,cAAc,IAAI,KAClC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAACC,UAAmB,EAAE;EAC5CX,uBAAuB,CAACU,eAAe,CAACC,UAAU,CAAC;AACrD;;AAEA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAG;EACzBZ,uBAAuB,CAACY,eAAe,CAAC,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACC,MAAc,EAAE;EACpCd,uBAAuB,CAACa,YAAY,CAACC,MAAM,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAACC,WAA4B,EAAE;EAC9ChB,uBAAuB,CAACe,QAAQ,CAC9BC,WAAW,CAACC,KAAK,EACjBD,WAAW,CAACE,KAAK,EACjBF,WAAW,CAACG,SAAS,EACrBH,WAAW,CAACI,SAAS,EACrBJ,WAAW,CAACK,YAAY,EACxBL,WAAW,CAACM,iBACd,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASC,SAASA,CAAA,EAAG;EACnBvB,uBAAuB,CAACuB,SAAS,CAAC,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACC,KAAgB,EAAE;EAC9CzB,uBAAuB,CAACwB,oBAAoB,CAACC,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAACH,KAAkB,EAAE;EAClDzB,uBAAuB,CAAC4B,sBAAsB,CAACH,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC7E;;AAEA;AACA;AACA;AACA;AACA,SAASE,mBAAmBA,CAACJ,KAAe,EAAE;EAC5CzB,uBAAuB,CAAC6B,mBAAmB,CACzCJ,KAAK,CAACC,KAAK,EACXD,KAAK,CAACK,OAAO,EACbL,KAAK,CAACM,MAAM,EACZN,KAAK,CAACO,UACR,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACR,KAAkB,EAAE;EAC7CzB,uBAAuB,CAACiC,iBAAiB,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,UAAU,CAAC;AACzE;;AAEA;AACA;AACA;AACA,SAASC,0BAA0BA,CAAA,EAAG;EACpCpC,uBAAuB,CAACoC,0BAA0B,CAAC,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAoB;EAC1C,OAAOrC,uBAAuB,CAACqC,eAAe,CAAC,CAAC;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAAA,EAAS;EAC5CtC,uBAAuB,CAACsC,4BAA4B,CAAC,CAAC;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAC1BC,KAAa,EACbC,mBAA4C,EACtC;EACNzC,uBAAuB,CAACuC,mBAAmB,CAACC,KAAK,EAAEC,mBAAmB,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CACtCF,KAAa,EACbC,mBAA4C,EAC5CE,QAKS,EACH;EACN3C,uBAAuB,CAAC0C,+BAA+B,CACrDF,KAAK,EACLC,mBAAmB,EACnBE,QACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACH,mBAA4C,EAAQ;EAC7EI,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;EAC1ED,OAAO,CAACC,GAAG,CAAC,4BAA4BL,mBAAmB,EAAE,CAAC;EAC9DI,OAAO,CAACC,GAAG,CACT,mEACF,CAAC;EAED9C,uBAAuB,CAAC4C,iBAAiB,CAACH,mBAAmB,CAAC;EAE9DI,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACvBC,QAAkC,EAClCC,gBAAkC,EAClCR,mBAA4C,EACtC;EACNzC,uBAAuB,CAAC+C,gBAAgB,CACtCC,QAAQ,EACRC,gBAAgB,EAChBR,mBACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,4BAA4BA,CACnCF,QAAkC,EAC5B;EACNhD,uBAAuB,CAACkD,4BAA4B,CAACF,QAAkB,CAAC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,oBAAoBA,CAC3BH,QAAkC,EAClCP,mBAA4C,EACtC;EACNzC,uBAAuB,CAACmD,oBAAoB,CAC1CH,QAAQ,EACRP,mBACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,cAAcA,CACrBJ,QAAkC,EAClCP,mBAA4C,EACtC;EACNzC,uBAAuB,CAACoD,cAAc,CACpCJ,QAAQ,EACRP,mBACF,CAAC;AACH;AAEA,SACErC,UAAU,EACVM,eAAe,EACfE,eAAe,EACfC,YAAY,EACZE,QAAQ,EACRQ,SAAS,EACTC,oBAAoB,EACpBI,sBAAsB,EACtBC,mBAAmB,EACnBI,iBAAiB,EACjBG,0BAA0B,EAC1BC,eAAe;AACf;AACAC,4BAA4B,EAC5BC,mBAAmB,EACnBG,+BAA+B,EAC/BE,iBAAiB,EACjBG,gBAAgB,EAChBG,4BAA4B,EAC5BC,oBAAoB,EACpBC,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NativeAttentiveReactNativeSdkModule","LINKING_ERROR","select","ios","default","AttentiveReactNativeSdk","Proxy","get","Error","initialize","configuration","attentiveDomain","mode","skipFatigueOnCreatives","enableDebugger","triggerCreative","creativeId","destroyCreative","updateDomain","domain","identify","identifiers","phone","email","klaviyoId","shopifyId","clientUserId","customIdentifiers","clearUser","recordAddToCartEvent","attrs","items","deeplink","recordProductViewEvent","recordPurchaseEvent","orderId","cartId","cartCoupon","recordCustomEvent","type","properties","invokeAttentiveDebugHelper","exportDebugLogs","registerForPushNotifications","registerDeviceToken","token","authorizationStatus","registerDeviceTokenWithCallback","callback","handleRegularOpen","console","log","handlePushOpened","userInfo","applicationState","handleForegroundNotification","handleForegroundPush","handlePushOpen"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAcvC,OAAOC,mCAAmC,MAEnC,iCAAiC;AAExC,MAAMC,aAAa,GAChB,qFAAoF,GACrFF,QAAQ,CAACG,MAAM,CAAC;EACdC,GAAG,EAAE,gCAAgC;EACrCC,OAAO,EAAE;AACX,CAAC,CAAC,GACF,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,uBAAuB,GAC3BL,mCAAmC,GAC/BA,mCAAmC,GACnC,IAAIM,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CAAC,CAEA;;AAET;AACA;AACA;AACA;AACA,SAASQ,UAAUA,CAACC,aAAwC,EAAE;EAC5DL,uBAAuB,CAACI,UAAU,CAChCC,aAAa,CAACC,eAAe,EAC7BD,aAAa,CAACE,IAAI,EAClBF,aAAa,CAACG,sBAAsB,IAAI,KAAK,EAC7CH,aAAa,CAACI,cAAc,IAAI,KAAK,CACtC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAACC,UAAmB,EAAE;EAC5CX,uBAAuB,CAACU,eAAe,CAACC,UAAU,CAAC;AACrD;;AAEA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAG;EACzBZ,uBAAuB,CAACY,eAAe,EAAE;AAC3C;;AAEA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACC,MAAc,EAAE;EACpCd,uBAAuB,CAACa,YAAY,CAACC,MAAM,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA,SAASC,QAAQA,CAACC,WAA4B,EAAE;EAC9ChB,uBAAuB,CAACe,QAAQ,CAC9BC,WAAW,CAACC,KAAK,EACjBD,WAAW,CAACE,KAAK,EACjBF,WAAW,CAACG,SAAS,EACrBH,WAAW,CAACI,SAAS,EACrBJ,WAAW,CAACK,YAAY,EACxBL,WAAW,CAACM,iBAAiB,CAC9B;AACH;;AAEA;AACA;AACA;AACA,SAASC,SAASA,CAAA,EAAG;EACnBvB,uBAAuB,CAACuB,SAAS,EAAE;AACrC;;AAEA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACC,KAAgB,EAAE;EAC9CzB,uBAAuB,CAACwB,oBAAoB,CAACC,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAACH,KAAkB,EAAE;EAClDzB,uBAAuB,CAAC4B,sBAAsB,CAACH,KAAK,CAACC,KAAK,EAAED,KAAK,CAACE,QAAQ,CAAC;AAC7E;;AAEA;AACA;AACA;AACA;AACA,SAASE,mBAAmBA,CAACJ,KAAe,EAAE;EAC5CzB,uBAAuB,CAAC6B,mBAAmB,CACzCJ,KAAK,CAACC,KAAK,EACXD,KAAK,CAACK,OAAO,EACbL,KAAK,CAACM,MAAM,EACZN,KAAK,CAACO,UAAU,CACjB;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACR,KAAkB,EAAE;EAC7CzB,uBAAuB,CAACiC,iBAAiB,CAACR,KAAK,CAACS,IAAI,EAAET,KAAK,CAACU,UAAU,CAAC;AACzE;;AAEA;AACA;AACA;AACA,SAASC,0BAA0BA,CAAA,EAAG;EACpCpC,uBAAuB,CAACoC,0BAA0B,EAAE;AACtD;;AAEA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAA,EAAoB;EAC1C,OAAOrC,uBAAuB,CAACqC,eAAe,EAAE;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,4BAA4BA,CAAA,EAAS;EAC5CtC,uBAAuB,CAACsC,4BAA4B,EAAE;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAC1BC,KAAa,EACbC,mBAA4C,EACtC;EACNzC,uBAAuB,CAACuC,mBAAmB,CAACC,KAAK,EAAEC,mBAAmB,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CACtCF,KAAa,EACbC,mBAA4C,EAC5CE,QAKS,EACH;EACN3C,uBAAuB,CAAC0C,+BAA+B,CACrDF,KAAK,EACLC,mBAAmB,EACnBE,QAAQ,CACT;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACH,mBAA4C,EAAQ;EAC7EI,OAAO,CAACC,GAAG,CAAC,6DAA6D,CAAC;EAC1ED,OAAO,CAACC,GAAG,CAAE,4BAA2BL,mBAAoB,EAAC,CAAC;EAC9DI,OAAO,CAACC,GAAG,CACT,mEAAmE,CACpE;EAED9C,uBAAuB,CAAC4C,iBAAiB,CAACH,mBAAmB,CAAC;EAE9DI,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CACvBC,QAAkC,EAClCC,gBAAkC,EAClCR,mBAA4C,EACtC;EACNzC,uBAAuB,CAAC+C,gBAAgB,CACtCC,QAAQ,EACRC,gBAAgB,EAChBR,mBAAmB,CACpB;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASS,4BAA4BA,CACnCF,QAAkC,EAC5B;EACNhD,uBAAuB,CAACkD,4BAA4B,CAACF,QAAQ,CAAW;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,oBAAoBA,CAC3BH,QAAkC,EAClCP,mBAA4C,EACtC;EACNzC,uBAAuB,CAACmD,oBAAoB,CAC1CH,QAAQ,EACRP,mBAAmB,CACpB;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,cAAcA,CACrBJ,QAAkC,EAClCP,mBAA4C,EACtC;EACNzC,uBAAuB,CAACoD,cAAc,CACpCJ,QAAQ,EACRP,mBAAmB,CACpB;AACH;AAEA,SACErC,UAAU,EACVM,eAAe,EACfE,eAAe,EACfC,YAAY,EACZE,QAAQ,EACRQ,SAAS,EACTC,oBAAoB,EACpBI,sBAAsB,EACtBC,mBAAmB,EACnBI,iBAAiB,EACjBG,0BAA0B,EAC1BC,eAAe;AACf;AACAC,4BAA4B,EAC5BC,mBAAmB,EACnBG,+BAA+B,EAC/BE,iBAAiB,EACjBG,gBAAgB,EAChBG,4BAA4B,EAC5BC,oBAAoB,EACpBC,cAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@attentive-mobile/attentive-react-native-sdk",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.4",
4
4
  "description": "React Native Module for the Attentive SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Workspace
3
- version = "1.0">
4
- <FileRef
5
- location = "group:AttentiveReactNativeSdk.xcodeproj">
6
- </FileRef>
7
- <FileRef
8
- location = "group:Pods/Pods.xcodeproj">
9
- </FileRef>
10
- </Workspace>