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
@@ -0,0 +1,192 @@
1
+ //
2
+ // AnyDecodable.swift
3
+ //
4
+
5
+ #if canImport(Foundation)
6
+ import Foundation
7
+ #endif
8
+
9
+ /**
10
+ A type-erased `Decodable` value.
11
+
12
+ The `AnyDecodable` type forwards decoding responsibilities
13
+ to an underlying value, hiding its specific underlying type.
14
+
15
+ You can decode mixed-type values in dictionaries
16
+ and other collections that require `Decodable` conformance
17
+ by declaring their contained type to be `AnyDecodable`:
18
+
19
+ let json = """
20
+ {
21
+ "boolean": true,
22
+ "integer": 42,
23
+ "double": 3.141592653589793,
24
+ "string": "string",
25
+ "array": [1, 2, 3],
26
+ "nested": {
27
+ "a": "alpha",
28
+ "b": "bravo",
29
+ "c": "charlie"
30
+ },
31
+ "null": null
32
+ }
33
+ """.data(using: .utf8)!
34
+
35
+ let decoder = JSONDecoder()
36
+ let dictionary = try! decoder.decode([String: AnyDecodable].self, from: json)
37
+ */
38
+ @frozen public struct AnyDecodable: Decodable {
39
+ public let value: Any
40
+
41
+ public init<T>(_ value: T?) {
42
+ self.value = value ?? ()
43
+ }
44
+ }
45
+
46
+ @usableFromInline
47
+ protocol _AnyDecodable {
48
+ var value: Any { get }
49
+ init<T>(_ value: T?)
50
+ }
51
+
52
+ extension AnyDecodable: _AnyDecodable {}
53
+
54
+ extension _AnyDecodable {
55
+ public init(from decoder: Decoder) throws {
56
+ let container = try decoder.singleValueContainer()
57
+
58
+ if container.decodeNil() {
59
+ #if canImport(Foundation)
60
+ self.init(NSNull())
61
+ #else
62
+ self.init(Optional<Self>.none)
63
+ #endif
64
+ } else if let bool = try? container.decode(Bool.self) {
65
+ self.init(bool)
66
+ } else if let int = try? container.decode(Int.self) {
67
+ self.init(int)
68
+ } else if let uint = try? container.decode(UInt.self) {
69
+ self.init(uint)
70
+ } else if let double = try? container.decode(Double.self) {
71
+ self.init(double)
72
+ } else if let string = try? container.decode(String.self) {
73
+ self.init(string)
74
+ } else if let array = try? container.decode([AnyDecodable].self) {
75
+ self.init(array.map { $0.value })
76
+ } else if let dictionary = try? container.decode([String: AnyDecodable].self) {
77
+ self.init(dictionary.mapValues { $0.value })
78
+ } else {
79
+ throw DecodingError.dataCorruptedError(in: container, debugDescription: "AnyDecodable value cannot be decoded")
80
+ }
81
+ }
82
+ }
83
+
84
+ extension AnyDecodable: Equatable {
85
+ public static func == (lhs: AnyDecodable, rhs: AnyDecodable) -> Bool {
86
+ switch (lhs.value, rhs.value) {
87
+ #if canImport(Foundation)
88
+ case is (NSNull, NSNull), is (Void, Void):
89
+ return true
90
+ #endif
91
+ case let (lhs as Bool, rhs as Bool):
92
+ return lhs == rhs
93
+ case let (lhs as Int, rhs as Int):
94
+ return lhs == rhs
95
+ case let (lhs as Int8, rhs as Int8):
96
+ return lhs == rhs
97
+ case let (lhs as Int16, rhs as Int16):
98
+ return lhs == rhs
99
+ case let (lhs as Int32, rhs as Int32):
100
+ return lhs == rhs
101
+ case let (lhs as Int64, rhs as Int64):
102
+ return lhs == rhs
103
+ case let (lhs as UInt, rhs as UInt):
104
+ return lhs == rhs
105
+ case let (lhs as UInt8, rhs as UInt8):
106
+ return lhs == rhs
107
+ case let (lhs as UInt16, rhs as UInt16):
108
+ return lhs == rhs
109
+ case let (lhs as UInt32, rhs as UInt32):
110
+ return lhs == rhs
111
+ case let (lhs as UInt64, rhs as UInt64):
112
+ return lhs == rhs
113
+ case let (lhs as Float, rhs as Float):
114
+ return lhs == rhs
115
+ case let (lhs as Double, rhs as Double):
116
+ return lhs == rhs
117
+ case let (lhs as String, rhs as String):
118
+ return lhs == rhs
119
+ case let (lhs as [String: AnyDecodable], rhs as [String: AnyDecodable]):
120
+ return lhs == rhs
121
+ case let (lhs as [AnyDecodable], rhs as [AnyDecodable]):
122
+ return lhs == rhs
123
+ default:
124
+ return false
125
+ }
126
+ }
127
+ }
128
+
129
+ extension AnyDecodable: CustomStringConvertible {
130
+ public var description: String {
131
+ switch value {
132
+ case is Void:
133
+ return String(describing: nil as Any?)
134
+ case let value as CustomStringConvertible:
135
+ return value.description
136
+ default:
137
+ return String(describing: value)
138
+ }
139
+ }
140
+ }
141
+
142
+ extension AnyDecodable: CustomDebugStringConvertible {
143
+ public var debugDescription: String {
144
+ switch value {
145
+ case let value as CustomDebugStringConvertible:
146
+ return "AnyDecodable(\(value.debugDescription))"
147
+ default:
148
+ return "AnyDecodable(\(description))"
149
+ }
150
+ }
151
+ }
152
+
153
+ extension AnyDecodable: Hashable {
154
+ public func hash(into hasher: inout Hasher) {
155
+ switch value {
156
+ case let value as Bool:
157
+ hasher.combine(value)
158
+ case let value as Int:
159
+ hasher.combine(value)
160
+ case let value as Int8:
161
+ hasher.combine(value)
162
+ case let value as Int16:
163
+ hasher.combine(value)
164
+ case let value as Int32:
165
+ hasher.combine(value)
166
+ case let value as Int64:
167
+ hasher.combine(value)
168
+ case let value as UInt:
169
+ hasher.combine(value)
170
+ case let value as UInt8:
171
+ hasher.combine(value)
172
+ case let value as UInt16:
173
+ hasher.combine(value)
174
+ case let value as UInt32:
175
+ hasher.combine(value)
176
+ case let value as UInt64:
177
+ hasher.combine(value)
178
+ case let value as Float:
179
+ hasher.combine(value)
180
+ case let value as Double:
181
+ hasher.combine(value)
182
+ case let value as String:
183
+ hasher.combine(value)
184
+ case let value as [String: AnyDecodable]:
185
+ hasher.combine(value)
186
+ case let value as [AnyDecodable]:
187
+ hasher.combine(value)
188
+ default:
189
+ break
190
+ }
191
+ }
192
+ }
@@ -0,0 +1,295 @@
1
+ //
2
+ // AnyEncodable.swift
3
+ //
4
+
5
+ #if canImport(Foundation)
6
+ import Foundation
7
+ #endif
8
+
9
+ /**
10
+ A type-erased `Encodable` value.
11
+
12
+ The `AnyEncodable` type forwards encoding responsibilities
13
+ to an underlying value, hiding its specific underlying type.
14
+
15
+ You can encode mixed-type values in dictionaries
16
+ and other collections that require `Encodable` conformance
17
+ by declaring their contained type to be `AnyEncodable`:
18
+
19
+ let dictionary: [String: AnyEncodable] = [
20
+ "boolean": true,
21
+ "integer": 42,
22
+ "double": 3.141592653589793,
23
+ "string": "string",
24
+ "array": [1, 2, 3],
25
+ "nested": [
26
+ "a": "alpha",
27
+ "b": "bravo",
28
+ "c": "charlie"
29
+ ],
30
+ "null": nil
31
+ ]
32
+
33
+ let encoder = JSONEncoder()
34
+ let json = try! encoder.encode(dictionary)
35
+ */
36
+ @frozen public struct AnyEncodable: Encodable {
37
+ public let value: Any
38
+
39
+ public init<T>(_ value: T?) {
40
+ self.value = value ?? ()
41
+ }
42
+ }
43
+
44
+ @usableFromInline
45
+ protocol _AnyEncodable {
46
+ var value: Any { get }
47
+ init<T>(_ value: T?)
48
+ }
49
+
50
+ extension AnyEncodable: _AnyEncodable {}
51
+
52
+ // MARK: - Encodable
53
+
54
+ extension _AnyEncodable {
55
+ public func encode(to encoder: Encoder) throws {
56
+ var container = encoder.singleValueContainer()
57
+
58
+ switch value {
59
+ #if canImport(Foundation)
60
+ case is NSNull:
61
+ try container.encodeNil()
62
+ #endif
63
+ case is Void:
64
+ try container.encodeNil()
65
+ case let bool as Bool:
66
+ try container.encode(bool)
67
+ case let int as Int:
68
+ try container.encode(int)
69
+ case let int8 as Int8:
70
+ try container.encode(int8)
71
+ case let int16 as Int16:
72
+ try container.encode(int16)
73
+ case let int32 as Int32:
74
+ try container.encode(int32)
75
+ case let int64 as Int64:
76
+ try container.encode(int64)
77
+ case let uint as UInt:
78
+ try container.encode(uint)
79
+ case let uint8 as UInt8:
80
+ try container.encode(uint8)
81
+ case let uint16 as UInt16:
82
+ try container.encode(uint16)
83
+ case let uint32 as UInt32:
84
+ try container.encode(uint32)
85
+ case let uint64 as UInt64:
86
+ try container.encode(uint64)
87
+ case let float as Float:
88
+ try container.encode(float)
89
+ case let double as Double:
90
+ try container.encode(double)
91
+ case let string as String:
92
+ try container.encode(string)
93
+ #if canImport(Foundation)
94
+ case let number as NSNumber:
95
+ try encode(nsnumber: number, into: &container)
96
+ case let date as Date:
97
+ try container.encode(date)
98
+ case let url as URL:
99
+ try container.encode(url)
100
+ #endif
101
+ case let array as [Any?]:
102
+ try container.encode(array.map { AnyEncodable($0) })
103
+ case let dictionary as [String: Any?]:
104
+ try container.encode(dictionary.mapValues { AnyEncodable($0) })
105
+ case let encodable as Encodable:
106
+ try encodable.encode(to: encoder)
107
+ default:
108
+ let context = EncodingError.Context(codingPath: container.codingPath, debugDescription: "AnyEncodable value cannot be encoded")
109
+ throw EncodingError.invalidValue(value, context)
110
+ }
111
+ }
112
+
113
+ #if canImport(Foundation)
114
+ private func encode(nsnumber: NSNumber, into container: inout SingleValueEncodingContainer) throws {
115
+ switch Character(Unicode.Scalar(UInt8(nsnumber.objCType.pointee))) {
116
+ case "B":
117
+ try container.encode(nsnumber.boolValue)
118
+ case "c":
119
+ try container.encode(nsnumber.int8Value)
120
+ case "s":
121
+ try container.encode(nsnumber.int16Value)
122
+ case "i", "l":
123
+ try container.encode(nsnumber.int32Value)
124
+ case "q":
125
+ try container.encode(nsnumber.int64Value)
126
+ case "C":
127
+ try container.encode(nsnumber.uint8Value)
128
+ case "S":
129
+ try container.encode(nsnumber.uint16Value)
130
+ case "I", "L":
131
+ try container.encode(nsnumber.uint32Value)
132
+ case "Q":
133
+ try container.encode(nsnumber.uint64Value)
134
+ case "f":
135
+ try container.encode(nsnumber.floatValue)
136
+ case "d":
137
+ try container.encode(nsnumber.doubleValue)
138
+ default:
139
+ let context = EncodingError.Context(codingPath: container.codingPath, debugDescription: "NSNumber cannot be encoded because its type is not handled")
140
+ throw EncodingError.invalidValue(nsnumber, context)
141
+ }
142
+ }
143
+ #endif
144
+ }
145
+
146
+ extension AnyEncodable: Equatable {
147
+ public static func == (lhs: AnyEncodable, rhs: AnyEncodable) -> Bool {
148
+ switch (lhs.value, rhs.value) {
149
+ case is (Void, Void):
150
+ return true
151
+ case let (lhs as Bool, rhs as Bool):
152
+ return lhs == rhs
153
+ case let (lhs as Int, rhs as Int):
154
+ return lhs == rhs
155
+ case let (lhs as Int8, rhs as Int8):
156
+ return lhs == rhs
157
+ case let (lhs as Int16, rhs as Int16):
158
+ return lhs == rhs
159
+ case let (lhs as Int32, rhs as Int32):
160
+ return lhs == rhs
161
+ case let (lhs as Int64, rhs as Int64):
162
+ return lhs == rhs
163
+ case let (lhs as UInt, rhs as UInt):
164
+ return lhs == rhs
165
+ case let (lhs as UInt8, rhs as UInt8):
166
+ return lhs == rhs
167
+ case let (lhs as UInt16, rhs as UInt16):
168
+ return lhs == rhs
169
+ case let (lhs as UInt32, rhs as UInt32):
170
+ return lhs == rhs
171
+ case let (lhs as UInt64, rhs as UInt64):
172
+ return lhs == rhs
173
+ case let (lhs as Float, rhs as Float):
174
+ return lhs == rhs
175
+ case let (lhs as Double, rhs as Double):
176
+ return lhs == rhs
177
+ case let (lhs as String, rhs as String):
178
+ return lhs == rhs
179
+ case let (lhs as [String: AnyEncodable], rhs as [String: AnyEncodable]):
180
+ return lhs == rhs
181
+ case let (lhs as [AnyEncodable], rhs as [AnyEncodable]):
182
+ return lhs == rhs
183
+ default:
184
+ return false
185
+ }
186
+ }
187
+ }
188
+
189
+ extension AnyEncodable: CustomStringConvertible {
190
+ public var description: String {
191
+ switch value {
192
+ case is Void:
193
+ return String(describing: nil as Any?)
194
+ case let value as CustomStringConvertible:
195
+ return value.description
196
+ default:
197
+ return String(describing: value)
198
+ }
199
+ }
200
+ }
201
+
202
+ extension AnyEncodable: CustomDebugStringConvertible {
203
+ public var debugDescription: String {
204
+ switch value {
205
+ case let value as CustomDebugStringConvertible:
206
+ return "AnyEncodable(\(value.debugDescription))"
207
+ default:
208
+ return "AnyEncodable(\(description))"
209
+ }
210
+ }
211
+ }
212
+
213
+ extension AnyEncodable: ExpressibleByNilLiteral {}
214
+ extension AnyEncodable: ExpressibleByBooleanLiteral {}
215
+ extension AnyEncodable: ExpressibleByIntegerLiteral {}
216
+ extension AnyEncodable: ExpressibleByFloatLiteral {}
217
+ extension AnyEncodable: ExpressibleByStringLiteral {}
218
+ extension AnyEncodable: ExpressibleByStringInterpolation {}
219
+ extension AnyEncodable: ExpressibleByArrayLiteral {}
220
+ extension AnyEncodable: ExpressibleByDictionaryLiteral {}
221
+
222
+ extension _AnyEncodable {
223
+ public init(nilLiteral _: ()) {
224
+ self.init(nil as Any?)
225
+ }
226
+
227
+ public init(booleanLiteral value: Bool) {
228
+ self.init(value)
229
+ }
230
+
231
+ public init(integerLiteral value: Int) {
232
+ self.init(value)
233
+ }
234
+
235
+ public init(floatLiteral value: Double) {
236
+ self.init(value)
237
+ }
238
+
239
+ public init(extendedGraphemeClusterLiteral value: String) {
240
+ self.init(value)
241
+ }
242
+
243
+ public init(stringLiteral value: String) {
244
+ self.init(value)
245
+ }
246
+
247
+ public init(arrayLiteral elements: Any...) {
248
+ self.init(elements)
249
+ }
250
+
251
+ public init(dictionaryLiteral elements: (AnyHashable, Any)...) {
252
+ self.init([AnyHashable: Any](elements, uniquingKeysWith: { first, _ in first }))
253
+ }
254
+ }
255
+
256
+ extension AnyEncodable: Hashable {
257
+ public func hash(into hasher: inout Hasher) {
258
+ switch value {
259
+ case let value as Bool:
260
+ hasher.combine(value)
261
+ case let value as Int:
262
+ hasher.combine(value)
263
+ case let value as Int8:
264
+ hasher.combine(value)
265
+ case let value as Int16:
266
+ hasher.combine(value)
267
+ case let value as Int32:
268
+ hasher.combine(value)
269
+ case let value as Int64:
270
+ hasher.combine(value)
271
+ case let value as UInt:
272
+ hasher.combine(value)
273
+ case let value as UInt8:
274
+ hasher.combine(value)
275
+ case let value as UInt16:
276
+ hasher.combine(value)
277
+ case let value as UInt32:
278
+ hasher.combine(value)
279
+ case let value as UInt64:
280
+ hasher.combine(value)
281
+ case let value as Float:
282
+ hasher.combine(value)
283
+ case let value as Double:
284
+ hasher.combine(value)
285
+ case let value as String:
286
+ hasher.combine(value)
287
+ case let value as [String: AnyEncodable]:
288
+ hasher.combine(value)
289
+ case let value as [AnyEncodable]:
290
+ hasher.combine(value)
291
+ default:
292
+ break
293
+ }
294
+ }
295
+ }
@@ -0,0 +1,3 @@
1
+ #import <React/RCTEventEmitter.h>
2
+ #import <React/RCTBridgeModule.h>
3
+ #import <React/RCTViewManager.h>
@@ -0,0 +1,143 @@
1
+ #import <React/RCTBridgeModule.h>
2
+
3
+ @interface RCT_EXTERN_MODULE(RNNetmera, NSObject)
4
+
5
+ RCT_EXTERN_METHOD(currentExternalId:(RCTPromiseResolveBlock)resolve
6
+ withRejecter:(RCTPromiseRejectBlock)reject)
7
+
8
+ RCT_EXTERN_METHOD(checkNotificationPermission:(RCTPromiseResolveBlock)resolve
9
+ withRejecter:(RCTPromiseRejectBlock)reject)
10
+
11
+ RCT_EXTERN_METHOD(requestPushNotificationAuthorization:(RCTPromiseResolveBlock)resolve
12
+ withRejecter:(RCTPromiseRejectBlock)reject)
13
+
14
+ RCT_EXTERN_METHOD(requestPermissionsForLocation)
15
+
16
+ RCT_EXTERN_METHOD(setNetmeraMaxActiveRegions:(NSInteger)maxActiveRegions)
17
+
18
+ RCT_EXTERN_METHOD(enablePopupPresentation)
19
+
20
+ RCT_EXTERN_METHOD(disablePopupPresentation)
21
+
22
+ RCT_EXTERN_METHOD(dismissAllPresentations)
23
+
24
+ RCT_EXTERN_METHOD(isPushEnabled:(RCTPromiseResolveBlock)resolve
25
+ withRejecter:(RCTPromiseRejectBlock)reject)
26
+
27
+ RCT_EXTERN_METHOD(enablePush)
28
+
29
+ RCT_EXTERN_METHOD(disablePush)
30
+
31
+ RCT_EXTERN_METHOD(startDataTransfer)
32
+
33
+ RCT_EXTERN_METHOD(stopDataTransfer)
34
+
35
+ RCT_EXTERN_METHOD(kill)
36
+
37
+ RCT_EXTERN_METHOD(sendEvent:(NSDictionary *)eventDictionary)
38
+
39
+ RCT_EXTERN_METHOD(sendGenericEvent:(NSString *)code attributes:(NSDictionary *)attributes)
40
+
41
+ RCT_EXTERN_METHOD(identifyUser:(NSDictionary *)userDictionary
42
+ hasCallback:(BOOL)hasCallback
43
+ withResolver:(RCTPromiseResolveBlock)resolve
44
+ withRejecter:(RCTPromiseRejectBlock)reject)
45
+
46
+ RCT_EXTERN_METHOD(updateUserProfile:(NSDictionary *)userProfileDictionary
47
+ hasCallback:(BOOL)hasCallback
48
+ withResolver:(RCTPromiseResolveBlock)resolve
49
+ withRejecter:(RCTPromiseRejectBlock)reject)
50
+
51
+ RCT_EXTERN_METHOD(fetchCoupons:(int)page
52
+ max:(int)max
53
+ withResolver:(RCTPromiseResolveBlock)resolve
54
+ withRejecter:(RCTPromiseRejectBlock)reject)
55
+
56
+ RCT_EXTERN_METHOD(getUserCategoryPreferenceList:(RCTPromiseResolveBlock)resolve
57
+ withRejecter:(RCTPromiseRejectBlock)reject)
58
+
59
+ RCT_EXTERN_METHOD(setUserCategoryPreference:(NSInteger)categoryId
60
+ categoryEnabled:(BOOL)categoryEnabled
61
+ withResolver:(RCTPromiseResolveBlock)resolve
62
+ withRejecter:(RCTPromiseRejectBlock)reject)
63
+
64
+ RCT_EXTERN_METHOD(getInitialURL:(RCTPromiseResolveBlock)resolve
65
+ withRejecter:(RCTPromiseRejectBlock)reject)
66
+
67
+ RCT_EXTERN_METHOD(fetchInbox:(NSDictionary *)inboxDictionary
68
+ withResolver: (RCTPromiseResolveBlock)resolve
69
+ withRejecter:(RCTPromiseRejectBlock)reject)
70
+
71
+ RCT_EXTERN_METHOD(fetchNextPage:(RCTPromiseResolveBlock)resolve
72
+ withRejecter:(RCTPromiseRejectBlock)reject)
73
+
74
+ RCT_EXTERN_METHOD(countForStatus:(NSInteger)statusRaw
75
+ withResolver:(RCTPromiseResolveBlock)resolve
76
+ withRejecter:(RCTPromiseRejectBlock)reject)
77
+
78
+ RCT_EXTERN_METHOD(inboxUpdateStatus:(NSInteger)fromIndex
79
+ toIndex:(NSInteger)toIndex
80
+ status:(NSInteger)status
81
+ withResolver:(RCTPromiseResolveBlock)resolve
82
+ withRejecter:(RCTPromiseRejectBlock)reject)
83
+
84
+ RCT_EXTERN_METHOD(fetchCategory:(NSDictionary *)inboxDictionary
85
+ withResolver:(RCTPromiseResolveBlock)resolve
86
+ withRejecter:(RCTPromiseRejectBlock)reject)
87
+
88
+ RCT_EXTERN_METHOD(fetchNextCategoryPage:(RCTPromiseResolveBlock)resolve
89
+ withRejecter:(RCTPromiseRejectBlock)reject)
90
+
91
+
92
+ RCT_EXTERN_METHOD(handlePushObject:(NSString *)pushId
93
+ withResolver:(RCTPromiseResolveBlock)resolve
94
+ withRejecter:(RCTPromiseRejectBlock)reject)
95
+
96
+ RCT_EXTERN_METHOD(handleInteractiveAction:(NSString *)actionId
97
+ withResolver:(RCTPromiseResolveBlock)resolve
98
+ withRejecter:(RCTPromiseRejectBlock)reject)
99
+
100
+ RCT_EXTERN_METHOD(handleLastMessage:(NSString *)pushId
101
+ withResolver:(RCTPromiseResolveBlock)resolve
102
+ withRejecter:(RCTPromiseRejectBlock)reject)
103
+
104
+ RCT_EXTERN_METHOD(updateStatusByCategories:(NSArray<NSString *> *)categoryList
105
+ status:(NSInteger)status
106
+ withResolver:(RCTPromiseResolveBlock)resolve
107
+ withRejecter:(RCTPromiseRejectBlock)reject)
108
+
109
+ RCT_EXTERN_METHOD(updateAll:(NSInteger)inboxStatus
110
+ withResolver:(RCTPromiseResolveBlock)resolve
111
+ withRejecter:(RCTPromiseRejectBlock)reject)
112
+
113
+ RCT_EXTERN_METHOD(getInboxCountForStatus:(NSDictionary *)filterDictionary
114
+ withResolver:(RCTPromiseResolveBlock)resolve
115
+ withRejecter:(RCTPromiseRejectBlock)reject)
116
+
117
+ RCT_EXTERN_METHOD(setEmailPermission:(BOOL)isAllowed
118
+ withResolver:(RCTPromiseResolveBlock)resolve
119
+ withRejecter:(RCTPromiseRejectBlock)reject)
120
+
121
+ RCT_EXTERN_METHOD(getEmailPermission:(RCTPromiseResolveBlock)resolve
122
+ withRejecter:(RCTPromiseRejectBlock)reject)
123
+
124
+ RCT_EXTERN_METHOD(setSmsPermission:(BOOL)isAllowed
125
+ withResolver:(RCTPromiseResolveBlock)resolve
126
+ withRejecter:(RCTPromiseRejectBlock)reject)
127
+
128
+ RCT_EXTERN_METHOD(getSmsPermission:(RCTPromiseResolveBlock)resolve
129
+ withRejecter:(RCTPromiseRejectBlock)reject)
130
+
131
+ RCT_EXTERN_METHOD(setWhatsAppPermission:(BOOL)isAllowed
132
+ withResolver:(RCTPromiseResolveBlock)resolve
133
+ withRejecter:(RCTPromiseRejectBlock)reject)
134
+
135
+ RCT_EXTERN_METHOD(getWhatsAppPermission:(RCTPromiseResolveBlock)resolve
136
+ withRejecter:(RCTPromiseRejectBlock)reject)
137
+
138
+ + (BOOL)requiresMainQueueSetup
139
+ {
140
+ return NO;
141
+ }
142
+
143
+ @end