react-native-iap 14.7.14 → 14.7.15

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 (521) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +151 -120
  2. package/ios/HybridRnIap.swift +109 -68
  3. package/ios/RnIapHelper.swift +256 -165
  4. package/nitrogen/generated/android/NitroIap+autolinking.cmake +40 -1
  5. package/nitrogen/generated/android/NitroIap+autolinking.gradle +1 -1
  6. package/nitrogen/generated/android/NitroIapOnLoad.cpp +32 -22
  7. package/nitrogen/generated/android/NitroIapOnLoad.hpp +14 -5
  8. package/nitrogen/generated/android/c++/JAlternativeBillingModeAndroid.hpp +4 -5
  9. package/nitrogen/generated/android/c++/JAndroidSubscriptionOfferInput.hpp +1 -1
  10. package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +6 -7
  11. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +4 -5
  13. package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +4 -5
  14. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeResultIOS.hpp +10 -6
  15. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeTypeIOS.hpp +3 -4
  16. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenResultIOS.hpp +14 -10
  17. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenTypeIOS.hpp +3 -4
  18. package/nitrogen/generated/android/c++/JExternalPurchaseLinkResultIOS.hpp +10 -6
  19. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeAction.hpp +3 -4
  20. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeResultIOS.hpp +14 -10
  21. package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +3 -2
  22. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +16 -2
  23. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +10 -2
  24. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +3 -2
  25. package/nitrogen/generated/android/c++/JFunc_void_UserChoiceBillingDetails.hpp +3 -2
  26. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +168 -124
  27. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +31 -32
  28. package/nitrogen/generated/android/c++/JIapPlatform.hpp +3 -4
  29. package/nitrogen/generated/android/c++/JIapStore.hpp +5 -6
  30. package/nitrogen/generated/android/c++/JIapkitPurchaseState.hpp +10 -11
  31. package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +1 -1
  32. package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +48 -41
  33. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +10 -6
  34. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidType.hpp +3 -4
  35. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +26 -22
  36. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +14 -8
  37. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +1 -1
  38. package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +1 -1
  39. package/nitrogen/generated/android/c++/JNitroDeepLinkOptionsAndroid.hpp +14 -10
  40. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +1 -1
  41. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +14 -9
  42. package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +10 -6
  43. package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +1 -1
  44. package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +14 -8
  45. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +1 -1
  46. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +1 -1
  47. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +38 -26
  48. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +1 -1
  49. package/nitrogen/generated/android/c++/JNitroProduct.hpp +115 -119
  50. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +144 -137
  51. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +27 -14
  52. package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +1 -1
  53. package/nitrogen/generated/android/c++/JNitroReceiptValidationAppleOptions.hpp +1 -1
  54. package/nitrogen/generated/android/c++/JNitroReceiptValidationGoogleOptions.hpp +10 -6
  55. package/nitrogen/generated/android/c++/JNitroReceiptValidationHorizonOptions.hpp +1 -1
  56. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +18 -11
  57. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +23 -18
  58. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +13 -5
  59. package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +48 -42
  60. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +10 -6
  61. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +43 -51
  62. package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +41 -45
  63. package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +23 -18
  64. package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +11 -5
  65. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +1 -1
  66. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAppleProps.hpp +1 -1
  67. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitGoogleProps.hpp +1 -1
  68. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitProps.hpp +18 -12
  69. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +10 -6
  71. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderProps.hpp +12 -5
  72. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +15 -26
  73. package/nitrogen/generated/android/c++/JPaymentModeIOS.hpp +5 -6
  74. package/nitrogen/generated/android/c++/JPendingPurchaseUpdateAndroid.hpp +3 -2
  75. package/nitrogen/generated/android/c++/JPromotionalOfferJwsInputIOS.hpp +1 -1
  76. package/nitrogen/generated/android/c++/JPurchase.cpp +1 -1
  77. package/nitrogen/generated/android/c++/JPurchase.hpp +12 -3
  78. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +64 -74
  79. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +109 -117
  80. package/nitrogen/generated/android/c++/JPurchaseOfferIOS.hpp +1 -1
  81. package/nitrogen/generated/android/c++/JPurchaseState.hpp +4 -5
  82. package/nitrogen/generated/android/c++/JPurchaseVerificationProvider.hpp +3 -4
  83. package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +48 -42
  84. package/nitrogen/generated/android/c++/JRequestPurchaseResult.cpp +20 -16
  85. package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +42 -17
  86. package/nitrogen/generated/android/c++/JSubscriptionProductReplacementParamsAndroid.hpp +1 -1
  87. package/nitrogen/generated/android/c++/JSubscriptionReplacementModeAndroid.hpp +8 -9
  88. package/nitrogen/generated/android/c++/JUserChoiceBillingDetails.hpp +3 -2
  89. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.cpp +1 -1
  90. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +3 -3
  91. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.cpp +1 -1
  92. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +10 -3
  93. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.cpp +35 -0
  94. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.hpp +82 -0
  95. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.cpp +35 -0
  96. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.hpp +103 -0
  97. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.cpp +35 -0
  98. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.hpp +88 -0
  99. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.cpp +35 -0
  100. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.hpp +84 -0
  101. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.cpp +35 -0
  102. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.hpp +80 -0
  103. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.cpp +26 -0
  104. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +69 -0
  105. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  106. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  107. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.cpp +26 -0
  108. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +76 -0
  109. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.cpp +33 -0
  110. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +77 -0
  111. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesAndroidOptions.cpp +26 -0
  112. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesAndroidOptions.hpp +75 -0
  113. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesIosOptions.cpp +26 -0
  114. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesIosOptions.hpp +73 -0
  115. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.cpp +26 -0
  116. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.hpp +72 -0
  117. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.cpp +26 -0
  118. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.hpp +77 -0
  119. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionAndroidParams.cpp +26 -0
  120. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionAndroidParams.hpp +74 -0
  121. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionIosParams.cpp +26 -0
  122. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionIosParams.hpp +72 -0
  123. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.cpp +26 -0
  124. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.hpp +71 -0
  125. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.cpp +26 -0
  126. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.hpp +72 -0
  127. package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.cpp +26 -0
  128. package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.hpp +102 -0
  129. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.cpp +26 -0
  130. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.hpp +85 -0
  131. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.cpp +26 -0
  132. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.hpp +72 -0
  133. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.cpp +26 -0
  134. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.hpp +74 -0
  135. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.cpp +26 -0
  136. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.hpp +72 -0
  137. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRenewalInfoIOS.cpp +26 -0
  138. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRenewalInfoIOS.hpp +76 -0
  139. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.cpp +26 -0
  140. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.hpp +74 -0
  141. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.cpp +26 -0
  142. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +85 -0
  143. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseIos.cpp +26 -0
  144. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseIos.hpp +84 -0
  145. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.cpp +26 -0
  146. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.hpp +75 -0
  147. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.cpp +26 -0
  148. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.hpp +72 -0
  149. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.cpp +26 -0
  150. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.hpp +72 -0
  151. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.cpp +26 -0
  152. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.hpp +72 -0
  153. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitProps.cpp +26 -0
  154. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitProps.hpp +80 -0
  155. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitResult.cpp +26 -0
  156. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitResult.hpp +75 -0
  157. package/nitrogen/generated/android/c++/JVariant_NullType_PendingPurchaseUpdateAndroid.cpp +26 -0
  158. package/nitrogen/generated/android/c++/JVariant_NullType_PendingPurchaseUpdateAndroid.hpp +73 -0
  159. package/nitrogen/generated/android/c++/JVariant_NullType_PromotionalOfferJwsInputIOS.cpp +26 -0
  160. package/nitrogen/generated/android/c++/JVariant_NullType_PromotionalOfferJwsInputIOS.hpp +72 -0
  161. package/nitrogen/generated/android/c++/JVariant_NullType_PurchaseOfferIOS.cpp +26 -0
  162. package/nitrogen/generated/android/c++/JVariant_NullType_PurchaseOfferIOS.hpp +72 -0
  163. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalInfoIOS.cpp +26 -0
  164. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalInfoIOS.hpp +76 -0
  165. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  166. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  167. package/nitrogen/generated/android/c++/JVariant_NullType_SubscriptionProductReplacementParamsAndroid.cpp +26 -0
  168. package/nitrogen/generated/android/c++/JVariant_NullType_SubscriptionProductReplacementParamsAndroid.hpp +74 -0
  169. package/nitrogen/generated/android/c++/JVariant_NullType_WinBackOfferInputIOS.cpp +26 -0
  170. package/nitrogen/generated/android/c++/JVariant_NullType_WinBackOfferInputIOS.hpp +72 -0
  171. package/nitrogen/generated/android/c++/JWinBackOfferInputIOS.hpp +1 -1
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AlternativeBillingModeAndroid.kt +3 -1
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt +4 -2
  174. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +3 -1
  175. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +4 -2
  176. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkLaunchModeAndroid.kt +3 -1
  177. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkTypeAndroid.kt +3 -1
  178. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkNoticeResultIOS.kt +7 -5
  179. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkNoticeTypeIOS.kt +3 -1
  180. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkTokenResultIOS.kt +8 -6
  181. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkTokenTypeIOS.kt +3 -1
  182. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt +7 -5
  183. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeAction.kt +3 -1
  184. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt +8 -6
  185. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_DeveloperProvidedBillingDetailsAndroid.kt +1 -1
  186. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroProduct.kt +1 -1
  187. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchase.kt +1 -1
  188. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchaseResult.kt +1 -1
  189. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_UserChoiceBillingDetails.kt +1 -1
  190. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +28 -25
  191. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/IapPlatform.kt +3 -1
  192. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/IapStore.kt +3 -1
  193. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/IapkitPurchaseState.kt +3 -1
  194. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +4 -2
  195. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +16 -14
  196. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +7 -5
  197. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidType.kt +3 -1
  198. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +11 -9
  199. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +8 -6
  200. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +4 -2
  201. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +4 -2
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt +8 -6
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +4 -2
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +8 -6
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +7 -5
  206. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +4 -2
  207. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +8 -6
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroIapOnLoad.kt +1 -1
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +4 -2
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +4 -2
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +13 -11
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +4 -2
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +31 -29
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +40 -38
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +10 -8
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +4 -2
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAppleOptions.kt +4 -2
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationGoogleOptions.kt +7 -5
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationHorizonOptions.kt +4 -2
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +9 -7
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +10 -8
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +7 -5
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +16 -14
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +7 -5
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +14 -12
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +14 -12
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +10 -8
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +7 -5
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +4 -2
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAppleProps.kt +4 -2
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitGoogleProps.kt +4 -2
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitProps.kt +9 -7
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +4 -2
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +7 -5
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderProps.kt +7 -5
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +8 -6
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PaymentModeIOS.kt +3 -1
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PendingPurchaseUpdateAndroid.kt +4 -2
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PromotionalOfferJwsInputIOS.kt +4 -2
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Purchase.kt +1 -7
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +20 -18
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +31 -29
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseOfferIOS.kt +4 -2
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseState.kt +3 -1
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseVerificationProvider.kt +3 -1
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +16 -14
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RequestPurchaseResult.kt +25 -20
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubscriptionProductReplacementParamsAndroid.kt +4 -2
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubscriptionReplacementModeAndroid.kt +3 -1
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/UserChoiceBillingDetails.kt +4 -2
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +1 -7
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +1 -7
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AndroidSubscriptionOfferInput_.kt +53 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.kt +53 -0
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroSubscriptionStatus_.kt +53 -0
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroVerifyPurchaseWithProviderError_.kt +53 -0
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_String_.kt +53 -0
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Boolean.kt +53 -0
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Double.kt +53 -0
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_InitConnectionConfig.kt +53 -0
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Map_String__String_.kt +53 -0
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesAndroidOptions.kt +53 -0
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesIosOptions.kt +53 -0
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountAmountAndroid.kt +53 -0
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountDisplayInfoAndroid.kt +53 -0
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionAndroidParams.kt +53 -0
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionIosParams.kt +53 -0
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroLimitedQuantityInfoAndroid.kt +53 -0
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPreorderDetailsAndroid.kt +53 -0
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroProduct.kt +53 -0
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPurchase.kt +53 -0
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationAppleOptions.kt +53 -0
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationGoogleOptions.kt +53 -0
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationHorizonOptions.kt +53 -0
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRenewalInfoIOS.kt +53 -0
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRentalDetailsAndroid.kt +53 -0
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseAndroid.kt +53 -0
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseIos.kt +53 -0
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo.kt +53 -0
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroValidTimeWindowAndroid.kt +53 -0
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.kt +53 -0
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.kt +53 -0
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.kt +53 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.kt +53 -0
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PendingPurchaseUpdateAndroid.kt +53 -0
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PromotionalOfferJwsInputIOS.kt +53 -0
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PurchaseOfferIOS.kt +53 -0
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalInfoIOS.kt +53 -0
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_String.kt +53 -0
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_SubscriptionProductReplacementParamsAndroid.kt +53 -0
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_WinBackOfferInputIOS.kt +53 -0
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/WinBackOfferInputIOS.kt +4 -2
  293. package/nitrogen/generated/ios/NitroIap+autolinking.rb +2 -2
  294. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +22 -21
  295. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +1592 -470
  296. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +2 -1
  297. package/nitrogen/generated/ios/NitroIapAutolinking.mm +1 -1
  298. package/nitrogen/generated/ios/NitroIapAutolinking.swift +9 -8
  299. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.cpp +1 -1
  300. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +23 -13
  301. package/nitrogen/generated/ios/swift/AlternativeBillingModeAndroid.swift +1 -1
  302. package/nitrogen/generated/ios/swift/AndroidSubscriptionOfferInput.swift +5 -17
  303. package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +1 -1
  304. package/nitrogen/generated/ios/swift/DeveloperProvidedBillingDetailsAndroid.swift +3 -9
  305. package/nitrogen/generated/ios/swift/ExternalLinkLaunchModeAndroid.swift +1 -1
  306. package/nitrogen/generated/ios/swift/ExternalLinkTypeAndroid.swift +1 -1
  307. package/nitrogen/generated/ios/swift/ExternalPurchaseCustomLinkNoticeResultIOS.swift +35 -34
  308. package/nitrogen/generated/ios/swift/ExternalPurchaseCustomLinkNoticeTypeIOS.swift +1 -1
  309. package/nitrogen/generated/ios/swift/ExternalPurchaseCustomLinkTokenResultIOS.swift +64 -50
  310. package/nitrogen/generated/ios/swift/ExternalPurchaseCustomLinkTokenTypeIOS.swift +1 -1
  311. package/nitrogen/generated/ios/swift/ExternalPurchaseLinkResultIOS.swift +35 -34
  312. package/nitrogen/generated/ios/swift/ExternalPurchaseNoticeAction.swift +1 -1
  313. package/nitrogen/generated/ios/swift/ExternalPurchaseNoticeResultIOS.swift +66 -58
  314. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  315. package/nitrogen/generated/ios/swift/Func_void_DeveloperProvidedBillingDetailsAndroid.swift +1 -2
  316. package/nitrogen/generated/ios/swift/Func_void_ExternalPurchaseCustomLinkNoticeResultIOS.swift +1 -2
  317. package/nitrogen/generated/ios/swift/Func_void_ExternalPurchaseCustomLinkTokenResultIOS.swift +1 -2
  318. package/nitrogen/generated/ios/swift/Func_void_ExternalPurchaseLinkResultIOS.swift +1 -2
  319. package/nitrogen/generated/ios/swift/Func_void_ExternalPurchaseNoticeResultIOS.swift +1 -2
  320. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramAvailabilityResultAndroid.swift +1 -2
  321. package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramReportingDetailsAndroid.swift +1 -2
  322. package/nitrogen/generated/ios/swift/Func_void_NitroProduct.swift +1 -2
  323. package/nitrogen/generated/ios/swift/Func_void_NitroPurchase.swift +1 -2
  324. package/nitrogen/generated/ios/swift/Func_void_NitroPurchaseResult.swift +1 -2
  325. package/nitrogen/generated/ios/swift/Func_void_NitroVerifyPurchaseWithProviderResult.swift +1 -2
  326. package/nitrogen/generated/ios/swift/Func_void_UserChoiceBillingDetails.swift +1 -2
  327. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -2
  328. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  329. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
  330. package/nitrogen/generated/ios/swift/Func_void_std__variant_NitroReceiptValidationResultIOS__NitroReceiptValidationResultAndroid_.swift +1 -2
  331. package/nitrogen/generated/ios/swift/Func_void_std__variant_bool__NitroPurchaseResult_.swift +1 -2
  332. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__NitroProduct_.swift +58 -0
  333. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__NitroPurchase_.swift +58 -0
  334. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__PurchaseAndroid__PurchaseIOS__std__vector_std__variant_PurchaseAndroid__PurchaseIOS___.swift +76 -0
  335. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +58 -0
  336. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__vector_NitroSubscriptionStatus__.swift +58 -0
  337. package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroActiveSubscription_.swift +1 -2
  338. package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroProduct_.swift +1 -2
  339. package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroPurchase_.swift +1 -2
  340. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +21 -16
  341. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +207 -157
  342. package/nitrogen/generated/ios/swift/IapPlatform.swift +1 -1
  343. package/nitrogen/generated/ios/swift/IapStore.swift +1 -1
  344. package/nitrogen/generated/ios/swift/IapkitPurchaseState.swift +1 -1
  345. package/nitrogen/generated/ios/swift/InitConnectionConfig.swift +5 -29
  346. package/nitrogen/generated/ios/swift/NitroActiveSubscription.swift +320 -253
  347. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesAndroidOptions.swift +35 -40
  348. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesAndroidType.swift +1 -1
  349. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesIosOptions.swift +157 -122
  350. package/nitrogen/generated/ios/swift/NitroAvailablePurchasesOptions.swift +64 -36
  351. package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +5 -17
  352. package/nitrogen/generated/ios/swift/NitroBillingProgramReportingDetailsAndroid.swift +5 -17
  353. package/nitrogen/generated/ios/swift/NitroDeepLinkOptionsAndroid.swift +64 -50
  354. package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +5 -17
  355. package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +64 -36
  356. package/nitrogen/generated/ios/swift/NitroFinishTransactionAndroidParams.swift +35 -34
  357. package/nitrogen/generated/ios/swift/NitroFinishTransactionIosParams.swift +3 -9
  358. package/nitrogen/generated/ios/swift/NitroFinishTransactionParams.swift +64 -36
  359. package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +9 -33
  360. package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +5 -17
  361. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +229 -181
  362. package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +5 -17
  363. package/nitrogen/generated/ios/swift/NitroProduct.swift +862 -704
  364. package/nitrogen/generated/ios/swift/NitroPurchase.swift +1072 -840
  365. package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +126 -70
  366. package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +25 -67
  367. package/nitrogen/generated/ios/swift/NitroReceiptValidationAppleOptions.swift +3 -9
  368. package/nitrogen/generated/ios/swift/NitroReceiptValidationGoogleOptions.swift +41 -58
  369. package/nitrogen/generated/ios/swift/NitroReceiptValidationHorizonOptions.swift +7 -25
  370. package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +95 -53
  371. package/nitrogen/generated/ios/swift/NitroReceiptValidationResultAndroid.swift +162 -204
  372. package/nitrogen/generated/ios/swift/NitroReceiptValidationResultIOS.swift +39 -43
  373. package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +314 -236
  374. package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +35 -34
  375. package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +257 -205
  376. package/nitrogen/generated/ios/swift/NitroRequestPurchaseIos.swift +265 -200
  377. package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +130 -100
  378. package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +37 -35
  379. package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +5 -17
  380. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitAppleProps.swift +3 -9
  381. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitGoogleProps.swift +3 -9
  382. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitProps.swift +95 -60
  383. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitResult.swift +7 -25
  384. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderError.swift +35 -34
  385. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderProps.swift +35 -27
  386. package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithProviderResult.swift +71 -62
  387. package/nitrogen/generated/ios/swift/PaymentModeIOS.swift +1 -1
  388. package/nitrogen/generated/ios/swift/PendingPurchaseUpdateAndroid.swift +5 -23
  389. package/nitrogen/generated/ios/swift/PromotionalOfferJwsInputIOS.swift +5 -17
  390. package/nitrogen/generated/ios/swift/Purchase.swift +1 -1
  391. package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +457 -406
  392. package/nitrogen/generated/ios/swift/PurchaseIOS.swift +848 -691
  393. package/nitrogen/generated/ios/swift/PurchaseOfferIOS.swift +7 -25
  394. package/nitrogen/generated/ios/swift/PurchaseState.swift +1 -1
  395. package/nitrogen/generated/ios/swift/PurchaseVerificationProvider.swift +1 -1
  396. package/nitrogen/generated/ios/swift/RenewalInfoIOS.swift +314 -236
  397. package/nitrogen/generated/ios/swift/RequestPurchaseResult.swift +7 -6
  398. package/nitrogen/generated/ios/swift/SubscriptionProductReplacementParamsAndroid.swift +5 -17
  399. package/nitrogen/generated/ios/swift/SubscriptionReplacementModeAndroid.swift +1 -1
  400. package/nitrogen/generated/ios/swift/UserChoiceBillingDetails.swift +5 -23
  401. package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +1 -1
  402. package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +1 -1
  403. package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +18 -0
  404. package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +18 -0
  405. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +18 -0
  406. package/nitrogen/generated/ios/swift/Variant_NullType_InitConnectionConfig.swift +18 -0
  407. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesAndroidOptions.swift +18 -0
  408. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesIosOptions.swift +18 -0
  409. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +18 -0
  410. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +18 -0
  411. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionAndroidParams.swift +18 -0
  412. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionIosParams.swift +18 -0
  413. package/nitrogen/generated/ios/swift/Variant_NullType_NitroLimitedQuantityInfoAndroid.swift +18 -0
  414. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPreorderDetailsAndroid.swift +18 -0
  415. package/nitrogen/generated/ios/swift/Variant_NullType_NitroProduct.swift +18 -0
  416. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPurchase.swift +18 -0
  417. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationAppleOptions.swift +18 -0
  418. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +18 -0
  419. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +18 -0
  420. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRenewalInfoIOS.swift +18 -0
  421. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +18 -0
  422. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseAndroid.swift +18 -0
  423. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseIos.swift +18 -0
  424. package/nitrogen/generated/ios/swift/Variant_NullType_NitroSubscriptionRenewalInfo.swift +18 -0
  425. package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +18 -0
  426. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.swift +18 -0
  427. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.swift +18 -0
  428. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.swift +18 -0
  429. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.swift +18 -0
  430. package/nitrogen/generated/ios/swift/Variant_NullType_PendingPurchaseUpdateAndroid.swift +18 -0
  431. package/nitrogen/generated/ios/swift/Variant_NullType_PromotionalOfferJwsInputIOS.swift +18 -0
  432. package/nitrogen/generated/ios/swift/Variant_NullType_PurchaseOfferIOS.swift +18 -0
  433. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalInfoIOS.swift +18 -0
  434. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
  435. package/nitrogen/generated/ios/swift/Variant_NullType_SubscriptionProductReplacementParamsAndroid.swift +18 -0
  436. package/nitrogen/generated/ios/swift/Variant_NullType_WinBackOfferInputIOS.swift +18 -0
  437. package/nitrogen/generated/ios/swift/Variant_NullType__AndroidSubscriptionOfferInput_.swift +18 -0
  438. package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +18 -0
  439. package/nitrogen/generated/ios/swift/Variant_NullType__NitroSubscriptionStatus_.swift +18 -0
  440. package/nitrogen/generated/ios/swift/Variant_NullType__NitroVerifyPurchaseWithProviderError_.swift +18 -0
  441. package/nitrogen/generated/ios/swift/Variant_NullType__String_.swift +18 -0
  442. package/nitrogen/generated/ios/swift/WinBackOfferInputIOS.swift +3 -9
  443. package/nitrogen/generated/shared/c++/AlternativeBillingModeAndroid.hpp +1 -1
  444. package/nitrogen/generated/shared/c++/AndroidSubscriptionOfferInput.hpp +16 -8
  445. package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +1 -1
  446. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +13 -5
  447. package/nitrogen/generated/shared/c++/ExternalLinkLaunchModeAndroid.hpp +1 -1
  448. package/nitrogen/generated/shared/c++/ExternalLinkTypeAndroid.hpp +1 -1
  449. package/nitrogen/generated/shared/c++/ExternalPurchaseCustomLinkNoticeResultIOS.hpp +20 -10
  450. package/nitrogen/generated/shared/c++/ExternalPurchaseCustomLinkNoticeTypeIOS.hpp +1 -1
  451. package/nitrogen/generated/shared/c++/ExternalPurchaseCustomLinkTokenResultIOS.hpp +21 -11
  452. package/nitrogen/generated/shared/c++/ExternalPurchaseCustomLinkTokenTypeIOS.hpp +1 -1
  453. package/nitrogen/generated/shared/c++/ExternalPurchaseLinkResultIOS.hpp +20 -10
  454. package/nitrogen/generated/shared/c++/ExternalPurchaseNoticeAction.hpp +1 -1
  455. package/nitrogen/generated/shared/c++/ExternalPurchaseNoticeResultIOS.hpp +24 -14
  456. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +1 -1
  457. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +14 -13
  458. package/nitrogen/generated/shared/c++/IapPlatform.hpp +1 -1
  459. package/nitrogen/generated/shared/c++/IapStore.hpp +1 -1
  460. package/nitrogen/generated/shared/c++/IapkitPurchaseState.hpp +1 -1
  461. package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +16 -8
  462. package/nitrogen/generated/shared/c++/NitroActiveSubscription.hpp +65 -55
  463. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidOptions.hpp +20 -10
  464. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidType.hpp +1 -1
  465. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesIosOptions.hpp +33 -23
  466. package/nitrogen/generated/shared/c++/NitroAvailablePurchasesOptions.hpp +21 -11
  467. package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +16 -8
  468. package/nitrogen/generated/shared/c++/NitroBillingProgramReportingDetailsAndroid.hpp +16 -8
  469. package/nitrogen/generated/shared/c++/NitroDeepLinkOptionsAndroid.hpp +21 -11
  470. package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +16 -8
  471. package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +21 -11
  472. package/nitrogen/generated/shared/c++/NitroFinishTransactionAndroidParams.hpp +20 -10
  473. package/nitrogen/generated/shared/c++/NitroFinishTransactionIosParams.hpp +13 -5
  474. package/nitrogen/generated/shared/c++/NitroFinishTransactionParams.hpp +21 -11
  475. package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +22 -14
  476. package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +16 -8
  477. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +56 -46
  478. package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +16 -8
  479. package/nitrogen/generated/shared/c++/NitroProduct.hpp +137 -127
  480. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +173 -163
  481. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +29 -19
  482. package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +25 -17
  483. package/nitrogen/generated/shared/c++/NitroReceiptValidationAppleOptions.hpp +13 -5
  484. package/nitrogen/generated/shared/c++/NitroReceiptValidationGoogleOptions.hpp +29 -19
  485. package/nitrogen/generated/shared/c++/NitroReceiptValidationHorizonOptions.hpp +19 -11
  486. package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +25 -15
  487. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultAndroid.hpp +71 -61
  488. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +26 -16
  489. package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +56 -46
  490. package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +20 -10
  491. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +48 -38
  492. package/nitrogen/generated/shared/c++/NitroRequestPurchaseIos.hpp +48 -38
  493. package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +35 -25
  494. package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +23 -13
  495. package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +16 -8
  496. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitAppleProps.hpp +13 -5
  497. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitGoogleProps.hpp +13 -5
  498. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitProps.hpp +25 -15
  499. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitResult.hpp +19 -11
  500. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderError.hpp +20 -10
  501. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderProps.hpp +20 -10
  502. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +24 -14
  503. package/nitrogen/generated/shared/c++/PaymentModeIOS.hpp +1 -1
  504. package/nitrogen/generated/shared/c++/PendingPurchaseUpdateAndroid.hpp +16 -8
  505. package/nitrogen/generated/shared/c++/PromotionalOfferJwsInputIOS.hpp +16 -8
  506. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +93 -83
  507. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +140 -130
  508. package/nitrogen/generated/shared/c++/PurchaseOfferIOS.hpp +19 -11
  509. package/nitrogen/generated/shared/c++/PurchaseState.hpp +1 -1
  510. package/nitrogen/generated/shared/c++/PurchaseVerificationProvider.hpp +1 -1
  511. package/nitrogen/generated/shared/c++/RenewalInfoIOS.hpp +56 -46
  512. package/nitrogen/generated/shared/c++/SubscriptionProductReplacementParamsAndroid.hpp +16 -8
  513. package/nitrogen/generated/shared/c++/SubscriptionReplacementModeAndroid.hpp +1 -1
  514. package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +16 -8
  515. package/nitrogen/generated/shared/c++/WinBackOfferInputIOS.hpp +13 -5
  516. package/package.json +6 -6
  517. package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroProduct_.swift +0 -47
  518. package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroPurchase_.swift +0 -47
  519. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +0 -54
  520. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__variant_PurchaseAndroid__PurchaseIOS__std__vector_std__variant_PurchaseAndroid__PurchaseIOS____.swift +0 -81
  521. package/nitrogen/generated/ios/swift/Func_void_std__optional_std__vector_NitroSubscriptionStatus__.swift +0 -54
