react-native-netmera 1.11.3 → 2.0.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 (280) hide show
  1. package/README.md +109 -120
  2. package/RNNetmera.podspec +30 -14
  3. package/android/build.gradle +83 -19
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +0 -5
  6. package/android/src/main/AndroidManifestNew.xml +5 -0
  7. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.kt +24 -0
  8. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.kt +54 -0
  9. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.kt +108 -0
  10. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.kt +24 -0
  11. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.kt +694 -0
  12. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.kt +17 -0
  13. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.kt +81 -0
  14. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.kt +32 -0
  15. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.kt +218 -0
  16. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.kt +25 -0
  17. package/ios/AnyCodable/AnyCodable.swift +151 -0
  18. package/ios/AnyCodable/AnyDecodable.swift +192 -0
  19. package/ios/AnyCodable/AnyEncodable.swift +295 -0
  20. package/ios/RNNetmera-Bridging-Header.h +3 -0
  21. package/ios/RNNetmera.mm +143 -0
  22. package/ios/RNNetmera.swift +759 -0
  23. package/ios/RNNetmeraCategoryObject.swift +61 -0
  24. package/ios/RNNetmeraEvent.swift +26 -0
  25. package/ios/RNNetmeraPushLifecycleDelegate.swift +47 -0
  26. package/ios/RNNetmeraRCTEventEmitter.mm +8 -0
  27. package/ios/RNNetmeraRCTEventEmitter.swift +134 -0
  28. package/ios/RNNetmeraUtils.swift +233 -0
  29. package/lib/module/Netmera.js +256 -0
  30. package/lib/module/Netmera.js.map +1 -0
  31. package/lib/module/events/NetmeraEvent.js +8 -0
  32. package/lib/module/events/NetmeraEvent.js.map +1 -0
  33. package/lib/module/events/NetmeraEventBannerOpen.js +13 -0
  34. package/lib/module/events/NetmeraEventBannerOpen.js.map +1 -0
  35. package/lib/module/events/NetmeraEventBatteryLevel.js +10 -0
  36. package/lib/module/events/NetmeraEventBatteryLevel.js.map +1 -0
  37. package/lib/module/events/NetmeraEventCategoryView.js +13 -0
  38. package/lib/module/events/NetmeraEventCategoryView.js.map +1 -0
  39. package/lib/module/events/NetmeraEventInAppPurchase.js +28 -0
  40. package/lib/module/events/NetmeraEventInAppPurchase.js.map +1 -0
  41. package/lib/module/events/NetmeraEventLogin.js +10 -0
  42. package/lib/module/events/NetmeraEventLogin.js.map +1 -0
  43. package/lib/module/events/NetmeraEventRegister.js +10 -0
  44. package/lib/module/events/NetmeraEventRegister.js.map +1 -0
  45. package/lib/module/events/NetmeraEventScreenView.js +22 -0
  46. package/lib/module/events/NetmeraEventScreenView.js.map +1 -0
  47. package/lib/module/events/NetmeraEventSearch.js +13 -0
  48. package/lib/module/events/NetmeraEventSearch.js.map +1 -0
  49. package/lib/module/events/NetmeraEventShare.js +13 -0
  50. package/lib/module/events/NetmeraEventShare.js.map +1 -0
  51. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js +13 -0
  52. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
  53. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js +10 -0
  54. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
  55. package/lib/module/events/commerce/NetmeraEventCartView.js +13 -0
  56. package/lib/module/events/commerce/NetmeraEventCartView.js.map +1 -0
  57. package/lib/module/events/commerce/NetmeraEventOrderCancel.js +19 -0
  58. package/lib/module/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
  59. package/lib/module/events/commerce/NetmeraEventProductComment.js +7 -0
  60. package/lib/module/events/commerce/NetmeraEventProductComment.js.map +1 -0
  61. package/lib/module/events/commerce/NetmeraEventProductRate.js +10 -0
  62. package/lib/module/events/commerce/NetmeraEventProductRate.js.map +1 -0
  63. package/lib/module/events/commerce/NetmeraEventProductView.js +7 -0
  64. package/lib/module/events/commerce/NetmeraEventProductView.js.map +1 -0
  65. package/lib/module/events/commerce/NetmeraEventPurchase.js +34 -0
  66. package/lib/module/events/commerce/NetmeraEventPurchase.js.map +1 -0
  67. package/lib/module/events/commerce/NetmeraEventWishList.js +7 -0
  68. package/lib/module/events/commerce/NetmeraEventWishList.js.map +1 -0
  69. package/lib/module/events/commerce/NetmeraLineItem.js +9 -0
  70. package/lib/module/events/commerce/NetmeraLineItem.js.map +1 -0
  71. package/lib/module/events/commerce/NetmeraProduct.js +46 -0
  72. package/lib/module/events/commerce/NetmeraProduct.js.map +1 -0
  73. package/lib/module/events/media/NetmeraEventContent.js +42 -0
  74. package/lib/module/events/media/NetmeraEventContent.js.map +1 -0
  75. package/lib/module/events/media/NetmeraEventContentComment.js +7 -0
  76. package/lib/module/events/media/NetmeraEventContentComment.js.map +1 -0
  77. package/lib/module/events/media/NetmeraEventContentRate.js +10 -0
  78. package/lib/module/events/media/NetmeraEventContentRate.js.map +1 -0
  79. package/lib/module/events/media/NetmeraEventContentView.js +7 -0
  80. package/lib/module/events/media/NetmeraEventContentView.js.map +1 -0
  81. package/lib/module/index.js +43 -0
  82. package/lib/module/index.js.map +1 -0
  83. package/lib/module/models/NMCategoryPreference.js +8 -0
  84. package/lib/module/models/NMCategoryPreference.js.map +1 -0
  85. package/lib/module/models/NMInboxStatus.js +11 -0
  86. package/lib/module/models/NMInboxStatus.js.map +1 -0
  87. package/lib/module/models/NMInboxStatusCountFilter.js +12 -0
  88. package/lib/module/models/NMInboxStatusCountFilter.js.map +1 -0
  89. package/lib/module/models/NetmeraCategory.js +8 -0
  90. package/lib/module/models/NetmeraCategory.js.map +1 -0
  91. package/lib/module/models/NetmeraCategoryFilter.js +8 -0
  92. package/lib/module/models/NetmeraCategoryFilter.js.map +1 -0
  93. package/lib/module/models/NetmeraCouponObject.js +8 -0
  94. package/lib/module/models/NetmeraCouponObject.js.map +1 -0
  95. package/lib/module/models/NetmeraInbox.js +8 -0
  96. package/lib/module/models/NetmeraInbox.js.map +1 -0
  97. package/lib/module/models/NetmeraInboxFilter.js +8 -0
  98. package/lib/module/models/NetmeraInboxFilter.js.map +1 -0
  99. package/lib/module/models/NetmeraProfileAttribute.js +75 -0
  100. package/lib/module/models/NetmeraProfileAttribute.js.map +1 -0
  101. package/lib/module/models/NetmeraUser.js +89 -0
  102. package/lib/module/models/NetmeraUser.js.map +1 -0
  103. package/lib/module/models/NetmeraUserProfile.js +58 -0
  104. package/lib/module/models/NetmeraUserProfile.js.map +1 -0
  105. package/lib/module/models/NotificationPermissionStatus.js +10 -0
  106. package/lib/module/models/NotificationPermissionStatus.js.map +1 -0
  107. package/lib/module/package.json +1 -0
  108. package/lib/module/utils/DeviceUtils.js +10 -0
  109. package/lib/module/utils/DeviceUtils.js.map +1 -0
  110. package/lib/module/utils/Optional.js +32 -0
  111. package/lib/module/utils/Optional.js.map +1 -0
  112. package/lib/module/utils/RNNetmera.js +16 -0
  113. package/lib/module/utils/RNNetmera.js.map +1 -0
  114. package/lib/typescript/package.json +1 -0
  115. package/lib/typescript/src/Netmera.d.ts +70 -0
  116. package/lib/typescript/src/Netmera.d.ts.map +1 -0
  117. package/lib/typescript/src/events/NetmeraEvent.d.ts +5 -0
  118. package/lib/typescript/src/events/NetmeraEvent.d.ts.map +1 -0
  119. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts +9 -0
  120. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts.map +1 -0
  121. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts +7 -0
  122. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts.map +1 -0
  123. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts +9 -0
  124. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts.map +1 -0
  125. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts +19 -0
  126. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts.map +1 -0
  127. package/lib/typescript/src/events/NetmeraEventLogin.d.ts +7 -0
  128. package/lib/typescript/src/events/NetmeraEventLogin.d.ts.map +1 -0
  129. package/lib/typescript/src/events/NetmeraEventRegister.d.ts +7 -0
  130. package/lib/typescript/src/events/NetmeraEventRegister.d.ts.map +1 -0
  131. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts +15 -0
  132. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts.map +1 -0
  133. package/lib/typescript/src/events/NetmeraEventSearch.d.ts +9 -0
  134. package/lib/typescript/src/events/NetmeraEventSearch.d.ts.map +1 -0
  135. package/lib/typescript/src/events/NetmeraEventShare.d.ts +9 -0
  136. package/lib/typescript/src/events/NetmeraEventShare.d.ts.map +1 -0
  137. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts +9 -0
  138. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts.map +1 -0
  139. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts +7 -0
  140. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts.map +1 -0
  141. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts +9 -0
  142. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts.map +1 -0
  143. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts +13 -0
  144. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts.map +1 -0
  145. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts +5 -0
  146. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts.map +1 -0
  147. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts +7 -0
  148. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts.map +1 -0
  149. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts +5 -0
  150. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts.map +1 -0
  151. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts +24 -0
  152. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts.map +1 -0
  153. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts +5 -0
  154. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts.map +1 -0
  155. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts +6 -0
  156. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts.map +1 -0
  157. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts +23 -0
  158. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts.map +1 -0
  159. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts +23 -0
  160. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts.map +1 -0
  161. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts +5 -0
  162. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts.map +1 -0
  163. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts +7 -0
  164. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts.map +1 -0
  165. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts +5 -0
  166. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts.map +1 -0
  167. package/lib/typescript/src/index.d.ts +39 -0
  168. package/lib/typescript/src/index.d.ts.map +1 -0
  169. package/lib/typescript/src/models/NMCategoryPreference.d.ts +6 -0
  170. package/lib/typescript/src/models/NMCategoryPreference.d.ts.map +1 -0
  171. package/lib/typescript/src/models/NMInboxStatus.d.ts +8 -0
  172. package/lib/typescript/src/models/NMInboxStatus.d.ts.map +1 -0
  173. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts +7 -0
  174. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts.map +1 -0
  175. package/lib/typescript/src/models/NetmeraCategory.d.ts +10 -0
  176. package/lib/typescript/src/models/NetmeraCategory.d.ts.map +1 -0
  177. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts +6 -0
  178. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts.map +1 -0
  179. package/lib/typescript/src/models/NetmeraCouponObject.d.ts +8 -0
  180. package/lib/typescript/src/models/NetmeraCouponObject.d.ts.map +1 -0
  181. package/lib/typescript/src/models/NetmeraInbox.d.ts +22 -0
  182. package/lib/typescript/src/models/NetmeraInbox.d.ts.map +1 -0
  183. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts +7 -0
  184. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts.map +1 -0
  185. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts +33 -0
  186. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts.map +1 -0
  187. package/lib/typescript/src/models/NetmeraUser.d.ts +25 -0
  188. package/lib/typescript/src/models/NetmeraUser.d.ts.map +1 -0
  189. package/lib/typescript/src/models/NetmeraUserProfile.d.ts +21 -0
  190. package/lib/typescript/src/models/NetmeraUserProfile.d.ts.map +1 -0
  191. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts +7 -0
  192. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts.map +1 -0
  193. package/lib/typescript/src/utils/DeviceUtils.d.ts +3 -0
  194. package/lib/typescript/src/utils/DeviceUtils.d.ts.map +1 -0
  195. package/lib/typescript/src/utils/Optional.d.ts +15 -0
  196. package/lib/typescript/src/utils/Optional.d.ts.map +1 -0
  197. package/lib/typescript/src/utils/RNNetmera.d.ts +5 -0
  198. package/lib/typescript/src/utils/RNNetmera.d.ts.map +1 -0
  199. package/package.json +104 -17
  200. package/src/Netmera.ts +139 -88
  201. package/src/events/NetmeraEvent.ts +1 -1
  202. package/src/events/NetmeraEventBannerOpen.ts +4 -4
  203. package/src/events/NetmeraEventBatteryLevel.ts +3 -3
  204. package/src/events/NetmeraEventCategoryView.ts +4 -4
  205. package/src/events/NetmeraEventInAppPurchase.ts +10 -10
  206. package/src/events/NetmeraEventLogin.ts +3 -3
  207. package/src/events/NetmeraEventRegister.ts +3 -3
  208. package/src/events/NetmeraEventScreenView.ts +7 -7
  209. package/src/events/NetmeraEventSearch.ts +4 -4
  210. package/src/events/NetmeraEventShare.ts +4 -4
  211. package/src/events/commerce/NetmeraEventCartAddProduct.ts +4 -4
  212. package/src/events/commerce/NetmeraEventCartRemoveProduct.ts +3 -3
  213. package/src/events/commerce/NetmeraEventCartView.ts +4 -4
  214. package/src/events/commerce/NetmeraEventOrderCancel.ts +6 -6
  215. package/src/events/commerce/NetmeraEventProductComment.ts +2 -2
  216. package/src/events/commerce/NetmeraEventProductRate.ts +3 -3
  217. package/src/events/commerce/NetmeraEventProductView.ts +2 -2
  218. package/src/events/commerce/NetmeraEventPurchase.ts +13 -13
  219. package/src/events/commerce/NetmeraEventWishList.ts +2 -2
  220. package/src/events/commerce/NetmeraLineItem.ts +2 -2
  221. package/src/events/commerce/NetmeraProduct.ts +10 -10
  222. package/src/events/media/NetmeraEventContent.ts +8 -8
  223. package/src/events/media/NetmeraEventContentComment.ts +2 -2
  224. package/src/events/media/NetmeraEventContentRate.ts +3 -3
  225. package/src/events/media/NetmeraEventContentView.ts +2 -2
  226. package/src/index.ts +87 -0
  227. package/src/models/NMCategoryPreference.ts +1 -1
  228. package/src/models/NMInboxStatusCountFilter.ts +1 -1
  229. package/src/models/NetmeraCategory.ts +2 -2
  230. package/src/models/NetmeraCategoryFilter.ts +1 -1
  231. package/src/models/NetmeraCouponObject.ts +1 -1
  232. package/src/models/NetmeraInbox.ts +1 -1
  233. package/src/models/NetmeraInboxFilter.ts +1 -1
  234. package/src/models/NetmeraProfileAttribute.ts +81 -0
  235. package/src/models/NetmeraUser.ts +76 -74
  236. package/src/models/NetmeraUserProfile.ts +67 -0
  237. package/src/models/NotificationPermissionStatus.ts +4 -4
  238. package/src/utils/DeviceUtils.ts +3 -3
  239. package/src/utils/Optional.ts +31 -0
  240. package/src/utils/RNNetmera.ts +24 -0
  241. package/.eslintignore +0 -7
  242. package/.gitattributes +0 -1
  243. package/.github/workflows/code_quality_check.yaml +0 -38
  244. package/.prettierignore +0 -14
  245. package/.yarnrc.yml +0 -1
  246. package/android/.project +0 -17
  247. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  248. package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  249. package/android/gradlew +0 -172
  250. package/android/gradlew.bat +0 -84
  251. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +0 -24
  252. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +0 -56
  253. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +0 -154
  254. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.java +0 -36
  255. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +0 -631
  256. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.java +0 -35
  257. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +0 -86
  258. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.java +0 -32
  259. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUser.java +0 -24
  260. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +0 -354
  261. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.java +0 -27
  262. package/index.ts +0 -80
  263. package/ios/RNNetmera.h +0 -32
  264. package/ios/RNNetmera.m +0 -507
  265. package/ios/RNNetmera.xcodeproj/project.pbxproj +0 -316
  266. package/ios/RNNetmera.xcodeproj/xcshareddata/xcschemes/RNNetmera.xcscheme +0 -67
  267. package/ios/RNNetmera.xcworkspace/contents.xcworkspacedata +0 -9
  268. package/ios/RNNetmeraCategoryObject.h +0 -16
  269. package/ios/RNNetmeraCategoryObject.m +0 -59
  270. package/ios/RNNetmeraEvent.h +0 -17
  271. package/ios/RNNetmeraEvent.m +0 -27
  272. package/ios/RNNetmeraRCTEventEmitter.h +0 -23
  273. package/ios/RNNetmeraRCTEventEmitter.m +0 -142
  274. package/ios/RNNetmeraUser.h +0 -15
  275. package/ios/RNNetmeraUser.m +0 -19
  276. package/ios/RNNetmeraUtils.h +0 -27
  277. package/ios/RNNetmeraUtils.m +0 -128
  278. package/scripts/update-version.js +0 -38
  279. package/scripts/yarn_rebuild.sh +0 -31
  280. package/tsconfig.json +0 -3
