@qonversion/react-native-sdk 10.0.0-RC1

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 (290) hide show
  1. package/README.md +129 -0
  2. package/android/build.gradle +92 -0
  3. package/android/gradle.properties +6 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/com/qonversion/reactnativesdk/EntitiesConverter.kt +135 -0
  6. package/android/src/main/java/com/qonversion/reactnativesdk/NoCodesModule.kt +76 -0
  7. package/android/src/main/java/com/qonversion/reactnativesdk/QonversionModule.kt +278 -0
  8. package/android/src/main/java/com/qonversion/reactnativesdk/QonversionPackage.kt +43 -0
  9. package/android/src/main/java/com/qonversion/reactnativesdk/Utils.kt +32 -0
  10. package/ios/RNNoCodes.h +5 -0
  11. package/ios/RNNoCodes.mm +61 -0
  12. package/ios/RNNoCodesImpl.swift +69 -0
  13. package/ios/RNQonversion.h +5 -0
  14. package/ios/RNQonversion.mm +189 -0
  15. package/ios/RNQonversionImpl.swift +250 -0
  16. package/ios/qonversion-react-native-sdk-Bridging-Header.h +6 -0
  17. package/lib/module/NoCodes.js +32 -0
  18. package/lib/module/NoCodes.js.map +1 -0
  19. package/lib/module/NoCodesApi.js +2 -0
  20. package/lib/module/NoCodesApi.js.map +1 -0
  21. package/lib/module/NoCodesConfig.js +10 -0
  22. package/lib/module/NoCodesConfig.js.map +1 -0
  23. package/lib/module/NoCodesConfigBuilder.js +35 -0
  24. package/lib/module/NoCodesConfigBuilder.js.map +1 -0
  25. package/lib/module/Qonversion.js +35 -0
  26. package/lib/module/Qonversion.js.map +1 -0
  27. package/lib/module/QonversionApi.js +4 -0
  28. package/lib/module/QonversionApi.js.map +1 -0
  29. package/lib/module/QonversionConfig.js +16 -0
  30. package/lib/module/QonversionConfig.js.map +1 -0
  31. package/lib/module/QonversionConfigBuilder.js +90 -0
  32. package/lib/module/QonversionConfigBuilder.js.map +1 -0
  33. package/lib/module/dto/Entitlement.js +24 -0
  34. package/lib/module/dto/Entitlement.js.map +1 -0
  35. package/lib/module/dto/EntitlementsUpdateListener.js +4 -0
  36. package/lib/module/dto/EntitlementsUpdateListener.js.map +1 -0
  37. package/lib/module/dto/Experiment.js +11 -0
  38. package/lib/module/dto/Experiment.js.map +1 -0
  39. package/lib/module/dto/ExperimentGroup.js +11 -0
  40. package/lib/module/dto/ExperimentGroup.js.map +1 -0
  41. package/lib/module/dto/IntroEligibility.js +9 -0
  42. package/lib/module/dto/IntroEligibility.js.map +1 -0
  43. package/lib/module/dto/NoCodesAction.js +11 -0
  44. package/lib/module/dto/NoCodesAction.js.map +1 -0
  45. package/lib/module/dto/NoCodesError.js +13 -0
  46. package/lib/module/dto/NoCodesError.js.map +1 -0
  47. package/lib/module/dto/NoCodesListener.js +4 -0
  48. package/lib/module/dto/NoCodesListener.js.map +1 -0
  49. package/lib/module/dto/Offering.js +14 -0
  50. package/lib/module/dto/Offering.js.map +1 -0
  51. package/lib/module/dto/Offerings.js +13 -0
  52. package/lib/module/dto/Offerings.js.map +1 -0
  53. package/lib/module/dto/Product.js +114 -0
  54. package/lib/module/dto/Product.js.map +1 -0
  55. package/lib/module/dto/PromoPurchasesListener.js +4 -0
  56. package/lib/module/dto/PromoPurchasesListener.js.map +1 -0
  57. package/lib/module/dto/PromotionalOffer.js +10 -0
  58. package/lib/module/dto/PromotionalOffer.js.map +1 -0
  59. package/lib/module/dto/PurchaseModel.js +26 -0
  60. package/lib/module/dto/PurchaseModel.js.map +1 -0
  61. package/lib/module/dto/PurchaseOptions.js +15 -0
  62. package/lib/module/dto/PurchaseOptions.js.map +1 -0
  63. package/lib/module/dto/PurchaseOptionsBuilder.js +117 -0
  64. package/lib/module/dto/PurchaseOptionsBuilder.js.map +1 -0
  65. package/lib/module/dto/PurchaseUpdateModel.js +32 -0
  66. package/lib/module/dto/PurchaseUpdateModel.js.map +1 -0
  67. package/lib/module/dto/QonversionError.js +15 -0
  68. package/lib/module/dto/QonversionError.js.map +1 -0
  69. package/lib/module/dto/RemoteConfig.js +11 -0
  70. package/lib/module/dto/RemoteConfig.js.map +1 -0
  71. package/lib/module/dto/RemoteConfigList.js +18 -0
  72. package/lib/module/dto/RemoteConfigList.js.map +1 -0
  73. package/lib/module/dto/RemoteConfigurationSource.js +13 -0
  74. package/lib/module/dto/RemoteConfigurationSource.js.map +1 -0
  75. package/lib/module/dto/ScreenPresentationConfig.js +22 -0
  76. package/lib/module/dto/ScreenPresentationConfig.js.map +1 -0
  77. package/lib/module/dto/SubscriptionPeriod.js +26 -0
  78. package/lib/module/dto/SubscriptionPeriod.js.map +1 -0
  79. package/lib/module/dto/Transaction.js +18 -0
  80. package/lib/module/dto/Transaction.js.map +1 -0
  81. package/lib/module/dto/User.js +10 -0
  82. package/lib/module/dto/User.js.map +1 -0
  83. package/lib/module/dto/UserProperties.js +71 -0
  84. package/lib/module/dto/UserProperties.js.map +1 -0
  85. package/lib/module/dto/UserProperty.js +17 -0
  86. package/lib/module/dto/UserProperty.js.map +1 -0
  87. package/lib/module/dto/enums.js +425 -0
  88. package/lib/module/dto/enums.js.map +1 -0
  89. package/lib/module/dto/storeProducts/ProductInAppDetails.js +16 -0
  90. package/lib/module/dto/storeProducts/ProductInAppDetails.js.map +1 -0
  91. package/lib/module/dto/storeProducts/ProductInstallmentPlanDetails.js +25 -0
  92. package/lib/module/dto/storeProducts/ProductInstallmentPlanDetails.js.map +1 -0
  93. package/lib/module/dto/storeProducts/ProductOfferDetails.js +76 -0
  94. package/lib/module/dto/storeProducts/ProductOfferDetails.js.map +1 -0
  95. package/lib/module/dto/storeProducts/ProductPrice.js +37 -0
  96. package/lib/module/dto/storeProducts/ProductPrice.js.map +1 -0
  97. package/lib/module/dto/storeProducts/ProductPricingPhase.js +52 -0
  98. package/lib/module/dto/storeProducts/ProductPricingPhase.js.map +1 -0
  99. package/lib/module/dto/storeProducts/ProductStoreDetails.js +114 -0
  100. package/lib/module/dto/storeProducts/ProductStoreDetails.js.map +1 -0
  101. package/lib/module/dto/storeProducts/SKPaymentDiscount.js +13 -0
  102. package/lib/module/dto/storeProducts/SKPaymentDiscount.js.map +1 -0
  103. package/lib/module/dto/storeProducts/SKProduct.js +22 -0
  104. package/lib/module/dto/storeProducts/SKProduct.js.map +1 -0
  105. package/lib/module/dto/storeProducts/SKProductDiscount.js +16 -0
  106. package/lib/module/dto/storeProducts/SKProductDiscount.js.map +1 -0
  107. package/lib/module/dto/storeProducts/SKSubscriptionPeriod.js +10 -0
  108. package/lib/module/dto/storeProducts/SKSubscriptionPeriod.js.map +1 -0
  109. package/lib/module/dto/storeProducts/SkuDetails.js +30 -0
  110. package/lib/module/dto/storeProducts/SkuDetails.js.map +1 -0
  111. package/lib/module/index.js +40 -0
  112. package/lib/module/index.js.map +1 -0
  113. package/lib/module/internal/Mapper.js +676 -0
  114. package/lib/module/internal/Mapper.js.map +1 -0
  115. package/lib/module/internal/NoCodesInternal.js +70 -0
  116. package/lib/module/internal/NoCodesInternal.js.map +1 -0
  117. package/lib/module/internal/QonversionInternal.js +237 -0
  118. package/lib/module/internal/QonversionInternal.js.map +1 -0
  119. package/lib/module/internal/specs/NativeNoCodesModule.js +5 -0
  120. package/lib/module/internal/specs/NativeNoCodesModule.js.map +1 -0
  121. package/lib/module/internal/specs/NativeQonversionModule.js +5 -0
  122. package/lib/module/internal/specs/NativeQonversionModule.js.map +1 -0
  123. package/lib/module/internal/utils.js +10 -0
  124. package/lib/module/internal/utils.js.map +1 -0
  125. package/lib/module/package.json +1 -0
  126. package/lib/typescript/package.json +1 -0
  127. package/lib/typescript/src/NoCodes.d.ts +23 -0
  128. package/lib/typescript/src/NoCodes.d.ts.map +1 -0
  129. package/lib/typescript/src/NoCodesApi.d.ts +20 -0
  130. package/lib/typescript/src/NoCodesApi.d.ts.map +1 -0
  131. package/lib/typescript/src/NoCodesConfig.d.ts +8 -0
  132. package/lib/typescript/src/NoCodesConfig.d.ts.map +1 -0
  133. package/lib/typescript/src/NoCodesConfigBuilder.d.ts +26 -0
  134. package/lib/typescript/src/NoCodesConfigBuilder.d.ts.map +1 -0
  135. package/lib/typescript/src/Qonversion.d.ts +26 -0
  136. package/lib/typescript/src/Qonversion.d.ts.map +1 -0
  137. package/lib/typescript/src/QonversionApi.d.ts +285 -0
  138. package/lib/typescript/src/QonversionApi.d.ts.map +1 -0
  139. package/lib/typescript/src/QonversionConfig.d.ts +14 -0
  140. package/lib/typescript/src/QonversionConfig.d.ts.map +1 -0
  141. package/lib/typescript/src/QonversionConfigBuilder.d.ts +65 -0
  142. package/lib/typescript/src/QonversionConfigBuilder.d.ts.map +1 -0
  143. package/lib/typescript/src/dto/Entitlement.d.ts +22 -0
  144. package/lib/typescript/src/dto/Entitlement.d.ts.map +1 -0
  145. package/lib/typescript/src/dto/EntitlementsUpdateListener.d.ts +10 -0
  146. package/lib/typescript/src/dto/EntitlementsUpdateListener.d.ts.map +1 -0
  147. package/lib/typescript/src/dto/Experiment.d.ts +9 -0
  148. package/lib/typescript/src/dto/Experiment.d.ts.map +1 -0
  149. package/lib/typescript/src/dto/ExperimentGroup.d.ts +9 -0
  150. package/lib/typescript/src/dto/ExperimentGroup.d.ts.map +1 -0
  151. package/lib/typescript/src/dto/IntroEligibility.d.ts +7 -0
  152. package/lib/typescript/src/dto/IntroEligibility.d.ts.map +1 -0
  153. package/lib/typescript/src/dto/NoCodesAction.d.ts +10 -0
  154. package/lib/typescript/src/dto/NoCodesAction.d.ts.map +1 -0
  155. package/lib/typescript/src/dto/NoCodesError.d.ts +12 -0
  156. package/lib/typescript/src/dto/NoCodesError.d.ts.map +1 -0
  157. package/lib/typescript/src/dto/NoCodesListener.d.ts +34 -0
  158. package/lib/typescript/src/dto/NoCodesListener.d.ts.map +1 -0
  159. package/lib/typescript/src/dto/Offering.d.ts +11 -0
  160. package/lib/typescript/src/dto/Offering.d.ts.map +1 -0
  161. package/lib/typescript/src/dto/Offerings.d.ts +9 -0
  162. package/lib/typescript/src/dto/Offerings.d.ts.map +1 -0
  163. package/lib/typescript/src/dto/Product.d.ts +95 -0
  164. package/lib/typescript/src/dto/Product.d.ts.map +1 -0
  165. package/lib/typescript/src/dto/PromoPurchasesListener.d.ts +12 -0
  166. package/lib/typescript/src/dto/PromoPurchasesListener.d.ts.map +1 -0
  167. package/lib/typescript/src/dto/PromotionalOffer.d.ts +9 -0
  168. package/lib/typescript/src/dto/PromotionalOffer.d.ts.map +1 -0
  169. package/lib/typescript/src/dto/PurchaseModel.d.ts +19 -0
  170. package/lib/typescript/src/dto/PurchaseModel.d.ts.map +1 -0
  171. package/lib/typescript/src/dto/PurchaseOptions.d.ts +15 -0
  172. package/lib/typescript/src/dto/PurchaseOptions.d.ts.map +1 -0
  173. package/lib/typescript/src/dto/PurchaseOptionsBuilder.d.ts +84 -0
  174. package/lib/typescript/src/dto/PurchaseOptionsBuilder.d.ts.map +1 -0
  175. package/lib/typescript/src/dto/PurchaseUpdateModel.d.ts +25 -0
  176. package/lib/typescript/src/dto/PurchaseUpdateModel.d.ts.map +1 -0
  177. package/lib/typescript/src/dto/QonversionError.d.ts +11 -0
  178. package/lib/typescript/src/dto/QonversionError.d.ts.map +1 -0
  179. package/lib/typescript/src/dto/RemoteConfig.d.ts +10 -0
  180. package/lib/typescript/src/dto/RemoteConfig.d.ts.map +1 -0
  181. package/lib/typescript/src/dto/RemoteConfigList.d.ts +10 -0
  182. package/lib/typescript/src/dto/RemoteConfigList.d.ts.map +1 -0
  183. package/lib/typescript/src/dto/RemoteConfigurationSource.d.ts +11 -0
  184. package/lib/typescript/src/dto/RemoteConfigurationSource.d.ts.map +1 -0
  185. package/lib/typescript/src/dto/ScreenPresentationConfig.d.ts +18 -0
  186. package/lib/typescript/src/dto/ScreenPresentationConfig.d.ts.map +1 -0
  187. package/lib/typescript/src/dto/SubscriptionPeriod.d.ts +21 -0
  188. package/lib/typescript/src/dto/SubscriptionPeriod.d.ts.map +1 -0
  189. package/lib/typescript/src/dto/Transaction.d.ts +16 -0
  190. package/lib/typescript/src/dto/Transaction.d.ts.map +1 -0
  191. package/lib/typescript/src/dto/User.d.ts +7 -0
  192. package/lib/typescript/src/dto/User.d.ts.map +1 -0
  193. package/lib/typescript/src/dto/UserProperties.d.ts +49 -0
  194. package/lib/typescript/src/dto/UserProperties.d.ts.map +1 -0
  195. package/lib/typescript/src/dto/UserProperty.d.ts +13 -0
  196. package/lib/typescript/src/dto/UserProperty.d.ts.map +1 -0
  197. package/lib/typescript/src/dto/enums.d.ts +343 -0
  198. package/lib/typescript/src/dto/enums.d.ts.map +1 -0
  199. package/lib/typescript/src/dto/storeProducts/ProductInAppDetails.d.ts +13 -0
  200. package/lib/typescript/src/dto/storeProducts/ProductInAppDetails.d.ts.map +1 -0
  201. package/lib/typescript/src/dto/storeProducts/ProductInstallmentPlanDetails.d.ts +20 -0
  202. package/lib/typescript/src/dto/storeProducts/ProductInstallmentPlanDetails.d.ts.map +1 -0
  203. package/lib/typescript/src/dto/storeProducts/ProductOfferDetails.d.ts +63 -0
  204. package/lib/typescript/src/dto/storeProducts/ProductOfferDetails.d.ts.map +1 -0
  205. package/lib/typescript/src/dto/storeProducts/ProductPrice.d.ts +29 -0
  206. package/lib/typescript/src/dto/storeProducts/ProductPrice.d.ts.map +1 -0
  207. package/lib/typescript/src/dto/storeProducts/ProductPricingPhase.d.ts +44 -0
  208. package/lib/typescript/src/dto/storeProducts/ProductPricingPhase.d.ts.map +1 -0
  209. package/lib/typescript/src/dto/storeProducts/ProductStoreDetails.d.ts +97 -0
  210. package/lib/typescript/src/dto/storeProducts/ProductStoreDetails.d.ts.map +1 -0
  211. package/lib/typescript/src/dto/storeProducts/SKPaymentDiscount.d.ts +10 -0
  212. package/lib/typescript/src/dto/storeProducts/SKPaymentDiscount.d.ts.map +1 -0
  213. package/lib/typescript/src/dto/storeProducts/SKProduct.d.ts +21 -0
  214. package/lib/typescript/src/dto/storeProducts/SKProduct.d.ts.map +1 -0
  215. package/lib/typescript/src/dto/storeProducts/SKProductDiscount.d.ts +15 -0
  216. package/lib/typescript/src/dto/storeProducts/SKProductDiscount.d.ts.map +1 -0
  217. package/lib/typescript/src/dto/storeProducts/SKSubscriptionPeriod.d.ts +8 -0
  218. package/lib/typescript/src/dto/storeProducts/SKSubscriptionPeriod.d.ts.map +1 -0
  219. package/lib/typescript/src/dto/storeProducts/SkuDetails.d.ts +27 -0
  220. package/lib/typescript/src/dto/storeProducts/SkuDetails.d.ts.map +1 -0
  221. package/lib/typescript/src/index.d.ts +41 -0
  222. package/lib/typescript/src/index.d.ts.map +1 -0
  223. package/lib/typescript/src/internal/Mapper.d.ts +312 -0
  224. package/lib/typescript/src/internal/Mapper.d.ts.map +1 -0
  225. package/lib/typescript/src/internal/NoCodesInternal.d.ts +14 -0
  226. package/lib/typescript/src/internal/NoCodesInternal.d.ts.map +1 -0
  227. package/lib/typescript/src/internal/QonversionInternal.d.ts +60 -0
  228. package/lib/typescript/src/internal/QonversionInternal.d.ts.map +1 -0
  229. package/lib/typescript/src/internal/specs/NativeNoCodesModule.d.ts +17 -0
  230. package/lib/typescript/src/internal/specs/NativeNoCodesModule.d.ts.map +1 -0
  231. package/lib/typescript/src/internal/specs/NativeQonversionModule.d.ts +56 -0
  232. package/lib/typescript/src/internal/specs/NativeQonversionModule.d.ts.map +1 -0
  233. package/lib/typescript/src/internal/utils.d.ts +3 -0
  234. package/lib/typescript/src/internal/utils.d.ts.map +1 -0
  235. package/package.json +151 -0
  236. package/qonversion-react-native-sdk.podspec +21 -0
  237. package/src/NoCodes.ts +37 -0
  238. package/src/NoCodesApi.ts +22 -0
  239. package/src/NoCodesConfig.ts +16 -0
  240. package/src/NoCodesConfigBuilder.ts +40 -0
  241. package/src/Qonversion.ts +40 -0
  242. package/src/QonversionApi.ts +318 -0
  243. package/src/QonversionConfig.ts +32 -0
  244. package/src/QonversionConfigBuilder.ts +102 -0
  245. package/src/dto/Entitlement.ts +57 -0
  246. package/src/dto/EntitlementsUpdateListener.ts +11 -0
  247. package/src/dto/Experiment.ts +15 -0
  248. package/src/dto/ExperimentGroup.ts +15 -0
  249. package/src/dto/IntroEligibility.ts +11 -0
  250. package/src/dto/NoCodesAction.ts +21 -0
  251. package/src/dto/NoCodesError.ts +26 -0
  252. package/src/dto/NoCodesListener.ts +39 -0
  253. package/src/dto/Offering.ts +20 -0
  254. package/src/dto/Offerings.ts +17 -0
  255. package/src/dto/Product.ts +159 -0
  256. package/src/dto/PromoPurchasesListener.ts +13 -0
  257. package/src/dto/PromotionalOffer.ts +17 -0
  258. package/src/dto/PurchaseModel.ts +29 -0
  259. package/src/dto/PurchaseOptions.ts +33 -0
  260. package/src/dto/PurchaseOptionsBuilder.ts +127 -0
  261. package/src/dto/PurchaseUpdateModel.ts +43 -0
  262. package/src/dto/QonversionError.ts +24 -0
  263. package/src/dto/RemoteConfig.ts +16 -0
  264. package/src/dto/RemoteConfigList.ts +23 -0
  265. package/src/dto/RemoteConfigurationSource.ts +26 -0
  266. package/src/dto/ScreenPresentationConfig.ts +24 -0
  267. package/src/dto/SubscriptionPeriod.ts +33 -0
  268. package/src/dto/Transaction.ts +40 -0
  269. package/src/dto/User.ts +11 -0
  270. package/src/dto/UserProperties.ts +78 -0
  271. package/src/dto/UserProperty.ts +21 -0
  272. package/src/dto/enums.ts +389 -0
  273. package/src/dto/storeProducts/ProductInAppDetails.ts +17 -0
  274. package/src/dto/storeProducts/ProductInstallmentPlanDetails.ts +28 -0
  275. package/src/dto/storeProducts/ProductOfferDetails.ts +102 -0
  276. package/src/dto/storeProducts/ProductPrice.ts +46 -0
  277. package/src/dto/storeProducts/ProductPricingPhase.ts +71 -0
  278. package/src/dto/storeProducts/ProductStoreDetails.ts +151 -0
  279. package/src/dto/storeProducts/SKPaymentDiscount.ts +23 -0
  280. package/src/dto/storeProducts/SKProduct.ts +53 -0
  281. package/src/dto/storeProducts/SKProductDiscount.ts +38 -0
  282. package/src/dto/storeProducts/SKSubscriptionPeriod.ts +13 -0
  283. package/src/dto/storeProducts/SkuDetails.ts +68 -0
  284. package/src/index.ts +43 -0
  285. package/src/internal/Mapper.ts +1221 -0
  286. package/src/internal/NoCodesInternal.ts +84 -0
  287. package/src/internal/QonversionInternal.ts +370 -0
  288. package/src/internal/specs/NativeNoCodesModule.ts +20 -0
  289. package/src/internal/specs/NativeQonversionModule.ts +74 -0
  290. package/src/internal/utils.ts +9 -0
