react-native-netmera 1.11.3 → 2.0.0-alpha02

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 +31 -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.h +9 -29
  22. package/ios/RNNetmera.mm +143 -0
  23. package/ios/RNNetmera.swift +759 -0
  24. package/ios/RNNetmeraCategoryObject.swift +61 -0
  25. package/ios/RNNetmeraEvent.swift +26 -0
  26. package/ios/RNNetmeraPushLifecycleDelegate.swift +47 -0
  27. package/ios/RNNetmeraRCTEventEmitter.mm +8 -0
  28. package/ios/RNNetmeraRCTEventEmitter.swift +134 -0
  29. package/ios/RNNetmeraUtils.swift +233 -0
  30. package/lib/module/Netmera.js +256 -0
  31. package/lib/module/Netmera.js.map +1 -0
  32. package/lib/module/events/NetmeraEvent.js +8 -0
  33. package/lib/module/events/NetmeraEvent.js.map +1 -0
  34. package/lib/module/events/NetmeraEventBannerOpen.js +13 -0
  35. package/lib/module/events/NetmeraEventBannerOpen.js.map +1 -0
  36. package/lib/module/events/NetmeraEventBatteryLevel.js +10 -0
  37. package/lib/module/events/NetmeraEventBatteryLevel.js.map +1 -0
  38. package/lib/module/events/NetmeraEventCategoryView.js +13 -0
  39. package/lib/module/events/NetmeraEventCategoryView.js.map +1 -0
  40. package/lib/module/events/NetmeraEventInAppPurchase.js +28 -0
  41. package/lib/module/events/NetmeraEventInAppPurchase.js.map +1 -0
  42. package/lib/module/events/NetmeraEventLogin.js +10 -0
  43. package/lib/module/events/NetmeraEventLogin.js.map +1 -0
  44. package/lib/module/events/NetmeraEventRegister.js +10 -0
  45. package/lib/module/events/NetmeraEventRegister.js.map +1 -0
  46. package/lib/module/events/NetmeraEventScreenView.js +22 -0
  47. package/lib/module/events/NetmeraEventScreenView.js.map +1 -0
  48. package/lib/module/events/NetmeraEventSearch.js +13 -0
  49. package/lib/module/events/NetmeraEventSearch.js.map +1 -0
  50. package/lib/module/events/NetmeraEventShare.js +13 -0
  51. package/lib/module/events/NetmeraEventShare.js.map +1 -0
  52. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js +13 -0
  53. package/lib/module/events/commerce/NetmeraEventCartAddProduct.js.map +1 -0
  54. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js +10 -0
  55. package/lib/module/events/commerce/NetmeraEventCartRemoveProduct.js.map +1 -0
  56. package/lib/module/events/commerce/NetmeraEventCartView.js +13 -0
  57. package/lib/module/events/commerce/NetmeraEventCartView.js.map +1 -0
  58. package/lib/module/events/commerce/NetmeraEventOrderCancel.js +19 -0
  59. package/lib/module/events/commerce/NetmeraEventOrderCancel.js.map +1 -0
  60. package/lib/module/events/commerce/NetmeraEventProductComment.js +7 -0
  61. package/lib/module/events/commerce/NetmeraEventProductComment.js.map +1 -0
  62. package/lib/module/events/commerce/NetmeraEventProductRate.js +10 -0
  63. package/lib/module/events/commerce/NetmeraEventProductRate.js.map +1 -0
  64. package/lib/module/events/commerce/NetmeraEventProductView.js +7 -0
  65. package/lib/module/events/commerce/NetmeraEventProductView.js.map +1 -0
  66. package/lib/module/events/commerce/NetmeraEventPurchase.js +34 -0
  67. package/lib/module/events/commerce/NetmeraEventPurchase.js.map +1 -0
  68. package/lib/module/events/commerce/NetmeraEventWishList.js +7 -0
  69. package/lib/module/events/commerce/NetmeraEventWishList.js.map +1 -0
  70. package/lib/module/events/commerce/NetmeraLineItem.js +9 -0
  71. package/lib/module/events/commerce/NetmeraLineItem.js.map +1 -0
  72. package/lib/module/events/commerce/NetmeraProduct.js +46 -0
  73. package/lib/module/events/commerce/NetmeraProduct.js.map +1 -0
  74. package/lib/module/events/media/NetmeraEventContent.js +42 -0
  75. package/lib/module/events/media/NetmeraEventContent.js.map +1 -0
  76. package/lib/module/events/media/NetmeraEventContentComment.js +7 -0
  77. package/lib/module/events/media/NetmeraEventContentComment.js.map +1 -0
  78. package/lib/module/events/media/NetmeraEventContentRate.js +10 -0
  79. package/lib/module/events/media/NetmeraEventContentRate.js.map +1 -0
  80. package/lib/module/events/media/NetmeraEventContentView.js +7 -0
  81. package/lib/module/events/media/NetmeraEventContentView.js.map +1 -0
  82. package/lib/module/index.js +43 -0
  83. package/lib/module/index.js.map +1 -0
  84. package/lib/module/models/NMCategoryPreference.js +8 -0
  85. package/lib/module/models/NMCategoryPreference.js.map +1 -0
  86. package/lib/module/models/NMInboxStatus.js +11 -0
  87. package/lib/module/models/NMInboxStatus.js.map +1 -0
  88. package/lib/module/models/NMInboxStatusCountFilter.js +12 -0
  89. package/lib/module/models/NMInboxStatusCountFilter.js.map +1 -0
  90. package/lib/module/models/NetmeraCategory.js +8 -0
  91. package/lib/module/models/NetmeraCategory.js.map +1 -0
  92. package/lib/module/models/NetmeraCategoryFilter.js +8 -0
  93. package/lib/module/models/NetmeraCategoryFilter.js.map +1 -0
  94. package/lib/module/models/NetmeraCouponObject.js +8 -0
  95. package/lib/module/models/NetmeraCouponObject.js.map +1 -0
  96. package/lib/module/models/NetmeraInbox.js +8 -0
  97. package/lib/module/models/NetmeraInbox.js.map +1 -0
  98. package/lib/module/models/NetmeraInboxFilter.js +8 -0
  99. package/lib/module/models/NetmeraInboxFilter.js.map +1 -0
  100. package/lib/module/models/NetmeraProfileAttribute.js +75 -0
  101. package/lib/module/models/NetmeraProfileAttribute.js.map +1 -0
  102. package/lib/module/models/NetmeraUser.js +89 -0
  103. package/lib/module/models/NetmeraUser.js.map +1 -0
  104. package/lib/module/models/NetmeraUserProfile.js +58 -0
  105. package/lib/module/models/NetmeraUserProfile.js.map +1 -0
  106. package/lib/module/models/NotificationPermissionStatus.js +10 -0
  107. package/lib/module/models/NotificationPermissionStatus.js.map +1 -0
  108. package/lib/module/package.json +1 -0
  109. package/lib/module/utils/DeviceUtils.js +10 -0
  110. package/lib/module/utils/DeviceUtils.js.map +1 -0
  111. package/lib/module/utils/Optional.js +32 -0
  112. package/lib/module/utils/Optional.js.map +1 -0
  113. package/lib/module/utils/RNNetmera.js +16 -0
  114. package/lib/module/utils/RNNetmera.js.map +1 -0
  115. package/lib/typescript/package.json +1 -0
  116. package/lib/typescript/src/Netmera.d.ts +70 -0
  117. package/lib/typescript/src/Netmera.d.ts.map +1 -0
  118. package/lib/typescript/src/events/NetmeraEvent.d.ts +5 -0
  119. package/lib/typescript/src/events/NetmeraEvent.d.ts.map +1 -0
  120. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts +9 -0
  121. package/lib/typescript/src/events/NetmeraEventBannerOpen.d.ts.map +1 -0
  122. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts +7 -0
  123. package/lib/typescript/src/events/NetmeraEventBatteryLevel.d.ts.map +1 -0
  124. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts +9 -0
  125. package/lib/typescript/src/events/NetmeraEventCategoryView.d.ts.map +1 -0
  126. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts +19 -0
  127. package/lib/typescript/src/events/NetmeraEventInAppPurchase.d.ts.map +1 -0
  128. package/lib/typescript/src/events/NetmeraEventLogin.d.ts +7 -0
  129. package/lib/typescript/src/events/NetmeraEventLogin.d.ts.map +1 -0
  130. package/lib/typescript/src/events/NetmeraEventRegister.d.ts +7 -0
  131. package/lib/typescript/src/events/NetmeraEventRegister.d.ts.map +1 -0
  132. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts +15 -0
  133. package/lib/typescript/src/events/NetmeraEventScreenView.d.ts.map +1 -0
  134. package/lib/typescript/src/events/NetmeraEventSearch.d.ts +9 -0
  135. package/lib/typescript/src/events/NetmeraEventSearch.d.ts.map +1 -0
  136. package/lib/typescript/src/events/NetmeraEventShare.d.ts +9 -0
  137. package/lib/typescript/src/events/NetmeraEventShare.d.ts.map +1 -0
  138. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts +9 -0
  139. package/lib/typescript/src/events/commerce/NetmeraEventCartAddProduct.d.ts.map +1 -0
  140. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts +7 -0
  141. package/lib/typescript/src/events/commerce/NetmeraEventCartRemoveProduct.d.ts.map +1 -0
  142. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts +9 -0
  143. package/lib/typescript/src/events/commerce/NetmeraEventCartView.d.ts.map +1 -0
  144. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts +13 -0
  145. package/lib/typescript/src/events/commerce/NetmeraEventOrderCancel.d.ts.map +1 -0
  146. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts +5 -0
  147. package/lib/typescript/src/events/commerce/NetmeraEventProductComment.d.ts.map +1 -0
  148. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts +7 -0
  149. package/lib/typescript/src/events/commerce/NetmeraEventProductRate.d.ts.map +1 -0
  150. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts +5 -0
  151. package/lib/typescript/src/events/commerce/NetmeraEventProductView.d.ts.map +1 -0
  152. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts +24 -0
  153. package/lib/typescript/src/events/commerce/NetmeraEventPurchase.d.ts.map +1 -0
  154. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts +5 -0
  155. package/lib/typescript/src/events/commerce/NetmeraEventWishList.d.ts.map +1 -0
  156. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts +6 -0
  157. package/lib/typescript/src/events/commerce/NetmeraLineItem.d.ts.map +1 -0
  158. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts +23 -0
  159. package/lib/typescript/src/events/commerce/NetmeraProduct.d.ts.map +1 -0
  160. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts +23 -0
  161. package/lib/typescript/src/events/media/NetmeraEventContent.d.ts.map +1 -0
  162. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts +5 -0
  163. package/lib/typescript/src/events/media/NetmeraEventContentComment.d.ts.map +1 -0
  164. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts +7 -0
  165. package/lib/typescript/src/events/media/NetmeraEventContentRate.d.ts.map +1 -0
  166. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts +5 -0
  167. package/lib/typescript/src/events/media/NetmeraEventContentView.d.ts.map +1 -0
  168. package/lib/typescript/src/index.d.ts +39 -0
  169. package/lib/typescript/src/index.d.ts.map +1 -0
  170. package/lib/typescript/src/models/NMCategoryPreference.d.ts +6 -0
  171. package/lib/typescript/src/models/NMCategoryPreference.d.ts.map +1 -0
  172. package/lib/typescript/src/models/NMInboxStatus.d.ts +8 -0
  173. package/lib/typescript/src/models/NMInboxStatus.d.ts.map +1 -0
  174. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts +7 -0
  175. package/lib/typescript/src/models/NMInboxStatusCountFilter.d.ts.map +1 -0
  176. package/lib/typescript/src/models/NetmeraCategory.d.ts +10 -0
  177. package/lib/typescript/src/models/NetmeraCategory.d.ts.map +1 -0
  178. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts +6 -0
  179. package/lib/typescript/src/models/NetmeraCategoryFilter.d.ts.map +1 -0
  180. package/lib/typescript/src/models/NetmeraCouponObject.d.ts +8 -0
  181. package/lib/typescript/src/models/NetmeraCouponObject.d.ts.map +1 -0
  182. package/lib/typescript/src/models/NetmeraInbox.d.ts +22 -0
  183. package/lib/typescript/src/models/NetmeraInbox.d.ts.map +1 -0
  184. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts +7 -0
  185. package/lib/typescript/src/models/NetmeraInboxFilter.d.ts.map +1 -0
  186. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts +33 -0
  187. package/lib/typescript/src/models/NetmeraProfileAttribute.d.ts.map +1 -0
  188. package/lib/typescript/src/models/NetmeraUser.d.ts +25 -0
  189. package/lib/typescript/src/models/NetmeraUser.d.ts.map +1 -0
  190. package/lib/typescript/src/models/NetmeraUserProfile.d.ts +21 -0
  191. package/lib/typescript/src/models/NetmeraUserProfile.d.ts.map +1 -0
  192. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts +7 -0
  193. package/lib/typescript/src/models/NotificationPermissionStatus.d.ts.map +1 -0
  194. package/lib/typescript/src/utils/DeviceUtils.d.ts +3 -0
  195. package/lib/typescript/src/utils/DeviceUtils.d.ts.map +1 -0
  196. package/lib/typescript/src/utils/Optional.d.ts +15 -0
  197. package/lib/typescript/src/utils/Optional.d.ts.map +1 -0
  198. package/lib/typescript/src/utils/RNNetmera.d.ts +5 -0
  199. package/lib/typescript/src/utils/RNNetmera.d.ts.map +1 -0
  200. package/package.json +104 -17
  201. package/src/Netmera.ts +139 -88
  202. package/src/events/NetmeraEvent.ts +1 -1
  203. package/src/events/NetmeraEventBannerOpen.ts +4 -4
  204. package/src/events/NetmeraEventBatteryLevel.ts +3 -3
  205. package/src/events/NetmeraEventCategoryView.ts +4 -4
  206. package/src/events/NetmeraEventInAppPurchase.ts +10 -10
  207. package/src/events/NetmeraEventLogin.ts +3 -3
  208. package/src/events/NetmeraEventRegister.ts +3 -3
  209. package/src/events/NetmeraEventScreenView.ts +7 -7
  210. package/src/events/NetmeraEventSearch.ts +4 -4
  211. package/src/events/NetmeraEventShare.ts +4 -4
  212. package/src/events/commerce/NetmeraEventCartAddProduct.ts +4 -4
  213. package/src/events/commerce/NetmeraEventCartRemoveProduct.ts +3 -3
  214. package/src/events/commerce/NetmeraEventCartView.ts +4 -4
  215. package/src/events/commerce/NetmeraEventOrderCancel.ts +6 -6
  216. package/src/events/commerce/NetmeraEventProductComment.ts +2 -2
  217. package/src/events/commerce/NetmeraEventProductRate.ts +3 -3
  218. package/src/events/commerce/NetmeraEventProductView.ts +2 -2
  219. package/src/events/commerce/NetmeraEventPurchase.ts +13 -13
  220. package/src/events/commerce/NetmeraEventWishList.ts +2 -2
  221. package/src/events/commerce/NetmeraLineItem.ts +2 -2
  222. package/src/events/commerce/NetmeraProduct.ts +10 -10
  223. package/src/events/media/NetmeraEventContent.ts +8 -8
  224. package/src/events/media/NetmeraEventContentComment.ts +2 -2
  225. package/src/events/media/NetmeraEventContentRate.ts +3 -3
  226. package/src/events/media/NetmeraEventContentView.ts +2 -2
  227. package/src/index.ts +87 -0
  228. package/src/models/NMCategoryPreference.ts +1 -1
  229. package/src/models/NMInboxStatusCountFilter.ts +1 -1
  230. package/src/models/NetmeraCategory.ts +2 -2
  231. package/src/models/NetmeraCategoryFilter.ts +1 -1
  232. package/src/models/NetmeraCouponObject.ts +1 -1
  233. package/src/models/NetmeraInbox.ts +1 -1
  234. package/src/models/NetmeraInboxFilter.ts +1 -1
  235. package/src/models/NetmeraProfileAttribute.ts +81 -0
  236. package/src/models/NetmeraUser.ts +76 -74
  237. package/src/models/NetmeraUserProfile.ts +67 -0
  238. package/src/models/NotificationPermissionStatus.ts +4 -4
  239. package/src/utils/DeviceUtils.ts +3 -3
  240. package/src/utils/Optional.ts +31 -0
  241. package/src/utils/RNNetmera.ts +24 -0
  242. package/.eslintignore +0 -7
  243. package/.gitattributes +0 -1
  244. package/.github/workflows/code_quality_check.yaml +0 -38
  245. package/.prettierignore +0 -14
  246. package/.yarnrc.yml +0 -1
  247. package/android/.project +0 -17
  248. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  249. package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  250. package/android/gradlew +0 -172
  251. package/android/gradlew.bat +0 -84
  252. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmera.java +0 -24
  253. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraCategoryObject.java +0 -56
  254. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraConfiguration.java +0 -154
  255. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraEvent.java +0 -36
  256. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraModule.java +0 -631
  257. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPackage.java +0 -35
  258. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushBroadcastReceiver.java +0 -86
  259. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraPushHeadlessService.java +0 -32
  260. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUser.java +0 -24
  261. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraUtil.java +0 -354
  262. package/android/src/main/java/com/netmera/reactnativesdk/RNNetmeraWebWidgetCallbacks.java +0 -27
  263. package/index.ts +0 -80
  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
