react-native-netmera 2.0.0 → 2.1.0-alpha01

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.
Files changed (135) hide show
  1. package/RNNetmera.podspec +1 -1
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.kt +5 -1
  4. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfigHandler.kt +33 -0
  5. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.kt +13 -1
  6. package/ios/RNNetmera.mm +3 -0
  7. package/ios/RNNetmera.swift +12 -1
  8. package/ios/RNNetmeraConfigHandler.swift +28 -0
  9. package/ios/RNNetmeraPushObject.swift +3 -3
  10. package/ios/RNNetmeraRCTEventEmitter.swift +7 -0
  11. package/lib/commonjs/Netmera.js +277 -0
  12. package/lib/commonjs/Netmera.js.map +1 -0
  13. package/lib/commonjs/autotrack/NetmeraAutoTrackProvider.js +406 -0
  14. package/lib/commonjs/autotrack/NetmeraAutoTrackProvider.js.map +1 -0
  15. package/lib/commonjs/events/NetmeraEvent.js +13 -0
  16. package/lib/commonjs/events/NetmeraEvent.js.map +1 -0
  17. package/lib/commonjs/events/NetmeraEventBannerOpen.js +19 -0
  18. package/lib/commonjs/events/NetmeraEventBannerOpen.js.map +1 -0
  19. package/lib/commonjs/events/NetmeraEventBatteryLevel.js +16 -0
  20. package/lib/commonjs/events/NetmeraEventBatteryLevel.js.map +1 -0
  21. package/lib/commonjs/events/NetmeraEventCategoryView.js +19 -0
  22. package/lib/commonjs/events/NetmeraEventCategoryView.js.map +1 -0
  23. package/lib/commonjs/events/NetmeraEventInAppPurchase.js +34 -0
  24. package/lib/commonjs/events/NetmeraEventInAppPurchase.js.map +1 -0
  25. package/lib/commonjs/events/NetmeraEventLogin.js +16 -0
  26. package/lib/commonjs/events/NetmeraEventLogin.js.map +1 -0
  27. package/lib/commonjs/events/NetmeraEventRegister.js +16 -0
  28. package/lib/commonjs/events/NetmeraEventRegister.js.map +1 -0
  29. package/lib/commonjs/events/NetmeraEventScreenView.js +28 -0
  30. package/lib/commonjs/events/NetmeraEventScreenView.js.map +1 -0
  31. package/lib/commonjs/events/NetmeraEventSearch.js +19 -0
  32. package/lib/commonjs/events/NetmeraEventSearch.js.map +1 -0
  33. package/lib/commonjs/events/NetmeraEventShare.js +19 -0
  34. package/lib/commonjs/events/NetmeraEventShare.js.map +1 -0
  35. package/lib/commonjs/events/commerce/NetmeraEventCartAddProduct.js +19 -0
  36. package/lib/commonjs/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
  37. package/lib/commonjs/events/commerce/NetmeraEventCartRemoveProduct.js +16 -0
  38. package/lib/commonjs/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
  39. package/lib/commonjs/events/commerce/NetmeraEventCartView.js +19 -0
  40. package/lib/commonjs/events/commerce/NetmeraEventCartView.js.map +1 -0
  41. package/lib/commonjs/events/commerce/NetmeraEventOrderCancel.js +25 -0
  42. package/lib/commonjs/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
  43. package/lib/commonjs/events/commerce/NetmeraEventProductComment.js +13 -0
  44. package/lib/commonjs/events/commerce/NetmeraEventProductComment.js.map +1 -0
  45. package/lib/commonjs/events/commerce/NetmeraEventProductRate.js +16 -0
  46. package/lib/commonjs/events/commerce/NetmeraEventProductRate.js.map +1 -0
  47. package/lib/commonjs/events/commerce/NetmeraEventProductView.js +13 -0
  48. package/lib/commonjs/events/commerce/NetmeraEventProductView.js.map +1 -0
  49. package/lib/commonjs/events/commerce/NetmeraEventPurchase.js +40 -0
  50. package/lib/commonjs/events/commerce/NetmeraEventPurchase.js.map +1 -0
  51. package/lib/commonjs/events/commerce/NetmeraEventWishList.js +13 -0
  52. package/lib/commonjs/events/commerce/NetmeraEventWishList.js.map +1 -0
  53. package/lib/commonjs/events/commerce/NetmeraLineItem.js +14 -0
  54. package/lib/commonjs/events/commerce/NetmeraLineItem.js.map +1 -0
  55. package/lib/commonjs/events/commerce/NetmeraProduct.js +51 -0
  56. package/lib/commonjs/events/commerce/NetmeraProduct.js.map +1 -0
  57. package/lib/commonjs/events/media/NetmeraEventContent.js +48 -0
  58. package/lib/commonjs/events/media/NetmeraEventContent.js.map +1 -0
  59. package/lib/commonjs/events/media/NetmeraEventContentComment.js +12 -0
  60. package/lib/commonjs/events/media/NetmeraEventContentComment.js.map +1 -0
  61. package/lib/commonjs/events/media/NetmeraEventContentRate.js +15 -0
  62. package/lib/commonjs/events/media/NetmeraEventContentRate.js.map +1 -0
  63. package/lib/commonjs/events/media/NetmeraEventContentView.js +12 -0
  64. package/lib/commonjs/events/media/NetmeraEventContentView.js.map +1 -0
  65. package/lib/commonjs/index.js +352 -0
  66. package/lib/commonjs/index.js.map +1 -0
  67. package/lib/commonjs/models/NMCategoryPreference.js +13 -0
  68. package/lib/commonjs/models/NMCategoryPreference.js.map +1 -0
  69. package/lib/commonjs/models/NMInboxStatus.js +15 -0
  70. package/lib/commonjs/models/NMInboxStatus.js.map +1 -0
  71. package/lib/commonjs/models/NMInboxStatusCountFilter.js +17 -0
  72. package/lib/commonjs/models/NMInboxStatusCountFilter.js.map +1 -0
  73. package/lib/commonjs/models/NetmeraCarouselObject.js +24 -0
  74. package/lib/commonjs/models/NetmeraCarouselObject.js.map +1 -0
  75. package/lib/commonjs/models/NetmeraCategory.js +13 -0
  76. package/lib/commonjs/models/NetmeraCategory.js.map +1 -0
  77. package/lib/commonjs/models/NetmeraCategoryFilter.js +13 -0
  78. package/lib/commonjs/models/NetmeraCategoryFilter.js.map +1 -0
  79. package/lib/commonjs/models/NetmeraCouponObject.js +13 -0
  80. package/lib/commonjs/models/NetmeraCouponObject.js.map +1 -0
  81. package/lib/commonjs/models/NetmeraInboxFilter.js +13 -0
  82. package/lib/commonjs/models/NetmeraInboxFilter.js.map +1 -0
  83. package/lib/commonjs/models/NetmeraInteractiveAction.js +24 -0
  84. package/lib/commonjs/models/NetmeraInteractiveAction.js.map +1 -0
  85. package/lib/commonjs/models/NetmeraProfileAttribute.js +80 -0
  86. package/lib/commonjs/models/NetmeraProfileAttribute.js.map +1 -0
  87. package/lib/commonjs/models/NetmeraPushAction.js +31 -0
  88. package/lib/commonjs/models/NetmeraPushAction.js.map +1 -0
  89. package/lib/commonjs/models/NetmeraPushObject.js +63 -0
  90. package/lib/commonjs/models/NetmeraPushObject.js.map +1 -0
  91. package/lib/commonjs/models/NetmeraUser.js +93 -0
  92. package/lib/commonjs/models/NetmeraUser.js.map +1 -0
  93. package/lib/commonjs/models/NetmeraUserProfile.js +63 -0
  94. package/lib/commonjs/models/NetmeraUserProfile.js.map +1 -0
  95. package/lib/commonjs/models/NotificationPermissionStatus.js +14 -0
  96. package/lib/commonjs/models/NotificationPermissionStatus.js.map +1 -0
  97. package/lib/commonjs/navigation/NetmeraNavigationState.js +31 -0
  98. package/lib/commonjs/navigation/NetmeraNavigationState.js.map +1 -0
  99. package/lib/commonjs/navigation/NetmeraNavigationTracker.js +70 -0
  100. package/lib/commonjs/navigation/NetmeraNavigationTracker.js.map +1 -0
  101. package/lib/commonjs/navigation/useNetmeraNavigation.js +83 -0
  102. package/lib/commonjs/navigation/useNetmeraNavigation.js.map +1 -0
  103. package/lib/commonjs/package.json +1 -0
  104. package/lib/commonjs/utils/DeviceUtils.js +16 -0
  105. package/lib/commonjs/utils/DeviceUtils.js.map +1 -0
  106. package/lib/commonjs/utils/Optional.js +37 -0
  107. package/lib/commonjs/utils/Optional.js.map +1 -0
  108. package/lib/commonjs/utils/RNNetmera.js +19 -0
  109. package/lib/commonjs/utils/RNNetmera.js.map +1 -0
  110. package/lib/module/NetmeraAnalyticProvider.js +68 -0
  111. package/lib/module/NetmeraAnalyticProvider.js.map +1 -0
  112. package/lib/module/autotracking/NetmeraNavigationState.js +14 -0
  113. package/lib/module/autotracking/NetmeraNavigationState.js.map +1 -0
  114. package/lib/module/autotracking/useNavigationTracking.js +103 -0
  115. package/lib/module/autotracking/useNavigationTracking.js.map +1 -0
  116. package/lib/module/autotracking/useTapTracking.js +246 -0
  117. package/lib/module/autotracking/useTapTracking.js.map +1 -0
  118. package/lib/module/index.js +4 -1
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/typescript/src/NetmeraAnalyticProvider.d.ts +26 -0
  121. package/lib/typescript/src/NetmeraAnalyticProvider.d.ts.map +1 -0
  122. package/lib/typescript/src/autotracking/NetmeraNavigationState.d.ts +3 -0
  123. package/lib/typescript/src/autotracking/NetmeraNavigationState.d.ts.map +1 -0
  124. package/lib/typescript/src/autotracking/useNavigationTracking.d.ts +13 -0
  125. package/lib/typescript/src/autotracking/useNavigationTracking.d.ts.map +1 -0
  126. package/lib/typescript/src/autotracking/useTapTracking.d.ts +6 -0
  127. package/lib/typescript/src/autotracking/useTapTracking.d.ts.map +1 -0
  128. package/lib/typescript/src/index.d.ts +3 -1
  129. package/lib/typescript/src/index.d.ts.map +1 -1
  130. package/package.json +1 -1
  131. package/src/NetmeraAnalyticProvider.tsx +124 -0
  132. package/src/autotracking/NetmeraNavigationState.ts +13 -0
  133. package/src/autotracking/useNavigationTracking.ts +129 -0
  134. package/src/autotracking/useTapTracking.ts +301 -0
  135. package/src/index.ts +6 -0
