@tyrads.com/tyrads-sdk 3.3.4 → 4.0.0-beta.0

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 (429) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/tyradssdk/TyradsSdkModule.kt +161 -19
  3. package/ios/Tyrads/AcmoConfig.swift +1 -1
  4. package/ios/Tyrads/InitModel.swift +29 -15
  5. package/ios/Tyrads/Tyrads.swift +332 -274
  6. package/ios/Tyrads/WebViewController.swift +10 -17
  7. package/ios/Tyrads/core/models/TyradsUserInfo.swift +2 -0
  8. package/ios/Tyrads/core/utils/AcmoKeyNames.swift +1 -0
  9. package/ios/Tyrads/helpers/device_details.swift +122 -2
  10. package/ios/Tyrads/pushNotifications/APNsAppDelegateProxy.swift +37 -0
  11. package/ios/Tyrads/pushNotifications/APNsNotificationListener.swift +14 -0
  12. package/ios/Tyrads/pushNotifications/APNsNotificationManager.swift +68 -0
  13. package/ios/Tyrads/pushNotifications/APNsNotificationReceiver.swift +77 -0
  14. package/ios/Tyrads/pushNotifications/TyradsAPNsSwizzler.mm +179 -0
  15. package/ios/TyradsSdk-Bridging-Header.h +3 -0
  16. package/ios/TyradsSdk.mm +12 -1
  17. package/ios/TyradsSdk.swift +121 -4
  18. package/lib/commonjs/acmo/core/components/countdown-timer.js +48 -0
  19. package/lib/commonjs/acmo/core/components/countdown-timer.js.map +1 -0
  20. package/lib/commonjs/acmo/core/components/snap-carousel.js +86 -0
  21. package/lib/commonjs/acmo/core/components/snap-carousel.js.map +1 -0
  22. package/lib/commonjs/acmo/core/constants/api-endpoints.js +18 -0
  23. package/lib/commonjs/acmo/core/constants/api-endpoints.js.map +1 -0
  24. package/lib/commonjs/acmo/core/helpers/colors.js +20 -0
  25. package/lib/commonjs/acmo/core/helpers/colors.js.map +1 -0
  26. package/lib/commonjs/acmo/core/helpers/logger.js +18 -0
  27. package/lib/commonjs/acmo/core/helpers/logger.js.map +1 -0
  28. package/lib/commonjs/acmo/core/helpers/patches.js +7 -0
  29. package/lib/commonjs/acmo/core/helpers/patches.js.map +1 -0
  30. package/lib/commonjs/acmo/core/network/http-client.js +91 -0
  31. package/lib/commonjs/acmo/core/network/http-client.js.map +1 -0
  32. package/lib/commonjs/acmo/core/network/network-common.js +111 -0
  33. package/lib/commonjs/acmo/core/network/network-common.js.map +1 -0
  34. package/lib/commonjs/acmo/core/services/localization_service.js +7 -13
  35. package/lib/commonjs/acmo/core/services/localization_service.js.map +1 -1
  36. package/lib/commonjs/acmo/core/types/activated-campaings.d.js +2 -0
  37. package/lib/commonjs/acmo/core/types/activated-campaings.d.js.map +1 -0
  38. package/lib/commonjs/acmo/core/tyrads-sdk-core.js +203 -0
  39. package/lib/commonjs/acmo/core/tyrads-sdk-core.js.map +1 -0
  40. package/lib/commonjs/acmo/modules/inapp-notifications/components/gradient_card.js +98 -0
  41. package/lib/commonjs/acmo/modules/inapp-notifications/components/gradient_card.js.map +1 -0
  42. package/lib/commonjs/acmo/modules/inapp-notifications/components/modal-wrapper.js +55 -0
  43. package/lib/commonjs/acmo/modules/inapp-notifications/components/modal-wrapper.js.map +1 -0
  44. package/lib/commonjs/acmo/modules/inapp-notifications/controller.js +141 -0
  45. package/lib/commonjs/acmo/modules/inapp-notifications/controller.js.map +1 -0
  46. package/lib/commonjs/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js +183 -0
  47. package/lib/commonjs/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js.map +1 -0
  48. package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-host.js +37 -0
  49. package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-host.js.map +1 -0
  50. package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-manager.js +39 -0
  51. package/lib/commonjs/acmo/modules/inapp-notifications/inapp-notification-manager.js.map +1 -0
  52. package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js +206 -0
  53. package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js.map +1 -0
  54. package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js +155 -0
  55. package/lib/commonjs/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js.map +1 -0
  56. package/lib/commonjs/acmo/modules/inapp-notifications/repository.js +52 -0
  57. package/lib/commonjs/acmo/modules/inapp-notifications/repository.js.map +1 -0
  58. package/lib/commonjs/acmo/modules/inapp-notifications/tyrads-global-host.js +37 -0
  59. package/lib/commonjs/acmo/modules/inapp-notifications/tyrads-global-host.js.map +1 -0
  60. package/lib/commonjs/acmo/modules/premium-widgets/components/active_offers_button.js.map +1 -0
  61. package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_card.js +1 -2
  62. package/lib/commonjs/acmo/modules/premium-widgets/components/custom_card.js.map +1 -0
  63. package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.js +20 -11
  64. package/lib/commonjs/acmo/modules/premium-widgets/components/custom_scroller.js.map +1 -0
  65. package/lib/commonjs/acmo/modules/premium-widgets/components/custom_shimmer.js.map +1 -0
  66. package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/offer_card.js +12 -12
  67. package/lib/commonjs/acmo/modules/premium-widgets/components/offer_card.js.map +1 -0
  68. package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.js +3 -3
  69. package/lib/commonjs/acmo/modules/premium-widgets/components/offer_list_item.js.map +1 -0
  70. package/lib/commonjs/acmo/modules/premium-widgets/components/premium_empty_widget.js.map +1 -0
  71. package/lib/commonjs/acmo/modules/premium-widgets/components/premium_header.js.map +1 -0
  72. package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.js +3 -3
  73. package/lib/commonjs/acmo/modules/premium-widgets/components/premium_loading.js.map +1 -0
  74. package/lib/commonjs/acmo/modules/premium-widgets/controller.js +30 -0
  75. package/lib/commonjs/acmo/modules/premium-widgets/controller.js.map +1 -0
  76. package/lib/commonjs/acmo/modules/{dashboard/top_offers.js → premium-widgets/premium_offers_widget.js} +67 -30
  77. package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget.js.map +1 -0
  78. package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js +49 -0
  79. package/lib/commonjs/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js.map +1 -0
  80. package/lib/commonjs/acmo/modules/premium-widgets/repository.js +103 -0
  81. package/lib/commonjs/acmo/modules/premium-widgets/repository.js.map +1 -0
  82. package/lib/commonjs/acmo/modules/push-notifications/apns-manager.js +227 -0
  83. package/lib/commonjs/acmo/modules/push-notifications/apns-manager.js.map +1 -0
  84. package/lib/commonjs/acmo/modules/push-notifications/fcm-manager.js +148 -0
  85. package/lib/commonjs/acmo/modules/push-notifications/fcm-manager.js.map +1 -0
  86. package/lib/commonjs/acmo_config.js +6 -5
  87. package/lib/commonjs/acmo_config.js.map +1 -1
  88. package/lib/commonjs/assets/images/alarm-clock.png +0 -0
  89. package/lib/commonjs/assets/images/circle-x.png +0 -0
  90. package/lib/commonjs/assets/images/coin.png +0 -0
  91. package/lib/commonjs/index.js +33 -106
  92. package/lib/commonjs/index.js.map +1 -1
  93. package/lib/module/acmo/core/components/countdown-timer.js +42 -0
  94. package/lib/module/acmo/core/components/countdown-timer.js.map +1 -0
  95. package/lib/module/acmo/core/components/snap-carousel.js +81 -0
  96. package/lib/module/acmo/core/components/snap-carousel.js.map +1 -0
  97. package/lib/module/acmo/core/constants/api-endpoints.js +14 -0
  98. package/lib/module/acmo/core/constants/api-endpoints.js.map +1 -0
  99. package/lib/module/acmo/core/helpers/colors.js +15 -0
  100. package/lib/module/acmo/core/helpers/colors.js.map +1 -0
  101. package/lib/module/acmo/core/helpers/logger.js +14 -0
  102. package/lib/module/acmo/core/helpers/logger.js.map +1 -0
  103. package/lib/module/acmo/core/helpers/patches.js +7 -0
  104. package/lib/module/acmo/core/helpers/patches.js.map +1 -0
  105. package/lib/module/acmo/core/network/http-client.js +86 -0
  106. package/lib/module/acmo/core/network/http-client.js.map +1 -0
  107. package/lib/module/acmo/core/network/network-common.js +106 -0
  108. package/lib/module/acmo/core/network/network-common.js.map +1 -0
  109. package/lib/module/acmo/core/services/localization_service.js +7 -13
  110. package/lib/module/acmo/core/services/localization_service.js.map +1 -1
  111. package/lib/module/acmo/core/types/activated-campaings.d.js +2 -0
  112. package/lib/module/acmo/core/types/activated-campaings.d.js.map +1 -0
  113. package/lib/module/acmo/core/tyrads-sdk-core.js +197 -0
  114. package/lib/module/acmo/core/tyrads-sdk-core.js.map +1 -0
  115. package/lib/module/acmo/modules/inapp-notifications/components/gradient_card.js +92 -0
  116. package/lib/module/acmo/modules/inapp-notifications/components/gradient_card.js.map +1 -0
  117. package/lib/module/acmo/modules/inapp-notifications/components/modal-wrapper.js +49 -0
  118. package/lib/module/acmo/modules/inapp-notifications/components/modal-wrapper.js.map +1 -0
  119. package/lib/module/acmo/modules/inapp-notifications/controller.js +136 -0
  120. package/lib/module/acmo/modules/inapp-notifications/controller.js.map +1 -0
  121. package/lib/module/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js +176 -0
  122. package/lib/module/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.js.map +1 -0
  123. package/lib/module/acmo/modules/inapp-notifications/inapp-notification-host.js +32 -0
  124. package/lib/module/acmo/modules/inapp-notifications/inapp-notification-host.js.map +1 -0
  125. package/lib/module/acmo/modules/inapp-notifications/inapp-notification-manager.js +35 -0
  126. package/lib/module/acmo/modules/inapp-notifications/inapp-notification-manager.js.map +1 -0
  127. package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js +200 -0
  128. package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.js.map +1 -0
  129. package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js +149 -0
  130. package/lib/module/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.js.map +1 -0
  131. package/lib/module/acmo/modules/inapp-notifications/repository.js +47 -0
  132. package/lib/module/acmo/modules/inapp-notifications/repository.js.map +1 -0
  133. package/lib/module/acmo/modules/inapp-notifications/tyrads-global-host.js +32 -0
  134. package/lib/module/acmo/modules/inapp-notifications/tyrads-global-host.js.map +1 -0
  135. package/lib/module/acmo/modules/premium-widgets/components/active_offers_button.js.map +1 -0
  136. package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_card.js +1 -2
  137. package/lib/module/acmo/modules/premium-widgets/components/custom_card.js.map +1 -0
  138. package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.js +20 -11
  139. package/lib/module/acmo/modules/premium-widgets/components/custom_scroller.js.map +1 -0
  140. package/lib/module/acmo/modules/premium-widgets/components/custom_shimmer.js.map +1 -0
  141. package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/offer_card.js +12 -12
  142. package/lib/module/acmo/modules/premium-widgets/components/offer_card.js.map +1 -0
  143. package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.js +3 -3
  144. package/lib/module/acmo/modules/premium-widgets/components/offer_list_item.js.map +1 -0
  145. package/lib/module/acmo/modules/premium-widgets/components/premium_empty_widget.js.map +1 -0
  146. package/lib/module/acmo/modules/premium-widgets/components/premium_header.js.map +1 -0
  147. package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.js +1 -1
  148. package/lib/module/acmo/modules/premium-widgets/components/premium_loading.js.map +1 -0
  149. package/lib/module/acmo/modules/premium-widgets/controller.js +25 -0
  150. package/lib/module/acmo/modules/premium-widgets/controller.js.map +1 -0
  151. package/lib/module/acmo/modules/{dashboard/top_offers.js → premium-widgets/premium_offers_widget.js} +69 -32
  152. package/lib/module/acmo/modules/premium-widgets/premium_offers_widget.js.map +1 -0
  153. package/lib/module/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js +41 -0
  154. package/lib/module/acmo/modules/premium-widgets/premium_offers_widget_wrapper.js.map +1 -0
  155. package/lib/module/acmo/modules/premium-widgets/repository.js +98 -0
  156. package/lib/module/acmo/modules/premium-widgets/repository.js.map +1 -0
  157. package/lib/module/acmo/modules/push-notifications/apns-manager.js +222 -0
  158. package/lib/module/acmo/modules/push-notifications/apns-manager.js.map +1 -0
  159. package/lib/module/acmo/modules/push-notifications/fcm-manager.js +143 -0
  160. package/lib/module/acmo/modules/push-notifications/fcm-manager.js.map +1 -0
  161. package/lib/module/acmo_config.js +6 -5
  162. package/lib/module/acmo_config.js.map +1 -1
  163. package/lib/module/assets/images/alarm-clock.png +0 -0
  164. package/lib/module/assets/images/circle-x.png +0 -0
  165. package/lib/module/assets/images/coin.png +0 -0
  166. package/lib/module/index.js +16 -106
  167. package/lib/module/index.js.map +1 -1
  168. package/lib/typescript/commonjs/src/acmo/core/components/countdown-timer.d.ts +8 -0
  169. package/lib/typescript/commonjs/src/acmo/core/components/countdown-timer.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/src/acmo/core/components/snap-carousel.d.ts +26 -0
  171. package/lib/typescript/commonjs/src/acmo/core/components/snap-carousel.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/src/acmo/core/constants/api-endpoints.d.ts +12 -0
  173. package/lib/typescript/commonjs/src/acmo/core/constants/api-endpoints.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/src/acmo/core/helpers/colors.d.ts +2 -0
  175. package/lib/typescript/commonjs/src/acmo/core/helpers/colors.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/src/acmo/core/helpers/logger.d.ts +6 -0
  177. package/lib/typescript/commonjs/src/acmo/core/helpers/logger.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/src/acmo/core/network/http-client.d.ts +28 -0
  179. package/lib/typescript/commonjs/src/acmo/core/network/http-client.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/src/acmo/core/network/network-common.d.ts +13 -0
  181. package/lib/typescript/commonjs/src/acmo/core/network/network-common.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts +0 -1
  183. package/lib/typescript/commonjs/src/acmo/core/services/localization_service.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/src/acmo/core/types/external_types.d.ts +5 -0
  185. package/lib/typescript/commonjs/src/acmo/core/types/external_types.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/src/acmo/core/tyrads-sdk-core.d.ts +46 -0
  187. package/lib/typescript/commonjs/src/acmo/core/tyrads-sdk-core.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts +17 -0
  189. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts +10 -0
  191. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts.map +1 -0
  192. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/controller.d.ts +22 -0
  193. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/controller.d.ts.map +1 -0
  194. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts +6 -0
  195. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts +7 -0
  197. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts +14 -0
  199. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts.map +1 -0
  200. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts +4 -0
  201. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts +7 -0
  203. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts.map +1 -0
  204. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/repository.d.ts +8 -0
  205. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/repository.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts +6 -0
  207. package/lib/typescript/commonjs/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts.map +1 -0
  208. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/active_offers_button.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_card.d.ts.map +1 -0
  210. package/lib/typescript/{module/src/acmo/modules/dashboard → commonjs/src/acmo/modules/premium-widgets}/components/custom_scroller.d.ts +3 -0
  211. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_scroller.d.ts.map +1 -0
  212. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/custom_shimmer.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/offer_card.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/offer_list_item.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_empty_widget.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_header.d.ts.map +1 -0
  217. package/lib/typescript/{module/src/acmo/modules/dashboard → commonjs/src/acmo/modules/premium-widgets}/components/premium_loading.d.ts +1 -1
  218. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/components/premium_loading.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/controller.d.ts +14 -0
  220. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/controller.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/src/acmo/modules/{dashboard/top_offers.d.ts → premium-widgets/premium_offers_widget.d.ts} +3 -3
  222. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts +9 -0
  224. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/repository.d.ts +13 -0
  226. package/lib/typescript/commonjs/src/acmo/modules/premium-widgets/repository.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/src/acmo/modules/push-notifications/apns-manager.d.ts +40 -0
  228. package/lib/typescript/commonjs/src/acmo/modules/push-notifications/apns-manager.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/src/acmo/modules/push-notifications/fcm-manager.d.ts +32 -0
  230. package/lib/typescript/commonjs/src/acmo/modules/push-notifications/fcm-manager.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/src/acmo_config.d.ts +1 -0
  232. package/lib/typescript/commonjs/src/acmo_config.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/index.d.ts +5 -11
  234. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  235. package/lib/typescript/module/src/acmo/core/components/countdown-timer.d.ts +8 -0
  236. package/lib/typescript/module/src/acmo/core/components/countdown-timer.d.ts.map +1 -0
  237. package/lib/typescript/module/src/acmo/core/components/snap-carousel.d.ts +26 -0
  238. package/lib/typescript/module/src/acmo/core/components/snap-carousel.d.ts.map +1 -0
  239. package/lib/typescript/module/src/acmo/core/constants/api-endpoints.d.ts +12 -0
  240. package/lib/typescript/module/src/acmo/core/constants/api-endpoints.d.ts.map +1 -0
  241. package/lib/typescript/module/src/acmo/core/helpers/colors.d.ts +2 -0
  242. package/lib/typescript/module/src/acmo/core/helpers/colors.d.ts.map +1 -0
  243. package/lib/typescript/module/src/acmo/core/helpers/logger.d.ts +6 -0
  244. package/lib/typescript/module/src/acmo/core/helpers/logger.d.ts.map +1 -0
  245. package/lib/typescript/module/src/acmo/core/network/http-client.d.ts +28 -0
  246. package/lib/typescript/module/src/acmo/core/network/http-client.d.ts.map +1 -0
  247. package/lib/typescript/module/src/acmo/core/network/network-common.d.ts +13 -0
  248. package/lib/typescript/module/src/acmo/core/network/network-common.d.ts.map +1 -0
  249. package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts +0 -1
  250. package/lib/typescript/module/src/acmo/core/services/localization_service.d.ts.map +1 -1
  251. package/lib/typescript/module/src/acmo/core/types/external_types.d.ts +5 -0
  252. package/lib/typescript/module/src/acmo/core/types/external_types.d.ts.map +1 -1
  253. package/lib/typescript/module/src/acmo/core/tyrads-sdk-core.d.ts +46 -0
  254. package/lib/typescript/module/src/acmo/core/tyrads-sdk-core.d.ts.map +1 -0
  255. package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts +17 -0
  256. package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/gradient_card.d.ts.map +1 -0
  257. package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts +10 -0
  258. package/lib/typescript/module/src/acmo/modules/inapp-notifications/components/modal-wrapper.d.ts.map +1 -0
  259. package/lib/typescript/module/src/acmo/modules/inapp-notifications/controller.d.ts +22 -0
  260. package/lib/typescript/module/src/acmo/modules/inapp-notifications/controller.d.ts.map +1 -0
  261. package/lib/typescript/module/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts +6 -0
  262. package/lib/typescript/module/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.d.ts.map +1 -0
  263. package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts +7 -0
  264. package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-host.d.ts.map +1 -0
  265. package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts +14 -0
  266. package/lib/typescript/module/src/acmo/modules/inapp-notifications/inapp-notification-manager.d.ts.map +1 -0
  267. package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts +4 -0
  268. package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.d.ts.map +1 -0
  269. package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts +7 -0
  270. package/lib/typescript/module/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.d.ts.map +1 -0
  271. package/lib/typescript/module/src/acmo/modules/inapp-notifications/repository.d.ts +8 -0
  272. package/lib/typescript/module/src/acmo/modules/inapp-notifications/repository.d.ts.map +1 -0
  273. package/lib/typescript/module/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts +6 -0
  274. package/lib/typescript/module/src/acmo/modules/inapp-notifications/tyrads-global-host.d.ts.map +1 -0
  275. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/active_offers_button.d.ts.map +1 -0
  276. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_card.d.ts.map +1 -0
  277. package/lib/typescript/{commonjs/src/acmo/modules/dashboard → module/src/acmo/modules/premium-widgets}/components/custom_scroller.d.ts +3 -0
  278. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_scroller.d.ts.map +1 -0
  279. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/custom_shimmer.d.ts.map +1 -0
  280. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/offer_card.d.ts.map +1 -0
  281. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/offer_list_item.d.ts.map +1 -0
  282. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_empty_widget.d.ts.map +1 -0
  283. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_header.d.ts.map +1 -0
  284. package/lib/typescript/{commonjs/src/acmo/modules/dashboard → module/src/acmo/modules/premium-widgets}/components/premium_loading.d.ts +1 -1
  285. package/lib/typescript/module/src/acmo/modules/premium-widgets/components/premium_loading.d.ts.map +1 -0
  286. package/lib/typescript/module/src/acmo/modules/premium-widgets/controller.d.ts +14 -0
  287. package/lib/typescript/module/src/acmo/modules/premium-widgets/controller.d.ts.map +1 -0
  288. package/lib/typescript/module/src/acmo/modules/{dashboard/top_offers.d.ts → premium-widgets/premium_offers_widget.d.ts} +3 -3
  289. package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget.d.ts.map +1 -0
  290. package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts +9 -0
  291. package/lib/typescript/module/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.d.ts.map +1 -0
  292. package/lib/typescript/module/src/acmo/modules/premium-widgets/repository.d.ts +13 -0
  293. package/lib/typescript/module/src/acmo/modules/premium-widgets/repository.d.ts.map +1 -0
  294. package/lib/typescript/module/src/acmo/modules/push-notifications/apns-manager.d.ts +40 -0
  295. package/lib/typescript/module/src/acmo/modules/push-notifications/apns-manager.d.ts.map +1 -0
  296. package/lib/typescript/module/src/acmo/modules/push-notifications/fcm-manager.d.ts +32 -0
  297. package/lib/typescript/module/src/acmo/modules/push-notifications/fcm-manager.d.ts.map +1 -0
  298. package/lib/typescript/module/src/acmo_config.d.ts +1 -0
  299. package/lib/typescript/module/src/acmo_config.d.ts.map +1 -1
  300. package/lib/typescript/module/src/index.d.ts +5 -11
  301. package/lib/typescript/module/src/index.d.ts.map +1 -1
  302. package/package.json +5 -3
  303. package/readme.md +27 -14
  304. package/src/acmo/core/components/countdown-timer.tsx +52 -0
  305. package/src/acmo/core/components/snap-carousel.tsx +106 -0
  306. package/src/acmo/core/constants/api-endpoints.ts +12 -0
  307. package/src/acmo/core/helpers/colors.ts +16 -0
  308. package/src/acmo/core/helpers/logger.ts +11 -0
  309. package/src/acmo/core/helpers/patches.js +6 -0
  310. package/src/acmo/core/network/http-client.ts +89 -0
  311. package/src/acmo/core/network/network-common.ts +128 -0
  312. package/src/acmo/core/services/localization_service.ts +7 -14
  313. package/src/acmo/core/types/activated-campaings.d.ts +101 -0
  314. package/src/acmo/core/types/external_types.ts +7 -1
  315. package/src/acmo/core/types/types.d.ts +112 -76
  316. package/src/acmo/core/tyrads-sdk-core.tsx +256 -0
  317. package/src/acmo/modules/inapp-notifications/components/gradient_card.tsx +87 -0
  318. package/src/acmo/modules/inapp-notifications/components/modal-wrapper.tsx +59 -0
  319. package/src/acmo/modules/inapp-notifications/controller.ts +183 -0
  320. package/src/acmo/modules/inapp-notifications/currency-sales/currency-sales-notif.tsx +164 -0
  321. package/src/acmo/modules/inapp-notifications/inapp-notification-host.tsx +32 -0
  322. package/src/acmo/modules/inapp-notifications/inapp-notification-manager.ts +40 -0
  323. package/src/acmo/modules/inapp-notifications/limited-time-offer/components/limited-time-offer-card.tsx +188 -0
  324. package/src/acmo/modules/inapp-notifications/limited-time-offer/limited-time-notif.tsx +149 -0
  325. package/src/acmo/modules/inapp-notifications/repository.ts +49 -0
  326. package/src/acmo/modules/inapp-notifications/tyrads-global-host.tsx +25 -0
  327. package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.tsx +1 -2
  328. package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_scroller.tsx +24 -10
  329. package/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.tsx +11 -11
  330. package/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.tsx +3 -3
  331. package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_loading.tsx +1 -1
  332. package/src/acmo/modules/premium-widgets/controller.ts +39 -0
  333. package/src/acmo/modules/{dashboard/top_offers.tsx → premium-widgets/premium_offers_widget.tsx} +67 -45
  334. package/src/acmo/modules/premium-widgets/premium_offers_widget_wrapper.tsx +39 -0
  335. package/src/acmo/modules/premium-widgets/repository.ts +107 -0
  336. package/src/acmo/modules/push-notifications/apns-manager.ts +254 -0
  337. package/src/acmo/modules/push-notifications/fcm-manager.ts +162 -0
  338. package/src/acmo_config.ts +6 -5
  339. package/src/assets/images/alarm-clock.png +0 -0
  340. package/src/assets/images/circle-x.png +0 -0
  341. package/src/assets/images/coin.png +0 -0
  342. package/src/index.tsx +19 -127
  343. package/ios/Tyrads/user/AcmoUserUpdatePage.swift +0 -302
  344. package/ios/Tyrads/user/AcmoUsersUpdateController.swift +0 -26
  345. package/ios/Tyrads/user/Repository.swift +0 -89
  346. package/lib/commonjs/acmo/core/helpers/native_methods.js +0 -48
  347. package/lib/commonjs/acmo/core/helpers/native_methods.js.map +0 -1
  348. package/lib/commonjs/acmo/modules/dashboard/components/active_offers_button.js.map +0 -1
  349. package/lib/commonjs/acmo/modules/dashboard/components/custom_card.js.map +0 -1
  350. package/lib/commonjs/acmo/modules/dashboard/components/custom_scroller.js.map +0 -1
  351. package/lib/commonjs/acmo/modules/dashboard/components/custom_shimmer.js.map +0 -1
  352. package/lib/commonjs/acmo/modules/dashboard/components/offer_card.js.map +0 -1
  353. package/lib/commonjs/acmo/modules/dashboard/components/offer_list_item.js.map +0 -1
  354. package/lib/commonjs/acmo/modules/dashboard/components/premium_empty_widget.js.map +0 -1
  355. package/lib/commonjs/acmo/modules/dashboard/components/premium_header.js.map +0 -1
  356. package/lib/commonjs/acmo/modules/dashboard/components/premium_loading.js.map +0 -1
  357. package/lib/commonjs/acmo/modules/dashboard/repository.js +0 -147
  358. package/lib/commonjs/acmo/modules/dashboard/repository.js.map +0 -1
  359. package/lib/commonjs/acmo/modules/dashboard/top_offers.js.map +0 -1
  360. package/lib/module/acmo/core/helpers/native_methods.js +0 -44
  361. package/lib/module/acmo/core/helpers/native_methods.js.map +0 -1
  362. package/lib/module/acmo/modules/dashboard/components/active_offers_button.js.map +0 -1
  363. package/lib/module/acmo/modules/dashboard/components/custom_card.js.map +0 -1
  364. package/lib/module/acmo/modules/dashboard/components/custom_scroller.js.map +0 -1
  365. package/lib/module/acmo/modules/dashboard/components/custom_shimmer.js.map +0 -1
  366. package/lib/module/acmo/modules/dashboard/components/offer_card.js.map +0 -1
  367. package/lib/module/acmo/modules/dashboard/components/offer_list_item.js.map +0 -1
  368. package/lib/module/acmo/modules/dashboard/components/premium_empty_widget.js.map +0 -1
  369. package/lib/module/acmo/modules/dashboard/components/premium_header.js.map +0 -1
  370. package/lib/module/acmo/modules/dashboard/components/premium_loading.js.map +0 -1
  371. package/lib/module/acmo/modules/dashboard/repository.js +0 -140
  372. package/lib/module/acmo/modules/dashboard/repository.js.map +0 -1
  373. package/lib/module/acmo/modules/dashboard/top_offers.js.map +0 -1
  374. package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts +0 -10
  375. package/lib/typescript/commonjs/src/acmo/core/helpers/native_methods.d.ts.map +0 -1
  376. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +0 -1
  377. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_card.d.ts.map +0 -1
  378. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +0 -1
  379. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +0 -1
  380. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_card.d.ts.map +0 -1
  381. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +0 -1
  382. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +0 -1
  383. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_header.d.ts.map +0 -1
  384. package/lib/typescript/commonjs/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +0 -1
  385. package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts +0 -3
  386. package/lib/typescript/commonjs/src/acmo/modules/dashboard/repository.d.ts.map +0 -1
  387. package/lib/typescript/commonjs/src/acmo/modules/dashboard/top_offers.d.ts.map +0 -1
  388. package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts +0 -10
  389. package/lib/typescript/module/src/acmo/core/helpers/native_methods.d.ts.map +0 -1
  390. package/lib/typescript/module/src/acmo/modules/dashboard/components/active_offers_button.d.ts.map +0 -1
  391. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_card.d.ts.map +0 -1
  392. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_scroller.d.ts.map +0 -1
  393. package/lib/typescript/module/src/acmo/modules/dashboard/components/custom_shimmer.d.ts.map +0 -1
  394. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_card.d.ts.map +0 -1
  395. package/lib/typescript/module/src/acmo/modules/dashboard/components/offer_list_item.d.ts.map +0 -1
  396. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_empty_widget.d.ts.map +0 -1
  397. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_header.d.ts.map +0 -1
  398. package/lib/typescript/module/src/acmo/modules/dashboard/components/premium_loading.d.ts.map +0 -1
  399. package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts +0 -3
  400. package/lib/typescript/module/src/acmo/modules/dashboard/repository.d.ts.map +0 -1
  401. package/lib/typescript/module/src/acmo/modules/dashboard/top_offers.d.ts.map +0 -1
  402. package/src/acmo/core/helpers/native_methods.ts +0 -59
  403. package/src/acmo/modules/dashboard/repository.ts +0 -170
  404. /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.js +0 -0
  405. /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.js +0 -0
  406. /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.js +0 -0
  407. /package/lib/commonjs/acmo/modules/{dashboard → premium-widgets}/components/premium_header.js +0 -0
  408. /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.js +0 -0
  409. /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.js +0 -0
  410. /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.js +0 -0
  411. /package/lib/module/acmo/modules/{dashboard → premium-widgets}/components/premium_header.js +0 -0
  412. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.d.ts +0 -0
  413. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.d.ts +0 -0
  414. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.d.ts +0 -0
  415. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.d.ts +0 -0
  416. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.d.ts +0 -0
  417. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.d.ts +0 -0
  418. /package/lib/typescript/commonjs/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.d.ts +0 -0
  419. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.d.ts +0 -0
  420. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/custom_card.d.ts +0 -0
  421. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.d.ts +0 -0
  422. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/offer_card.d.ts +0 -0
  423. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/offer_list_item.d.ts +0 -0
  424. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.d.ts +0 -0
  425. /package/lib/typescript/module/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.d.ts +0 -0
  426. /package/src/acmo/modules/{dashboard → premium-widgets}/components/active_offers_button.tsx +0 -0
  427. /package/src/acmo/modules/{dashboard → premium-widgets}/components/custom_shimmer.tsx +0 -0
  428. /package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_empty_widget.tsx +0 -0
  429. /package/src/acmo/modules/{dashboard → premium-widgets}/components/premium_header.tsx +0 -0