@@ -1,7 +1,7 @@
1
- import { NetmeraProduct } from "./NetmeraProduct";
1
+ import { NetmeraProduct } from './NetmeraProduct';
2
2
 
3
3
  export class NetmeraLineItem extends NetmeraProduct {
4
- private ec: number | undefined;
4
+ protected ec: number | undefined;
5
5
 
6
6
  setCount(count: number) {
7
7
  this.ec = count;
@@ -1,14 +1,14 @@
1
1
  export class NetmeraProduct {
2
- private ea: string | undefined; // id
3
- private eb: string | undefined; // name
4
- private eq: number | undefined; // price
5
- private ga: string[] | undefined; // categoryIds
6
- private ef: string[] | undefined; // categoryNames
7
- private eh: string | undefined; // brandName
8
- private gd: string | undefined; // brandId
9
- private ei: string | undefined; // variant
10
- private eg: string[] | undefined; // keywords
11
- private ge: string | undefined; // campaignId
2
+ protected ea: string | undefined; // id
3
+ protected eb: string | undefined; // name
4
+ protected eq: number | undefined; // price
5
+ protected ga: string[] | undefined; // categoryIds
6
+ protected ef: string[] | undefined; // categoryNames
7
+ protected eh: string | undefined; // brandName
8
+ protected gd: string | undefined; // brandId
9
+ protected ei: string | undefined; // variant
10
+ protected eg: string[] | undefined; // keywords
11
+ protected ge: string | undefined; // campaignId
12
12
 
13
13
  setId(value: string) {
14
14
  this.ea = value;
@@ -1,4 +1,4 @@
1
- import NetmeraEvent from "./../NetmeraEvent";
1
+ import NetmeraEvent from './../NetmeraEvent';
2
2
 
3
3
  export abstract class NetmeraEventContent extends NetmeraEvent {
4
4
  static readonly TYPE_OTHER = 0;
@@ -7,13 +7,13 @@ export abstract class NetmeraEventContent extends NetmeraEvent {
7
7
  static readonly TYPE_VIDEO = 3;
8
8
  static readonly TYPE_TEXT = 4;
9
9
 
10
- private ea: string | undefined; // id
11
- private eb: string | undefined; // name
12
- private ed: number | undefined; // type
13
- private ee: string | undefined; // provider
14
- private ga: string[] | undefined; // categoryIds
15
- private ef: string[] | undefined; // categoryNames
16
- private eg: string[] | undefined; // keywords
10
+ protected ea: string | undefined; // id
11
+ protected eb: string | undefined; // name
12
+ protected ed: number | undefined; // type
13
+ protected ee: string | undefined; // provider
14
+ protected ga: string[] | undefined; // categoryIds
15
+ protected ef: string[] | undefined; // categoryNames
16
+ protected eg: string[] | undefined; // keywords
17
17
 
18
18
  setId(value: string): void {
19
19
  this.ea = value;
@@ -1,5 +1,5 @@
1
- import { NetmeraEventContent } from "./NetmeraEventContent";
1
+ import { NetmeraEventContent } from './NetmeraEventContent';
2
2
 
3
3
  export class NetmeraEventContentComment extends NetmeraEventContent {
4
- code = "n:cc";
4
+ code = 'n:cc';
5
5
  }
@@ -1,9 +1,9 @@
1
- import { NetmeraEventContent } from "./NetmeraEventContent";
1
+ import { NetmeraEventContent } from './NetmeraEventContent';
2
2
 
3
3
  export class NetmeraEventContentRate extends NetmeraEventContent {
4
- code: string = "n:rc";
4
+ code: string = 'n:rc';
5
5
 
6
- private eo: number | undefined;
6
+ protected eo: number | undefined;
7
7
 
8
8
  setRating(value: number): void {
9
9
  this.eo = value;
@@ -1,5 +1,5 @@
1
- import { NetmeraEventContent } from "./NetmeraEventContent";
1
+ import { NetmeraEventContent } from './NetmeraEventContent';
2
2
 
3
3
  export class NetmeraEventContentView extends NetmeraEventContent {
4
- code = "n:vc";
4
+ code = 'n:vc';
5
5
  }
package/src/index.ts ADDED
@@ -0,0 +1,87 @@
1
+ import Netmera from './Netmera';
2
+ import NetmeraCouponObject from './models/NetmeraCouponObject';
3
+ import NetmeraEvent from './events/NetmeraEvent';
4
+ import NetmeraUser from './models/NetmeraUser';
5
+ import { NetmeraUserProfile } from './models/NetmeraUserProfile';
6
+ import {
7
+ NetmeraProfileAttribute,
8
+ NetmeraProfileAttributeCollection,
9
+ Gender,
10
+ MaritalStatus,
11
+ } from './models/NetmeraProfileAttribute';
12
+ import NetmeraCategory from './models/NetmeraCategory';
13
+ import NetmeraCategoryFilter from './models/NetmeraCategoryFilter';
14
+ import NetmeraPushInbox from './models/NetmeraInbox';
15
+ import NetmeraInboxFilter from './models/NetmeraInboxFilter';
16
+ import NMInboxStatusCountFilter from './models/NMInboxStatusCountFilter';
17
+ import NMCategoryPreference from './models/NMCategoryPreference';
18
+ import { NMInboxStatus } from './models/NMInboxStatus';
19
+ import { NotificationPermissionStatus } from './models/NotificationPermissionStatus';
20
+ import { NetmeraEventBannerOpen } from './events/NetmeraEventBannerOpen';
21
+ import { NetmeraEventBatteryLevel } from './events/NetmeraEventBatteryLevel';
22
+ import { NetmeraEventCategoryView } from './events/NetmeraEventCategoryView';
23
+ import { NetmeraEventInAppPurchase } from './events/NetmeraEventInAppPurchase';
24
+ import { NetmeraEventLogin } from './events/NetmeraEventLogin';
25
+ import { NetmeraEventRegister } from './events/NetmeraEventRegister';
26
+ import { NetmeraEventScreenView } from './events/NetmeraEventScreenView';
27
+ import { NetmeraEventSearch } from './events/NetmeraEventSearch';
28
+ import { NetmeraEventShare } from './events/NetmeraEventShare';
29
+ import { NetmeraEventCartAddProduct } from './events/commerce/NetmeraEventCartAddProduct';
30
+ import { NetmeraEventCartRemoveProduct } from './events/commerce/NetmeraEventCartRemoveProduct';
31
+ import { NetmeraEventCartView } from './events/commerce/NetmeraEventCartView';
32
+ import { NetmeraEventOrderCancel } from './events/commerce/NetmeraEventOrderCancel';
33
+ import { NetmeraEventProductComment } from './events/commerce/NetmeraEventProductComment';
34
+ import { NetmeraEventProductRate } from './events/commerce/NetmeraEventProductRate';
35
+ import { NetmeraEventProductView } from './events/commerce/NetmeraEventProductView';
36
+ import { NetmeraEventPurchase } from './events/commerce/NetmeraEventPurchase';
37
+ import { NetmeraEventWishList } from './events/commerce/NetmeraEventWishList';
38
+ import { NetmeraLineItem } from './events/commerce/NetmeraLineItem';
39
+ import { NetmeraProduct } from './events/commerce/NetmeraProduct';
40
+ import { NetmeraEventContentComment } from './events/media/NetmeraEventContentComment';
41
+ import { NetmeraEventContentRate } from './events/media/NetmeraEventContentRate';
42
+ import { NetmeraEventContentView } from './events/media/NetmeraEventContentView';
43
+
44
+ export {
45
+ Netmera,
46
+ NetmeraCouponObject,
47
+ NetmeraUser,
48
+ NetmeraPushInbox,
49
+ NetmeraInboxFilter,
50
+ NMInboxStatus,
51
+ NMInboxStatusCountFilter,
52
+ NetmeraCategory,
53
+ NetmeraCategoryFilter,
54
+ NMCategoryPreference,
55
+ NotificationPermissionStatus,
56
+ NetmeraLineItem,
57
+ NetmeraProduct,
58
+ NetmeraUserProfile,
59
+ NetmeraProfileAttribute,
60
+ NetmeraProfileAttributeCollection,
61
+ Gender,
62
+ MaritalStatus,
63
+
64
+ // Events
65
+ NetmeraEvent,
66
+ NetmeraEventBannerOpen,
67
+ NetmeraEventBatteryLevel,
68
+ NetmeraEventCategoryView,
69
+ NetmeraEventInAppPurchase,
70
+ NetmeraEventLogin,
71
+ NetmeraEventRegister,
72
+ NetmeraEventScreenView,
73
+ NetmeraEventSearch,
74
+ NetmeraEventShare,
75
+ NetmeraEventCartAddProduct,
76
+ NetmeraEventCartRemoveProduct,
77
+ NetmeraEventCartView,
78
+ NetmeraEventOrderCancel,
79
+ NetmeraEventProductComment,
80
+ NetmeraEventProductRate,
81
+ NetmeraEventProductView,
82
+ NetmeraEventPurchase,
83
+ NetmeraEventWishList,
84
+ NetmeraEventContentComment,
85
+ NetmeraEventContentRate,
86
+ NetmeraEventContentView,
87
+ };
@@ -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 class NMCategoryPreference {
@@ -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 class NMInboxStatusCountFilter {
@@ -1,8 +1,8 @@
1
1
  /*
2
- * Copyright (c) 2023 Netmera Research.
2
+ * Copyright (c) 2026 Netmera Research.
3
3
  */
4
4
 
5
- import NetmeraPushInbox from "./NetmeraInbox";
5
+ import NetmeraPushInbox from './NetmeraInbox';
6
6
 
7
7
  export default class NetmeraCategory {
8
8
  categoryName?: string;
@@ -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 class NetmeraCategoryFilter {
@@ -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 class NetmeraCouponObject {
@@ -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 class NetmeraPushInbox {
@@ -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 class NetmeraInboxFilter {
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright (c) 2026 Netmera Research.
3
+ */
4
+
5
+ export enum NetmeraProfileOperation {
6
+ ADD = 'ADD',
7
+ REMOVE = 'REMOVE',
8
+ SET = 'SET',
9
+ UNSET = 'UNSET',
10
+ }
11
+
12
+ export type ProfileOperationPayload<T> = {
13
+ opr: NetmeraProfileOperation;
14
+ value?: T;
15
+ };
16
+
17
+ export enum Gender {
18
+ MALE = 0,
19
+ FEMALE = 1,
20
+ NOT_SPECIFIED = 2,
21
+ }
22
+
23
+ export enum MaritalStatus {
24
+ SINGLE = 0,
25
+ MARRIED = 1,
26
+ NOT_SPECIFIED = 2,
27
+ }
28
+
29
+ export class NetmeraProfileAttribute<T> {
30
+ protected operations: ProfileOperationPayload<T>[] = [];
31
+
32
+ public set(value: T): void {
33
+ if (!value) {
34
+ console.debug(
35
+ 'ignore NetmeraProfileAttribute::set. value is null or undefined'
36
+ );
37
+ return;
38
+ }
39
+ this.operations = [{ opr: NetmeraProfileOperation.SET, value: value }];
40
+ }
41
+
42
+ public unset(): void {
43
+ this.operations = [{ opr: NetmeraProfileOperation.UNSET }];
44
+ }
45
+
46
+ public hasOperations(): boolean {
47
+ return this.operations.length > 0;
48
+ }
49
+
50
+ public getOperations(): ProfileOperationPayload<T>[] {
51
+ return this.operations;
52
+ }
53
+
54
+ public hasPendingChanges(): boolean {
55
+ return this.operations.length > 0;
56
+ }
57
+ }
58
+
59
+ export class NetmeraProfileAttributeCollection<
60
+ T,
61
+ > extends NetmeraProfileAttribute<T[]> {
62
+ public add(value: T[]): void {
63
+ if (!value || value.length === 0) {
64
+ console.debug(
65
+ `ignore NetmeraProfileAttributeCollection.add(). value is ${value.length === 0 ? 'empty' : 'null or undefined'}`
66
+ );
67
+ return;
68
+ }
69
+ this.operations.push({ opr: NetmeraProfileOperation.ADD, value: value });
70
+ }
71
+
72
+ public remove(value: T[]): void {
73
+ if (!value || value.length === 0) {
74
+ console.debug(
75
+ `ignore NetmeraProfileAttributeCollection.remove(). value is ${value.length === 0 ? 'empty' : 'null or undefined'}`
76
+ );
77
+ return;
78
+ }
79
+ this.operations.push({ opr: NetmeraProfileOperation.REMOVE, value: value });
80
+ }
81
+ }
@@ -1,96 +1,98 @@
1
1
  /*
2
- * Copyright (c) 2023 Netmera Research.
2
+ * Copyright (c) 2026 Netmera Research.
3
3
  */
4
4
 
5
- export default class NetmeraUser {
6
- private pa?: string;
7
- private pb?: string;
8
- private pc?: string[];
9
- private pd?: number;
10
- private pe?: number;
11
- private pf?: number;
12
- private pg?: number;
13
- private ph?: string;
14
- private pi?: string;
15
- private pj?: string;
16
- private pk?: string;
17
- private pl?: string;
18
- private pm?: string;
19
- private pn?: string;
20
- private po?: string;
21
- userId?: string;
22
- msisdn?: string;
23
- email?: string;
24
-
25
- set name(value: string) {
26
- this.pa = value;
27
- }
28
-
29
- set surname(value: string) {
30
- this.pb = value;
31
- }
5
+ import { Optional } from '../utils/Optional';
32
6
 
33
- set externalSegments(value: string[]) {
34
- this.pc = value;
35
- }
36
-
37
- set gender(value: number) {
38
- this.pd = value;
39
- }
40
-
41
- set dateOfBirth(value: number) {
42
- this.pe = value;
43
- }
44
-
45
- set maritalStatus(value: number) {
46
- this.pf = value;
47
- }
48
-
49
- set childCount(value: number) {
50
- this.pg = value;
7
+ /**
8
+ * User payload for {@link Netmera.identifyUser}. Fields distinguish:
9
+ * - **unset** — property is not assigned,
10
+ * - **set to null** — assign `null` to clear the attribute on the server,
11
+ * - **set to string** — normal value.
12
+ */
13
+ export default class NetmeraUser {
14
+ private _userId?: Optional<string>;
15
+ private _email?: Optional<string>;
16
+ private _msisdn?: Optional<string>;
17
+ private _wpNumber?: Optional<string>;
18
+
19
+ get userId(): string | null | undefined {
20
+ if (this._userId === undefined) {
21
+ return undefined;
22
+ }
23
+ return this._userId.valueOrNull;
51
24
  }
52
25
 
53
- set country(value: string) {
54
- this.ph = value;
26
+ set userId(value: string | null | undefined) {
27
+ if (value === undefined) {
28
+ this._userId = undefined;
29
+ } else {
30
+ this._userId = Optional.fromNullable(value);
31
+ }
55
32
  }
56
33
 
57
- set state(value: string) {
58
- this.pi = value;
34
+ get email(): string | null | undefined {
35
+ if (this._email === undefined) {
36
+ return undefined;
37
+ }
38
+ return this._email.valueOrNull;
59
39
  }
60
40
 
61
- set city(value: string) {
62
- this.pj = value;
41
+ set email(value: string | null | undefined) {
42
+ if (value === undefined) {
43
+ this._email = undefined;
44
+ } else {
45
+ this._email = Optional.fromNullable(value);
46
+ }
63
47
  }
64
48
 
65
- set district(value: string) {
66
- this.pk = value;
49
+ get msisdn(): string | null | undefined {
50
+ if (this._msisdn === undefined) {
51
+ return undefined;
52
+ }
53
+ return this._msisdn.valueOrNull;
67
54
  }
68
55
 
69
- set occupation(value: string) {
70
- this.pl = value;
56
+ set msisdn(value: string | null | undefined) {
57
+ if (value === undefined) {
58
+ this._msisdn = undefined;
59
+ } else {
60
+ this._msisdn = Optional.fromNullable(value);
61
+ }
71
62
  }
72
63
 
73
- set industry(value: string) {
74
- this.pm = value;
64
+ get wpNumber(): string | null | undefined {
65
+ if (this._wpNumber === undefined) {
66
+ return undefined;
67
+ }
68
+ return this._wpNumber.valueOrNull;
75
69
  }
76
70
 
77
- set favoriteTeam(value: string) {
78
- this.pn = value;
71
+ set wpNumber(value: string | null | undefined) {
72
+ if (value === undefined) {
73
+ this._wpNumber = undefined;
74
+ } else {
75
+ this._wpNumber = Optional.fromNullable(value);
76
+ }
79
77
  }
80
78
 
81
- set language(value: string) {
82
- this.po = value;
79
+ /**
80
+ * Only keys that were explicitly set; values may be `null` so can clear them server-side.
81
+ */
82
+ getIdentifyPayload(): Record<string, string | null> {
83
+ const payload: Record<string, string | null> = {};
84
+ if (this._userId !== undefined) {
85
+ payload.userId = this._userId.valueOrNull;
86
+ }
87
+ if (this._email !== undefined) {
88
+ payload.email = this._email.valueOrNull;
89
+ }
90
+ if (this._msisdn !== undefined) {
91
+ payload.msisdn = this._msisdn.valueOrNull;
92
+ }
93
+ if (this._wpNumber !== undefined) {
94
+ payload.wpNumber = this._wpNumber.valueOrNull;
95
+ }
96
+ return payload;
83
97
  }
84
98
  }
85
-
86
- export enum NMUserGender {
87
- MALE = 0,
88
- FEMALE = 1,
89
- NOT_SPECIFIED = 2,
90
- }
91
-
92
- export enum NMUserMaritalStatus {
93
- SINGLE = 0,
94
- MARRIED = 1,
95
- NOT_SPECIFIED = 2,
96
- }
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) 2026 Netmera Research.
3
+ */
4
+
5
+ import {
6
+ NetmeraProfileAttribute,
7
+ NetmeraProfileAttributeCollection,
8
+ Gender,
9
+ MaritalStatus,
10
+ } from './NetmeraProfileAttribute';
11
+
12
+ export class NetmeraUserProfile {
13
+ public name = new NetmeraProfileAttribute<string>();
14
+ public surname = new NetmeraProfileAttribute<string>();
15
+ public externalSegments = new NetmeraProfileAttributeCollection<string>();
16
+ public gender = new NetmeraProfileAttribute<Gender>();
17
+ public dateOfBirth = new NetmeraProfileAttribute<number>();
18
+ public maritalStatus = new NetmeraProfileAttribute<MaritalStatus>();
19
+ public childCount = new NetmeraProfileAttribute<number>();
20
+ public country = new NetmeraProfileAttribute<string>();
21
+ public state = new NetmeraProfileAttribute<string>();
22
+ public city = new NetmeraProfileAttribute<string>();
23
+ public district = new NetmeraProfileAttribute<string>();
24
+ public occupation = new NetmeraProfileAttribute<string>();
25
+ public industry = new NetmeraProfileAttribute<string>();
26
+ public favoriteTeam = new NetmeraProfileAttribute<string>();
27
+ public language = new NetmeraProfileAttribute<string>();
28
+
29
+ protected getSerializationMap(): Record<string, string> {
30
+ return {
31
+ name: 'pa',
32
+ surname: 'pb',
33
+ externalSegments: 'pc',
34
+ gender: 'pd',
35
+ dateOfBirth: 'pe',
36
+ maritalStatus: 'pf',
37
+ childCount: 'pg',
38
+ country: 'ph',
39
+ state: 'pi',
40
+ city: 'pj',
41
+ district: 'pk',
42
+ occupation: 'pl',
43
+ industry: 'pm',
44
+ favoriteTeam: 'pn',
45
+ language: 'po',
46
+ };
47
+ }
48
+
49
+ public getChangesPayload(): Record<string, any> {
50
+ const payload: Record<string, any> = {};
51
+ const serializationMap = this.getSerializationMap();
52
+
53
+ for (const propertyName in serializationMap) {
54
+ const attribute = (this as any)[
55
+ propertyName
56
+ ] as NetmeraProfileAttribute<any>;
57
+ if (attribute && attribute.hasPendingChanges()) {
58
+ const serializedKey = serializationMap[propertyName];
59
+ if (serializedKey && attribute.hasOperations()) {
60
+ payload[serializedKey] = attribute.getOperations();
61
+ }
62
+ }
63
+ }
64
+
65
+ return payload;
66
+ }
67
+ }
@@ -1,6 +1,6 @@
1
1
  export enum NotificationPermissionStatus {
2
- NotDetermined = "notDetermined",
3
- Blocked = "blocked",
4
- Denied = "denied",
5
- Granted = "granted",
2
+ NotDetermined = 'notDetermined',
3
+ Blocked = 'blocked',
4
+ Denied = 'denied',
5
+ Granted = 'granted',
6
6
  }
@@ -1,9 +1,9 @@
1
- import { Platform } from "react-native";
1
+ import { Platform } from 'react-native';
2
2
 
3
3
  export const isAndroid = () => {
4
- return Platform.OS === "android";
4
+ return Platform.OS === 'android';
5
5
  };
6
6
 
7
7
  export const isIos = () => {
8
- return Platform.OS === "ios";
8
+ return Platform.OS === 'ios';
9
9
  };
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright (c) 2026 Netmera Research.
3
+ */
4
+
5
+ /**
6
+ * Distinguishes a field that was never set from one explicitly cleared.
7
+ */
8
+ export class Optional<T> {
9
+ private constructor(
10
+ private readonly _isPresent: boolean,
11
+ private readonly _value: T | undefined
12
+ ) {}
13
+
14
+ static of<T>(value: T): Optional<T> {
15
+ return new Optional(true, value);
16
+ }
17
+
18
+ /** Explicit null / clear on server when serialized as a map value. */
19
+ static absent<T>(): Optional<T> {
20
+ return new Optional<T>(false, undefined as T | undefined);
21
+ }
22
+
23
+ /** `null` or `undefined` → {@link Optional.absent}; otherwise {@link Optional.of}. */
24
+ static fromNullable<T>(value: T | null | undefined): Optional<T> {
25
+ return value == null ? Optional.absent<T>() : Optional.of(value);
26
+ }
27
+
28
+ get valueOrNull(): T | null {
29
+ return this._isPresent ? (this._value as T) : null;
30
+ }
31
+ }
@@ -0,0 +1,24 @@
1
+ import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
2
+
3
+ const LINKING_ERROR =
4
+ `The package 'netmera-react-sdk' doesn't seem to be linked. Make sure: \n\n` +
5
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
6
+ '- You rebuilt the app after installing the package\n' +
7
+ '- You are not using Expo Go\n';
8
+
9
+ const RNNetmera = NativeModules.RNNetmera
10
+ ? NativeModules.RNNetmera
11
+ : new Proxy(
12
+ {},
13
+ {
14
+ get() {
15
+ throw new Error(LINKING_ERROR);
16
+ },
17
+ }
18
+ );
19
+
20
+ const RNNetmeraRCTEventEmitter = NativeModules.RNNetmeraRCTEventEmitter;
21
+
22
+ const netmeraRCTEventEmitter = new NativeEventEmitter(RNNetmeraRCTEventEmitter);
23
+
24
+ export { RNNetmera, netmeraRCTEventEmitter };
package/.eslintignore DELETED
@@ -1,7 +0,0 @@
1
- /example/.eslintrc.js
2
- /example/__tests__/App-test.js
3
- /example/babel.config.js
4
- /example/index.js
5
- /example/jest.config.js
6
- /example/metro.config.js
7
- /scripts
package/.gitattributes DELETED
@@ -1 +0,0 @@
1
- *.pbxproj -text