react-native-iap 15.6.2 → 16.0.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 (241) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +34 -182
  2. package/android/src/main/java/com/margelo/nitro/iap/ProductSerialization.kt +0 -69
  3. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +0 -13
  4. package/ios/HybridRnIap.swift +30 -95
  5. package/ios/RnIapHelper.swift +37 -48
  6. package/ios/RnIapLog.swift +0 -11
  7. package/lib/module/hooks/useIAP.js +1 -11
  8. package/lib/module/hooks/useIAP.js.map +1 -1
  9. package/lib/module/index.js +45 -379
  10. package/lib/module/index.js.map +1 -1
  11. package/lib/module/index.kepler.js +7 -82
  12. package/lib/module/index.kepler.js.map +1 -1
  13. package/lib/module/types.js +5 -57
  14. package/lib/module/types.js.map +1 -1
  15. package/lib/module/utils/errorMapping.js +13 -21
  16. package/lib/module/utils/errorMapping.js.map +1 -1
  17. package/lib/module/utils/type-bridge.js +39 -77
  18. package/lib/module/utils/type-bridge.js.map +1 -1
  19. package/lib/module/utils.js +5 -1
  20. package/lib/module/utils.js.map +1 -1
  21. package/lib/module/vega-adapter.js +10 -48
  22. package/lib/module/vega-adapter.js.map +1 -1
  23. package/lib/typescript/src/hooks/useIAP.d.ts +1 -49
  24. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  25. package/lib/typescript/src/index.d.ts +6 -175
  26. package/lib/typescript/src/index.d.ts.map +1 -1
  27. package/lib/typescript/src/index.kepler.d.ts +2 -54
  28. package/lib/typescript/src/index.kepler.d.ts.map +1 -1
  29. package/lib/typescript/src/specs/RnIap.nitro.d.ts +32 -173
  30. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  31. package/lib/typescript/src/types.d.ts +76 -284
  32. package/lib/typescript/src/types.d.ts.map +1 -1
  33. package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
  34. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  35. package/lib/typescript/src/utils.d.ts.map +1 -1
  36. package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
  37. package/nitrogen/generated/android/NitroIap+autolinking.cmake +5 -12
  38. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +0 -22
  39. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +0 -2
  40. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +38 -189
  41. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +2 -9
  42. package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +1 -7
  43. package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +1 -5
  44. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidType.hpp +3 -3
  45. package/nitrogen/generated/android/c++/JNitroProduct.hpp +5 -39
  46. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +25 -7
  47. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +1 -9
  48. package/nitrogen/generated/android/c++/{JNitroReceiptValidationAppleOptions.hpp → JNitroPurchaseVerificationAppleOptions.hpp} +10 -10
  49. package/nitrogen/generated/android/c++/{JNitroReceiptValidationGoogleOptions.hpp → JNitroPurchaseVerificationGoogleOptions.hpp} +10 -10
  50. package/nitrogen/generated/android/c++/{JNitroReceiptValidationHorizonOptions.hpp → JNitroPurchaseVerificationHorizonOptions.hpp} +10 -10
  51. package/nitrogen/generated/android/c++/JNitroPurchaseVerificationParams.hpp +79 -0
  52. package/nitrogen/generated/android/c++/{JNitroReceiptValidationResultAndroid.hpp → JNitroPurchaseVerificationResultAndroid.hpp} +10 -10
  53. package/nitrogen/generated/android/c++/{JNitroReceiptValidationResultIOS.hpp → JNitroPurchaseVerificationResultIOS.hpp} +10 -12
  54. package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +19 -3
  55. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +1 -6
  56. package/nitrogen/generated/android/c++/JProductType.hpp +3 -3
  57. package/nitrogen/generated/android/c++/JPurchase.hpp +0 -2
  58. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +1 -7
  59. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +25 -7
  60. package/nitrogen/generated/android/c++/JPurchaseVerificationProvider.hpp +3 -3
  61. package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +19 -3
  62. package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +0 -2
  63. package/nitrogen/generated/android/c++/JVariant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid.cpp +26 -0
  64. package/nitrogen/generated/android/c++/{JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp → JVariant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid.hpp} +26 -28
  65. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +1 -3
  66. package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.hpp +0 -22
  67. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.hpp +0 -2
  68. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationAppleOptions.cpp +26 -0
  69. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationAppleOptions.hpp +72 -0
  70. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationGoogleOptions.cpp +26 -0
  71. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationGoogleOptions.hpp +74 -0
  72. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationHorizonOptions.cpp +26 -0
  73. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchaseVerificationHorizonOptions.hpp +72 -0
  74. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +0 -1
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +2 -30
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +3 -8
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +2 -7
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidType.kt +1 -1
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +5 -20
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +32 -7
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +3 -13
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationAppleOptions.kt → NitroPurchaseVerificationAppleOptions.kt} +6 -6
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationGoogleOptions.kt → NitroPurchaseVerificationGoogleOptions.kt} +6 -6
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationHorizonOptions.kt → NitroPurchaseVerificationHorizonOptions.kt} +6 -6
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationParams.kt → NitroPurchaseVerificationParams.kt} +9 -9
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationResultAndroid.kt → NitroPurchaseVerificationResultAndroid.kt} +6 -6
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroReceiptValidationResultIOS.kt → NitroPurchaseVerificationResultIOS.kt} +6 -6
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +24 -4
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +2 -7
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ProductType.kt +2 -2
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +2 -7
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +30 -5
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseVerificationProvider.kt +2 -2
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +24 -4
  95. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid.kt +62 -0
  96. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{Variant_NullType_NitroReceiptValidationGoogleOptions.kt → Variant_NullType_NitroPurchaseVerificationAppleOptions.kt} +9 -9
  97. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.kt → Variant_NullType_NitroPurchaseVerificationGoogleOptions.kt} +9 -9
  98. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{Variant_NullType_NitroReceiptValidationAppleOptions.kt → Variant_NullType_NitroPurchaseVerificationHorizonOptions.kt} +9 -9
  99. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +16 -16
  100. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +212 -570
  101. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +18 -42
  102. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +21 -101
  103. package/nitrogen/generated/ios/swift/Func_void_std__variant_NitroPurchaseVerificationResultIOS__NitroPurchaseVerificationResultAndroid_.swift +58 -0
  104. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +2 -9
  105. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +22 -181
  106. package/nitrogen/generated/ios/swift/InitConnectionConfig.swift +2 -13
  107. package/nitrogen/generated/ios/swift/NitroActiveSubscription.swift +1 -38
  108. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesAndroidType.swift +4 -4
  109. package/nitrogen/generated/ios/swift/NitroProduct.swift +5 -122
  110. package/nitrogen/generated/ios/swift/NitroPurchase.swift +224 -7
  111. package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +1 -75
  112. package/nitrogen/generated/ios/swift/{NitroReceiptValidationAppleOptions.swift → NitroPurchaseVerificationAppleOptions.swift} +5 -5
  113. package/nitrogen/generated/ios/swift/{NitroReceiptValidationGoogleOptions.swift → NitroPurchaseVerificationGoogleOptions.swift} +5 -5
  114. package/nitrogen/generated/ios/swift/{NitroReceiptValidationHorizonOptions.swift → NitroPurchaseVerificationHorizonOptions.swift} +5 -5
  115. package/nitrogen/generated/ios/swift/{NitroReceiptValidationParams.swift → NitroPurchaseVerificationParams.swift} +36 -36
  116. package/nitrogen/generated/ios/swift/{NitroReceiptValidationResultAndroid.swift → NitroPurchaseVerificationResultAndroid.swift} +5 -5
  117. package/nitrogen/generated/ios/swift/{NitroReceiptValidationResultIOS.swift → NitroPurchaseVerificationResultIOS.swift} +5 -5
  118. package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +149 -1
  119. package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +1 -38
  120. package/nitrogen/generated/ios/swift/ProductType.swift +4 -4
  121. package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +2 -7
  122. package/nitrogen/generated/ios/swift/PurchaseIOS.swift +221 -4
  123. package/nitrogen/generated/ios/swift/PurchaseVerificationProvider.swift +4 -4
  124. package/nitrogen/generated/ios/swift/RenewalInfoIOS.swift +150 -2
  125. package/nitrogen/generated/ios/swift/{Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift → Variant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid.swift} +5 -5
  126. package/nitrogen/generated/ios/swift/{Variant_NullType_NitroLimitedQuantityInfoAndroid.swift → Variant_NullType_NitroPurchaseVerificationAppleOptions.swift} +4 -4
  127. package/nitrogen/generated/ios/swift/{Variant_NullType_NitroReceiptValidationAppleOptions.swift → Variant_NullType_NitroPurchaseVerificationGoogleOptions.swift} +4 -4
  128. package/nitrogen/generated/ios/swift/{Variant_NullType_NitroPreorderDetailsAndroid.swift → Variant_NullType_NitroPurchaseVerificationHorizonOptions.swift} +4 -4
  129. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +1 -8
  130. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +11 -18
  131. package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +2 -9
  132. package/nitrogen/generated/shared/c++/NitroActiveSubscription.hpp +1 -5
  133. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidType.hpp +4 -4
  134. package/nitrogen/generated/shared/c++/NitroProduct.hpp +6 -22
  135. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +25 -8
  136. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +2 -10
  137. package/nitrogen/generated/shared/c++/{NitroReceiptValidationAppleOptions.hpp → NitroPurchaseVerificationAppleOptions.hpp} +11 -11
  138. package/nitrogen/generated/shared/c++/{NitroReceiptValidationGoogleOptions.hpp → NitroPurchaseVerificationGoogleOptions.hpp} +11 -11
  139. package/nitrogen/generated/shared/c++/{NitroReceiptValidationHorizonOptions.hpp → NitroPurchaseVerificationHorizonOptions.hpp} +11 -11
  140. package/nitrogen/generated/shared/c++/NitroPurchaseVerificationParams.hpp +101 -0
  141. package/nitrogen/generated/shared/c++/{NitroReceiptValidationResultAndroid.hpp → NitroPurchaseVerificationResultAndroid.hpp} +11 -11
  142. package/nitrogen/generated/shared/c++/{NitroReceiptValidationResultIOS.hpp → NitroPurchaseVerificationResultIOS.hpp} +11 -11
  143. package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +18 -2
  144. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +1 -5
  145. package/nitrogen/generated/shared/c++/ProductType.hpp +5 -5
  146. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +1 -8
  147. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +25 -8
  148. package/nitrogen/generated/shared/c++/PurchaseVerificationProvider.hpp +5 -5
  149. package/nitrogen/generated/shared/c++/RenewalInfoIOS.hpp +18 -2
  150. package/openiap-versions.json +3 -3
  151. package/package.json +1 -1
  152. package/src/hooks/useIAP.ts +0 -76
  153. package/src/index.kepler.ts +11 -96
  154. package/src/index.ts +60 -457
  155. package/src/specs/RnIap.nitro.ts +35 -196
  156. package/src/types.ts +77 -295
  157. package/src/utils/errorMapping.ts +21 -20
  158. package/src/utils/type-bridge.ts +53 -90
  159. package/src/utils.ts +8 -0
  160. package/src/vega-adapter.ts +11 -59
  161. package/lib/module/utils/deprecation.js +0 -15
  162. package/lib/module/utils/deprecation.js.map +0 -1
  163. package/lib/module/utils/platform-request.js +0 -28
  164. package/lib/module/utils/platform-request.js.map +0 -1
  165. package/lib/typescript/src/utils/deprecation.d.ts +0 -3
  166. package/lib/typescript/src/utils/deprecation.d.ts.map +0 -1
  167. package/lib/typescript/src/utils/platform-request.d.ts +0 -12
  168. package/lib/typescript/src/utils/platform-request.d.ts.map +0 -1
  169. package/nitrogen/generated/android/c++/JAlternativeBillingModeAndroid.hpp +0 -61
  170. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +0 -61
  171. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +0 -69
  172. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +0 -61
  173. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +0 -148
  174. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +0 -61
  175. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +0 -79
  176. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +0 -66
  177. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +0 -61
  178. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.cpp +0 -26
  179. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.cpp +0 -35
  180. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.hpp +0 -103
  181. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.cpp +0 -26
  182. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.hpp +0 -72
  183. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.cpp +0 -26
  184. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.hpp +0 -77
  185. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.cpp +0 -26
  186. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.hpp +0 -71
  187. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.cpp +0 -26
  188. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.hpp +0 -72
  189. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.cpp +0 -26
  190. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.hpp +0 -72
  191. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.cpp +0 -26
  192. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.hpp +0 -74
  193. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.cpp +0 -26
  194. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.hpp +0 -72
  195. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.cpp +0 -26
  196. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.hpp +0 -74
  197. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.cpp +0 -26
  198. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.hpp +0 -72
  199. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AlternativeBillingModeAndroid.kt +0 -24
  200. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +0 -56
  201. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +0 -56
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +0 -56
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +0 -111
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +0 -56
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +0 -56
  206. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +0 -56
  207. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +0 -62
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountAmountAndroid.kt +0 -62
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountDisplayInfoAndroid.kt +0 -62
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroLimitedQuantityInfoAndroid.kt +0 -62
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPreorderDetailsAndroid.kt +0 -62
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationHorizonOptions.kt +0 -62
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRentalDetailsAndroid.kt +0 -62
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroValidTimeWindowAndroid.kt +0 -62
  215. package/nitrogen/generated/ios/swift/AlternativeBillingModeAndroid.swift +0 -44
  216. package/nitrogen/generated/ios/swift/Func_void_std__variant_NitroReceiptValidationResultIOS__NitroReceiptValidationResultAndroid_.swift +0 -58
  217. package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +0 -34
  218. package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +0 -98
  219. package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +0 -34
  220. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +0 -351
  221. package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +0 -34
  222. package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +0 -66
  223. package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +0 -34
  224. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +0 -30
  225. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +0 -30
  226. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +0 -30
  227. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +0 -30
  228. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +0 -30
  229. package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +0 -30
  230. package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +0 -30
  231. package/nitrogen/generated/shared/c++/AlternativeBillingModeAndroid.hpp +0 -80
  232. package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +0 -87
  233. package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +0 -91
  234. package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +0 -87
  235. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +0 -149
  236. package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +0 -87
  237. package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +0 -101
  238. package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +0 -90
  239. package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +0 -87
  240. package/src/utils/deprecation.ts +0 -16
  241. package/src/utils/platform-request.ts +0 -37