@@ -0,0 +1,676 @@
1
+ "use strict";
2
+
3
+ import { EntitlementGrantType, EntitlementRenewState, EntitlementSource, ExperimentGroupType, IntroEligibilityStatus, OfferingTag, PricingPhaseRecurrenceMode, PricingPhaseType, ProductType, QonversionErrorCode, RemoteConfigurationAssignmentType, RemoteConfigurationSourceType, SKPeriodUnit, SKProductDiscountPaymentMode, SKProductDiscountType, SubscriptionPeriodUnit, TransactionEnvironment, TransactionOwnershipType, TransactionType, UserPropertyKey, NoCodesErrorCode } from "../dto/enums.js";
4
+ import IntroEligibility from "../dto/IntroEligibility.js";
5
+ import Offering from "../dto/Offering.js";
6
+ import Offerings from "../dto/Offerings.js";
7
+ import Entitlement from "../dto/Entitlement.js";
8
+ import Product from "../dto/Product.js";
9
+ import SKProduct from "../dto/storeProducts/SKProduct.js";
10
+ import SKProductDiscount from "../dto/storeProducts/SKProductDiscount.js";
11
+ import SKSubscriptionPeriod from "../dto/storeProducts/SKSubscriptionPeriod.js";
12
+ import SkuDetails from "../dto/storeProducts/SkuDetails.js";
13
+ import User from "../dto/User.js";
14
+ import Experiment from "../dto/Experiment.js";
15
+ import ExperimentGroup from "../dto/ExperimentGroup.js";
16
+ import SubscriptionPeriod from "../dto/SubscriptionPeriod.js";
17
+ import RemoteConfig from "../dto/RemoteConfig.js";
18
+ import RemoteConfigList from "../dto/RemoteConfigList.js";
19
+ import UserProperties from "../dto/UserProperties.js";
20
+ import UserProperty from "../dto/UserProperty.js";
21
+ import RemoteConfigurationSource from "../dto/RemoteConfigurationSource.js";
22
+ import Transaction from "../dto/Transaction.js";
23
+ import ProductStoreDetails from "../dto/storeProducts/ProductStoreDetails.js";
24
+ import ProductOfferDetails from "../dto/storeProducts/ProductOfferDetails.js";
25
+ import ProductInAppDetails from "../dto/storeProducts/ProductInAppDetails.js";
26
+ import ProductPrice from "../dto/storeProducts/ProductPrice.js";
27
+ import ProductPricingPhase from "../dto/storeProducts/ProductPricingPhase.js";
28
+ import ProductInstallmentPlanDetails from "../dto/storeProducts/ProductInstallmentPlanDetails.js";
29
+ import PromotionalOffer from "../dto/PromotionalOffer.js";
30
+ import SKPaymentDiscount from "../dto/storeProducts/SKPaymentDiscount.js";
31
+ import NoCodesAction from "../dto/NoCodesAction.js";
32
+ import QonversionError from "../dto/QonversionError.js";
33
+ import NoCodesError from "../dto/NoCodesError.js";
34
+ const priceMicrosRatio = 1000000;
35
+ class Mapper {
36
+ static convertPromoOffer(promoOffer) {
37
+ if (!promoOffer) {
38
+ return null;
39
+ }
40
+ const productDiscount = this.convertProductDiscount(promoOffer.productDiscount);
41
+ const paymentDiscount = this.convertPaymentDiscount(promoOffer.paymentDiscount);
42
+ return new PromotionalOffer(productDiscount, paymentDiscount);
43
+ }
44
+ static convertEntitlements(entitlements) {
45
+ let mappedPermissions = new Map();
46
+ if (!entitlements) {
47
+ return mappedPermissions;
48
+ }
49
+ for (const [key, entitlement] of Object.entries(entitlements)) {
50
+ let renewState;
51
+ switch (entitlement.renewState) {
52
+ case EntitlementRenewState.NON_RENEWABLE:
53
+ renewState = EntitlementRenewState.NON_RENEWABLE;
54
+ break;
55
+ case EntitlementRenewState.WILL_RENEW:
56
+ renewState = EntitlementRenewState.WILL_RENEW;
57
+ break;
58
+ case EntitlementRenewState.CANCELED:
59
+ renewState = EntitlementRenewState.CANCELED;
60
+ break;
61
+ case EntitlementRenewState.BILLING_ISSUE:
62
+ renewState = EntitlementRenewState.BILLING_ISSUE;
63
+ break;
64
+ default:
65
+ renewState = EntitlementRenewState.UNKNOWN;
66
+ break;
67
+ }
68
+ const entitlementSource = this.convertEntitlementSource(entitlement.source);
69
+ const entitlementGrantType = this.convertEntitlementGrantType(entitlement.grantType);
70
+ const transactions = [];
71
+ if (Array.isArray(entitlement.transactions)) {
72
+ entitlement.transactions.forEach(transaction => {
73
+ const mappedTransaction = this.convertTransaction(transaction);
74
+ transactions.push(mappedTransaction);
75
+ });
76
+ }
77
+ const mappedPermission = new Entitlement(entitlement.id, entitlement.productId, entitlement.active, renewState, entitlementSource, entitlement.startedTimestamp, entitlement.renewsCount, entitlementGrantType, transactions, entitlement.expirationTimestamp, entitlement.trialStartTimestamp, entitlement.firstPurchaseTimestamp, entitlement.lastPurchaseTimestamp, entitlement.autoRenewDisableTimestamp, entitlement.lastActivatedOfferCode);
78
+ mappedPermissions.set(key, mappedPermission);
79
+ }
80
+ return mappedPermissions;
81
+ }
82
+ static convertTransaction(transaction) {
83
+ const environment = this.convertTransactionEnvironment(transaction.environment);
84
+ const ownershipType = this.convertTransactionOwnershipType(transaction.ownershipType);
85
+ const type = this.convertTransactionType(transaction.type);
86
+ return new Transaction(transaction.originalTransactionId, transaction.transactionId, transaction.transactionTimestamp, environment, ownershipType, type, transaction.expirationTimestamp, transaction.transactionRevocationTimestamp, transaction.offerCode, transaction.promoOfferId);
87
+ }
88
+ static convertTransactionType(typeKey) {
89
+ switch (typeKey) {
90
+ case "SubscriptionStarted":
91
+ return TransactionType.SUBSCRIPTION_STARTED;
92
+ case "SubscriptionRenewed":
93
+ return TransactionType.SUBSCRIPTION_RENEWED;
94
+ case "TrialStarted":
95
+ return TransactionType.TRIAL_STARTED;
96
+ case "IntroStarted":
97
+ return TransactionType.INTRO_STARTED;
98
+ case "IntroRenewed":
99
+ return TransactionType.INTRO_RENEWED;
100
+ case "NonConsumablePurchase":
101
+ return TransactionType.NON_CONSUMABLE_PURCHASE;
102
+ }
103
+ return TransactionType.UNKNOWN;
104
+ }
105
+ static convertTransactionOwnershipType(ownershipTypeKey) {
106
+ switch (ownershipTypeKey) {
107
+ case "Owner":
108
+ return TransactionOwnershipType.OWNER;
109
+ case "FamilySharing":
110
+ return TransactionOwnershipType.FAMILY_SHARING;
111
+ }
112
+ return TransactionOwnershipType.OWNER;
113
+ }
114
+ static convertTransactionEnvironment(envKey) {
115
+ switch (envKey) {
116
+ case "Production":
117
+ return TransactionEnvironment.PRODUCTION;
118
+ case "Sandbox":
119
+ return TransactionEnvironment.SANDBOX;
120
+ }
121
+ return TransactionEnvironment.PRODUCTION;
122
+ }
123
+ static convertEntitlementSource(sourceKey) {
124
+ switch (sourceKey) {
125
+ case "Unknown":
126
+ return EntitlementSource.UNKNOWN;
127
+ case "AppStore":
128
+ return EntitlementSource.APP_STORE;
129
+ case "PlayStore":
130
+ return EntitlementSource.PLAY_STORE;
131
+ case "Stripe":
132
+ return EntitlementSource.STRIPE;
133
+ case "Manual":
134
+ return EntitlementSource.MANUAL;
135
+ }
136
+ return EntitlementSource.UNKNOWN;
137
+ }
138
+ static convertEntitlementGrantType(typeKey) {
139
+ switch (typeKey) {
140
+ case "Purchase":
141
+ return EntitlementGrantType.PURCHASE;
142
+ case "FamilySharing":
143
+ return EntitlementGrantType.FAMILY_SHARING;
144
+ case "OfferCode":
145
+ return EntitlementGrantType.OFFER_CODE;
146
+ case "Manual":
147
+ return EntitlementGrantType.MANUAL;
148
+ }
149
+ return EntitlementGrantType.PURCHASE;
150
+ }
151
+ static convertDefinedUserPropertyKey(sourceKey) {
152
+ switch (sourceKey) {
153
+ case '_q_email':
154
+ return UserPropertyKey.EMAIL;
155
+ case '_q_name':
156
+ return UserPropertyKey.NAME;
157
+ case '_q_kochava_device_id':
158
+ return UserPropertyKey.KOCHAVA_DEVICE_ID;
159
+ case '_q_appsflyer_user_id':
160
+ return UserPropertyKey.APPS_FLYER_USER_ID;
161
+ case '_q_adjust_adid':
162
+ return UserPropertyKey.ADJUST_AD_ID;
163
+ case '_q_custom_user_id':
164
+ return UserPropertyKey.CUSTOM_USER_ID;
165
+ case '_q_fb_attribution':
166
+ return UserPropertyKey.FACEBOOK_ATTRIBUTION;
167
+ case '_q_firebase_instance_id':
168
+ return UserPropertyKey.FIREBASE_APP_INSTANCE_ID;
169
+ case '_q_app_set_id':
170
+ return UserPropertyKey.APP_SET_ID;
171
+ case '_q_advertising_id':
172
+ return UserPropertyKey.ADVERTISING_ID;
173
+ case "_q_appmetrica_device_id":
174
+ return UserPropertyKey.APP_METRICA_DEVICE_ID;
175
+ case "_q_appmetrica_user_profile_id":
176
+ return UserPropertyKey.APP_METRICA_USER_PROFILE_ID;
177
+ case "_q_pushwoosh_hwid":
178
+ return UserPropertyKey.PUSH_WOOSH_HW_ID;
179
+ case "_q_pushwoosh_user_id":
180
+ return UserPropertyKey.PUSH_WOOSH_USER_ID;
181
+ case "_q_tenjin_aiid":
182
+ return UserPropertyKey.TENJIN_ANALYTICS_INSTALLATION_ID;
183
+ }
184
+ return UserPropertyKey.CUSTOM;
185
+ }
186
+ static convertUserProperties(properties) {
187
+ const mappedProperties = properties.properties.map(propertyData => new UserProperty(propertyData.key, propertyData.value));
188
+ return new UserProperties(mappedProperties);
189
+ }
190
+ static convertProducts(products) {
191
+ let mappedProducts = new Map();
192
+ if (!products) {
193
+ return mappedProducts;
194
+ }
195
+ for (const [key, product] of Object.entries(products)) {
196
+ const mappedProduct = this.convertProduct(product);
197
+ mappedProducts.set(key, mappedProduct);
198
+ }
199
+ return mappedProducts;
200
+ }
201
+ static convertProduct(product) {
202
+ const productType = Mapper.convertProductType(product.type);
203
+ const subscriptionPeriod = Mapper.convertSubscriptionPeriod(product.subscriptionPeriod);
204
+ const trialPeriod = Mapper.convertSubscriptionPeriod(product.trialPeriod);
205
+ const offeringId = product.offeringId ?? null;
206
+ let skProduct = null;
207
+ let skuDetails = null;
208
+ let storeDetails = null;
209
+ let price;
210
+ let currencyCode;
211
+ let storeTitle;
212
+ let storeDescription;
213
+ let prettyIntroductoryPrice;
214
+ if (!!product.skProduct) {
215
+ skProduct = Mapper.convertSKProduct(product.skProduct);
216
+ price = parseFloat(skProduct.price);
217
+ currencyCode = skProduct.currencyCode;
218
+ storeTitle = skProduct.localizedTitle;
219
+ storeDescription = skProduct.localizedDescription;
220
+ if (skProduct.productDiscount) {
221
+ prettyIntroductoryPrice = skProduct.productDiscount.currencySymbol + skProduct.productDiscount.price;
222
+ }
223
+ } else {
224
+ let priceMicros = null;
225
+ if (!!product.skuDetails) {
226
+ skuDetails = Mapper.convertSkuDetails(product.skuDetails);
227
+ storeTitle = skuDetails.title;
228
+ storeDescription = skuDetails.description;
229
+ priceMicros = skuDetails.priceAmountMicros;
230
+ currencyCode = skuDetails.priceCurrencyCode;
231
+ if (skuDetails.introductoryPrice.length > 0) {
232
+ prettyIntroductoryPrice = skuDetails.introductoryPrice;
233
+ }
234
+ }
235
+ if (!!product.storeDetails) {
236
+ storeDetails = Mapper.convertProductStoreDetails(product.storeDetails);
237
+ storeTitle = storeDetails.title;
238
+ storeDescription = storeDetails.description;
239
+ const defaultOffer = storeDetails.defaultSubscriptionOfferDetails;
240
+ const inAppOffer = storeDetails.inAppOfferDetails;
241
+ if (defaultOffer) {
242
+ priceMicros = defaultOffer.basePlan?.price?.priceAmountMicros;
243
+ currencyCode = defaultOffer.basePlan?.price?.priceCurrencyCode;
244
+ prettyIntroductoryPrice = defaultOffer.introPhase?.price?.formattedPrice;
245
+ } else if (inAppOffer) {
246
+ priceMicros = inAppOffer.price.priceAmountMicros;
247
+ currencyCode = inAppOffer.price.priceCurrencyCode;
248
+ prettyIntroductoryPrice = undefined;
249
+ }
250
+ }
251
+ price = priceMicros ? priceMicros / priceMicrosRatio : undefined;
252
+ }
253
+ const mappedProduct = new Product(product.id, product.storeId, product.basePlanId ?? null, skuDetails, storeDetails, skProduct, offeringId, subscriptionPeriod, trialPeriod, productType, product.prettyPrice ?? null, price, currencyCode, storeTitle, storeDescription, prettyIntroductoryPrice);
254
+ return mappedProduct;
255
+ }
256
+ static convertOfferings(offerings) {
257
+ if (!offerings) {
258
+ return null;
259
+ }
260
+ if (!Array.isArray(offerings.availableOfferings) || offerings.availableOfferings.length === 0) {
261
+ return null;
262
+ }
263
+ let mainOffering = null;
264
+ if (offerings.main) {
265
+ mainOffering = this.convertOffering(offerings.main);
266
+ }
267
+ const availableOfferings = [];
268
+ offerings.availableOfferings.forEach(offering => {
269
+ const mappedOffering = this.convertOffering(offering);
270
+ availableOfferings.push(mappedOffering);
271
+ });
272
+ return new Offerings(mainOffering, availableOfferings);
273
+ }
274
+ static convertOffering(offering) {
275
+ const products = [];
276
+ offering.products.forEach(product => {
277
+ const mappedProduct = this.convertProduct(product);
278
+ products.push(mappedProduct);
279
+ });
280
+ const tag = OfferingTag[offering.tag] ?? OfferingTag['0'];
281
+ return new Offering(offering.id, tag, products);
282
+ }
283
+ static convertSkuDetails(skuDetails) {
284
+ return new SkuDetails(skuDetails.description, skuDetails.freeTrialPeriod, skuDetails.iconUrl, skuDetails.introductoryPrice, skuDetails.introductoryPriceAmountMicros, skuDetails.introductoryPriceCycles, skuDetails.introductoryPricePeriod, skuDetails.originalJson, skuDetails.originalPrice, skuDetails.originalPriceAmountMicros, skuDetails.price, skuDetails.priceAmountMicros, skuDetails.priceCurrencyCode, skuDetails.sku, skuDetails.subscriptionPeriod, skuDetails.title, skuDetails.type, skuDetails.hashCode, skuDetails.toString);
285
+ }
286
+ static convertProductType(productType) {
287
+ let type = ProductType.UNKNOWN;
288
+ switch (productType) {
289
+ case ProductType.TRIAL:
290
+ type = ProductType.TRIAL;
291
+ break;
292
+ case ProductType.INTRO:
293
+ type = ProductType.INTRO;
294
+ break;
295
+ case ProductType.SUBSCRIPTION:
296
+ type = ProductType.SUBSCRIPTION;
297
+ break;
298
+ case ProductType.IN_APP:
299
+ type = ProductType.IN_APP;
300
+ break;
301
+ }
302
+ return type;
303
+ }
304
+ static convertSubscriptionPeriod(productPeriod) {
305
+ if (!productPeriod) {
306
+ return null;
307
+ }
308
+ const unit = Mapper.convertSubscriptionPeriodUnit(productPeriod.unit);
309
+ return new SubscriptionPeriod(productPeriod.unitCount, unit, productPeriod.iso);
310
+ }
311
+ static convertSubscriptionPeriodUnit(unit) {
312
+ let result = SubscriptionPeriodUnit.UNKNOWN;
313
+ switch (unit) {
314
+ case SubscriptionPeriodUnit.DAY:
315
+ result = SubscriptionPeriodUnit.DAY;
316
+ break;
317
+ case SubscriptionPeriodUnit.WEEK:
318
+ result = SubscriptionPeriodUnit.WEEK;
319
+ break;
320
+ case SubscriptionPeriodUnit.MONTH:
321
+ result = SubscriptionPeriodUnit.MONTH;
322
+ break;
323
+ case SubscriptionPeriodUnit.YEAR:
324
+ result = SubscriptionPeriodUnit.YEAR;
325
+ break;
326
+ }
327
+ return result;
328
+ }
329
+ static convertProductPricingPhase(pricingPhase) {
330
+ if (!pricingPhase) {
331
+ return null;
332
+ }
333
+ const price = Mapper.convertProductPrice(pricingPhase.price);
334
+ const billingPeriod = Mapper.convertSubscriptionPeriod(pricingPhase.billingPeriod);
335
+ const recurrenceMode = Mapper.convertPrisingPhaseRecurrenceMode(pricingPhase.recurrenceMode);
336
+ const type = Mapper.convertPrisingPhaseType(pricingPhase.type);
337
+ return new ProductPricingPhase(price, billingPeriod, pricingPhase.billingCycleCount, recurrenceMode, type, pricingPhase.isTrial, pricingPhase.isIntro, pricingPhase.isBasePlan);
338
+ }
339
+ static convertPrisingPhaseRecurrenceMode(recurrenceMode) {
340
+ let mode = PricingPhaseRecurrenceMode.UNKNOWN;
341
+ switch (recurrenceMode) {
342
+ case PricingPhaseRecurrenceMode.INFINITE_RECURRING:
343
+ mode = PricingPhaseRecurrenceMode.INFINITE_RECURRING;
344
+ break;
345
+ case PricingPhaseRecurrenceMode.FINITE_RECURRING:
346
+ mode = PricingPhaseRecurrenceMode.FINITE_RECURRING;
347
+ break;
348
+ case PricingPhaseRecurrenceMode.NON_RECURRING:
349
+ mode = PricingPhaseRecurrenceMode.NON_RECURRING;
350
+ break;
351
+ }
352
+ return mode;
353
+ }
354
+ static convertPrisingPhaseType(type) {
355
+ let result = PricingPhaseType.UNKNOWN;
356
+ switch (type) {
357
+ case PricingPhaseType.REGULAR:
358
+ result = PricingPhaseType.REGULAR;
359
+ break;
360
+ case PricingPhaseType.FREE_TRIAL:
361
+ result = PricingPhaseType.FREE_TRIAL;
362
+ break;
363
+ case PricingPhaseType.DISCOUNTED_SINGLE_PAYMENT:
364
+ result = PricingPhaseType.DISCOUNTED_SINGLE_PAYMENT;
365
+ break;
366
+ case PricingPhaseType.DISCOUNTED_RECURRING_PAYMENT:
367
+ result = PricingPhaseType.DISCOUNTED_RECURRING_PAYMENT;
368
+ break;
369
+ }
370
+ return result;
371
+ }
372
+ static convertProductInstallmentPlanDetails(installmentPlanDetails) {
373
+ if (!installmentPlanDetails) {
374
+ return null;
375
+ }
376
+ return new ProductInstallmentPlanDetails(installmentPlanDetails.commitmentPaymentsCount, installmentPlanDetails.subsequentCommitmentPaymentsCount);
377
+ }
378
+ static convertProductOfferDetails(offerDetails) {
379
+ let basePlan = Mapper.convertProductPricingPhase(offerDetails.basePlan);
380
+ let trialPhase = Mapper.convertProductPricingPhase(offerDetails.trialPhase);
381
+ let introPhase = Mapper.convertProductPricingPhase(offerDetails.introPhase);
382
+ let installmentPlanDetails = Mapper.convertProductInstallmentPlanDetails(offerDetails.installmentPlanDetails);
383
+ let pricingPhases = offerDetails.pricingPhases.map(pricingPhase => Mapper.convertProductPricingPhase(pricingPhase)).filter(Boolean);
384
+ return new ProductOfferDetails(offerDetails.basePlanId, offerDetails.offerId ?? null, offerDetails.offerToken, offerDetails.tags, pricingPhases, basePlan, installmentPlanDetails, introPhase, trialPhase, offerDetails.hasTrial, offerDetails.hasIntro, offerDetails.hasTrialOrIntro);
385
+ }
386
+ static convertInAppOfferDetails(inAppOfferDetails) {
387
+ let productPrice = this.convertProductPrice(inAppOfferDetails.price);
388
+ return new ProductInAppDetails(productPrice);
389
+ }
390
+ static convertProductPrice(productPrice) {
391
+ return new ProductPrice(productPrice.priceAmountMicros, productPrice.priceCurrencyCode, productPrice.formattedPrice, productPrice.isFree, productPrice.currencySymbol);
392
+ }
393
+ static convertProductStoreDetails(productStoreDetails) {
394
+ let defaultSubscriptionOfferDetails = null;
395
+ if (productStoreDetails.defaultSubscriptionOfferDetails != null) {
396
+ defaultSubscriptionOfferDetails = this.convertProductOfferDetails(productStoreDetails.defaultSubscriptionOfferDetails);
397
+ }
398
+ let basePlanSubscriptionOfferDetails = null;
399
+ if (productStoreDetails.basePlanSubscriptionOfferDetails != null) {
400
+ basePlanSubscriptionOfferDetails = this.convertProductOfferDetails(productStoreDetails.basePlanSubscriptionOfferDetails);
401
+ }
402
+ let inAppOfferDetails = null;
403
+ if (productStoreDetails.inAppOfferDetails != null) {
404
+ inAppOfferDetails = this.convertInAppOfferDetails(productStoreDetails.inAppOfferDetails);
405
+ }
406
+ let subscriptionOfferDetails = null;
407
+ if (productStoreDetails.subscriptionOfferDetails != null) {
408
+ subscriptionOfferDetails = productStoreDetails.subscriptionOfferDetails.map(defaultOfferDetail => this.convertProductOfferDetails(defaultOfferDetail));
409
+ }
410
+ const productType = Mapper.convertProductType(productStoreDetails.productType);
411
+ return new ProductStoreDetails(productStoreDetails.basePlanId ?? null, productStoreDetails.productId, productStoreDetails.name, productStoreDetails.title, productStoreDetails.description, subscriptionOfferDetails, defaultSubscriptionOfferDetails, basePlanSubscriptionOfferDetails, inAppOfferDetails, productStoreDetails.hasTrialOffer, productStoreDetails.hasIntroOffer, productStoreDetails.hasTrialOrIntroOffer, productType, productStoreDetails.isInApp, productStoreDetails.isSubscription, productStoreDetails.isPrepaid, productStoreDetails.isInstallment);
412
+ }
413
+ static convertSKProduct(skProduct) {
414
+ let subscriptionPeriod;
415
+ if (skProduct.subscriptionPeriod != null) {
416
+ subscriptionPeriod = this.convertSKSubscriptionPeriod(skProduct.subscriptionPeriod);
417
+ }
418
+ let discount;
419
+ if (skProduct.introductoryPrice) {
420
+ discount = this.convertProductDiscount(skProduct.introductoryPrice);
421
+ }
422
+ let discounts;
423
+ if (Array.isArray(skProduct.discounts) && skProduct.discounts.length) {
424
+ discounts = this.convertDiscounts(skProduct.discounts);
425
+ }
426
+ return new SKProduct(skProduct.localizedDescription, skProduct.localizedTitle, skProduct.price, skProduct.priceLocale.localeIdentifier, skProduct.productIdentifier, !!skProduct.isDownloadable, skProduct.downloadContentVersion, skProduct.downloadContentLengths, subscriptionPeriod, discount, discounts, skProduct.subscriptionGroupIdentifier, skProduct.isFamilyShareable, skProduct.priceLocale.currencyCode ?? "");
427
+ }
428
+ static convertSKSubscriptionPeriod(subscriptionPeriod) {
429
+ return new SKSubscriptionPeriod(subscriptionPeriod.numberOfUnits, SKPeriodUnit[subscriptionPeriod.unit]);
430
+ }
431
+ static convertPaymentDiscount(discount) {
432
+ return new SKPaymentDiscount(discount.identifier, discount.keyIdentifier, discount.nonce, discount.signature, discount.timestamp);
433
+ }
434
+ static convertProductDiscount(discount) {
435
+ let subscriptionPeriod = undefined;
436
+ if (discount.subscriptionPeriod != null) {
437
+ subscriptionPeriod = this.convertSKSubscriptionPeriod(discount.subscriptionPeriod);
438
+ }
439
+ return new SKProductDiscount(discount.price, discount.priceLocale.localeIdentifier, discount.numberOfPeriods, subscriptionPeriod, SKProductDiscountPaymentMode[discount.paymentMode], discount.identifier, SKProductDiscountType[discount.type], discount.priceLocale.currencySymbol ?? "");
440
+ }
441
+ static convertDiscounts(discounts) {
442
+ const mappedDiscounts = discounts.map(discount => {
443
+ return this.convertProductDiscount(discount);
444
+ });
445
+ return mappedDiscounts;
446
+ }
447
+ static convertEligibility(eligibilityMap) {
448
+ let mappedEligibility = new Map();
449
+ if (!eligibilityMap) {
450
+ return mappedEligibility;
451
+ }
452
+ for (const [key, value] of Object.entries(eligibilityMap)) {
453
+ const status = Mapper.convertEligibilityStatus(value.status);
454
+ const eligibilityInfo = new IntroEligibility(status);
455
+ mappedEligibility.set(key, eligibilityInfo);
456
+ }
457
+ return mappedEligibility;
458
+ }
459
+ static convertEligibilityStatus(status) {
460
+ switch (status) {
461
+ case "non_intro_or_trial_product":
462
+ return IntroEligibilityStatus.NON_INTRO_OR_TRIAL_PRODUCT;
463
+ case "intro_or_trial_eligible":
464
+ return IntroEligibilityStatus.ELIGIBLE;
465
+ case "intro_or_trial_ineligible":
466
+ return IntroEligibilityStatus.INELIGIBLE;
467
+ default:
468
+ return IntroEligibilityStatus.UNKNOWN;
469
+ }
470
+ }
471
+ static convertUserInfo(user) {
472
+ return new User(user.qonversionId, user.identityId);
473
+ }
474
+ static convertRemoteConfig(remoteConfig) {
475
+ let experiment = null;
476
+ if (remoteConfig.experiment) {
477
+ const groupType = this.convertGroupType(remoteConfig.experiment.group.type);
478
+ const group = new ExperimentGroup(remoteConfig.experiment.group.id, remoteConfig.experiment.group.name, groupType);
479
+ experiment = new Experiment(remoteConfig.experiment.id, remoteConfig.experiment.name, group);
480
+ }
481
+ const sourceType = this.convertRemoteConfigurationSourceType(remoteConfig.source.type);
482
+ const assignmentType = this.convertRemoteConfigurationAssignmentType(remoteConfig.source.assignmentType);
483
+ const source = new RemoteConfigurationSource(remoteConfig.source.id, remoteConfig.source.name, sourceType, assignmentType, remoteConfig.source.contextKey ?? null);
484
+ return new RemoteConfig(remoteConfig.payload, experiment, source);
485
+ }
486
+ static convertRemoteConfigList(remoteConfigList) {
487
+ const remoteConfigs = remoteConfigList.remoteConfigs.map(config => this.convertRemoteConfig(config));
488
+ return new RemoteConfigList(remoteConfigs);
489
+ }
490
+ static convertRemoteConfigurationSourceType(type) {
491
+ switch (type) {
492
+ case "experiment_control_group":
493
+ return RemoteConfigurationSourceType.EXPERIMENT_CONTROL_GROUP;
494
+ case "experiment_treatment_group":
495
+ return RemoteConfigurationSourceType.EXPERIMENT_TREATMENT_GROUP;
496
+ case "remote_configuration":
497
+ return RemoteConfigurationSourceType.REMOTE_CONFIGURATION;
498
+ default:
499
+ return RemoteConfigurationSourceType.UNKNOWN;
500
+ }
501
+ }
502
+ static convertRemoteConfigurationAssignmentType(type) {
503
+ switch (type) {
504
+ case "auto":
505
+ return RemoteConfigurationAssignmentType.AUTO;
506
+ case "manual":
507
+ return RemoteConfigurationAssignmentType.MANUAL;
508
+ default:
509
+ return RemoteConfigurationAssignmentType.UNKNOWN;
510
+ }
511
+ }
512
+ static convertGroupType(type) {
513
+ switch (type) {
514
+ case "control":
515
+ return ExperimentGroupType.CONTROL;
516
+ case "treatment":
517
+ return ExperimentGroupType.TREATMENT;
518
+ default:
519
+ return ExperimentGroupType.UNKNOWN;
520
+ }
521
+ }
522
+ static convertAction(payload) {
523
+ return new NoCodesAction(payload["type"], payload["parameters"], this.convertNoCodesError(payload["error"]));
524
+ }
525
+ static convertNoCodesError(payload) {
526
+ if (!payload) return undefined;
527
+ const code = this.convertNoCodesErrorCode(payload.code);
528
+ const error = payload.qonversionError ? this.convertQonversionError(payload.qonversionError) : undefined;
529
+ return new NoCodesError(code, payload.description, payload.additionalMessage, payload.domain, error);
530
+ }
531
+ static convertQonversionError(payload) {
532
+ if (!payload) return undefined;
533
+ const code = this.convertQonversionErrorCode(payload.code);
534
+ return new QonversionError(code, payload.description, payload.additionalMessage, payload.domain);
535
+ }
536
+ static convertScreenPresentationConfig(config) {
537
+ return {
538
+ presentationStyle: config.presentationStyle,
539
+ animated: config.animated ? '1' : '0'
540
+ };
541
+ }
542
+ static convertNoCodesErrorCode(code) {
543
+ if (!code) {
544
+ return NoCodesErrorCode.UNKNOWN;
545
+ }
546
+ switch (code) {
547
+ case NoCodesErrorCode.UNKNOWN:
548
+ return NoCodesErrorCode.UNKNOWN;
549
+ case NoCodesErrorCode.BAD_NETWORK_REQUEST:
550
+ return NoCodesErrorCode.BAD_NETWORK_REQUEST;
551
+ case NoCodesErrorCode.BAD_RESPONSE:
552
+ return NoCodesErrorCode.BAD_RESPONSE;
553
+ case NoCodesErrorCode.ACTIVITY_START:
554
+ return NoCodesErrorCode.ACTIVITY_START;
555
+ case NoCodesErrorCode.NETWORK_REQUEST_EXECUTION:
556
+ return NoCodesErrorCode.NETWORK_REQUEST_EXECUTION;
557
+ case NoCodesErrorCode.SERIALIZATION:
558
+ return NoCodesErrorCode.SERIALIZATION;
559
+ case NoCodesErrorCode.DESERIALIZATION:
560
+ return NoCodesErrorCode.DESERIALIZATION;
561
+ case NoCodesErrorCode.REQUEST_DENIED:
562
+ return NoCodesErrorCode.REQUEST_DENIED;
563
+ case NoCodesErrorCode.MAPPING:
564
+ return NoCodesErrorCode.MAPPING;
565
+ case NoCodesErrorCode.BACKEND_ERROR:
566
+ return NoCodesErrorCode.BACKEND_ERROR;
567
+ case NoCodesErrorCode.SCREEN_NOT_FOUND:
568
+ return NoCodesErrorCode.SCREEN_NOT_FOUND;
569
+ case NoCodesErrorCode.QONVERSION_ERROR:
570
+ return NoCodesErrorCode.QONVERSION_ERROR;
571
+ case NoCodesErrorCode.INTERNAL:
572
+ return NoCodesErrorCode.INTERNAL;
573
+ case NoCodesErrorCode.AUTHORIZATION_FAILED:
574
+ return NoCodesErrorCode.AUTHORIZATION_FAILED;
575
+ case NoCodesErrorCode.CRITICAL:
576
+ return NoCodesErrorCode.CRITICAL;
577
+ case NoCodesErrorCode.PRODUCT_NOT_FOUND:
578
+ return NoCodesErrorCode.PRODUCT_NOT_FOUND;
579
+ case NoCodesErrorCode.PRODUCTS_LOADING_FAILED:
580
+ return NoCodesErrorCode.PRODUCTS_LOADING_FAILED;
581
+ case NoCodesErrorCode.RATE_LIMIT_EXCEEDED:
582
+ return NoCodesErrorCode.RATE_LIMIT_EXCEEDED;
583
+ case NoCodesErrorCode.SCREEN_LOADING_FAILED:
584
+ return NoCodesErrorCode.SCREEN_LOADING_FAILED;
585
+ case NoCodesErrorCode.SDK_INITIALIZATION_ERROR:
586
+ return NoCodesErrorCode.SDK_INITIALIZATION_ERROR;
587
+ }
588
+ return NoCodesErrorCode.UNKNOWN;
589
+ }
590
+ static convertQonversionErrorCode(code) {
591
+ if (!code) {
592
+ return QonversionErrorCode.UNKNOWN;
593
+ }
594
+ switch (code) {
595
+ case QonversionErrorCode.UNKNOWN:
596
+ return QonversionErrorCode.UNKNOWN;
597
+ case QonversionErrorCode.API_RATE_LIMIT_EXCEEDED:
598
+ return QonversionErrorCode.API_RATE_LIMIT_EXCEEDED;
599
+ case QonversionErrorCode.APPLE_STORE_ERROR:
600
+ return QonversionErrorCode.APPLE_STORE_ERROR;
601
+ case QonversionErrorCode.BACKEND_ERROR:
602
+ return QonversionErrorCode.BACKEND_ERROR;
603
+ case QonversionErrorCode.BILLING_UNAVAILABLE:
604
+ return QonversionErrorCode.BILLING_UNAVAILABLE;
605
+ case QonversionErrorCode.CLIENT_INVALID:
606
+ return QonversionErrorCode.CLIENT_INVALID;
607
+ case QonversionErrorCode.CLOUD_SERVICE_NETWORK_CONNECTION_FAILED:
608
+ return QonversionErrorCode.CLOUD_SERVICE_NETWORK_CONNECTION_FAILED;
609
+ case QonversionErrorCode.CLOUD_SERVICE_PERMISSION_DENIED:
610
+ return QonversionErrorCode.CLOUD_SERVICE_PERMISSION_DENIED;
611
+ case QonversionErrorCode.CLOUD_SERVICE_REVOKED:
612
+ return QonversionErrorCode.CLOUD_SERVICE_REVOKED;
613
+ case QonversionErrorCode.FAILED_TO_RECEIVE_DATA:
614
+ return QonversionErrorCode.FAILED_TO_RECEIVE_DATA;
615
+ case QonversionErrorCode.FEATURE_NOT_SUPPORTED:
616
+ return QonversionErrorCode.FEATURE_NOT_SUPPORTED;
617
+ case QonversionErrorCode.FRAUD_PURCHASE:
618
+ return QonversionErrorCode.FRAUD_PURCHASE;
619
+ case QonversionErrorCode.INCORRECT_REQUEST:
620
+ return QonversionErrorCode.INCORRECT_REQUEST;
621
+ case QonversionErrorCode.INTERNAL_ERROR:
622
+ return QonversionErrorCode.INTERNAL_ERROR;
623
+ case QonversionErrorCode.INVALID_CLIENT_UID:
624
+ return QonversionErrorCode.INVALID_CLIENT_UID;
625
+ case QonversionErrorCode.INVALID_CREDENTIALS:
626
+ return QonversionErrorCode.INVALID_CREDENTIALS;
627
+ case QonversionErrorCode.INVALID_STORE_CREDENTIALS:
628
+ return QonversionErrorCode.INVALID_STORE_CREDENTIALS;
629
+ case QonversionErrorCode.LAUNCH_ERROR:
630
+ return QonversionErrorCode.LAUNCH_ERROR;
631
+ case QonversionErrorCode.NETWORK_CONNECTION_FAILED:
632
+ return QonversionErrorCode.NETWORK_CONNECTION_FAILED;
633
+ case QonversionErrorCode.OFFERINGS_NOT_FOUND:
634
+ return QonversionErrorCode.OFFERINGS_NOT_FOUND;
635
+ case QonversionErrorCode.PAYMENT_INVALID:
636
+ return QonversionErrorCode.PAYMENT_INVALID;
637
+ case QonversionErrorCode.PAYMENT_NOT_ALLOWED:
638
+ return QonversionErrorCode.PAYMENT_NOT_ALLOWED;
639
+ case QonversionErrorCode.PLAY_STORE_ERROR:
640
+ return QonversionErrorCode.PLAY_STORE_ERROR;
641
+ case QonversionErrorCode.PRIVACY_ACKNOWLEDGEMENT_REQUIRED:
642
+ return QonversionErrorCode.PRIVACY_ACKNOWLEDGEMENT_REQUIRED;
643
+ case QonversionErrorCode.PRODUCT_ALREADY_OWNED:
644
+ return QonversionErrorCode.PRODUCT_ALREADY_OWNED;
645
+ case QonversionErrorCode.PRODUCT_NOT_FOUND:
646
+ return QonversionErrorCode.PRODUCT_NOT_FOUND;
647
+ case QonversionErrorCode.PRODUCT_NOT_OWNED:
648
+ return QonversionErrorCode.PRODUCT_NOT_OWNED;
649
+ case QonversionErrorCode.PROJECT_CONFIG_ERROR:
650
+ return QonversionErrorCode.PROJECT_CONFIG_ERROR;
651
+ case QonversionErrorCode.PURCHASE_CANCELED:
652
+ return QonversionErrorCode.PURCHASE_CANCELED;
653
+ case QonversionErrorCode.PURCHASE_INVALID:
654
+ return QonversionErrorCode.PURCHASE_INVALID;
655
+ case QonversionErrorCode.PURCHASE_PENDING:
656
+ return QonversionErrorCode.PURCHASE_PENDING;
657
+ case QonversionErrorCode.PURCHASE_UNSPECIFIED:
658
+ return QonversionErrorCode.PURCHASE_UNSPECIFIED;
659
+ case QonversionErrorCode.RECEIPT_VALIDATION_ERROR:
660
+ return QonversionErrorCode.RECEIPT_VALIDATION_ERROR;
661
+ case QonversionErrorCode.REMOTE_CONFIGURATION_NOT_AVAILABLE:
662
+ return QonversionErrorCode.REMOTE_CONFIGURATION_NOT_AVAILABLE;
663
+ case QonversionErrorCode.RESPONSE_PARSING_FAILED:
664
+ return QonversionErrorCode.RESPONSE_PARSING_FAILED;
665
+ case QonversionErrorCode.STORE_PRODUCT_NOT_AVAILABLE:
666
+ return QonversionErrorCode.STORE_PRODUCT_NOT_AVAILABLE;
667
+ case QonversionErrorCode.UNAUTHORIZED_REQUEST_DATA:
668
+ return QonversionErrorCode.UNAUTHORIZED_REQUEST_DATA;
669
+ case QonversionErrorCode.UNKNOWN_CLIENT_PLATFORM:
670
+ return QonversionErrorCode.UNKNOWN_CLIENT_PLATFORM;
671
+ }
672
+ return QonversionErrorCode.UNKNOWN;
673
+ }
674
+ }
675
+ export default Mapper;
676
+ //# sourceMappingURL=Mapper.js.map