@@ -5,7 +5,7 @@ class AcmoWebViewController: UIViewController, WKNavigationDelegate, WKScriptMes
5
5
 
6
6
  var webView: WKWebView!
7
7
  var initialURL: URL
8
- private var hasLoadedWithSkipParameter = false
8
+ public var onDismiss: (() -> Void)?
9
9
 
10
10
  private let internalDomains: [String] = ["sdk.tyrads.com", "acmo.in"]
11
11
 
@@ -53,23 +53,16 @@ class AcmoWebViewController: UIViewController, WKNavigationDelegate, WKScriptMes
53
53
  loadURL()
54
54
  log("WebView loaded URL: \(initialURL.absoluteString)")
55
55
  }
56
- private func loadURL() {
57
- var components = URLComponents(url: initialURL, resolvingAgainstBaseURL: false)
58
- let skipUserUpdate = Tyrads.instance.getSkipUserUpdate()
59
- let skipValue = skipUserUpdate ? "true" : "false"
60
-
61
- components?.queryItems?.removeAll { $0.name == "skipUserInfo" }
62
- components?.queryItems?.append(URLQueryItem(name: "skipUserInfo", value: skipValue))
63
-
64
- if let updatedURL = components?.url {
65
- log("Loading URL with skipUserInfo=\(skipValue): \(updatedURL.absoluteString)")
66
- let request = URLRequest(url: updatedURL)
67
- webView.load(request)
68
- hasLoadedWithSkipParameter = true
69
- } else {
70
- log("Failed to create updated URL, loading original")
71
- webView.load(URLRequest(url: initialURL))
56
+
57
+ override func viewDidDisappear(_ animated: Bool) {
58
+ super.viewDidDisappear(animated)
59
+ log("viewDidDisappear called: WebView controller removed from screen.")
60
+ self.onDismiss?()
72
61
  }
62
+ private func loadURL() {
63
+ log("Loading URL: \(initialURL.absoluteString)")
64
+ let request = URLRequest(url: initialURL)
65
+ webView.load(request)
73
66
  }
74
67
 
75
68
  public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
@@ -11,4 +11,6 @@ public struct TyradsUserInfo: Codable {
11
11
  var email: String?
12
12
  var phoneNumber: String?
13
13
  var userGroup: String?
14
+ var age: Int?
15
+ var gender: Int?
14
16
  }
@@ -17,6 +17,7 @@ struct AcmoKeyNames {
17
17
  static let PLAY_INTEGRITY_TOKEN = "\(PREFIX)play_integrity_token"
18
18
  static let USERNAME = "\(PREFIX)username"
19
19
  static let FCM_TOKEN = "\(PREFIX)fcm_token"
20
+ static let APNS_TOKEN = "\(PREFIX)apns_token"
20
21
  static let USER_DATA = "\(PREFIX)user_data"
21
22
  static let ADVERTISING_ID = "\(PREFIX)advertising_id"
22
23
  static let TRACKED_CAMPAIGNS_FOR_USER_ID = "\(PREFIX)tracked_campaigns_for_user_id_"
@@ -6,6 +6,8 @@
6
6
  //
7
7
  import UIKit
8
8
  import Foundation
9
+ import Network
10
+ import CoreTelephony
9
11
 
10
12
  func getDeviceDetails() -> [String: Any] {
11
13
  var fd = [String: Any]()
@@ -14,7 +16,7 @@ func getDeviceDetails() -> [String: Any] {
14
16
  let bundle = Bundle.main
15
17
  let locale = Locale.current
16
18
 
17
- // Device basic info
19
+ // device basic info
18
20
  fd["deviceId"] = device.identifierForVendor?.uuidString ?? "Unknown"
19
21
  fd["device"] = device.model.lowercased().contains("ipad") ? "iPad" : "iPhone"
20
22
  fd["deviceName"] = device.name
@@ -23,6 +25,7 @@ func getDeviceDetails() -> [String: Any] {
23
25
  fd["baseOs"] = device.systemName
24
26
  fd["releaseVersion"] = device.systemVersion
25
27
  fd["modelName"] = getModelName()
28
+ fd["hardware"] = deviceIdentifier()
26
29
 
27
30
  fd["product"] = "Darwin"
28
31
  fd["platform"] = "iOS"
@@ -30,7 +33,7 @@ func getDeviceDetails() -> [String: Any] {
30
33
  fd["sdkVersion"] = AcmoConfig.SDK_VERSION
31
34
  fd["sdkPlatform"] = AcmoConfig.SDK_PLATFORM
32
35
 
33
- // App info
36
+ // app info
34
37
  fd["version"] = bundle.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown"
35
38
  fd["build"] = bundle.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown"
36
39
  fd["package"] = bundle.bundleIdentifier ?? "Unknown"
@@ -42,13 +45,130 @@ func getDeviceDetails() -> [String: Any] {
42
45
  fd["rooted"] = isJailBroken()
43
46
  fd["virtual"] = isRunningOnSimulator()
44
47
 
48
+ // storage info
49
+ let (totalSpace, freeSpace) = getDiskSpace()
50
+ fd["totalMemory"] = Double(round(100 * (Double(totalSpace) / 1_000_000_000)) / 100)
51
+
52
+ // network info
53
+ fd["connectionType"] = getNetworkType()
54
+
45
55
  return fd
46
56
  }
47
57
 
58
+ func getNetworkType() -> String {
59
+ let monitor = NWPathMonitor()
60
+ let semaphore = DispatchSemaphore(value: 0)
61
+ var networkType = "No Connection"
62
+
63
+ monitor.pathUpdateHandler = { path in
64
+ if path.status == .satisfied {
65
+ if path.usesInterfaceType(.wifi) {
66
+ networkType = "WiFi"
67
+ } else if path.usesInterfaceType(.cellular) {
68
+ networkType = getCellularType()
69
+ } else if path.usesInterfaceType(.wiredEthernet) {
70
+ networkType = "Ethernet"
71
+ } else {
72
+ networkType = "Connected"
73
+ }
74
+ } else {
75
+ networkType = "No Connection"
76
+ }
77
+ semaphore.signal()
78
+ }
79
+
80
+ let queue = DispatchQueue(label: "NetworkMonitor")
81
+ monitor.start(queue: queue)
82
+
83
+ _ = semaphore.wait(timeout: .now() + 0.1)
84
+ monitor.cancel()
85
+
86
+ return networkType
87
+ }
88
+
89
+ func getUptimeMetrics() -> [String: Any] {
90
+ let uptime = ProcessInfo.processInfo.systemUptime
91
+ let bootTimeDate = Date(timeIntervalSinceNow: -uptime)
92
+
93
+ let formatter = DateFormatter()
94
+ formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
95
+
96
+ return [
97
+ "device_uptime_hours": String(format: "%.2f", uptime / 3600),
98
+ "device_boot_time": formatter.string(from: bootTimeDate)
99
+ ]
100
+ }
101
+
102
+ func getCellularType() -> String {
103
+ let networkInfo = CTTelephonyNetworkInfo()
104
+ var carrierType = "Cellular"
105
+
106
+ if #available(iOS 14.1, *) {
107
+ if let radioTechnologies = networkInfo.serviceCurrentRadioAccessTechnology {
108
+ for (_, technology) in radioTechnologies {
109
+ switch technology {
110
+ case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMA1x:
111
+ carrierType = "2G"
112
+ case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORev0, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD:
113
+ carrierType = "3G"
114
+ case CTRadioAccessTechnologyLTE:
115
+ carrierType = "4G"
116
+ case CTRadioAccessTechnologyNRNSA, CTRadioAccessTechnologyNR:
117
+ carrierType = "5G"
118
+ default:
119
+ carrierType = "Cellular"
120
+ }
121
+ }
122
+ }
123
+ } else {
124
+ let technology = networkInfo.currentRadioAccessTechnology
125
+ switch technology {
126
+ case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMA1x:
127
+ carrierType = "2G"
128
+ case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORev0, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD:
129
+ carrierType = "3G"
130
+ case CTRadioAccessTechnologyLTE:
131
+ carrierType = "4G"
132
+ default:
133
+ carrierType = "Cellular"
134
+ }
135
+ }
136
+ return carrierType
137
+ }
138
+
139
+ func isVpnActive() -> Bool {
140
+ if let settings = CFNetworkCopySystemProxySettings()?.takeRetainedValue() as? [AnyHashable: Any],
141
+ let scopes = settings["__SCOPES__"] as? [AnyHashable: Any] {
142
+ for (key, _) in scopes {
143
+ if let keyString = key as? String,
144
+ (keyString.contains("tap") ||
145
+ keyString.contains("tun") ||
146
+ keyString.contains("ppp") ||
147
+ keyString.contains("ipsec") ||
148
+ keyString.contains("utun")) {
149
+ return true
150
+ }
151
+ }
152
+ }
153
+ return false
154
+ }
155
+
48
156
  func isRunningOnSimulator() -> Bool {
49
157
  return ProcessInfo().environment["SIMULATOR_DEVICE_NAME"] != nil
50
158
  }
51
159
 
160
+ func getDiskSpace() -> (total: Int64, free: Int64) {
161
+ var total: Int64 = 0
162
+ var free: Int64 = 0
163
+ do {
164
+ let attrs = try FileManager.default.attributesOfFileSystem(forPath: NSHomeDirectory())
165
+ total = attrs[.systemSize] as? Int64 ?? 0
166
+ free = attrs[.systemFreeSize] as? Int64 ?? 0
167
+ } catch {
168
+ }
169
+ return (total, free)
170
+ }
171
+
52
172
  func isJailBroken() -> Bool {
53
173
  #if targetEnvironment(simulator)
54
174
  return false
@@ -0,0 +1,37 @@
1
+ //
2
+ // APNsAppDelegateProxy.swift
3
+ // Pods
4
+ //
5
+ // Created by Acmo Network on 13/12/25.
6
+ //
7
+
8
+ import UIKit
9
+ import UserNotifications
10
+
11
+ @objc public final class APNsAppDelegateProxy: NSObject {
12
+
13
+ /// Must be called from AppDelegate.didFinishLaunching
14
+ @objc public static func configure() {
15
+ UNUserNotificationCenter.current().delegate =
16
+ APNsNotificationReceiver.shared
17
+ }
18
+
19
+ /// Forward APNs token from AppDelegate
20
+ @objc public static func didRegisterForRemoteNotifications(
21
+ _ deviceToken: Data
22
+ ) {
23
+ APNsNotificationManager.shared.onTokenReceived(deviceToken)
24
+ }
25
+
26
+ /// Forward silent / background push from AppDelegate
27
+ @objc public static func didReceiveRemoteNotification(
28
+ _ userInfo: [AnyHashable: Any],
29
+ completionHandler: @escaping (UIBackgroundFetchResult) -> Void
30
+ ) {
31
+ APNsNotificationReceiver.shared
32
+ .handleSilentNotification(userInfo: userInfo)
33
+
34
+ completionHandler(.newData)
35
+ }
36
+ }
37
+
@@ -0,0 +1,14 @@
1
+ //
2
+ // APNsNotificationListener.swift
3
+ // Pods
4
+ //
5
+ // Created by Basharat Mehdi on 13/12/25.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ @objc public protocol APNsNotificationListener {
11
+ func onNotificationReceived(userInfo: [AnyHashable: Any])
12
+ func onNotificationClicked(identifier: String, userInfo: [AnyHashable: Any])
13
+ func onNotificationDismissed(identifier: String)
14
+ }
@@ -0,0 +1,68 @@
1
+ //
2
+ // APNsNotificationManager.swift
3
+ // Pods
4
+ //
5
+ // Created by Basharat Mehdi on 13/12/25.
6
+ //
7
+
8
+ import UIKit
9
+ import UserNotifications
10
+
11
+ @objc(APNsNotificationManager)
12
+ public final class APNsNotificationManager: NSObject {
13
+
14
+ @objc public static let shared = APNsNotificationManager()
15
+ private override init() { super.init() }
16
+
17
+ private var token: String?
18
+ private var tokenCallbacks: [(String) -> Void] = []
19
+
20
+ private let storageKey: String = AcmoKeyNames.APNS_TOKEN
21
+
22
+ public func requestPermission(completion: @escaping (Bool) -> Void) {
23
+ UNUserNotificationCenter.current()
24
+ .requestAuthorization(options: [.alert, .sound, .badge]) { granted, _ in
25
+ DispatchQueue.main.async {
26
+ if granted {
27
+ UIApplication.shared.registerForRemoteNotifications()
28
+ }
29
+ completion(granted)
30
+ }
31
+ }
32
+ }
33
+
34
+ public func hasPermission(completion: @escaping (Bool) -> Void) {
35
+ UNUserNotificationCenter.current().getNotificationSettings {
36
+ completion($0.authorizationStatus == .authorized)
37
+ }
38
+ }
39
+
40
+ @objc public func onTokenReceived(_ deviceToken: Data) {
41
+ let hex = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
42
+ token = hex
43
+ UserDefaults.standard.set(hex, forKey: storageKey)
44
+
45
+ tokenCallbacks.forEach { $0(hex) }
46
+ tokenCallbacks.removeAll()
47
+ }
48
+
49
+ public func getToken(completion: @escaping (String?) -> Void) {
50
+ if let token = token {
51
+ completion(token)
52
+ return
53
+ }
54
+
55
+ if let stored = UserDefaults.standard.string(forKey: storageKey) {
56
+ token = stored
57
+ completion(stored)
58
+ return
59
+ }
60
+
61
+ tokenCallbacks.append { completion($0) }
62
+ UIApplication.shared.registerForRemoteNotifications()
63
+ }
64
+
65
+ public func clearAllNotifications() {
66
+ APNsNotificationReceiver.shared.clearAll()
67
+ }
68
+ }
@@ -0,0 +1,77 @@
1
+ //
2
+ // APNsNotificationReceiver.swift
3
+ // Pods
4
+ //
5
+ // Created by Basharat Mehdi on 13/12/25.
6
+ //
7
+
8
+ import UserNotifications
9
+ import UIKit
10
+
11
+ @objc(APNsNotificationReceiver)
12
+ public final class APNsNotificationReceiver: NSObject, UNUserNotificationCenterDelegate {
13
+
14
+ @objc public static let shared = APNsNotificationReceiver()
15
+ private var listener: APNsNotificationListener?
16
+
17
+ private override init() {
18
+ super.init()
19
+ }
20
+
21
+ public func setListener(_ listener: APNsNotificationListener?) {
22
+ self.listener = listener
23
+ }
24
+
25
+ // Foreground
26
+ public func userNotificationCenter(
27
+ _ center: UNUserNotificationCenter,
28
+ willPresent notification: UNNotification,
29
+ withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
30
+ ) {
31
+ listener?.onNotificationReceived(
32
+ userInfo: notification.request.content.userInfo
33
+ )
34
+
35
+ if #available(iOS 14.0, *) {
36
+ completionHandler([.banner, .sound, .badge])
37
+ } else {
38
+ completionHandler([.alert, .sound, .badge])
39
+ }
40
+ }
41
+
42
+ // Click / Dismiss
43
+ public func userNotificationCenter(
44
+ _ center: UNUserNotificationCenter,
45
+ didReceive response: UNNotificationResponse,
46
+ withCompletionHandler completionHandler: @escaping () -> Void
47
+ ) {
48
+ let id = response.notification.request.identifier
49
+ let info = response.notification.request.content.userInfo
50
+
51
+ switch response.actionIdentifier {
52
+ case UNNotificationDismissActionIdentifier:
53
+ listener?.onNotificationDismissed(identifier: id)
54
+ case UNNotificationDefaultActionIdentifier:
55
+ listener?.onNotificationClicked(identifier: id, userInfo: info)
56
+ default:
57
+ break
58
+ }
59
+
60
+ completionHandler()
61
+ }
62
+
63
+ @objc public func handleSilentNotification(userInfo: [AnyHashable: Any]) {
64
+ listener?.onNotificationReceived(userInfo: userInfo)
65
+ }
66
+
67
+ public func clearAll() {
68
+ UNUserNotificationCenter.current().removeAllDeliveredNotifications()
69
+ UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
70
+ UIApplication.shared.applicationIconBadgeNumber = 0
71
+ }
72
+
73
+ public func clear(identifier: String) {
74
+ UNUserNotificationCenter.current()
75
+ .removeDeliveredNotifications(withIdentifiers: [identifier])
76
+ }
77
+ }
@@ -0,0 +1,179 @@
1
+ //
2
+ // TyradsAPNsSwizzler.mm
3
+ // Pods
4
+ //
5
+ // Created by Basharat Mehdi on 17/01/26.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+ #import <UIKit/UIKit.h>
10
+ #import <UserNotifications/UserNotifications.h>
11
+ #import <objc/runtime.h>
12
+
13
+ @interface TyradsAPNsSwizzler : NSObject
14
+ @end
15
+
16
+ @implementation TyradsAPNsSwizzler
17
+
18
+ + (void)load {
19
+ static dispatch_once_t onceToken;
20
+ dispatch_once(&onceToken, ^{
21
+ [[NSNotificationCenter defaultCenter]
22
+ addObserver:self
23
+ selector:@selector(handleAppDidFinishLaunching:)
24
+ name:UIApplicationDidFinishLaunchingNotification
25
+ object:nil];
26
+ });
27
+ }
28
+
29
+ + (void)handleAppDidFinishLaunching:(NSNotification *)notification {
30
+ [self swizzleAppDelegate];
31
+
32
+ dispatch_async(dispatch_get_main_queue(), ^{
33
+ UNUserNotificationCenter *center =
34
+ [UNUserNotificationCenter currentNotificationCenter];
35
+ if (center.delegate == nil) {
36
+ Class receiverClass = NSClassFromString(@"APNsNotificationReceiver");
37
+ if (receiverClass) {
38
+ #pragma clang diagnostic push
39
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
40
+ id receiver =
41
+ [receiverClass performSelector:NSSelectorFromString(@"shared")];
42
+ if (receiver) {
43
+ center.delegate = (id<UNUserNotificationCenterDelegate>)receiver;
44
+ NSLog(@"TyradsSDK: [Swizzler] Automatically set "
45
+ @"UNUserNotificationCenter delegate");
46
+ }
47
+ #pragma clang diagnostic pop
48
+ } else {
49
+ NSLog(@"TyradsSDK: [Swizzler] Could not find APNsNotificationReceiver "
50
+ @"class");
51
+ }
52
+ }
53
+ });
54
+ }
55
+
56
+ + (void)swizzleAppDelegate {
57
+ id<UIApplicationDelegate> delegate =
58
+ [UIApplication sharedApplication].delegate;
59
+ if (!delegate) {
60
+ NSLog(@"TyradsSDK: [Swizzler] No AppDelegate found to swizzle");
61
+ return;
62
+ }
63
+
64
+ Class appDelegateClass = [delegate class];
65
+ NSLog(@"TyradsSDK: [Swizzler] Swizzling AppDelegate class: %@",
66
+ NSStringFromClass(appDelegateClass));
67
+
68
+ [self swizzleInstanceMethod:appDelegateClass
69
+ original:@selector
70
+ (application:
71
+ didRegisterForRemoteNotificationsWithDeviceToken:)
72
+ swizzled:@selector
73
+ (tyrads_application:
74
+ didRegisterForRemoteNotificationsWithDeviceToken:)];
75
+
76
+ [self swizzleInstanceMethod:appDelegateClass
77
+ original:@selector
78
+ (application:
79
+ didReceiveRemoteNotification:fetchCompletionHandler:)
80
+ swizzled:@selector
81
+ (tyrads_application:
82
+ didReceiveRemoteNotification:fetchCompletionHandler:)];
83
+ }
84
+
85
+ + (void)swizzleInstanceMethod:(Class)cls
86
+ original:(SEL)originalSelector
87
+ swizzled:(SEL)swizzledSelector {
88
+ Method originalMethod = class_getInstanceMethod(cls, originalSelector);
89
+ Method swizzledMethod =
90
+ class_getInstanceMethod([self class], swizzledSelector);
91
+
92
+ if (!swizzledMethod) {
93
+ return;
94
+ }
95
+
96
+ if (!originalMethod) {
97
+ IMP stub;
98
+ if (originalSelector == @selector
99
+ (application:didReceiveRemoteNotification:fetchCompletionHandler:)) {
100
+ stub = imp_implementationWithBlock(
101
+ ^(id _self, UIApplication *app, NSDictionary *info,
102
+ void (^completion)(UIBackgroundFetchResult)) {
103
+ if (completion)
104
+ completion(UIBackgroundFetchResultNewData);
105
+ });
106
+ } else {
107
+ stub = imp_implementationWithBlock(^(id _self){
108
+ });
109
+ }
110
+
111
+ class_addMethod(cls, originalSelector, stub,
112
+ method_getTypeEncoding(swizzledMethod));
113
+ originalMethod = class_getInstanceMethod(cls, originalSelector);
114
+ }
115
+
116
+ method_exchangeImplementations(originalMethod, swizzledMethod);
117
+ }
118
+
119
+ - (void)tyrads_application:(UIApplication *)application
120
+ didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
121
+ NSLog(@"TyradsSDK: [Swizzler] "
122
+ @"didRegisterForRemoteNotificationsWithDeviceToken");
123
+
124
+ Class managerClass = NSClassFromString(@"APNsNotificationManager");
125
+ if (managerClass) {
126
+ #pragma clang diagnostic push
127
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
128
+ id manager = [managerClass performSelector:NSSelectorFromString(@"shared")];
129
+ if (manager && [manager respondsToSelector:NSSelectorFromString(
130
+ @"onTokenReceived:")]) {
131
+ [manager performSelector:NSSelectorFromString(@"onTokenReceived:")
132
+ withObject:deviceToken];
133
+ }
134
+ #pragma clang diagnostic pop
135
+ }
136
+
137
+ if ([self respondsToSelector:@selector
138
+ (tyrads_application:
139
+ didRegisterForRemoteNotificationsWithDeviceToken:)]) {
140
+ [self tyrads_application:application
141
+ didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
142
+ }
143
+ }
144
+
145
+ - (void)tyrads_application:(UIApplication *)application
146
+ didReceiveRemoteNotification:(NSDictionary *)userInfo
147
+ fetchCompletionHandler:
148
+ (void (^)(UIBackgroundFetchResult))completionHandler {
149
+ NSLog(@"TyradsSDK: [Swizzler] didReceiveRemoteNotification");
150
+
151
+ Class receiverClass = NSClassFromString(@"APNsNotificationReceiver");
152
+ if (receiverClass) {
153
+ #pragma clang diagnostic push
154
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
155
+ id receiver =
156
+ [receiverClass performSelector:NSSelectorFromString(@"shared")];
157
+ if (receiver &&
158
+ [receiver
159
+ respondsToSelector:NSSelectorFromString(
160
+ @"handleSilentNotificationWithUserInfo:")]) {
161
+ [receiver performSelector:NSSelectorFromString(
162
+ @"handleSilentNotificationWithUserInfo:")
163
+ withObject:userInfo];
164
+ }
165
+ #pragma clang diagnostic pop
166
+ }
167
+
168
+ if ([self respondsToSelector:@selector
169
+ (tyrads_application:
170
+ didReceiveRemoteNotification:fetchCompletionHandler:)]) {
171
+ [self tyrads_application:application
172
+ didReceiveRemoteNotification:userInfo
173
+ fetchCompletionHandler:completionHandler];
174
+ } else if (completionHandler) {
175
+ completionHandler(UIBackgroundFetchResultNewData);
176
+ }
177
+ }
178
+
179
+ @end
@@ -1,2 +1,5 @@
1
+ #import <UIKit/UIKit.h>
2
+ #import <UserNotifications/UserNotifications.h>
3
+
1
4
  #import <React/RCTBridgeModule.h>
2
5
  #import <React/RCTViewManager.h>
package/ios/TyradsSdk.mm CHANGED
@@ -1,6 +1,6 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
 
3
- @interface RCT_EXTERN_MODULE(TyradsSdk, NSObject)
3
+ @interface RCT_EXTERN_MODULE (TyradsSdk, NSObject)
4
4
 
5
5
  RCT_EXTERN_METHOD(startObserving)
6
6
  RCT_EXTERN_METHOD(stopObserving)
@@ -8,6 +8,7 @@ RCT_EXTERN_METHOD(init:(NSString *)apiKey
8
8
  secretKey:(NSString *)secretKey
9
9
  encKey:(NSString * _Nullable)encKey
10
10
  engagementId:(NSString * _Nullable)engagementId
11
+ placementId:(NSString * _Nullable)placementId
11
12
  resolver:(RCTPromiseResolveBlock)resolve
12
13
  rejecter:(RCTPromiseRejectBlock)reject)
13
14
  // RCT_EXTERN_METHOD(loginUser:(NSString *)userId)
@@ -33,6 +34,16 @@ RCT_EXTERN_METHOD(isPrivacyAccepted:(RCTPromiseResolveBlock)resolve
33
34
  rejecter:(RCTPromiseRejectBlock)reject)
34
35
  RCT_EXTERN_METHOD(checkOnboardingProcess:(RCTPromiseResolveBlock)resolve
35
36
  rejecter:(RCTPromiseRejectBlock)reject)
37
+ RCT_EXTERN_METHOD(preloadOffers : (NSString *_Nullable)route
38
+ resolver : (RCTPromiseResolveBlock)resolve
39
+ rejecter : (RCTPromiseRejectBlock)reject)
36
40
 
41
+ RCT_EXTERN_METHOD(pushRequestPermission:(RCTPromiseResolveBlock)resolve
42
+ rejecter:(RCTPromiseRejectBlock)reject)
43
+ RCT_EXTERN_METHOD(pushGetApnsToken:(RCTPromiseResolveBlock)resolve
44
+ rejecter:(RCTPromiseRejectBlock)reject)
45
+
46
+ RCT_EXTERN_METHOD(showInAppNotification)
47
+ RCT_EXTERN_METHOD(dismissInAppNotification)
37
48
 
38
49
  @end