package/RNNetmera.podspec CHANGED
@@ -19,7 +19,7 @@ NETMERA is a Mobile Application Engagement Platform. We offer a series of develo
19
19
  s.source_files = "ios/**/*.{h,m,mm,swift}"
20
20
  s.public_header_files = "ios/RNNetmera.h"
21
21
 
22
- netmera_version = '4.19.0'
22
+ netmera_version = '4.23.0'
23
23
 
24
24
  s.dependency "NetmeraAnalytic", netmera_version
25
25
  s.dependency "NetmeraAnalyticAutotracking", netmera_version
@@ -75,7 +75,7 @@ repositories {
75
75
  google()
76
76
  }
77
77
 
78
- def netmeraAndroidVersion = '4.15.1'
78
+ def netmeraAndroidVersion = '4.18.1'
79
79
 
80
80
  def kotlin_version = getExtOrDefault("kotlinVersion")
81
81
 
@@ -2,22 +2,26 @@ package com.netmera.reactnativesdk
2
2
 
3
3
  import android.app.Application
4
4
  import android.content.ContentValues
5
+ import com.netmera.InternalNetmera
5
6
  import com.netmera.NMActivityLifecycleCallbacks
6
7
  import com.netmera.Netmera
8
+ import com.netmera.Platform
7
9
 
