@bubblsdk/react-native-sdk 3.0.4 → 3.0.6

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.
@@ -1,6 +1,6 @@
1
1
  Pod::Spec.new do |s|
2
2
  s.name = 'BubblReactNativeSdk'
3
- s.version = '3.0.4'
3
+ s.version = '3.0.6'
4
4
  s.summary = 'React Native wrapper for Bubbl SDK v3 native Android and iOS cores.'
5
5
  s.homepage = 'https://bubbl.tech'
6
6
  s.license = { :type => 'Commercial', :text => 'Copyright Bubbl. All rights reserved.' }
@@ -13,5 +13,5 @@ Pod::Spec.new do |s|
13
13
  s.static_framework = true
14
14
 
15
15
  s.dependency 'React-Core'
16
- s.dependency 'BubblSDK', '3.0.4'
16
+ s.dependency 'BubblSDK', '3.0.6'
17
17
  end
package/CHANGELOG.md CHANGED
@@ -1,11 +1,18 @@
1
1
  # Changelog
2
2
 
3
- ## 3.0.4
3
+ ## 3.0.6
4
+
5
+ - Bridges iOS `geofenceSnapshot` events through the React Native wrapper so iOS map/campaign UIs receive the same active geofence snapshot as Android.
6
+ - Expands native geofence parsing to accept imported runtime aliases such as `locations`, `location`, `notifications`, and `curatedNotifications`.
7
+ - Aligns the React Native wrapper with the native SDK 3.0.6 release.
8
+
9
+ ## 3.0.5
4
10
 
5
11
  - Android SDK notifications now create the shared `bubbl_notifications` channel at high importance, replacing an older lower-importance channel when possible so eligible notifications can appear as heads-up banners.
12
+ - Android SDK registration now emits a clear `firebase_config_missing` error when Firebase is not configured in the host app, instead of silently failing to register an FCM token.
6
13
  - iOS installs a retained default `UNUserNotificationCenterDelegate` from the React Native wrapper so foreground notifications use banner/list presentation and taps are forwarded to the SDK.
7
14
  - Filters paused and inactive runtime campaigns before they can surface through geofence or notification handling.
8
- - Aligns the React Native wrapper with the native SDK 3.0.4 release.
15
+ - Aligns the React Native wrapper with the native SDK 3.0.5 release.
9
16
 
10
17
  ## 3.0.2
11
18
 
@@ -4,7 +4,7 @@ plugins {
4
4
  }
5
5
 
6
6
  group = "tech.bubbl.reactnative"
7
- version = "3.0.4"
7
+ version = "3.0.6"
8
8
 
9
9
  def isNewArchitectureEnabled() {
10
10
  project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
@@ -41,6 +41,6 @@ android {
41
41
 
42
42
  dependencies {
43
43
  implementation "com.facebook.react:react-android:${reactNativeVersion}"
44
- implementation "tech.bubbl.sdk:bubbl-sdk:3.0.4"
44
+ implementation "tech.bubbl.sdk:bubbl-sdk:3.0.6"
45
45
  implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1"
46
46
  }
@@ -603,6 +603,48 @@ private extension BubblGeofenceTransition {
603
603
  }
604
604
  }
605
605
 
606
+ private extension BubblGeofenceVertex {
607
+ func reactMap() -> [String: Any] {
608
+ ["latitude": latitude, "longitude": longitude]
609
+ }
610
+ }
611
+
612
+ private extension BubblGeofencePolygon {
613
+ func reactMap() -> [String: Any] {
614
+ [
615
+ "campaignId": reactValue(campaignId),
616
+ "campaignName": reactValue(campaignName),
617
+ "locationId": reactValue(locationId),
618
+ "vertices": vertices.map { $0.reactMap() }
619
+ ]
620
+ }
621
+ }
622
+
623
+ private extension BubblGeofenceCircle {
624
+ func reactMap() -> [String: Any] {
625
+ [
626
+ "campaignId": reactValue(campaignId),
627
+ "campaignName": reactValue(campaignName),
628
+ "locationId": reactValue(locationId),
629
+ "center": center.reactMap(),
630
+ "radiusMeters": radiusMeters
631
+ ]
632
+ }
633
+ }
634
+
635
+ private extension BubblGeofenceSnapshot {
636
+ func reactMap() -> [String: Any] {
637
+ [
638
+ "stats": [
639
+ "campaignsTotal": stats.campaignsTotal,
640
+ "polygonsTotal": stats.polygonsTotal
641
+ ],
642
+ "polygons": polygons.map { $0.reactMap() },
643
+ "circles": circles.map { $0.reactMap() }
644
+ ]
645
+ }
646
+ }
647
+
606
648
  private extension BubblNotificationPayload {
607
649
  func reactMap() -> [String: Any] {
608
650
  [
@@ -673,6 +715,8 @@ private extension BubblEvent {
673
715
  return ["type": "notificationSurveyRequested", "payload": payload.reactMap()]
674
716
  case .locationUpdated(let location):
675
717
  return ["type": "locationUpdated", "location": location.reactMap()]
718
+ case .geofenceSnapshot(let snapshot):
719
+ return ["type": "geofenceSnapshot", "snapshot": snapshot.reactMap()]
676
720
  case .geofenceEntered(let transition):
677
721
  return ["type": "geofenceEntered", "transition": transition.reactMap()]
678
722
  case .geofenceExited(let transition):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblsdk/react-native-sdk",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "React Native wrapper for Bubbl SDK v3 native Android and iOS cores.",
5
5
  "main": "src/index.ts",
6
6
  "module": "src/index.ts",