package/src/Netmera.ts CHANGED
@@ -1,33 +1,22 @@
1
1
  /*
2
- * Copyright (c) 2023 Netmera Research.
2
+ * Copyright (c) 2026 Netmera Research.
3
3
  */
4
4
 
5
- import {
6
- AppRegistry,
7
- DeviceEventEmitter,
8
- Linking,
9
- NativeEventEmitter,
10
- NativeModules,
11
- NativeModulesStatic,
12
- } from "react-native";
13
- import NetmeraUser from "./models/NetmeraUser";
14
- import NetmeraEvent from "./events/NetmeraEvent";
15
- import NetmeraInboxFilter from "./models/NetmeraInboxFilter";
16
- import NetmeraPushInbox from "./models/NetmeraInbox";
17
- import NetmeraCategoryFilter from "./models/NetmeraCategoryFilter";
18
- import NetmeraCategory from "./models/NetmeraCategory";
19
- import NMInboxStatusCountFilter from "./models/NMInboxStatusCountFilter";
20
- import NMCategoryPreference from "./models/NMCategoryPreference";
21
- import { NMInboxStatus } from "./models/NMInboxStatus";
22
- import NetmeraCouponObject from "./models/NetmeraCouponObject";
23
- import { isAndroid, isIos } from "./utils/DeviceUtils";
24
- import { NotificationPermissionStatus } from "./models/NotificationPermissionStatus";
25
-
26
- const { RNNetmera, RNNetmeraRCTEventEmitter }: NativeModulesStatic =
27
- NativeModules;
28
- const netmeraRCTEventEmitter: NativeEventEmitter = new NativeEventEmitter(
29
- RNNetmeraRCTEventEmitter
30
- );
5
+ import { AppRegistry, DeviceEventEmitter, Linking } from 'react-native';
6
+ import NetmeraEvent from './events/NetmeraEvent';
7
+ import NetmeraUser from './models/NetmeraUser';
8
+ import NetmeraInboxFilter from './models/NetmeraInboxFilter';
9
+ import NetmeraPushInbox from './models/NetmeraInbox';
10
+ import NetmeraCategoryFilter from './models/NetmeraCategoryFilter';
11
+ import NetmeraCategory from './models/NetmeraCategory';
12
+ import NMInboxStatusCountFilter from './models/NMInboxStatusCountFilter';
13
+ import NMCategoryPreference from './models/NMCategoryPreference';
14
+ import { NMInboxStatus } from './models/NMInboxStatus';
15
+ import NetmeraCouponObject from './models/NetmeraCouponObject';
16
+ import { isAndroid, isIos } from './utils/DeviceUtils';
17
+ import { NotificationPermissionStatus } from './models/NotificationPermissionStatus';
18
+ import { netmeraRCTEventEmitter, RNNetmera } from './utils/RNNetmera';
19
+ import type { NetmeraUserProfile } from './models/NetmeraUserProfile';
31
20
 