@@ -16,7 +16,6 @@ import dev.hyo.openiap.ProductAndroid
16
16
  import dev.hyo.openiap.ProductQueryType
17
17
  import dev.hyo.openiap.ProductRequest
18
18
  import dev.hyo.openiap.ProductSubscriptionAndroid
19
- import dev.hyo.openiap.ProductSubscriptionAndroidOfferDetails
20
19
  import dev.hyo.openiap.ProductCommon
21
20
  import dev.hyo.openiap.ProductType as OpenIapProductType
22
21
  import dev.hyo.openiap.Purchase as OpenIapPurchase
@@ -326,11 +325,6 @@ class HybridRnIap : HybridRnIapSpec() {
326
325
  // which handles enabling the billing program internally
327
326
  val openIapConfig = configValue?.let {
328
327
  OpenIapInitConnectionConfig(
329
- alternativeBillingModeAndroid = when (it.alternativeBillingModeAndroid) {
330
- com.margelo.nitro.iap.AlternativeBillingModeAndroid.USER_CHOICE -> dev.hyo.openiap.AlternativeBillingModeAndroid.UserChoice
331
- com.margelo.nitro.iap.AlternativeBillingModeAndroid.ALTERNATIVE_ONLY -> dev.hyo.openiap.AlternativeBillingModeAndroid.AlternativeOnly
332
- else -> null
333
- },
334
328
  enableBillingProgramAndroid = configValue.enableBillingProgramAndroid?.let { program ->
335
329
  mapBillingProgram(program)
336
330
  },
@@ -445,13 +439,6 @@ class HybridRnIap : HybridRnIapSpec() {
445
439
 
446
440
  ensureConnection()
447
441
 
448
- if (type.trim().lowercase(Locale.US) == "inapp") {
449
- RnIapLog.deprecation(
450
- "product-type.inapp",
451
- "fetchProducts received legacy type 'inapp'; forwarding as 'in-app'. " +
452
- "The alias will be removed in react-native-iap 16.0.0."
453
- )
454
- }
455
442
  val queryType = parseProductQueryType(type)
456
443
  val skusList = skus.toList()
457
444
 
@@ -503,25 +490,13 @@ class HybridRnIap : HybridRnIapSpec() {
503
490
  val defaultResult = RequestPurchaseResult.create(emptyArray<com.margelo.nitro.iap.Purchase>())
504
491
 
505
492
  val androidRequest =
506
- if (request.google != null) {
507
- (request.google as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
508
- } else {
509
- (request.android as? Variant_NullType_NitroRequestPurchaseAndroid.Second)
510
- ?.value
511
- ?.also {
512
- RnIapLog.deprecation(
513
- "request-purchase.android",
514
- "`request.android` is deprecated and will be removed in react-native-iap 16.0.0. Use `request.google` instead."
515
- )
516
- }
517
- }
493
+ (request.google as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
518
494
 
519
495
  RnIapLog.payload(
520
496
  "requestPurchase",
521
497
  mapOf(
522
498
  "androidSkus" to (androidRequest?.skus?.toList() ?: emptyList()),
523
- "hasApple" to (request.apple != null),
524
- "hasLegacyIOS" to (request.ios != null)
499
+ "hasApple" to (request.apple != null)
525
500
  )
526
501
  )
527
502
 
@@ -576,7 +551,7 @@ class HybridRnIap : HybridRnIapSpec() {
576
551
  }
577
552
  }
578
553
 
579
- val typeHint = androidRequest.skus.firstOrNull()?.let { productTypeBySku[it] } ?: "inapp"
554
+ val typeHint = androidRequest.skus.firstOrNull()?.let { productTypeBySku[it] } ?: "in-app"
580
555
  val queryType = parseProductQueryType(typeHint)
581
556
 
582
557
  val subscriptionOffers = (androidRequest.subscriptionOffers as? Variant_NullType_Array_AndroidSubscriptionOfferInput_.Second)?.value
@@ -599,8 +574,6 @@ class HybridRnIap : HybridRnIapSpec() {
599
574
 
600
575
  val requestProps = when (queryType) {
601
576
  ProductQueryType.Subs -> {
602
- val replacementMode = androidRequest.replacementMode.unwrapDouble()?.toInt()
603
-
604
577
  // Parse subscriptionProductReplacementParams (8.1.0+)
605
578
  val subscriptionProductReplacementParams = (androidRequest.subscriptionProductReplacementParams as? Variant_NullType_SubscriptionProductReplacementParamsAndroid.Second)?.value?.let { params ->
606
579
  OpenIapSubscriptionProductReplacementParams(
@@ -616,7 +589,6 @@ class HybridRnIap : HybridRnIapSpec() {
616
589
  developerBillingOption = developerBillingOption,
617
590
  originalExternalTransactionId = androidRequest.originalExternalTransactionId.unwrapString(),
618
591
  purchaseToken = androidRequest.purchaseToken.unwrapString(),
619
- replacementMode = replacementMode,
620
592
  skus = androidRequest.skus.toList(),
621
593
  subscriptionOffers = normalizedOffers,
622
594
  subscriptionProductReplacementParams = subscriptionProductReplacementParams
@@ -697,14 +669,6 @@ class HybridRnIap : HybridRnIapSpec() {
697
669
 
698
670
  val typeName = androidOptions?.type?.name?.lowercase(java.util.Locale.ROOT)
699
671
  val normalizedType = when (typeName) {
700
- "inapp" -> {
701
- RnIapLog.deprecation(
702
- "product-type.inapp",
703
- "getAvailablePurchases received legacy type 'inapp'; forwarding as 'in-app'. " +
704
- "The alias will be removed in react-native-iap 16.0.0."
705
- )
706
- "in-app"
707
- }
708
672
  "in-app", "subs" -> typeName
709
673
  else -> null
710
674
  }
@@ -767,7 +731,6 @@ class HybridRnIap : HybridRnIapSpec() {
767
731
  // iOS specific fields (null on Android)
768
732
  expirationDateIOS = null,
769
733
  environmentIOS = null,
770
- willExpireSoon = null,
771
734
  daysUntilExpirationIOS = null,
772
735
  renewalInfoIOS = null
773
736
  )
@@ -1055,7 +1018,7 @@ class HybridRnIap : HybridRnIapSpec() {
1055
1018
  private fun sendPurchaseUpdate(purchase: NitroPurchase) {
1056
1019
  RnIapLog.result(
1057
1020
  "sendPurchaseUpdate",
1058
- mapOf("productId" to purchase.productId, "platform" to purchase.platform)
1021
+ mapOf("productId" to purchase.productId, "store" to purchase.store)
1059
1022
  )
1060
1023
  val snapshot = synchronized(purchaseUpdatedListeners) {
1061
1024
  if (pendingPurchaseUpdates.enqueueIfNeeded(purchaseUpdatedListeners.isNotEmpty(), purchase)) {
@@ -1112,13 +1075,8 @@ class HybridRnIap : HybridRnIapSpec() {
1112
1075
  }
1113
1076
 
1114
1077
  private fun parseProductQueryType(rawType: String): ProductQueryType {
1115
- val normalized = rawType
1116
- .trim()
1117
- .lowercase(Locale.US)
1118
- .replace("_", "")
1119
- .replace("-", "")
1120
- return when (normalized) {
1121
- "subs", "subscription", "subscriptions" -> ProductQueryType.Subs
1078
+ return when (rawType.trim().lowercase(Locale.US)) {
1079
+ "subs" -> ProductQueryType.Subs
1122
1080
  "all" -> ProductQueryType.All
1123
1081
  else -> ProductQueryType.InApp
1124
1082
  }
@@ -1151,10 +1109,6 @@ class HybridRnIap : HybridRnIapSpec() {
1151
1109
  else -> emptyList()
1152
1110
  }
1153
1111
 
1154
- private fun serializeSubscriptionOffers(offers: List<ProductSubscriptionAndroidOfferDetails>): String {
1155
- return JSONArray(legacySubscriptionOfferMaps(offers)).toString()
1156
- }
1157
-
1158
1112
  /**
1159
1113
  * Serialize standardized SubscriptionOffer list to JSON string (OpenIAP 1.3.10+)
1160
1114
  */
@@ -1171,21 +1125,15 @@ class HybridRnIap : HybridRnIapSpec() {
1171
1125
 
1172
1126
  private fun convertToNitroProduct(product: ProductCommon): NitroProduct {
1173
1127
  val subscriptionOffers = when (product) {
1174
- is ProductSubscriptionAndroid -> product.subscriptionOfferDetailsAndroid.orEmpty()
1175
- is ProductAndroid -> product.subscriptionOfferDetailsAndroid.orEmpty()
1128
+ is ProductSubscriptionAndroid -> product.subscriptionOffers
1129
+ is ProductAndroid -> product.subscriptionOffers.orEmpty()
1176
1130
  else -> emptyList()
1177
1131
  }
1178
- val oneTimeOffers = when (product) {
1179
- is ProductSubscriptionAndroid -> product.oneTimePurchaseOfferDetailsAndroid
1180
- is ProductAndroid -> product.oneTimePurchaseOfferDetailsAndroid
1181
- else -> null
1132
+ val discountOffers = when (product) {
1133
+ is ProductAndroid -> product.discountOffers.orEmpty()
1134
+ else -> emptyList()
1182
1135
  }
1183
1136
 
1184
- val subscriptionOffersJson = subscriptionOffers.takeIf { it.isNotEmpty() }?.let { serializeSubscriptionOffers(it) }
1185
- val oneTimeOffersNitro = oneTimeOffers
1186
- ?.map { it.toNitroOneTimePurchaseOfferDetail() }
1187
- ?.toTypedArray()
1188
-
1189
1137
  var originalPriceAndroid: String? = null
1190
1138
  var originalPriceAmountMicrosAndroid: Double? = null
1191
1139
  var introductoryPriceValueAndroid: Double? = null
@@ -1195,12 +1143,14 @@ class HybridRnIap : HybridRnIapSpec() {
1195
1143
  var freeTrialPeriodAndroid: String? = null
1196
1144
 
1197
1145
  if (product.type == OpenIapProductType.InApp) {
1198
- oneTimeOffers?.firstOrNull()?.let { otp ->
1199
- originalPriceAndroid = otp.formattedPrice
1200
- originalPriceAmountMicrosAndroid = otp.priceAmountMicros.toDoubleOrNull()
1146
+ discountOffers.firstOrNull()?.let { offer ->
1147
+ originalPriceAndroid = product.displayPrice
1148
+ originalPriceAmountMicrosAndroid =
1149
+ offer.fullPriceMicrosAndroid?.toDoubleOrNull()
1150
+ ?: product.price?.times(1_000_000)
1201
1151
  }
1202
1152
  } else {
1203
- val phases = subscriptionOffers.firstOrNull()?.pricingPhases?.pricingPhaseList.orEmpty()
1153
+ val phases = subscriptionOffers.firstOrNull()?.pricingPhasesAndroid?.pricingPhaseList.orEmpty()
1204
1154
  if (phases.isNotEmpty()) {
1205
1155
  val basePhase = phases.firstOrNull { it.recurrenceMode == 2 } ?: phases.last()
1206
1156
  originalPriceAndroid = basePhase.formattedPrice
@@ -1248,7 +1198,6 @@ class HybridRnIap : HybridRnIapSpec() {
1248
1198
 
1249
1199
  // Serialize standardized cross-platform discountOffers (OpenIAP 1.3.10+)
1250
1200
  val standardizedDiscountOffers = when (product) {
1251
- is ProductSubscriptionAndroid -> product.discountOffers
1252
1201
  is ProductAndroid -> product.discountOffers
1253
1202
  else -> null
1254
1203
  }
@@ -1271,8 +1220,7 @@ class HybridRnIap : HybridRnIapSpec() {
1271
1220
  isFamilyShareableIOS = null,
1272
1221
  jsonRepresentationIOS = null,
1273
1222
  pricingTermsIOS = null,
1274
- subscriptionInfoIOS = null,
1275
- discountsIOS = null,
1223
+ bundledSubscriptionsIOS = null,
1276
1224
  subscriptionPeriodUnitIOS = null,
1277
1225
  subscriptionPeriodNumberIOS = null,
1278
1226
  introductoryPriceIOS = null,
@@ -1291,8 +1239,6 @@ class HybridRnIap : HybridRnIapSpec() {
1291
1239
  introductoryPricePeriodAndroid = introductoryPricePeriodAndroid.wrapVariant(),
1292
1240
  subscriptionPeriodAndroid = subscriptionPeriodAndroid.wrapVariant(),
1293
1241
  freeTrialPeriodAndroid = freeTrialPeriodAndroid.wrapVariant(),
1294
- subscriptionOfferDetailsAndroid = subscriptionOffersJson.wrapVariant(),
1295
- oneTimePurchaseOfferDetailsAndroid = oneTimeOffersNitro?.let { Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.Second(it) },
1296
1242
  productStatusAndroid = productStatusAndroid.wrapVariant()
1297
1243
  )
1298
1244
  }
@@ -1314,17 +1260,21 @@ class HybridRnIap : HybridRnIapSpec() {
1314
1260
  purchaseToken = purchase.purchaseToken.wrapVariant(),
1315
1261
  currentPlanId = purchase.currentPlanId.wrapVariant(),
1316
1262
  ids = purchase.ids.wrapVariant(),
1317
- platform = IapPlatform.ANDROID,
1318
1263
  store = mapIapStore(purchase.store),
1319
1264
  quantity = purchase.quantity.toDouble(),
1320
1265
  purchaseState = mapPurchaseState(purchase.purchaseState),
1321
1266
  isAutoRenewing = purchase.isAutoRenewing,
1322
1267
  advancedCommerceInfoIOS = null,
1323
1268
  billingPlanTypeIOS = null,
1269
+ bundleOriginalTransactionIdIOS = null,
1270
+ bundleProductIdIOS = null,
1271
+ bundleSubscriptionGroupIdIOS = null,
1272
+ bundleTransactionIdIOS = null,
1324
1273
  commitmentInfoIOS = null,
1325
1274
  quantityIOS = null,
1326
1275
  originalTransactionDateIOS = null,
1327
1276
  originalTransactionIdentifierIOS = null,
1277
+ previousOriginalTransactionIdIOS = null,
1328
1278
  appAccountToken = null,
1329
1279
  appBundleIdIOS = null,
1330
1280
  countryCodeIOS = null,
@@ -1339,6 +1289,7 @@ class HybridRnIap : HybridRnIapSpec() {
1339
1289
  reasonStringRepresentationIOS = null,
1340
1290
  revocationDateIOS = null,
1341
1291
  revocationReasonIOS = null,
1292
+ revocationTypeIOS = null,
1342
1293
  storefrontCountryCodeIOS = null,
1343
1294
  subscriptionGroupIdIOS = null,
1344
1295
  transactionReasonIOS = null,
@@ -1379,13 +1330,6 @@ class HybridRnIap : HybridRnIapSpec() {
1379
1330
 
1380
1331
  // Billing error messages handled by OpenIAP
1381
1332
 
1382
- // iOS-specific method - not supported on Android
1383
- override fun getStorefrontIOS(): Promise<String> {
1384
- return Promise.async {
1385
- throw OpenIapException(toErrorJson(OpenIapError.FeatureNotSupported()))
1386
- }
1387
- }
1388
-
1389
1333
  // iOS-specific method - not supported on Android
1390
1334
  override fun getAppTransactionIOS(): Promise<Variant_NullType_String> {
1391
1335
  return Promise.async {
@@ -1417,27 +1361,9 @@ class HybridRnIap : HybridRnIapSpec() {
1417
1361
  }
1418
1362
  }
1419
1363
 
1420
- // iOS-specific method - not supported on Android
1421
- override fun requestPromotedProductIOS(): Promise<Variant_NullType_NitroProduct> {
1422
- return Promise.async {
1423
- // Android doesn't have promoted products like iOS App Store
1424
- // Return null as this feature is iOS-only
1425
- Variant_NullType_NitroProduct.First(NullType.NULL)
1426
- }
1427
- }
1428
-
1429
- override fun buyPromotedProductIOS(): Promise<Boolean> {
1430
- return Promise.async {
1431
- // Android doesn't have promoted products like iOS App Store
1432
- false
1433
- }
1434
- }
1435
-
1436
- override fun presentCodeRedemptionSheetIOS(): Promise<Boolean> {
1364
+ override fun presentCodeRedemptionSheetIOS(): Promise<Variant_NullType_NitroPurchase> {
1437
1365
  return Promise.async {
1438
- // Android doesn't have a code redemption sheet like iOS App Store
1439
- // This is an iOS-only feature, so we return false on Android
1440
- false
1366
+ Variant_NullType_NitroPurchase.First(NullType.NULL)
1441
1367
  }
1442
1368
  }
1443
1369
 
@@ -1471,11 +1397,11 @@ class HybridRnIap : HybridRnIapSpec() {
1471
1397
  }
1472
1398
 
1473
1399
  // Receipt validation - calls OpenIAP's verifyPurchase
1474
- override fun validateReceipt(params: NitroReceiptValidationParams): Promise<Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid> {
1400
+ override fun verifyPurchase(params: NitroPurchaseVerificationParams): Promise<Variant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid> {
1475
1401
  return Promise.async {
1476
1402
  try {
1477
1403
  // For Android, we need the google options to be provided (new platform-specific structure)
1478
- val nitroGoogleOptions = (params.google as? Variant_NullType_NitroReceiptValidationGoogleOptions.Second)?.value
1404
+ val nitroGoogleOptions = (params.google as? Variant_NullType_NitroPurchaseVerificationGoogleOptions.Second)?.value
1479
1405
  ?: throw OpenIapException(toErrorJson(OpenIapError.DeveloperError(), debugMessage = "Missing required parameter: google options"))
1480
1406
 
1481
1407
  // Validate required google fields
@@ -1491,7 +1417,7 @@ class HybridRnIap : HybridRnIapSpec() {
1491
1417
  }
1492
1418
  }
1493
1419
 
1494
- RnIapLog.payload("validateReceipt", mapOf(
1420
+ RnIapLog.payload("verifyPurchase", mapOf(
1495
1421
  "sku" to nitroGoogleOptions.sku,
1496
1422
  "packageName" to nitroGoogleOptions.packageName,
1497
1423
  "isSub" to nitroGoogleOptions.isSub.unwrapBool()
@@ -1516,7 +1442,7 @@ class HybridRnIap : HybridRnIapSpec() {
1516
1442
  val androidResult = verifyResult as? VerifyPurchaseResultAndroid
1517
1443
  ?: throw OpenIapException(toErrorJson(OpenIapError.InvalidPurchaseVerification, debugMessage = "Unexpected result type from verifyPurchase"))
1518
1444
  RnIapLog.result(
1519
- "validateReceipt",
1445
+ "verifyPurchase",
1520
1446
  mapOf(
1521
1447
  "productId" to androidResult.productId,
1522
1448
  "testTransaction" to androidResult.testTransaction
@@ -1524,7 +1450,7 @@ class HybridRnIap : HybridRnIapSpec() {
1524
1450
  )
1525
1451
 
1526
1452
  // Convert OpenIAP result to Nitro result
1527
- val result = NitroReceiptValidationResultAndroid(
1453
+ val result = NitroPurchaseVerificationResultAndroid(
1528
1454
  autoRenewing = androidResult.autoRenewing,
1529
1455
  betaProduct = androidResult.betaProduct,
1530
1456
  cancelDate = androidResult.cancelDate.wrapVariant(),
@@ -1545,13 +1471,13 @@ class HybridRnIap : HybridRnIapSpec() {
1545
1471
  testTransaction = androidResult.testTransaction
1546
1472
  )
1547
1473
 
1548
- Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.Second(result)
1474
+ Variant_NitroPurchaseVerificationResultIOS_NitroPurchaseVerificationResultAndroid.Second(result)
1549
1475
 
1550
1476
  } catch (e: OpenIapException) {
1551
- RnIapLog.failure("validateReceipt", e)
1477
+ RnIapLog.failure("verifyPurchase", e)
1552
1478
  throw e
1553
1479
  } catch (e: Exception) {
1554
- RnIapLog.failure("validateReceipt", e)
1480
+ RnIapLog.failure("verifyPurchase", e)
1555
1481
  val debugMessage = e.message
1556
1482
  val error = OpenIapError.InvalidPurchaseVerification
1557
1483
  throw OpenIapException(
@@ -1713,12 +1639,6 @@ class HybridRnIap : HybridRnIapSpec() {
1713
1639
  }
1714
1640
  }
1715
1641
 
1716
- override fun getReceiptIOS(): Promise<String> {
1717
- return Promise.async {
1718
- throw OpenIapException(toErrorJson(OpenIapError.FeatureNotSupported()))
1719
- }
1720
- }
1721
-
1722
1642
  override fun requestReceiptRefreshIOS(): Promise<String> {
1723
1643
  return Promise.async {
1724
1644
  throw OpenIapException(toErrorJson(OpenIapError.FeatureNotSupported()))
@@ -1737,74 +1657,6 @@ class HybridRnIap : HybridRnIapSpec() {
1737
1657
  }
1738
1658
  }
1739
1659
 
1740
- // -------------------------------------------------------------------------
1741
- // Alternative Billing (Android)
1742
- // -------------------------------------------------------------------------
1743
-
1744
- @Suppress("DEPRECATION")
1745
- override fun checkAlternativeBillingAvailabilityAndroid(): Promise<Boolean> {
1746
- return Promise.async {
1747
- RnIapLog.payload("checkAlternativeBillingAvailabilityAndroid", null)
1748
- try {
1749
- val isAvailable = withContext(Dispatchers.Main) {
1750
- openIap.checkAlternativeBillingAvailability()
1751
- }
1752
- RnIapLog.result("checkAlternativeBillingAvailabilityAndroid", isAvailable)
1753
- isAvailable
1754
- } catch (err: Throwable) {
1755
- RnIapLog.failure("checkAlternativeBillingAvailabilityAndroid", err)
1756
- val errorType = parseOpenIapError(err)
1757
- throw OpenIapException(toErrorJson(errorType, debugMessage = err.message), err)
1758
- }
1759
- }
1760
- }
1761
-
1762
- @Suppress("DEPRECATION")
1763
- override fun showAlternativeBillingDialogAndroid(): Promise<Boolean> {
1764
- return Promise.async {
1765
- RnIapLog.payload("showAlternativeBillingDialogAndroid", null)
1766
- try {
1767
- val activity = context.currentActivity
1768
- ?: throw OpenIapException(toErrorJson(OpenIapError.DeveloperError(), debugMessage = "Activity not available"))
1769
-
1770
- val userAccepted = withContext(Dispatchers.Main) {
1771
- openIap.setActivity(activity)
1772
- openIap.showAlternativeBillingInformationDialog(activity)
1773
- }
1774
- RnIapLog.result("showAlternativeBillingDialogAndroid", userAccepted)
1775
- userAccepted
1776
- } catch (err: Throwable) {
1777
- RnIapLog.failure("showAlternativeBillingDialogAndroid", err)
1778
- val errorType = parseOpenIapError(err)
1779
- throw OpenIapException(toErrorJson(errorType, debugMessage = err.message), err)
1780
- }
1781
- }
1782
- }
1783
-
1784
- @Suppress("DEPRECATION")
1785
- override fun createAlternativeBillingTokenAndroid(sku: Variant_NullType_String?): Promise<Variant_NullType_String> {
1786
- return Promise.async {
1787
- val skuValue = sku.unwrapString()
1788
- RnIapLog.payload("createAlternativeBillingTokenAndroid", mapOf("sku" to skuValue))
1789
- try {
1790
- // Note: OpenIapModule.createAlternativeBillingReportingToken() doesn't accept sku parameter
1791
- // The sku parameter is ignored for now - may be used in future versions
1792
- val token = withContext(Dispatchers.Main) {
1793
- openIap.createAlternativeBillingReportingToken()
1794
- }
1795
- RnIapLog.result(
1796
- "createAlternativeBillingTokenAndroid",
1797
- if (token.isNullOrBlank()) "<empty>" else "<token>"
1798
- )
1799
- token?.let { Variant_NullType_String.Second(it) } ?: Variant_NullType_String.First(NullType.NULL)
1800
- } catch (err: Throwable) {
1801
- RnIapLog.failure("createAlternativeBillingTokenAndroid", err)
1802
- val errorType = parseOpenIapError(err)
1803
- throw OpenIapException(toErrorJson(errorType, debugMessage = err.message), err)
1804
- }
1805
- }
1806
- }
1807
-
1808
1660
  // User Choice Billing listener
1809
1661
  override fun addUserChoiceBillingListenerAndroid(listener: (UserChoiceBillingDetails) -> Unit) {
1810
1662
  synchronized(userChoiceBillingListenersAndroid) {
@@ -1,15 +1,9 @@
1
1
  package com.margelo.nitro.iap
2
2
 
3
3
  import dev.hyo.openiap.DiscountOffer
4
- import dev.hyo.openiap.ProductAndroidOneTimePurchaseOfferDetail
5
4
  import dev.hyo.openiap.ProductCommon
6
- import dev.hyo.openiap.ProductSubscriptionAndroidOfferDetails
7
5
  import dev.hyo.openiap.SubscriptionOffer
8
6
 
9
- internal fun legacySubscriptionOfferMaps(
10
- offers: List<ProductSubscriptionAndroidOfferDetails>,
11
- ): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
12
-
13
7
  internal fun subscriptionOfferMaps(
14
8
  offers: List<SubscriptionOffer>,
15
9
  ): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
@@ -18,69 +12,6 @@ internal fun discountOfferMaps(
18
12
  offers: List<DiscountOffer>,
19
13
  ): List<Map<String, Any?>> = offers.map { it.toJson().withoutTypeNames() }
20
14
 
21
- internal fun ProductAndroidOneTimePurchaseOfferDetail.toNitroOneTimePurchaseOfferDetail(): NitroOneTimePurchaseOfferDetail =
22
- NitroOneTimePurchaseOfferDetail(
23
- formattedPrice = formattedPrice,
24
- priceAmountMicros = priceAmountMicros,
25
- priceCurrencyCode = priceCurrencyCode,
26
- offerId = offerId?.let { Variant_NullType_String.Second(it) },
27
- offerToken = offerToken,
28
- offerTags = offerTags.toTypedArray(),
29
- fullPriceMicros = fullPriceMicros?.let { Variant_NullType_String.Second(it) },
30
- purchaseOptionId = purchaseOptionId?.let { Variant_NullType_String.Second(it) },
31
- discountDisplayInfo = discountDisplayInfo?.let { discount ->
32
- Variant_NullType_NitroDiscountDisplayInfoAndroid.Second(
33
- NitroDiscountDisplayInfoAndroid(
34
- percentageDiscount = discount.percentageDiscount?.toDouble()?.let {
35
- Variant_NullType_Double.Second(it)
36
- },
37
- discountAmount = discount.discountAmount?.let { amount ->
38
- Variant_NullType_NitroDiscountAmountAndroid.Second(
39
- NitroDiscountAmountAndroid(
40
- discountAmountMicros = amount.discountAmountMicros,
41
- formattedDiscountAmount = amount.formattedDiscountAmount,
42
- )
43
- )
44
- },
45
- )
46
- )
47
- },
48
- validTimeWindow = validTimeWindow?.let { window ->
49
- Variant_NullType_NitroValidTimeWindowAndroid.Second(
50
- NitroValidTimeWindowAndroid(
51
- startTimeMillis = window.startTimeMillis,
52
- endTimeMillis = window.endTimeMillis,
53
- )
54
- )
55
- },
56
- limitedQuantityInfo = limitedQuantityInfo?.let { info ->
57
- Variant_NullType_NitroLimitedQuantityInfoAndroid.Second(
58
- NitroLimitedQuantityInfoAndroid(
59
- maximumQuantity = info.maximumQuantity.toDouble(),
60
- remainingQuantity = info.remainingQuantity.toDouble(),
61
- )
62
- )
63
- },
64
- preorderDetailsAndroid = preorderDetailsAndroid?.let { preorder ->
65
- Variant_NullType_NitroPreorderDetailsAndroid.Second(
66
- NitroPreorderDetailsAndroid(
67
- preorderPresaleEndTimeMillis = preorder.preorderPresaleEndTimeMillis,
68
- preorderReleaseTimeMillis = preorder.preorderReleaseTimeMillis,
69
- )
70
- )
71
- },
72
- rentalDetailsAndroid = rentalDetailsAndroid?.let { rental ->
73
- Variant_NullType_NitroRentalDetailsAndroid.Second(
74
- NitroRentalDetailsAndroid(
75
- rentalExpirationPeriod = rental.rentalExpirationPeriod?.let {
76
- Variant_NullType_String.Second(it)
77
- },
78
- rentalPeriod = rental.rentalPeriod,
79
- )
80
- )
81
- },
82
- )
83
-
84
15
  internal fun ProductCommon.nitroDebugDescription(): Variant_NullType_String? =
85
16
  debugDescription?.let { Variant_NullType_String.Second(it) }
86
17
 
@@ -3,14 +3,10 @@ package com.margelo.nitro.iap
3
3
  import android.util.Log
4
4
  import org.json.JSONArray
5
5
  import org.json.JSONObject
6
- import java.util.Collections
7
6
  import java.util.Locale
8
- import java.util.concurrent.ConcurrentHashMap
9
7
 
10
8
  internal object RnIapLog {
11
9
  private const val TAG = "RnIap"
12
- private val emittedDeprecations: MutableSet<String> =
13
- Collections.newSetFromMap(ConcurrentHashMap())
14
10
  private val SENSITIVE_KEY_FRAGMENTS = setOf(
15
11
  "token",
16
12
  "apikey",
@@ -49,15 +45,6 @@ internal object RnIapLog {
49
45
  Log.w(TAG, message)
50
46
  }
51
47
 
52
- fun deprecation(
53
- key: String,
54
- message: String,
55
- ) {
56
- if (emittedDeprecations.add(key)) {
57
- Log.w(TAG, message)
58
- }
59
- }
60
-
61
48
  private fun stringify(value: Any?): String {
62
49
  val sanitized = sanitize(value) ?: return "null"
63
50
  return when (sanitized) {