@@ -2,6 +2,7 @@ package com.margelo.nitro.iap
2
2
 
3
3
  import com.facebook.react.bridge.ReactApplicationContext
4
4
  import com.margelo.nitro.NitroModules
5
+ import com.margelo.nitro.core.NullType
5
6
  import com.margelo.nitro.core.Promise
6
7
  import dev.hyo.openiap.AndroidSubscriptionOfferInput
7
8
  import dev.hyo.openiap.DeepLinkOptions as OpenIapDeepLinkOptions
@@ -89,9 +90,22 @@ class HybridRnIap : HybridRnIapSpec() {
89
90
  private val initLock = Any()
90
91
 
91
92
  // Connection methods
92
- override fun initConnection(config: InitConnectionConfig?): Promise<Boolean> {
93
+ // Variant wrapper helpers for nitrogen 0.35.0 compatibility
94
+ private fun String?.wrapVariant(): Variant_NullType_String? = this?.let { Variant_NullType_String.Second(it) }
95
+ private fun Double?.wrapVariant(): Variant_NullType_Double? = this?.let { Variant_NullType_Double.Second(it) }
96
+ private fun Boolean?.wrapVariant(): Variant_NullType_Boolean? = this?.let { Variant_NullType_Boolean.Second(it) }
97
+ private fun Variant_NullType_String?.unwrapString(): String? = (this as? Variant_NullType_String.Second)?.value
98
+ private fun Variant_NullType_Double?.unwrapDouble(): Double? = (this as? Variant_NullType_Double.Second)?.value
99
+ private fun Variant_NullType_Boolean?.unwrapBool(): Boolean? = (this as? Variant_NullType_Boolean.Second)?.value
100
+
101
+ private suspend fun ensureConnection() {
102
+ initConnection(null as Variant_NullType_InitConnectionConfig?).await()
103
+ }
104
+
105
+ override fun initConnection(config: Variant_NullType_InitConnectionConfig?): Promise<Boolean> {
93
106
  return Promise.async {
94
- RnIapLog.payload("initConnection", config)
107
+ val configValue = (config as? Variant_NullType_InitConnectionConfig.Second)?.value
108
+ RnIapLog.payload("initConnection", configValue)
95
109
  // Fast-path: if already initialized, return immediately
96
110
  if (isInitialized) {
97
111
  RnIapLog.result("initConnection", true)
@@ -234,14 +248,14 @@ class HybridRnIap : HybridRnIapSpec() {
234
248
  // Convert Nitro config to OpenIAP config
235
249
  // Note: enableBillingProgramAndroid is passed to OpenIapInitConnectionConfig
236
250
  // which handles enabling the billing program internally
237
- val openIapConfig = config?.let {
251
+ val openIapConfig = configValue?.let {
238
252
  OpenIapInitConnectionConfig(
239
253
  alternativeBillingModeAndroid = when (it.alternativeBillingModeAndroid) {
240
254
  com.margelo.nitro.iap.AlternativeBillingModeAndroid.USER_CHOICE -> dev.hyo.openiap.AlternativeBillingModeAndroid.UserChoice
241
255
  com.margelo.nitro.iap.AlternativeBillingModeAndroid.ALTERNATIVE_ONLY -> dev.hyo.openiap.AlternativeBillingModeAndroid.AlternativeOnly
242
256
  else -> null
243
257
  },
244
- enableBillingProgramAndroid = config.enableBillingProgramAndroid?.let { program ->
258
+ enableBillingProgramAndroid = configValue.enableBillingProgramAndroid?.let { program ->
245
259
  mapBillingProgram(program)
246
260
  }
247
261
  )
@@ -321,7 +335,7 @@ class HybridRnIap : HybridRnIapSpec() {
321
335
  throw OpenIapException(toErrorJson(OpenIAPError.EmptySkuList))
322
336
  }
323
337
 
324
- initConnection(null).await()
338
+ ensureConnection()
325
339
 
326
340
  val queryType = parseProductQueryType(type)
327
341
  val skusList = skus.toList()
@@ -380,19 +394,22 @@ class HybridRnIap : HybridRnIapSpec() {
380
394
 
381
395
  // Purchase methods
382
396
  // Purchase methods (Unified)
383
- override fun requestPurchase(request: NitroPurchaseRequest): Promise<RequestPurchaseResult?> {
397
+ override fun requestPurchase(request: NitroPurchaseRequest): Promise<RequestPurchaseResult> {
384
398
  return Promise.async {
385
399
  val defaultResult = RequestPurchaseResult.create(emptyArray<com.margelo.nitro.iap.Purchase>())
386
400
 
401
+ val androidRequest = (request.android as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
402
+ ?: (request.google as? Variant_NullType_NitroRequestPurchaseAndroid.Second)?.value
403
+
387
404
  RnIapLog.payload(
388
405
  "requestPurchase",
389
406
  mapOf(
390
- "androidSkus" to (request.android?.skus?.toList() ?: emptyList()),
407
+ "androidSkus" to (androidRequest?.skus?.toList() ?: emptyList()),
391
408
  "hasIOS" to (request.ios != null)
392
409
  )
393
410
  )
394
411
 
395
- val androidRequest = request.android ?: run {
412
+ if (androidRequest == null) {
396
413
  RnIapLog.warn("requestPurchase called without android payload")
397
414
  sendPurchaseError(toErrorResult(OpenIAPError.DeveloperError))
398
415
  return@async defaultResult
@@ -405,7 +422,7 @@ class HybridRnIap : HybridRnIapSpec() {
405
422
  }
406
423
 
407
424
  try {
408
- initConnection(null).await()
425
+ ensureConnection()
409
426
 
410
427
  // Ensure Activity is available for purchase flow
411
428
  val activity = withContext(Dispatchers.Main) {
@@ -446,7 +463,7 @@ class HybridRnIap : HybridRnIapSpec() {
446
463
  val typeHint = androidRequest.skus.firstOrNull()?.let { productTypeBySku[it] } ?: "inapp"
447
464
  val queryType = parseProductQueryType(typeHint)
448
465
 
449
- val subscriptionOffers = androidRequest.subscriptionOffers
466
+ val subscriptionOffers = (androidRequest.subscriptionOffers as? Variant_NullType_Array_AndroidSubscriptionOfferInput_.Second)?.value
450
467
  ?.mapNotNull { offer ->
451
468
  val sku = offer.sku
452
469
  val token = offer.offerToken
@@ -461,10 +478,10 @@ class HybridRnIap : HybridRnIapSpec() {
461
478
 
462
479
  val requestProps = when (queryType) {
463
480
  ProductQueryType.Subs -> {
464
- val replacementMode = (androidRequest.replacementMode as? Number)?.toInt()
481
+ val replacementMode = androidRequest.replacementMode.unwrapDouble()?.toInt()
465
482
 
466
483
  // Parse subscriptionProductReplacementParams (8.1.0+)
467
- val subscriptionProductReplacementParams = androidRequest.subscriptionProductReplacementParams?.let { params ->
484
+ val subscriptionProductReplacementParams = (androidRequest.subscriptionProductReplacementParams as? Variant_NullType_SubscriptionProductReplacementParamsAndroid.Second)?.value?.let { params ->
468
485
  OpenIapSubscriptionProductReplacementParams(
469
486
  oldProductId = params.oldProductId,
470
487
  replacementMode = parseSubscriptionReplacementMode(params.replacementMode)
@@ -472,10 +489,10 @@ class HybridRnIap : HybridRnIapSpec() {
472
489
  }
473
490
 
474
491
  val androidProps = RequestSubscriptionAndroidProps(
475
- isOfferPersonalized = androidRequest.isOfferPersonalized,
476
- obfuscatedAccountId = androidRequest.obfuscatedAccountId,
477
- obfuscatedProfileId = androidRequest.obfuscatedProfileId,
478
- purchaseToken = androidRequest.purchaseToken,
492
+ isOfferPersonalized = androidRequest.isOfferPersonalized.unwrapBool(),
493
+ obfuscatedAccountId = androidRequest.obfuscatedAccountId.unwrapString(),
494
+ obfuscatedProfileId = androidRequest.obfuscatedProfileId.unwrapString(),
495
+ purchaseToken = androidRequest.purchaseToken.unwrapString(),
479
496
  replacementMode = replacementMode,
480
497
  skus = androidRequest.skus.toList(),
481
498
  subscriptionOffers = normalizedOffers,
@@ -490,10 +507,10 @@ class HybridRnIap : HybridRnIapSpec() {
490
507
  }
491
508
  ProductQueryType.InApp, ProductQueryType.All -> {
492
509
  val androidProps = RequestPurchaseAndroidProps(
493
- isOfferPersonalized = androidRequest.isOfferPersonalized,
494
- obfuscatedAccountId = androidRequest.obfuscatedAccountId,
495
- obfuscatedProfileId = androidRequest.obfuscatedProfileId,
496
- offerToken = androidRequest.offerToken,
510
+ isOfferPersonalized = androidRequest.isOfferPersonalized.unwrapBool(),
511
+ obfuscatedAccountId = androidRequest.obfuscatedAccountId.unwrapString(),
512
+ obfuscatedProfileId = androidRequest.obfuscatedProfileId.unwrapString(),
513
+ offerToken = androidRequest.offerToken.unwrapString(),
497
514
  skus = androidRequest.skus.toList()
498
515
  )
499
516
  RequestPurchaseProps(
@@ -545,10 +562,10 @@ class HybridRnIap : HybridRnIapSpec() {
545
562
  // Purchase history methods (Unified)
546
563
  override fun getAvailablePurchases(options: NitroAvailablePurchasesOptions?): Promise<Array<NitroPurchase>> {
547
564
  return Promise.async {
548
- val androidOptions = options?.android
549
- initConnection(null).await()
565
+ val androidOptions = (options?.android as? Variant_NullType_NitroAvailablePurchasesAndroidOptions.Second)?.value
566
+ ensureConnection()
550
567
 
551
- val includeSuspended = androidOptions?.includeSuspended ?: false
568
+ val includeSuspended = androidOptions?.includeSuspended.unwrapBool() ?: false
552
569
 
553
570
  RnIapLog.payload(
554
571
  "getAvailablePurchases",
@@ -593,7 +610,7 @@ class HybridRnIap : HybridRnIapSpec() {
593
610
 
594
611
  override fun getActiveSubscriptions(subscriptionIds: Array<String>?): Promise<Array<NitroActiveSubscription>> {
595
612
  return Promise.async {
596
- initConnection(null).await()
613
+ ensureConnection()
597
614
 
598
615
  RnIapLog.payload(
599
616
  "getActiveSubscriptions",
@@ -610,13 +627,13 @@ class HybridRnIap : HybridRnIapSpec() {
610
627
  productId = sub.productId,
611
628
  isActive = sub.isActive,
612
629
  transactionId = sub.transactionId,
613
- purchaseToken = sub.purchaseToken,
630
+ purchaseToken = sub.purchaseToken.wrapVariant(),
614
631
  transactionDate = sub.transactionDate,
615
632
  // Android specific fields
616
- autoRenewingAndroid = sub.autoRenewingAndroid,
617
- basePlanIdAndroid = sub.basePlanIdAndroid,
618
- currentPlanId = sub.currentPlanId,
619
- purchaseTokenAndroid = sub.purchaseTokenAndroid,
633
+ autoRenewingAndroid = sub.autoRenewingAndroid.wrapVariant(),
634
+ basePlanIdAndroid = sub.basePlanIdAndroid.wrapVariant(),
635
+ currentPlanId = sub.currentPlanId.wrapVariant(),
636
+ purchaseTokenAndroid = sub.purchaseTokenAndroid.wrapVariant(),
620
637
  // iOS specific fields (null on Android)
621
638
  expirationDateIOS = null,
622
639
  environmentIOS = null,
@@ -648,7 +665,7 @@ class HybridRnIap : HybridRnIapSpec() {
648
665
 
649
666
  override fun hasActiveSubscriptions(subscriptionIds: Array<String>?): Promise<Boolean> {
650
667
  return Promise.async {
651
- initConnection(null).await()
668
+ ensureConnection()
652
669
 
653
670
  RnIapLog.payload(
654
671
  "hasActiveSubscriptions",
@@ -676,20 +693,21 @@ class HybridRnIap : HybridRnIapSpec() {
676
693
  // Transaction management methods (Unified)
677
694
  override fun finishTransaction(params: NitroFinishTransactionParams): Promise<Variant_Boolean_NitroPurchaseResult> {
678
695
  return Promise.async {
679
- val androidParams = params.android ?: return@async Variant_Boolean_NitroPurchaseResult.First(true)
696
+ val androidParams = (params.android as? Variant_NullType_NitroFinishTransactionAndroidParams.Second)?.value
697
+ ?: return@async Variant_Boolean_NitroPurchaseResult.First(true)
680
698
  val purchaseToken = androidParams.purchaseToken
681
- val isConsumable = androidParams.isConsumable ?: false
699
+ val isConsumable = androidParams.isConsumable.unwrapBool() ?: false
682
700
 
683
701
  RnIapLog.payload(
684
702
  "finishTransaction",
685
703
  mapOf(
686
- "purchaseToken" to purchaseToken?.let { "<hidden>" },
704
+ "purchaseToken" to "<hidden>",
687
705
  "isConsumable" to isConsumable
688
706
  )
689
707
  )
690
708
 
691
709
  // Validate token early to avoid confusing native errors
692
- if (purchaseToken.isNullOrBlank()) {
710
+ if (purchaseToken.isBlank()) {
693
711
  RnIapLog.warn("finishTransaction called with missing purchaseToken")
694
712
  return@async Variant_Boolean_NitroPurchaseResult.Second(
695
713
  NitroPurchaseResult(
@@ -704,7 +722,7 @@ class HybridRnIap : HybridRnIapSpec() {
704
722
 
705
723
  // Ensure connection; if it fails, return an error result instead of throwing
706
724
  try {
707
- initConnection(null).await()
725
+ ensureConnection()
708
726
  } catch (e: Exception) {
709
727
  val err = OpenIAPError.InitConnection
710
728
  return@async Variant_Boolean_NitroPurchaseResult.Second(
@@ -754,7 +772,7 @@ class HybridRnIap : HybridRnIapSpec() {
754
772
  override fun getStorefront(): Promise<String> {
755
773
  return Promise.async {
756
774
  try {
757
- initConnection(null).await()
775
+ ensureConnection()
758
776
  RnIapLog.payload("getStorefront", null)
759
777
  val value = openIap.getStorefront()
760
778
  RnIapLog.result("getStorefront", value)
@@ -1020,43 +1038,55 @@ class HybridRnIap : HybridRnIapSpec() {
1020
1038
  formattedPrice = otp.formattedPrice,
1021
1039
  priceAmountMicros = otp.priceAmountMicros,
1022
1040
  priceCurrencyCode = otp.priceCurrencyCode,
1023
- offerId = otp.offerId,
1041
+ offerId = otp.offerId.wrapVariant(),
1024
1042
  offerToken = otp.offerToken,
1025
1043
  offerTags = otp.offerTags.toTypedArray(),
1026
- fullPriceMicros = otp.fullPriceMicros,
1044
+ fullPriceMicros = otp.fullPriceMicros.wrapVariant(),
1027
1045
  discountDisplayInfo = otp.discountDisplayInfo?.let { discount ->
1028
- NitroDiscountDisplayInfoAndroid(
1029
- percentageDiscount = discount.percentageDiscount?.toDouble(),
1030
- discountAmount = discount.discountAmount?.let { amount ->
1031
- NitroDiscountAmountAndroid(
1032
- discountAmountMicros = amount.discountAmountMicros,
1033
- formattedDiscountAmount = amount.formattedDiscountAmount
1034
- )
1035
- }
1046
+ Variant_NullType_NitroDiscountDisplayInfoAndroid.Second(
1047
+ NitroDiscountDisplayInfoAndroid(
1048
+ percentageDiscount = discount.percentageDiscount?.toDouble().wrapVariant(),
1049
+ discountAmount = discount.discountAmount?.let { amount ->
1050
+ Variant_NullType_NitroDiscountAmountAndroid.Second(
1051
+ NitroDiscountAmountAndroid(
1052
+ discountAmountMicros = amount.discountAmountMicros,
1053
+ formattedDiscountAmount = amount.formattedDiscountAmount
1054
+ )
1055
+ )
1056
+ }
1057
+ )
1036
1058
  )
1037
1059
  },
1038
1060
  validTimeWindow = otp.validTimeWindow?.let { window ->
1039
- NitroValidTimeWindowAndroid(
1040
- startTimeMillis = window.startTimeMillis,
1041
- endTimeMillis = window.endTimeMillis
1061
+ Variant_NullType_NitroValidTimeWindowAndroid.Second(
1062
+ NitroValidTimeWindowAndroid(
1063
+ startTimeMillis = window.startTimeMillis,
1064
+ endTimeMillis = window.endTimeMillis
1065
+ )
1042
1066
  )
1043
1067
  },
1044
1068
  limitedQuantityInfo = otp.limitedQuantityInfo?.let { info ->
1045
- NitroLimitedQuantityInfoAndroid(
1046
- maximumQuantity = info.maximumQuantity.toDouble(),
1047
- remainingQuantity = info.remainingQuantity.toDouble()
1069
+ Variant_NullType_NitroLimitedQuantityInfoAndroid.Second(
1070
+ NitroLimitedQuantityInfoAndroid(
1071
+ maximumQuantity = info.maximumQuantity.toDouble(),
1072
+ remainingQuantity = info.remainingQuantity.toDouble()
1073
+ )
1048
1074
  )
1049
1075
  },
1050
1076
  preorderDetailsAndroid = otp.preorderDetailsAndroid?.let { preorder ->
1051
- NitroPreorderDetailsAndroid(
1052
- preorderPresaleEndTimeMillis = preorder.preorderPresaleEndTimeMillis,
1053
- preorderReleaseTimeMillis = preorder.preorderReleaseTimeMillis
1077
+ Variant_NullType_NitroPreorderDetailsAndroid.Second(
1078
+ NitroPreorderDetailsAndroid(
1079
+ preorderPresaleEndTimeMillis = preorder.preorderPresaleEndTimeMillis,
1080
+ preorderReleaseTimeMillis = preorder.preorderReleaseTimeMillis
1081
+ )
1054
1082
  )
1055
1083
  },
1056
1084
  rentalDetailsAndroid = otp.rentalDetailsAndroid?.let { rental ->
1057
- NitroRentalDetailsAndroid(
1058
- rentalPeriod = rental.rentalPeriod,
1059
- rentalExpirationPeriod = rental.rentalExpirationPeriod
1085
+ Variant_NullType_NitroRentalDetailsAndroid.Second(
1086
+ NitroRentalDetailsAndroid(
1087
+ rentalExpirationPeriod = rental.rentalExpirationPeriod?.let { Variant_NullType_String.Second(it) },
1088
+ rentalPeriod = rental.rentalPeriod
1089
+ )
1060
1090
  )
1061
1091
  }
1062
1092
  )
@@ -1137,10 +1167,10 @@ class HybridRnIap : HybridRnIapSpec() {
1137
1167
  title = product.title,
1138
1168
  description = product.description,
1139
1169
  type = product.type.rawValue,
1140
- displayName = product.displayName,
1170
+ displayName = product.displayName.wrapVariant(),
1141
1171
  displayPrice = product.displayPrice,
1142
1172
  currency = product.currency,
1143
- price = product.price,
1173
+ price = product.price.wrapVariant(),
1144
1174
  platform = IapPlatform.ANDROID,
1145
1175
  typeIOS = null,
1146
1176
  isFamilyShareableIOS = null,
@@ -1153,19 +1183,19 @@ class HybridRnIap : HybridRnIapSpec() {
1153
1183
  introductoryPricePaymentModeIOS = PaymentModeIOS.EMPTY,
1154
1184
  introductoryPriceNumberOfPeriodsIOS = null,
1155
1185
  introductoryPriceSubscriptionPeriodIOS = null,
1156
- subscriptionOffers = subscriptionOffersStandardizedJson,
1157
- discountOffers = discountOffersJson,
1158
- nameAndroid = nameAndroid,
1159
- originalPriceAndroid = originalPriceAndroid,
1160
- originalPriceAmountMicrosAndroid = originalPriceAmountMicrosAndroid,
1161
- introductoryPriceValueAndroid = introductoryPriceValueAndroid,
1162
- introductoryPriceCyclesAndroid = introductoryPriceCyclesAndroid,
1163
- introductoryPricePeriodAndroid = introductoryPricePeriodAndroid,
1164
- subscriptionPeriodAndroid = subscriptionPeriodAndroid,
1165
- freeTrialPeriodAndroid = freeTrialPeriodAndroid,
1166
- subscriptionOfferDetailsAndroid = subscriptionOffersJson,
1167
- oneTimePurchaseOfferDetailsAndroid = oneTimeOffersNitro,
1168
- productStatusAndroid = productStatusAndroid
1186
+ subscriptionOffers = subscriptionOffersStandardizedJson.wrapVariant(),
1187
+ discountOffers = discountOffersJson.wrapVariant(),
1188
+ nameAndroid = nameAndroid.wrapVariant(),
1189
+ originalPriceAndroid = originalPriceAndroid.wrapVariant(),
1190
+ originalPriceAmountMicrosAndroid = originalPriceAmountMicrosAndroid.wrapVariant(),
1191
+ introductoryPriceValueAndroid = introductoryPriceValueAndroid.wrapVariant(),
1192
+ introductoryPriceCyclesAndroid = introductoryPriceCyclesAndroid.wrapVariant(),
1193
+ introductoryPricePeriodAndroid = introductoryPricePeriodAndroid.wrapVariant(),
1194
+ subscriptionPeriodAndroid = subscriptionPeriodAndroid.wrapVariant(),
1195
+ freeTrialPeriodAndroid = freeTrialPeriodAndroid.wrapVariant(),
1196
+ subscriptionOfferDetailsAndroid = subscriptionOffersJson.wrapVariant(),
1197
+ oneTimePurchaseOfferDetailsAndroid = oneTimeOffersNitro?.let { Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.Second(it) },
1198
+ productStatusAndroid = productStatusAndroid.wrapVariant()
1169
1199
  )
1170
1200
  }
1171
1201
 
@@ -1182,7 +1212,7 @@ class HybridRnIap : HybridRnIapSpec() {
1182
1212
  id = purchase.id,
1183
1213
  productId = purchase.productId,
1184
1214
  transactionDate = purchase.transactionDate,
1185
- purchaseToken = purchase.purchaseToken,
1215
+ purchaseToken = purchase.purchaseToken.wrapVariant(),
1186
1216
  platform = IapPlatform.ANDROID,
1187
1217
  store = mapIapStore(purchase.store),
1188
1218
  quantity = purchase.quantity.toDouble(),
@@ -1210,17 +1240,17 @@ class HybridRnIap : HybridRnIapSpec() {
1210
1240
  transactionReasonIOS = null,
1211
1241
  webOrderLineItemIdIOS = null,
1212
1242
  renewalInfoIOS = null,
1213
- purchaseTokenAndroid = androidPurchase?.purchaseToken,
1214
- dataAndroid = androidPurchase?.dataAndroid,
1215
- signatureAndroid = androidPurchase?.signatureAndroid,
1216
- autoRenewingAndroid = androidPurchase?.autoRenewingAndroid,
1217
- purchaseStateAndroid = purchaseStateAndroidNumeric,
1218
- isAcknowledgedAndroid = androidPurchase?.isAcknowledgedAndroid,
1219
- packageNameAndroid = androidPurchase?.packageNameAndroid,
1220
- obfuscatedAccountIdAndroid = androidPurchase?.obfuscatedAccountIdAndroid,
1221
- obfuscatedProfileIdAndroid = androidPurchase?.obfuscatedProfileIdAndroid,
1222
- developerPayloadAndroid = androidPurchase?.developerPayloadAndroid,
1223
- isSuspendedAndroid = androidPurchase?.isSuspendedAndroid
1243
+ purchaseTokenAndroid = androidPurchase?.purchaseToken.wrapVariant(),
1244
+ dataAndroid = androidPurchase?.dataAndroid.wrapVariant(),
1245
+ signatureAndroid = androidPurchase?.signatureAndroid.wrapVariant(),
1246
+ autoRenewingAndroid = androidPurchase?.autoRenewingAndroid.wrapVariant(),
1247
+ purchaseStateAndroid = purchaseStateAndroidNumeric.wrapVariant(),
1248
+ isAcknowledgedAndroid = androidPurchase?.isAcknowledgedAndroid.wrapVariant(),
1249
+ packageNameAndroid = androidPurchase?.packageNameAndroid.wrapVariant(),
1250
+ obfuscatedAccountIdAndroid = androidPurchase?.obfuscatedAccountIdAndroid.wrapVariant(),
1251
+ obfuscatedProfileIdAndroid = androidPurchase?.obfuscatedProfileIdAndroid.wrapVariant(),
1252
+ developerPayloadAndroid = androidPurchase?.developerPayloadAndroid.wrapVariant(),
1253
+ isSuspendedAndroid = androidPurchase?.isSuspendedAndroid.wrapVariant()
1224
1254
  )
1225
1255
  }
1226
1256
 
@@ -1251,7 +1281,7 @@ class HybridRnIap : HybridRnIapSpec() {
1251
1281
  }
1252
1282
 
1253
1283
  // iOS-specific method - not supported on Android
1254
- override fun getAppTransactionIOS(): Promise<String?> {
1284
+ override fun getAppTransactionIOS(): Promise<Variant_NullType_String> {
1255
1285
  return Promise.async {
1256
1286
  throw OpenIapException(toErrorJson(OpenIAPError.FeatureNotSupported))
1257
1287
  }
@@ -1261,10 +1291,10 @@ class HybridRnIap : HybridRnIapSpec() {
1261
1291
  override fun deepLinkToSubscriptionsAndroid(options: NitroDeepLinkOptionsAndroid): Promise<Unit> {
1262
1292
  return Promise.async {
1263
1293
  try {
1264
- initConnection(null).await()
1294
+ ensureConnection()
1265
1295
  OpenIapDeepLinkOptions(
1266
- skuAndroid = options.skuAndroid,
1267
- packageNameAndroid = options.packageNameAndroid
1296
+ skuAndroid = options.skuAndroid.unwrapString(),
1297
+ packageNameAndroid = options.packageNameAndroid.unwrapString()
1268
1298
  ).let { openIap.deepLinkToSubscriptions(it) }
1269
1299
  RnIapLog.result("deepLinkToSubscriptionsAndroid", true)
1270
1300
  } catch (e: Exception) {
@@ -1275,18 +1305,18 @@ class HybridRnIap : HybridRnIapSpec() {
1275
1305
  }
1276
1306
 
1277
1307
  // iOS-specific method - not supported on Android
1278
- override fun getPromotedProductIOS(): Promise<NitroProduct?> {
1308
+ override fun getPromotedProductIOS(): Promise<Variant_NullType_NitroProduct> {
1279
1309
  return Promise.async {
1280
- null
1310
+ Variant_NullType_NitroProduct.First(NullType.NULL)
1281
1311
  }
1282
1312
  }
1283
1313
 
1284
1314
  // iOS-specific method - not supported on Android
1285
- override fun requestPromotedProductIOS(): Promise<NitroProduct?> {
1315
+ override fun requestPromotedProductIOS(): Promise<Variant_NullType_NitroProduct> {
1286
1316
  return Promise.async {
1287
1317
  // Android doesn't have promoted products like iOS App Store
1288
1318
  // Return null as this feature is iOS-only
1289
- null
1319
+ Variant_NullType_NitroProduct.First(NullType.NULL)
1290
1320
  }
1291
1321
  }
1292
1322
 
@@ -1312,11 +1342,11 @@ class HybridRnIap : HybridRnIapSpec() {
1312
1342
  }
1313
1343
  }
1314
1344
 
1315
- override fun beginRefundRequestIOS(sku: String): Promise<String?> {
1345
+ override fun beginRefundRequestIOS(sku: String): Promise<Variant_NullType_String> {
1316
1346
  return Promise.async {
1317
1347
  // Android doesn't have in-app refund requests like iOS
1318
1348
  // Refunds on Android are handled through Google Play Console
1319
- null
1349
+ Variant_NullType_String.First(NullType.NULL)
1320
1350
  }
1321
1351
  }
1322
1352
 
@@ -1339,7 +1369,7 @@ class HybridRnIap : HybridRnIapSpec() {
1339
1369
  return Promise.async {
1340
1370
  try {
1341
1371
  // For Android, we need the google options to be provided (new platform-specific structure)
1342
- val nitroGoogleOptions = params.google
1372
+ val nitroGoogleOptions = (params.google as? Variant_NullType_NitroReceiptValidationGoogleOptions.Second)?.value
1343
1373
  ?: throw OpenIapException(toErrorJson(OpenIAPError.DeveloperError, debugMessage = "Missing required parameter: google options"))
1344
1374
 
1345
1375
  // Validate required google fields
@@ -1358,7 +1388,7 @@ class HybridRnIap : HybridRnIapSpec() {
1358
1388
  RnIapLog.payload("validateReceipt", mapOf(
1359
1389
  "sku" to nitroGoogleOptions.sku,
1360
1390
  "packageName" to nitroGoogleOptions.packageName,
1361
- "isSub" to nitroGoogleOptions.isSub
1391
+ "isSub" to nitroGoogleOptions.isSub.unwrapBool()
1362
1392
  ))
1363
1393
 
1364
1394
  // Create OpenIAP VerifyPurchaseGoogleOptions
@@ -1367,7 +1397,7 @@ class HybridRnIap : HybridRnIapSpec() {
1367
1397
  accessToken = nitroGoogleOptions.accessToken,
1368
1398
  packageName = nitroGoogleOptions.packageName,
1369
1399
  purchaseToken = nitroGoogleOptions.purchaseToken,
1370
- isSub = nitroGoogleOptions.isSub
1400
+ isSub = nitroGoogleOptions.isSub.unwrapBool()
1371
1401
  )
1372
1402
 
1373
1403
  // Create OpenIAP VerifyPurchaseProps
@@ -1385,10 +1415,10 @@ class HybridRnIap : HybridRnIapSpec() {
1385
1415
  val result = NitroReceiptValidationResultAndroid(
1386
1416
  autoRenewing = androidResult.autoRenewing,
1387
1417
  betaProduct = androidResult.betaProduct,
1388
- cancelDate = androidResult.cancelDate,
1389
- cancelReason = androidResult.cancelReason,
1390
- deferredDate = androidResult.deferredDate,
1391
- deferredSku = androidResult.deferredSku,
1418
+ cancelDate = androidResult.cancelDate.wrapVariant(),
1419
+ cancelReason = androidResult.cancelReason.wrapVariant(),
1420
+ deferredDate = androidResult.deferredDate.wrapVariant(),
1421
+ deferredSku = androidResult.deferredSku.wrapVariant(),
1392
1422
  freeTrialEndDate = androidResult.freeTrialEndDate,
1393
1423
  gracePeriodEndDate = androidResult.gracePeriodEndDate,
1394
1424
  parentProductId = androidResult.parentProductId,
@@ -1432,15 +1462,15 @@ class HybridRnIap : HybridRnIapSpec() {
1432
1462
 
1433
1463
  // Build the props map for OpenIAP - use string value for provider
1434
1464
  val propsMap = mutableMapOf<String, Any?>("provider" to providerString)
1435
- params.iapkit?.let { iapkit ->
1465
+ (params.iapkit as? Variant_NullType_NitroVerifyPurchaseWithIapkitProps.Second)?.value?.let { iapkit ->
1436
1466
  val iapkitMap = mutableMapOf<String, Any?>()
1437
1467
  // Use provided apiKey, or fallback to AndroidManifest meta-data (set by config plugin)
1438
- val apiKey = iapkit.apiKey ?: getIapkitApiKeyFromManifest()
1468
+ val apiKey = iapkit.apiKey.unwrapString() ?: getIapkitApiKeyFromManifest()
1439
1469
  apiKey?.let { iapkitMap["apiKey"] = it }
1440
- iapkit.google?.let { google ->
1470
+ (iapkit.google as? Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.Second)?.value?.let { google ->
1441
1471
  iapkitMap["google"] = mapOf("purchaseToken" to google.purchaseToken)
1442
1472
  }
1443
- iapkit.apple?.let { apple ->
1473
+ (iapkit.apple as? Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.Second)?.value?.let { apple ->
1444
1474
  iapkitMap["apple"] = mapOf("jws" to apple.jws)
1445
1475
  }
1446
1476
  propsMap["iapkit"] = iapkitMap
@@ -1464,14 +1494,14 @@ class HybridRnIap : HybridRnIapSpec() {
1464
1494
  // Convert errors if present
1465
1495
  val nitroErrors = result.errors?.map { error ->
1466
1496
  NitroVerifyPurchaseWithProviderError(
1467
- code = error.code,
1468
- message = error.message
1497
+ code = error.code?.let { Variant_NullType_String.Second(it) },
1498
+ message = error.message ?: ""
1469
1499
  )
1470
1500
  }?.toTypedArray()
1471
1501
 
1472
1502
  NitroVerifyPurchaseWithProviderResult(
1473
- iapkit = nitroIapkitResult,
1474
- errors = nitroErrors,
1503
+ iapkit = nitroIapkitResult?.let { Variant_NullType_NitroVerifyPurchaseWithIapkitResult.Second(it) },
1504
+ errors = nitroErrors?.let { Variant_NullType_Array_NitroVerifyPurchaseWithProviderError_.Second(it) },
1475
1505
  provider = mapPurchaseVerificationProvider(result.provider.name)
1476
1506
  )
1477
1507
  } catch (e: Exception) {
@@ -1489,19 +1519,19 @@ class HybridRnIap : HybridRnIapSpec() {
1489
1519
  }
1490
1520
 
1491
1521
  // iOS-specific methods - Not applicable on Android, return appropriate defaults
1492
- override fun subscriptionStatusIOS(sku: String): Promise<Array<NitroSubscriptionStatus>?> {
1522
+ override fun subscriptionStatusIOS(sku: String): Promise<Variant_NullType_Array_NitroSubscriptionStatus_> {
1493
1523
  return Promise.async {
1494
1524
  throw OpenIapException(toErrorJson(OpenIAPError.FeatureNotSupported))
1495
1525
  }
1496
1526
  }
1497
1527
 
1498
- override fun currentEntitlementIOS(sku: String): Promise<NitroPurchase?> {
1528
+ override fun currentEntitlementIOS(sku: String): Promise<Variant_NullType_NitroPurchase> {
1499
1529
  return Promise.async {
1500
1530
  throw OpenIapException(toErrorJson(OpenIAPError.FeatureNotSupported))
1501
1531
  }
1502
1532
  }
1503
1533
 
1504
- override fun latestTransactionIOS(sku: String): Promise<NitroPurchase?> {
1534
+ override fun latestTransactionIOS(sku: String): Promise<Variant_NullType_NitroPurchase> {
1505
1535
  return Promise.async {
1506
1536
  throw OpenIapException(toErrorJson(OpenIAPError.FeatureNotSupported))
1507
1537
  }
@@ -1551,7 +1581,7 @@ class HybridRnIap : HybridRnIapSpec() {
1551
1581
  }
1552
1582
  }
1553
1583
 
1554
- override fun getTransactionJwsIOS(sku: String): Promise<String?> {
1584
+ override fun getTransactionJwsIOS(sku: String): Promise<Variant_NullType_String> {
1555
1585
  return Promise.async {
1556
1586
  throw OpenIapException(toErrorJson(OpenIAPError.FeatureNotSupported))
1557
1587
  }
@@ -1599,9 +1629,10 @@ class HybridRnIap : HybridRnIapSpec() {
1599
1629
  }
1600
1630
  }
1601
1631
 
1602
- override fun createAlternativeBillingTokenAndroid(sku: String?): Promise<String?> {
1632
+ override fun createAlternativeBillingTokenAndroid(sku: Variant_NullType_String?): Promise<Variant_NullType_String> {
1603
1633
  return Promise.async {
1604
- RnIapLog.payload("createAlternativeBillingTokenAndroid", mapOf("sku" to sku))
1634
+ val skuValue = sku.unwrapString()
1635
+ RnIapLog.payload("createAlternativeBillingTokenAndroid", mapOf("sku" to skuValue))
1605
1636
  try {
1606
1637
  // Note: OpenIapModule.createAlternativeBillingReportingToken() doesn't accept sku parameter
1607
1638
  // The sku parameter is ignored for now - may be used in future versions
@@ -1609,7 +1640,7 @@ class HybridRnIap : HybridRnIapSpec() {
1609
1640
  openIap.createAlternativeBillingReportingToken()
1610
1641
  }
1611
1642
  RnIapLog.result("createAlternativeBillingTokenAndroid", token)
1612
- token
1643
+ token?.let { Variant_NullType_String.Second(it) } ?: Variant_NullType_String.First(NullType.NULL)
1613
1644
  } catch (err: Throwable) {
1614
1645
  RnIapLog.failure("createAlternativeBillingTokenAndroid", err)
1615
1646
  val errorType = parseOpenIapError(err)
@@ -1677,7 +1708,7 @@ class HybridRnIap : HybridRnIapSpec() {
1677
1708
  return Promise.async {
1678
1709
  RnIapLog.payload("isBillingProgramAvailableAndroid", mapOf("program" to program.name))
1679
1710
  try {
1680
- initConnection(null).await()
1711
+ ensureConnection()
1681
1712
  val openIapProgram = mapBillingProgram(program)
1682
1713
  val result = openIapStore.isBillingProgramAvailable(openIapProgram)
1683
1714
  val nitroResult = NitroBillingProgramAvailabilityResultAndroid(
@@ -1698,7 +1729,7 @@ class HybridRnIap : HybridRnIapSpec() {
1698
1729
  return Promise.async {
1699
1730
  RnIapLog.payload("createBillingProgramReportingDetailsAndroid", mapOf("program" to program.name))
1700
1731
  try {
1701
- initConnection(null).await()
1732
+ ensureConnection()
1702
1733
  val openIapProgram = mapBillingProgram(program)
1703
1734
  val result = openIapStore.createBillingProgramReportingDetails(openIapProgram)
1704
1735
  val nitroResult = NitroBillingProgramReportingDetailsAndroid(
@@ -1724,7 +1755,7 @@ class HybridRnIap : HybridRnIapSpec() {
1724
1755
  "linkUri" to params.linkUri
1725
1756
  ))
1726
1757
  try {
1727
- initConnection(null).await()
1758
+ ensureConnection()
1728
1759
 
1729
1760
  val activity = withContext(Dispatchers.Main) {
1730
1761
  runCatching { context.currentActivity }.getOrNull()