8
10
  object RNNetmera {
9
11
  @JvmStatic
10
12
  fun initNetmera(netmeraConfiguration: RNNetmeraConfiguration) {
11
13
  val application = netmeraConfiguration.context.applicationContext as Application
12
14
  application.registerActivityLifecycleCallbacks(NMActivityLifecycleCallbacks(application))
15
+ RNNetmeraConfigHandler.setAppConfigCallback()
13
16
  Netmera.init(netmeraConfiguration.getNetmeraConfiguration())
17
+ InternalNetmera.setPlatform(Platform.REACT_NATIVE)
14
18
  setNetmeraHeaders()
15
19
  }
16
20
 
17
21
  private fun setNetmeraHeaders() {
18
22
  val headerValues = ContentValues().apply {
19
23
  put("X-netmera-framework", "react")
20
- put("X-netmera-frameworkV", "2.0.0")
24
+ put("X-netmera-frameworkV", "2.0.1")
21
25
  }
22
26
  Netmera.setNetmeraHeaders(headerValues)
23
27
  }
@@ -0,0 +1,33 @@
1
+ package com.netmera.reactnativesdk
2
+
3
+ import com.facebook.react.bridge.Arguments
4
+ import com.facebook.react.bridge.Promise
5
+ import com.facebook.react.bridge.WritableMap
6
+ import com.netmera.InternalAppConfig
7
+ import com.netmera.InternalNetmera
8
+ import com.netmera.callbacks.NMInternalAppConfigListener
9
+
10
+ object RNNetmeraConfigHandler {
11
+
12
+ const val EVENT_AUTO_TRACK_CONFIG_UPDATE = "onAutoTrackConfigUpdate"
13
+
14
+ fun getAutoTrackConfig(promise: Promise) {
15
+ val config = InternalNetmera.getAppConfig()
16
+ promise.resolve(buildConfigMap(config))
17
+ }
18
+
19
+ fun setAppConfigCallback() {
20
+ InternalNetmera.setAppConfigCallback(object : NMInternalAppConfigListener {
21
+ override fun onAppConfigUpdated(appConfig: InternalAppConfig) {
22
+ RNNetmeraModule.emitEvent(EVENT_AUTO_TRACK_CONFIG_UPDATE, buildConfigMap(appConfig))
23
+ }
24
+ })
25
+ }
26
+
27
+ private fun buildConfigMap(config: InternalAppConfig): WritableMap =
28
+ Arguments.createMap().apply {
29
+ putBoolean("isScreenFlowEnabled", config.isScreenFlowEnabled)
30
+ putBoolean("isInputActionEnabled", config.isInputActionEnabled)
31
+ putBoolean("shouldCollectValues", config.shouldCollectValues)
32
+ }
33
+ }
@@ -9,6 +9,7 @@ import com.facebook.react.bridge.ReactApplicationContext
9
9
  import com.facebook.react.bridge.ReactContextBaseJavaModule
10
10
  import com.facebook.react.bridge.ReactMethod
11
11
  import com.facebook.react.bridge.ReadableMap
12
+ import com.facebook.react.bridge.WritableMap
12
13
  import com.facebook.react.modules.core.DeviceEventManagerModule
13
14
  import com.google.firebase.messaging.RemoteMessage
14
15
  import com.google.gson.Gson
@@ -50,6 +51,11 @@ class RNNetmeraModule(reactContext: ReactApplicationContext) :
50
51
 
51
52
  override fun getName(): String = NAME
52
53
 
54
+ @ReactMethod
55
+ fun getAutoTrackConfig(promise: Promise) {
56
+ RNNetmeraConfigHandler.getAutoTrackConfig(promise)
57
+ }
58
+
53
59
  @ReactMethod
54
60
  fun currentExternalId(promise: Promise) {
55
61
  promise.resolve(Netmera.getCurrentExternalId())
@@ -690,7 +696,13 @@ class RNNetmeraModule(reactContext: ReactApplicationContext) :
690
696
 
691
697
  fun emitEvent(eventName: String, eventData: String) {
692
698
  reactContext
693
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
699
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
700
+ .emit(eventName, eventData)
701
+ }
702
+
703
+ fun emitEvent(eventName: String, eventData: WritableMap) {
704
+ reactContext
705
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
694
706
  .emit(eventName, eventData)
695
707
  }
696
708
 
package/ios/RNNetmera.mm CHANGED
@@ -131,6 +131,9 @@ RCT_EXTERN_METHOD(setWhatsAppPermission:(BOOL)isAllowed
131
131
  RCT_EXTERN_METHOD(getWhatsAppPermission:(RCTPromiseResolveBlock)resolve
132
132
  withRejecter:(RCTPromiseRejectBlock)reject)
133
133
 
134
+ RCT_EXTERN_METHOD(getAutoTrackConfig:(RCTPromiseResolveBlock)resolve
135
+ withRejecter:(RCTPromiseRejectBlock)reject)
136
+
134
137
  + (BOOL)requiresMainQueueSetup
135
138
  {
136
139
  return NO;
@@ -70,6 +70,7 @@ public class RNNetmera: NSObject {
70
70
  /// Call once early in `didFinishLaunchingWithOptions` from `AppDelegate`.
71
71
  public static func initNetmera() {
72
72
  guard !isInitialized else { return }
73
+ RNNetmeraConfigHandler.setAppConfigCallback()
73
74
  Netmera.initialize()
74
75
  applyConfiguration()
75
76
  isInitialized = true
@@ -81,12 +82,14 @@ public class RNNetmera: NSObject {
81
82
  /// - params: Optional configuration parameters for the SDK.
82
83
  public static func initialize(params: NetmeraParams) {
83
84
  guard !isInitialized else { return }
85
+ RNNetmeraConfigHandler.setAppConfigCallback()
84
86
  Netmera.initialize(params: params)
85
87
  applyConfiguration()
86
88
  isInitialized = true
87
89
  }
88
90
 
89
91
  private static func applyConfiguration() {
92
+ InternalNetmera.setPlatform(.reactNative)
90
93
  setNetmeraHeaders()
91
94
  Netmera.setPushLifecycleDelegate(RNNetmeraPushLifecycleDelegate.shared)
92
95
  #if DEBUG
@@ -97,7 +100,7 @@ public class RNNetmera: NSObject {
97
100
  private static func setNetmeraHeaders() {
98
101
  Netmera.setAdditionalRequestHeaders([
99
102
  "X-netmera-framework": "react",
100
- "X-netmera-frameworkV": "2.0.0"
103
+ "X-netmera-frameworkV": "2.0.1"
101
104
  ])
102
105
  }
103
106
 
@@ -799,4 +802,12 @@ public class RNNetmera: NSObject {
799
802
  resolve(RNNetmeraRCTEventEmitter.getInitialUrl())
800
803
  }
801
804
 
805
+ @objc(getAutoTrackConfig:withRejecter:)
806
+ func getAutoTrackConfig(
807
+ _ resolve: @escaping RCTPromiseResolveBlock,
808
+ withRejecter reject: @escaping RCTPromiseRejectBlock
809
+ ) {
810
+ RNNetmeraConfigHandler.getAutoTrackConfig(resolve: resolve, reject: reject)
811
+ }
812
+
802
813
  }
@@ -0,0 +1,28 @@
1
+ import NetmeraCore
2
+ import React
3
+
4
+ enum RNNetmeraConfigHandler {
5
+
6
+ static func getAutoTrackConfig(
7
+ resolve: @escaping RCTPromiseResolveBlock,
8
+ reject: @escaping RCTPromiseRejectBlock
9
+ ) {
10
+ resolve(buildConfigMap(from: InternalNetmera.getAppConfig()))
11
+ }
12
+
13
+ static func setAppConfigCallback() {
14
+ InternalNetmera.setAppConfigCallback { result in
15
+ if case .success(let config) = result {
16
+ RNNetmeraRCTEventEmitter.onAutoTrackConfigUpdate(buildConfigMap(from: config))
17
+ }
18
+ }
19
+ }
20
+
21
+ private static func buildConfigMap(from config: InternalNetmera.InternalAppConfig) -> [String: Bool] {
22
+ return [
23
+ "isScreenFlowEnabled": config.shouldSendScreenEvent,
24
+ "isInputActionEnabled": config.shouldSendInputFlow,
25
+ "shouldCollectValues": config.shouldSendInputValue
26
+ ]
27
+ }
28
+ }
@@ -37,7 +37,7 @@ class RNNetmeraPushObject {
37
37
  if let pushId = push.pushId { data["pushId"] = pushId }
38
38
  if let pushInstanceId = push.pushInstanceId { data["pushInstanceId"] = pushInstanceId }
39
39
  if let category = push.category { data["category"] = category }
40
- if let customJson = push.params { data["customJson"] = customJson }
40
+ if let customJson = push.customParameters { data["customJson"] = customJson }
41
41
  if let externalId = push.externalId { data["externalId"] = externalId }
42
42
  if let categories = push.categoryIds { data["categories"] = categories }
43
43
  if let sd = push.sendDate { data["sendDate"] = formatDate(sd) }
@@ -80,7 +80,7 @@ class RNNetmeraPushObject {
80
80
  if let id = actionItem.id { dict["id"] = id }
81
81
  if let title = actionItem.title { dict["title"] = title }
82
82
  if let act = actionItem.action { dict["act"] = mapPushAction(act) }
83
- dict["prms"] = actionItem.params ?? [:]
83
+ dict["prms"] = actionItem.customParameters ?? [:]
84
84
  return dict
85
85
  }
86
86
  if let jsonData = try? JSONSerialization.data(withJSONObject: mapped, options: []) {
@@ -104,7 +104,7 @@ class RNNetmeraPushObject {
104
104
  guard let action else { return nil }
105
105
  var dict: [String: Any] = [:]
106
106
  if let id = action.id { dict["id"] = id }
107
- if let prms = action.params { dict["prms"] = prms }
107
+ if let prms = action.customParameters { dict["prms"] = prms }
108
108
  if let pushAction = action.action { dict["act"] = mapPushAction(pushAction) }
109
109
  if let ia = action as? NetmeraPushInteractiveAction, let title = ia.title {
110
110
  dict["title"] = title
@@ -14,6 +14,7 @@ public class RNNetmeraRCTEventEmitter: RCTEventEmitter {
14
14
  static let onPushButtonClicked = "onPushButtonClicked"
15
15
  static let onCarouselItemClicked = "onCarouselItemClicked"
16
16
  static let onWidgetUrlTriggered = "onWidgetUrlTriggered"
17
+ static let onAutoTrackConfigUpdate = "onAutoTrackConfigUpdate"
17
18
  }
18
19
 
19
20
  private static weak var emitterInstance: RNNetmeraRCTEventEmitter?
@@ -101,6 +102,7 @@ public class RNNetmeraRCTEventEmitter: RCTEventEmitter {
101
102
  EventName.onPushRegister,
102
103
  EventName.onPushButtonClicked,
103
104
  EventName.onCarouselItemClicked,
105
+ EventName.onAutoTrackConfigUpdate,
104
106
  ]
105
107
  }
106
108
 
@@ -149,4 +151,9 @@ public class RNNetmeraRCTEventEmitter: RCTEventEmitter {
149
151
  @objc public static func onCarouselItemClicked(_ body: [String: Any]) {
150
152
  deliver(EventName.onCarouselItemClicked, body: body, waiting: &waitingOnCarouselItemClicked)
151
153
  }
154
+
155
+ static func onAutoTrackConfigUpdate(_ body: [String: Bool]) {
156
+ guard let emitter = emitterInstance else { return }
157
+ emitter.sendEvent(withName: EventName.onAutoTrackConfigUpdate, body: body)
158
+ }
152
159
  }
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _NetmeraPushObject = _interopRequireDefault(require("./models/NetmeraPushObject"));
9
+ var _NetmeraInteractiveAction = _interopRequireDefault(require("./models/NetmeraInteractiveAction"));
10
+ var _NetmeraCarouselObject = _interopRequireDefault(require("./models/NetmeraCarouselObject"));
11
+ var _NMInboxStatus = require("./models/NMInboxStatus");
12
+ var _DeviceUtils = require("./utils/DeviceUtils");
13
+ var _NotificationPermissionStatus = require("./models/NotificationPermissionStatus");
14
+ var _RNNetmera = require("./utils/RNNetmera");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ /*
17
+ * Copyright (c) 2026 Netmera Research.
18
+ */
19
+
20
+ class Netmera {
21
+ static setPushLifecycleCallbacks = (onPushRegister, onPushReceive, onPushOpen, onPushDismiss, onPushButtonClicked, onCarouselObjectSelected) => {
22
+ if (onPushRegister) {
23
+ const wrapped = raw => onPushRegister({
24
+ pushToken: raw?.pushToken
25
+ });
26
+ if ((0, _DeviceUtils.isAndroid)()) {
27
+ _reactNative.AppRegistry.registerHeadlessTask('onPushRegister', () => wrapped);
28
+ } else {
29
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onPushRegister', wrapped);
30
+ }
31
+ }
32
+ if (onPushReceive) {
33
+ const wrapped = raw => onPushReceive(_NetmeraPushObject.default.fromJson(raw));
34
+ if ((0, _DeviceUtils.isAndroid)()) {
35
+ _reactNative.AppRegistry.registerHeadlessTask('onPushReceive', () => wrapped);
36
+ } else {
37
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onPushReceive', wrapped);
38
+ }
39
+ }
40
+ if (onPushOpen) {
41
+ const wrapped = raw => onPushOpen(_NetmeraPushObject.default.fromJson(raw));
42
+ if ((0, _DeviceUtils.isAndroid)()) {
43
+ _reactNative.AppRegistry.registerHeadlessTask('onPushOpen', () => wrapped);
44
+ } else {
45
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onPushOpen', wrapped);
46
+ }
47
+ }
48
+ if (onPushDismiss) {
49
+ const wrapped = raw => onPushDismiss(_NetmeraPushObject.default.fromJson(raw));
50
+ if ((0, _DeviceUtils.isAndroid)()) {
51
+ _reactNative.AppRegistry.registerHeadlessTask('onPushDismiss', () => wrapped);
52
+ }
53
+ }
54
+ if (onPushButtonClicked) {
55
+ const wrapped = raw => {
56
+ const push = _NetmeraPushObject.default.fromJson(raw);
57
+ const action = raw?.clickedAction ? _NetmeraInteractiveAction.default.fromJson(raw.clickedAction) : undefined;
58
+ return onPushButtonClicked(push, action);
59
+ };
60
+ if ((0, _DeviceUtils.isAndroid)()) {
61
+ _reactNative.AppRegistry.registerHeadlessTask('onPushButtonClicked', () => wrapped);
62
+ } else {
63
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onPushButtonClicked', wrapped);
64
+ }
65
+ }
66
+ if (onCarouselObjectSelected) {
67
+ const wrapped = raw => {
68
+ const push = _NetmeraPushObject.default.fromJson(raw);
69
+ const carouselItem = raw?.carouselItem ? _NetmeraCarouselObject.default.fromJson(raw.carouselItem) : undefined;
70
+ return onCarouselObjectSelected(push, carouselItem);
71
+ };
72
+ if ((0, _DeviceUtils.isAndroid)()) {
73
+ _reactNative.AppRegistry.registerHeadlessTask('onCarouselObjectSelected', () => wrapped);
74
+ } else {
75
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onCarouselItemClicked', wrapped);
76
+ }
77
+ }
78
+ };
79
+ static onWidgetUrlTriggered = handler => {
80
+ if ((0, _DeviceUtils.isAndroid)()) {
81
+ _reactNative.DeviceEventEmitter.addListener('onWidgetUrlTriggered', eventData => {
82
+ handler(eventData);
83
+ });
84
+ } else {
85
+ _RNNetmera.netmeraRCTEventEmitter.addListener('onWidgetUrlTriggered', eventData => {
86
+ handler(eventData?.url);
87
+ });
88
+ }
89
+ };
90
+ static currentExternalId = async () => {
91
+ return _RNNetmera.RNNetmera.currentExternalId();
92
+ };
93
+ static checkNotificationPermission = async () => {
94
+ let status = await _RNNetmera.RNNetmera.checkNotificationPermission();
95
+ const statusMap = {
96
+ '0': _NotificationPermissionStatus.NotificationPermissionStatus.NotDetermined,
97
+ 'NOT_DETERMINED': _NotificationPermissionStatus.NotificationPermissionStatus.NotDetermined,
98
+ '1': _NotificationPermissionStatus.NotificationPermissionStatus.Blocked,
99
+ 'BLOCKED': _NotificationPermissionStatus.NotificationPermissionStatus.Blocked,
100
+ '2': _NotificationPermissionStatus.NotificationPermissionStatus.Denied,
101
+ 'DENIED': _NotificationPermissionStatus.NotificationPermissionStatus.Denied,
102
+ '3': _NotificationPermissionStatus.NotificationPermissionStatus.Granted,
103
+ 'GRANTED': _NotificationPermissionStatus.NotificationPermissionStatus.Granted
104
+ };
105
+ return statusMap[status] ?? _NotificationPermissionStatus.NotificationPermissionStatus.NotDetermined;
106
+ };
107
+ static requestPushNotificationAuthorization = () => {
108
+ return _RNNetmera.RNNetmera.requestPushNotificationAuthorization();
109
+ };
110
+ static requestPermissionsForLocation = () => {
111
+ _RNNetmera.RNNetmera.requestPermissionsForLocation();
112
+ };
113
+ static setNetmeraMaxActiveRegions = maxActiveRegions => {
114
+ _RNNetmera.RNNetmera.setNetmeraMaxActiveRegions(maxActiveRegions);
115
+ };
116
+ static enablePopupPresentation = () => {
117
+ _RNNetmera.RNNetmera.enablePopupPresentation();
118
+ };
119
+ static disablePopupPresentation = () => {
120
+ _RNNetmera.RNNetmera.disablePopupPresentation();
121
+ };
122
+ static dismissAllPresentations = () => {
123
+ _RNNetmera.RNNetmera.dismissAllPresentations();
124
+ };
125
+ static isPushEnabled = async () => {
126
+ return _RNNetmera.RNNetmera.isPushEnabled();
127
+ };
128
+ static enablePush = () => {
129
+ _RNNetmera.RNNetmera.enablePush();
130
+ };
131
+ static disablePush = () => {
132
+ _RNNetmera.RNNetmera.disablePush();
133
+ };
134
+ static kill = () => {
135
+ _RNNetmera.RNNetmera.kill();
136
+ };
137
+ static startDataTransfer = () => {
138
+ _RNNetmera.RNNetmera.startDataTransfer();
139
+ };
140
+ static stopDataTransfer = () => {
141
+ _RNNetmera.RNNetmera.stopDataTransfer();
142
+ };
143
+ static fetchCoupons = (page, max) => {
144
+ return _RNNetmera.RNNetmera.fetchCoupons(page, max);
145
+ };
146
+ static fetchInbox = async netmeraInboxFilter => {
147
+ const items = await _RNNetmera.RNNetmera.fetchInbox(netmeraInboxFilter);
148
+ return items.map(_NetmeraPushObject.default.fromJson);
149
+ };
150
+ static fetchNextPage = async () => {
151
+ const items = await _RNNetmera.RNNetmera.fetchNextPage();
152
+ return items.map(_NetmeraPushObject.default.fromJson);
153
+ };
154
+ static countForStatus = (status = _NMInboxStatus.NMInboxStatus.STATUS_UNREAD) => {
155
+ return _RNNetmera.RNNetmera.countForStatus(status);
156
+ };
157
+ static inboxUpdateStatus = (fromIndex, toIndex, status = _NMInboxStatus.NMInboxStatus.STATUS_UNREAD) => {
158
+ return _RNNetmera.RNNetmera.inboxUpdateStatus(fromIndex, toIndex, status);
159
+ };
160
+ static fetchCategory = categoryFilter => {
161
+ return _RNNetmera.RNNetmera.fetchCategory(categoryFilter);
162
+ };
163
+ static fetchNextCategoryPage = () => {
164
+ return _RNNetmera.RNNetmera.fetchNextCategoryPage();
165
+ };
166
+ static sendEvent = event => {
167
+ _RNNetmera.RNNetmera.sendEvent(event);
168
+ };
169
+
170
+ /**
171
+ * Sends a generic (custom) event with [code] and [attributes] to the Netmera.
172
+ * Use this for events that are not pre-defined in [NetmeraEvent].
173
+ */
174
+ static sendGenericEvent = (code, attributes) => {
175
+ const processedAttrs = {};
176
+ for (const [key, value] of Object.entries(attributes)) {
177
+ if (value instanceof Date) {
178
+ processedAttrs[key] = value.getTime();
179
+ } else if (Array.isArray(value) && value.length > 0 && value.every(v => v instanceof Date)) {
180
+ processedAttrs[key] = value.map(d => d.getTime());
181
+ } else {
182
+ processedAttrs[key] = value;
183
+ }
184
+ }
185
+ _RNNetmera.RNNetmera.sendGenericEvent(code, processedAttrs);
186
+ };
187
+ static identifyUser = (user, callback) => {
188
+ const payload = user.getIdentifyPayload();
189
+ if (callback) {
190
+ _RNNetmera.RNNetmera.identifyUser(payload, true).then(() => {
191
+ callback(true, null);
192
+ }).catch(error => {
193
+ callback(false, error);
194
+ });
195
+ } else {
196
+ _RNNetmera.RNNetmera.identifyUser(payload, false);
197
+ }
198
+ };
199
+ static updateUserProfile = (userProfile, callback) => {
200
+ if (callback) {
201
+ _RNNetmera.RNNetmera.updateUserProfile(userProfile.getChangesPayload(), true).then(() => {
202
+ callback(true, null);
203
+ }).catch(error => {
204
+ callback(false, error);
205
+ });
206
+ } else {
207
+ _RNNetmera.RNNetmera.updateUserProfile(userProfile.getChangesPayload(), false);
208
+ }
209
+ };
210
+ static updateAll = inboxStatus => {
211
+ return _RNNetmera.RNNetmera.updateAll(inboxStatus);
212
+ };
213
+ static handlePushObject = pushId => {
214
+ _RNNetmera.RNNetmera.handlePushObject(pushId);
215
+ };
216
+ static handleInteractiveAction = interactiveActionId => {
217
+ _RNNetmera.RNNetmera.handleInteractiveAction(interactiveActionId);
218
+ };
219
+ static updateStatusByCategories = (fromIndex, toIndex, status = _NMInboxStatus.NMInboxStatus.STATUS_UNREAD) => {
220
+ return _RNNetmera.RNNetmera.updateStatusByCategories(fromIndex, toIndex, status);
221
+ };
222
+ static getInboxCountForStatus = nmInboxStatusCountFilter => {
223
+ return _RNNetmera.RNNetmera.getInboxCountForStatus(nmInboxStatusCountFilter);
224
+ };
225
+ static getUserCategoryPreferenceList = () => {
226
+ return _RNNetmera.RNNetmera.getUserCategoryPreferenceList();
227
+ };
228
+ static setUserCategoryPreference = (categoryId, categoryEnabled) => {
229
+ return _RNNetmera.RNNetmera.setUserCategoryPreference(categoryId, categoryEnabled);
230
+ };
231
+ static onNetmeraFirebasePushMessageReceived = (from, data) => {
232
+ if ((0, _DeviceUtils.isAndroid)() && data) {
233
+ data['google.c.sender.id'] = from ?? '';
234
+ _RNNetmera.RNNetmera.onNetmeraPushMessageReceived(data);
235
+ }
236
+ };
237
+ static onNetmeraHuaweiPushMessageReceived = (from, data) => {
238
+ if ((0, _DeviceUtils.isAndroid)() && data) {
239
+ data._nm = JSON.stringify(data._nm);
240
+ data.from = from ?? '';
241
+ _RNNetmera.RNNetmera.onNetmeraPushMessageReceived(data);
242
+ }
243
+ };
244
+ static onNetmeraNewToken = pushToken => {
245
+ if ((0, _DeviceUtils.isAndroid)()) {
246
+ _RNNetmera.RNNetmera.onNetmeraNewToken(pushToken);
247
+ }
248
+ };
249
+ static isNetmeraRemoteMessage(data) {
250
+ return (0, _DeviceUtils.isAndroid)() && data !== undefined && data.hasOwnProperty('_nm');
251
+ }
252
+ static getInitialURL = async () => {
253
+ if ((0, _DeviceUtils.isIos)()) {
254
+ return _RNNetmera.RNNetmera.getInitialURL();
255
+ }
256
+ };
257
+ static async setEmailPermission(isAllowed) {
258
+ return _RNNetmera.RNNetmera.setEmailPermission(isAllowed);
259
+ }
260
+ static async getEmailPermission() {
261
+ return _RNNetmera.RNNetmera.getEmailPermission();
262
+ }
263
+ static async setSmsPermission(isAllowed) {
264
+ return _RNNetmera.RNNetmera.setSmsPermission(isAllowed);
265
+ }
266
+ static async getSmsPermission() {
267
+ return _RNNetmera.RNNetmera.getSmsPermission();
268
+ }
269
+ static async setWhatsAppPermission(isAllowed) {
270
+ return _RNNetmera.RNNetmera.setWhatsAppPermission(isAllowed);
271
+ }
272
+ static async getWhatsAppPermission() {
273
+ return _RNNetmera.RNNetmera.getWhatsAppPermission();
274
+ }
275
+ }
276
+ exports.default = Netmera;
277
+ //# sourceMappingURL=Netmera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_NetmeraPushObject","_interopRequireDefault","_NetmeraInteractiveAction","_NetmeraCarouselObject","_NMInboxStatus","_DeviceUtils","_NotificationPermissionStatus","_RNNetmera","e","__esModule","default","Netmera","setPushLifecycleCallbacks","onPushRegister","onPushReceive","onPushOpen","onPushDismiss","onPushButtonClicked","onCarouselObjectSelected","wrapped","raw","pushToken","isAndroid","AppRegistry","registerHeadlessTask","netmeraRCTEventEmitter","addListener","NetmeraPushObject","fromJson","push","action","clickedAction","NetmeraInteractiveAction","undefined","carouselItem","NetmeraCarouselObject","onWidgetUrlTriggered","handler","DeviceEventEmitter","eventData","url","currentExternalId","RNNetmera","checkNotificationPermission","status","statusMap","NotificationPermissionStatus","NotDetermined","Blocked","Denied","Granted","requestPushNotificationAuthorization","requestPermissionsForLocation","setNetmeraMaxActiveRegions","maxActiveRegions","enablePopupPresentation","disablePopupPresentation","dismissAllPresentations","isPushEnabled","enablePush","disablePush","kill","startDataTransfer","stopDataTransfer","fetchCoupons","page","max","fetchInbox","netmeraInboxFilter","items","map","fetchNextPage","countForStatus","NMInboxStatus","STATUS_UNREAD","inboxUpdateStatus","fromIndex","toIndex","fetchCategory","categoryFilter","fetchNextCategoryPage","sendEvent","event","sendGenericEvent","code","attributes","processedAttrs","key","value","Object","entries","Date","getTime","Array","isArray","length","every","v","d","identifyUser","user","callback","payload","getIdentifyPayload","then","catch","error","updateUserProfile","userProfile","getChangesPayload","updateAll","inboxStatus","handlePushObject","pushId","handleInteractiveAction","interactiveActionId","updateStatusByCategories","getInboxCountForStatus","nmInboxStatusCountFilter","getUserCategoryPreferenceList","setUserCategoryPreference","categoryId","categoryEnabled","onNetmeraFirebasePushMessageReceived","from","data","onNetmeraPushMessageReceived","onNetmeraHuaweiPushMessageReceived","_nm","JSON","stringify","onNetmeraNewToken","isNetmeraRemoteMessage","hasOwnProperty","getInitialURL","isIos","setEmailPermission","isAllowed","getEmailPermission","setSmsPermission","getSmsPermission","setWhatsAppPermission","getWhatsAppPermission","exports"],"sourceRoot":"../../src","sources":["Netmera.ts"],"mappings":"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","ignoreList":[]}