32
21
  export default class Netmera {
33
22
  static initBroadcastReceiver = (
@@ -41,60 +30,68 @@ export default class Netmera {
41
30
  if (onPushRegister) {
42
31
  if (isAndroid()) {
43
32
  AppRegistry.registerHeadlessTask(
44
- "onPushRegister",
33
+ 'onPushRegister',
45
34
  () => onPushRegister
46
35
  );
47
36
  } else {
48
- netmeraRCTEventEmitter.addListener("onPushRegister", onPushRegister);
37
+ netmeraRCTEventEmitter.addListener('onPushRegister', onPushRegister);
49
38
  }
50
39
  }
51
40
  if (onPushReceive) {
52
41
  if (isAndroid()) {
53
- AppRegistry.registerHeadlessTask("onPushReceive", () => onPushReceive);
42
+ AppRegistry.registerHeadlessTask('onPushReceive', () => onPushReceive);
54
43
  } else {
55
- netmeraRCTEventEmitter.addListener("onPushReceive", onPushReceive);
44
+ netmeraRCTEventEmitter.addListener('onPushReceive', onPushReceive);
56
45
  }
57
46
  }
58
47
  if (onPushOpen) {
59
48
  if (isAndroid()) {
60
- AppRegistry.registerHeadlessTask("onPushOpen", () => onPushOpen);
49
+ AppRegistry.registerHeadlessTask('onPushOpen', () => onPushOpen);
61
50
  } else {
62
- netmeraRCTEventEmitter.addListener("onPushOpen", onPushOpen);
51
+ netmeraRCTEventEmitter.addListener('onPushOpen', onPushOpen);
63
52
  }
64
53
  }
65
54
  if (onPushDismiss) {
66
55
  if (isAndroid()) {
67
- AppRegistry.registerHeadlessTask("onPushDismiss", () => onPushDismiss);
68
- } else {
69
- netmeraRCTEventEmitter.addListener("onPushDismiss", onPushDismiss);
56
+ AppRegistry.registerHeadlessTask('onPushDismiss', () => onPushDismiss);
70
57
  }
71
58
  }
72
59
  if (onPushButtonClicked) {
73
60
  if (isAndroid()) {
74
61
  AppRegistry.registerHeadlessTask(
75
- "onPushButtonClicked",
62
+ 'onPushButtonClicked',
76
63
  () => onPushButtonClicked
77
64
  );
65
+ } else {
66
+ netmeraRCTEventEmitter.addListener(
67
+ 'onPushButtonClicked',
68
+ onPushButtonClicked
69
+ );
78
70
  }
79
71
  }
80
72
  if (onCarouselObjectSelected) {
81
73
  if (isAndroid()) {
82
74
  AppRegistry.registerHeadlessTask(
83
- "onCarouselObjectSelected",
75
+ 'onCarouselObjectSelected',
84
76
  () => onCarouselObjectSelected
85
77
  );
78
+ } else {
79
+ netmeraRCTEventEmitter.addListener(
80
+ 'onCarouselItemClicked',
81
+ onCarouselObjectSelected
82
+ );
86
83
  }
87
84
  }
88
85
  };
89
86
 
90
87
  static onWidgetUrlTriggered = (handler: (url: string) => void) => {
91
88
  if (isAndroid()) {
92
- DeviceEventEmitter.addListener("onWidgetUrlTriggered", (eventData) => {
89
+ DeviceEventEmitter.addListener('onWidgetUrlTriggered', (eventData) => {
93
90
  handler(eventData);
94
91
  });
95
92
  } else {
96
93
  netmeraRCTEventEmitter.addListener(
97
- "onWidgetUrlTriggered",
94
+ 'onWidgetUrlTriggered',
98
95
  (eventData) => {
99
96
  handler(eventData?.url);
100
97
  }
@@ -106,40 +103,26 @@ export default class Netmera {
106
103
  return RNNetmera.currentExternalId();
107
104
  };
108
105
 
109
- static setBaseUrl = (baseUrl: string) => {
110
- RNNetmera.setBaseUrl(baseUrl);
111
- };
112
-
113
- static skipAppConfigAndSetBaseUrl = (baseUrl: string) => {
114
- if (isAndroid()) {
115
- RNNetmera.skipAppConfigAndSetBaseUrl(baseUrl);
116
- }
117
- };
118
-
119
- static areNotificationsEnabled = async (): Promise<boolean> => {
120
- return RNNetmera.areNotificationsEnabled();
121
- };
122
-
123
106
  static checkNotificationPermission =
124
107
  async (): Promise<NotificationPermissionStatus> => {
125
108
  let status: string = await RNNetmera.checkNotificationPermission();
126
109
 
127
110
  const statusMap: Record<string, NotificationPermissionStatus> = {
128
- "0": NotificationPermissionStatus.NotDetermined,
129
- NOT_DETERMINED: NotificationPermissionStatus.NotDetermined,
130
- "1": NotificationPermissionStatus.Blocked,
131
- BLOCKED: NotificationPermissionStatus.Blocked,
132
- "2": NotificationPermissionStatus.Denied,
133
- DENIED: NotificationPermissionStatus.Denied,
134
- "3": NotificationPermissionStatus.Granted,
135
- GRANTED: NotificationPermissionStatus.Granted,
111
+ '0': NotificationPermissionStatus.NotDetermined,
112
+ 'NOT_DETERMINED': NotificationPermissionStatus.NotDetermined,
113
+ '1': NotificationPermissionStatus.Blocked,
114
+ 'BLOCKED': NotificationPermissionStatus.Blocked,
115
+ '2': NotificationPermissionStatus.Denied,
116
+ 'DENIED': NotificationPermissionStatus.Denied,
117
+ '3': NotificationPermissionStatus.Granted,
118
+ 'GRANTED': NotificationPermissionStatus.Granted,
136
119
  };
137
120
 
138
- return statusMap[status];
121
+ return statusMap[status] ?? NotificationPermissionStatus.NotDetermined;
139
122
  };
140
123
 
141
- static requestPushNotificationAuthorization = () => {
142
- RNNetmera.requestPushNotificationAuthorization();
124
+ static requestPushNotificationAuthorization = (): Promise<boolean> => {
125
+ return RNNetmera.requestPushNotificationAuthorization();
143
126
  };
144
127
 
145
128
  static requestPermissionsForLocation = () => {
@@ -158,6 +141,10 @@ export default class Netmera {
158
141
  RNNetmera.disablePopupPresentation();
159
142
  };
160
143
 
144
+ static dismissAllPresentations = () => {
145
+ RNNetmera.dismissAllPresentations();
146
+ };
147
+
161
148
  static isPushEnabled = async (): Promise<boolean> => {
162
149
  return RNNetmera.isPushEnabled();
163
150
  };
@@ -170,16 +157,8 @@ export default class Netmera {
170
157
  RNNetmera.disablePush();
171
158
  };
172
159
 
173
- static turnOffSendingEventAndUserUpdate = (turnOff: boolean) => {
174
- if (isAndroid()) {
175
- RNNetmera.turnOffSendingEventAndUserUpdate(turnOff);
176
- }
177
- };
178
-
179
160
  static kill = () => {
180
- if (isAndroid()) {
181
- RNNetmera.kill();
182
- }
161
+ RNNetmera.kill();
183
162
  };
184
163
 
185
164
  static startDataTransfer = () => {
@@ -233,12 +212,64 @@ export default class Netmera {
233
212
  RNNetmera.sendEvent(event);
234
213
  };
235
214
 
236
- static updateUser = (user: NetmeraUser): Promise<void> => {
237
- return RNNetmera.updateUser(user);
215
+ /**
216
+ * Sends a generic (custom) event with [code] and [attributes] to the Netmera.
217
+ * Use this for events that are not pre-defined in [NetmeraEvent].
218
+ */
219
+ static sendGenericEvent = (
220
+ code: string,
221
+ attributes: Record<string, any>
222
+ ): void => {
223
+ const processedAttrs: Record<string, any> = {};
224
+ for (const [key, value] of Object.entries(attributes)) {
225
+ if (value instanceof Date) {
226
+ processedAttrs[key] = value.getTime();
227
+ } else if (
228
+ Array.isArray(value) &&
229
+ value.length > 0 &&
230
+ value.every((v) => v instanceof Date)
231
+ ) {
232
+ processedAttrs[key] = value.map((d) => (d as Date).getTime());
233
+ } else {
234
+ processedAttrs[key] = value;
235
+ }
236
+ }
237
+ RNNetmera.sendGenericEvent(code, processedAttrs);
238
+ };
239
+
240
+ static identifyUser = (
241
+ user: NetmeraUser,
242
+ callback?: (success: boolean, error: Error | null) => void
243
+ ): void => {
244
+ const payload = user.getIdentifyPayload();
245
+ if (callback) {
246
+ RNNetmera.identifyUser(payload, true)
247
+ .then(() => {
248
+ callback(true, null);
249
+ })
250
+ .catch((error: Error) => {
251
+ callback(false, error);
252
+ });
253
+ } else {
254
+ RNNetmera.identifyUser(payload, false);
255
+ }
238
256
  };
239
257
 
240
- static updateUserAsync = (user: NetmeraUser): void => {
241
- return RNNetmera.updateUserAsync(user);
258
+ static updateUserProfile = (
259
+ userProfile: NetmeraUserProfile,
260
+ callback?: (success: boolean, error: Error | null) => void
261
+ ): void => {
262
+ if (callback) {
263
+ RNNetmera.updateUserProfile(userProfile.getChangesPayload(), true)
264
+ .then(() => {
265
+ callback(true, null);
266
+ })
267
+ .catch((error: Error) => {
268
+ callback(false, error);
269
+ });
270
+ } else {
271
+ RNNetmera.updateUserProfile(userProfile.getChangesPayload(), false);
272
+ }
242
273
  };
243
274
 
244
275
  static updateAll = (inboxStatus: number) => {
@@ -249,12 +280,8 @@ export default class Netmera {
249
280
  RNNetmera.handlePushObject(pushId);
250
281
  };
251
282
 
252
- static handleInteractiveAction = (pushId: string) => {
253
- RNNetmera.handleInteractiveAction(pushId);
254
- };
255
-
256
- static setApiKey = (apiKey: string) => {
257
- RNNetmera.setApiKey(apiKey);
283
+ static handleInteractiveAction = (interactiveActionId: string) => {
284
+ RNNetmera.handleInteractiveAction(interactiveActionId);
258
285
  };
259
286
 
260
287
  static handleLastMessage = (categoryName: string) => {
@@ -293,7 +320,7 @@ export default class Netmera {
293
320
  data?: { [key: string]: string }
294
321
  ) => {
295
322
  if (isAndroid() && data) {
296
- data["google.c.sender.id"] = from ?? "";
323
+ data['google.c.sender.id'] = from ?? '';
297
324
  RNNetmera.onNetmeraPushMessageReceived(data);
298
325
  }
299
326
  };
@@ -303,8 +330,8 @@ export default class Netmera {
303
330
  data?: { [key: string]: string }
304
331
  ) => {
305
332
  if (isAndroid() && data) {
306
- data["_nm"] = JSON.stringify(data["_nm"]);
307
- data["from"] = from ?? "";
333
+ data._nm = JSON.stringify(data._nm);
334
+ data.from = from ?? '';
308
335
  RNNetmera.onNetmeraPushMessageReceived(data);
309
336
  }
310
337
  };
@@ -316,7 +343,7 @@ export default class Netmera {
316
343
  };
317
344
 
318
345
  static isNetmeraRemoteMessage(data?: { [key: string]: string }): boolean {
319
- return isAndroid() && data != undefined && data.hasOwnProperty("_nm");
346
+ return isAndroid() && data !== undefined && data.hasOwnProperty('_nm');
320
347
  }
321
348
 
322
349
  static getInitialURL = async () => {
@@ -327,4 +354,28 @@ export default class Netmera {
327
354
  return RNNetmera.getInitialURL();
328
355
  }
329
356
  };
357
+
358
+ static async setEmailPermission(isAllowed: boolean): Promise<void> {
359
+ return RNNetmera.setEmailPermission(isAllowed);
360
+ }
361
+
362
+ static async getEmailPermission(): Promise<boolean> {
363
+ return RNNetmera.getEmailPermission();
364
+ }
365
+
366
+ static async setSmsPermission(isAllowed: boolean): Promise<void> {
367
+ return RNNetmera.setSmsPermission(isAllowed);
368
+ }
369
+
370
+ static async getSmsPermission(): Promise<boolean> {
371
+ return RNNetmera.getSmsPermission();
372
+ }
373
+
374
+ static async setWhatsAppPermission(isAllowed: boolean): Promise<void> {
375
+ return RNNetmera.setWhatsAppPermission(isAllowed);
376
+ }
377
+
378
+ static async getWhatsAppPermission(): Promise<boolean> {
379
+ return RNNetmera.getWhatsAppPermission();
380
+ }
330
381
  }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2023 Netmera Research.
2
+ * Copyright (c) 2026 Netmera Research.
3
3
  */
4
4
 
5
5
  export default abstract class NetmeraEvent {
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventBannerOpen extends NetmeraEvent {
4
- code = "n:bc";
4
+ code = 'n:bc';
5
5
 
6
- private ea: string | undefined;
7
- private eg: string[] | undefined;
6
+ protected ea: string | undefined;
7
+ protected eg: string[] | undefined;
8
8
 
9
9
  setId(id: string): void {
10
10
  this.ea = id;
@@ -1,9 +1,9 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventBatteryLevel extends NetmeraEvent {
4
- code = "n:bl";
4
+ code = 'n:bl';
5
5
 
6
- private ec: number | undefined;
6
+ protected ec: number | undefined;
7
7
 
8
8
  setBatteryLevel(batteryLevel: number): void {
9
9
  this.ec = batteryLevel;
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventCategoryView extends NetmeraEvent {
4
- code = "n:cv";
4
+ code = 'n:cv';
5
5
 
6
- private ga: string | undefined;
7
- private ef: string | undefined;
6
+ protected ga: string | undefined;
7
+ protected ef: string | undefined;
8
8
 
9
9
  setId(id: string): void {
10
10
  this.ga = id;
@@ -1,15 +1,15 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventInAppPurchase extends NetmeraEvent {
4
- code = "n:ip";
5
-
6
- private ea: string | undefined;
7
- private eb: string | undefined;
8
- private eq: number | undefined;
9
- private ec: number | undefined;
10
- private ga: string[] | undefined;
11
- private ef: string[] | undefined;
12
- private eg: string[] | undefined;
4
+ code = 'n:ip';
5
+
6
+ protected ea: string | undefined;
7
+ protected eb: string | undefined;
8
+ protected eq: number | undefined;
9
+ protected ec: number | undefined;
10
+ protected ga: string[] | undefined;
11
+ protected ef: string[] | undefined;
12
+ protected eg: string[] | undefined;
13
13
 
14
14
  setId(id: string): void {
15
15
  this.ea = id;
@@ -1,9 +1,9 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventLogin extends NetmeraEvent {
4
- code = "n:cl";
4
+ code = 'n:cl';
5
5
 
6
- private uid: string | undefined;
6
+ protected uid: string | undefined;
7
7
 
8
8
  setUserId(userId: string): void {
9
9
  this.uid = userId;
@@ -1,9 +1,9 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventRegister extends NetmeraEvent {
4
- code = "n:rg";
4
+ code = 'n:rg';
5
5
 
6
- private uid: string | undefined;
6
+ protected uid: string | undefined;
7
7
 
8
8
  setUserId(userId: string): void {
9
9
  this.uid = userId;
@@ -1,13 +1,13 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventScreenView extends NetmeraEvent {
4
- code = "n:sv";
4
+ code = 'n:sv';
5
5
 
6
- private ee: string | undefined;
7
- private ef: string | undefined;
8
- private ej: string | undefined;
9
- private el: number | undefined;
10
- private ea: string | undefined;
6
+ protected ee: string | undefined;
7
+ protected ef: string | undefined;
8
+ protected ej: string | undefined;
9
+ protected el: number | undefined;
10
+ protected ea: string | undefined;
11
11
 
12
12
  setPageId(pageId: string): void {
13
13
  this.ee = pageId;
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventSearch extends NetmeraEvent {
4
- code = "n:sr";
4
+ code = 'n:sr';
5
5
 
6
- private ga: string | undefined;
7
- private ef: number | undefined;
6
+ protected ga: string | undefined;
7
+ protected ef: number | undefined;
8
8
 
9
9
  setQuery(query: string): void {
10
10
  this.ga = query;
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./NetmeraEvent";
1
+ import NetmeraEvent from './NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventShare extends NetmeraEvent {
4
- code = "n:sh";
4
+ code = 'n:sh';
5
5
 
6
- private ga: string | undefined;
7
- private ef: string | undefined;
6
+ protected ga: string | undefined;
7
+ protected ef: string | undefined;
8
8
 
9
9
  setChannel(channel: string): void {
10
10
  this.ga = channel;
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventCartAddProduct extends NetmeraEvent {
4
- code = "n:acp";
4
+ code = 'n:acp';
5
5
 
6
- private ec: number | undefined;
7
- private er: number | undefined;
6
+ protected ec: number | undefined;
7
+ protected er: number | undefined;
8
8
 
9
9
  setCount(count: number): void {
10
10
  this.ec = count;
@@ -1,9 +1,9 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventCartRemoveProduct extends NetmeraEvent {
4
- code = "n:rcp";
4
+ code = 'n:rcp';
5
5
 
6
- private ec: number | undefined;
6
+ protected ec: number | undefined;
7
7
 
8
8
  setCount(count: number): void {
9
9
  this.ec = count;
@@ -1,10 +1,10 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventCartView extends NetmeraEvent {
4
- code = "n:vt";
4
+ code = 'n:vt';
5
5
 
6
- private ec: number | undefined;
7
- private er: number | undefined;
6
+ protected ec: number | undefined;
7
+ protected er: number | undefined;
8
8
 
9
9
  setItemCount(itemCount: number): void {
10
10
  this.ec = itemCount;
@@ -1,12 +1,12 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventOrderCancel extends NetmeraEvent {
4
- code = "n:co";
4
+ code = 'n:co';
5
5
 
6
- private er: number | undefined;
7
- private es: number | undefined;
8
- private ec: number | undefined;
9
- private em: string | undefined;
6
+ protected er: number | undefined;
7
+ protected es: number | undefined;
8
+ protected ec: number | undefined;
9
+ protected em: string | undefined;
10
10
 
11
11
  setSubTotal(subTotal: number): void {
12
12
  this.er = subTotal;
@@ -1,5 +1,5 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventProductComment extends NetmeraEvent {
4
- code = "n:cp";
4
+ code = 'n:cp';
5
5
  }
@@ -1,9 +1,9 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventProductRate extends NetmeraEvent {
4
- code = "n:rp";
4
+ code = 'n:rp';
5
5
 
6
- private eo: number | undefined;
6
+ protected eo: number | undefined;
7
7
 
8
8
  setRating(rating: number): void {
9
9
  this.eo = rating;
@@ -1,5 +1,5 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventProductView extends NetmeraEvent {
4
- code = "n:vp";
4
+ code = 'n:vp';
5
5
  }
@@ -1,18 +1,18 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
2
- import { NetmeraLineItem } from "./NetmeraLineItem";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
+ import { NetmeraLineItem } from './NetmeraLineItem';
3
3
 
4
4
  export class NetmeraEventPurchase extends NetmeraEvent {
5
- code = "n:ph";
6
-
7
- private er: number | undefined;
8
- private es: number | undefined;
9
- private ec: number | undefined;
10
- private fz: number | undefined;
11
- private items: NetmeraLineItem[] | undefined;
12
- private em: string | undefined;
13
- private ep: number | undefined;
14
- private el: number | undefined;
15
- private ek: string | undefined;
5
+ code = 'n:ph';
6
+
7
+ protected er: number | undefined;
8
+ protected es: number | undefined;
9
+ protected ec: number | undefined;
10
+ protected fz: number | undefined;
11
+ protected items: NetmeraLineItem[] | undefined;
12
+ protected em: string | undefined;
13
+ protected ep: number | undefined;
14
+ protected el: number | undefined;
15
+ protected ek: string | undefined;
16
16
 
17
17
  setSubTotal(subTotal: number): void {
18
18
  this.er = subTotal;
@@ -1,5 +1,5 @@
1
- import NetmeraEvent from "../NetmeraEvent";
1
+ import NetmeraEvent from '../NetmeraEvent';
2
2
 
3
3
  export class NetmeraEventWishList extends NetmeraEvent {
4
- code = "n:wl";
4
+ code = 'n:wl';
5
5
  }