react-native-iap 15.4.0 → 15.4.1

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 (422) hide show
  1. package/android/src/main/java/com/margelo/nitro/iap/ConnectionLifecycleQueue.kt +113 -0
  2. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +221 -87
  3. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +23 -1
  4. package/ios/HybridRnIap.swift +211 -139
  5. package/ios/RnIapHelper.swift +150 -26
  6. package/ios/RnIapLog.swift +24 -1
  7. package/lib/module/hooks/useIAP.js +1 -1
  8. package/lib/module/hooks/useIAP.js.map +1 -1
  9. package/lib/module/index.js +47 -28
  10. package/lib/module/index.js.map +1 -1
  11. package/lib/module/types.js +11 -9
  12. package/lib/module/types.js.map +1 -1
  13. package/lib/module/utils/error.js +7 -3
  14. package/lib/module/utils/error.js.map +1 -1
  15. package/lib/module/utils/errorMapping.js +2 -0
  16. package/lib/module/utils/errorMapping.js.map +1 -1
  17. package/lib/module/utils/type-bridge.js +28 -19
  18. package/lib/module/utils/type-bridge.js.map +1 -1
  19. package/lib/module/vega-adapter.js +31 -6
  20. package/lib/module/vega-adapter.js.map +1 -1
  21. package/lib/typescript/src/hooks/useIAP.d.ts +3 -3
  22. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/specs/RnIap.nitro.d.ts +21 -19
  25. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  26. package/lib/typescript/src/types.d.ts +58 -26
  27. package/lib/typescript/src/types.d.ts.map +1 -1
  28. package/lib/typescript/src/utils/error.d.ts.map +1 -1
  29. package/lib/typescript/src/utils/errorMapping.d.ts +3 -1
  30. package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
  31. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  32. package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
  33. package/nitro.json +8 -2
  34. package/nitrogen/generated/android/NitroIap+autolinking.cmake +1 -1
  35. package/nitrogen/generated/android/NitroIapOnLoad.cpp +2 -2
  36. package/nitrogen/generated/android/c++/JAdvancedCommerceInfoIOS.hpp +10 -10
  37. package/nitrogen/generated/android/c++/JAdvancedCommerceItemDetailsIOS.hpp +2 -2
  38. package/nitrogen/generated/android/c++/JAdvancedCommerceItemIOS.hpp +2 -2
  39. package/nitrogen/generated/android/c++/JAdvancedCommerceRefundIOS.hpp +2 -2
  40. package/nitrogen/generated/android/c++/JAlternativeBillingModeAndroid.hpp +2 -2
  41. package/nitrogen/generated/android/c++/JAndroidSubscriptionOfferInput.hpp +2 -2
  42. package/nitrogen/generated/android/c++/JBillingChoiceImageLayoutAndroid.hpp +2 -2
  43. package/nitrogen/generated/android/c++/JBillingChoiceScreenTypeAndroid.hpp +2 -2
  44. package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +2 -2
  45. package/nitrogen/generated/android/c++/JDeveloperBillingLaunchModeAndroid.hpp +2 -2
  46. package/nitrogen/generated/android/c++/JDeveloperBillingOptionParamsAndroid.hpp +2 -2
  47. package/nitrogen/generated/android/c++/JDeveloperBillingTypeAndroid.hpp +2 -2
  48. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +10 -10
  49. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +2 -2
  50. package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +2 -2
  51. package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +2 -2
  52. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeResultIOS.hpp +2 -2
  53. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeTypeIOS.hpp +2 -2
  54. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenResultIOS.hpp +2 -2
  55. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenTypeIOS.hpp +2 -2
  56. package/nitrogen/generated/android/c++/JExternalPurchaseLinkResultIOS.hpp +2 -2
  57. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeAction.hpp +2 -2
  58. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeResultIOS.hpp +2 -2
  59. package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +2 -2
  60. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +2 -2
  61. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +26 -2
  62. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +5 -2
  63. package/nitrogen/generated/android/c++/JFunc_void_UserChoiceBillingDetails.hpp +12 -2
  64. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +51 -54
  65. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +3 -3
  66. package/nitrogen/generated/android/c++/JIapPlatform.hpp +2 -2
  67. package/nitrogen/generated/android/c++/JIapStore.hpp +2 -2
  68. package/nitrogen/generated/android/c++/JIapkitPurchaseState.hpp +2 -2
  69. package/nitrogen/generated/android/c++/JInAppMessageCategoryAndroid.hpp +2 -2
  70. package/nitrogen/generated/android/c++/JInAppMessageResponseCodeAndroid.hpp +2 -2
  71. package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +2 -2
  72. package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +7 -2
  73. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +2 -2
  74. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidType.hpp +2 -2
  75. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +2 -2
  76. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +2 -2
  77. package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +2 -2
  78. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +2 -2
  79. package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +2 -2
  80. package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +2 -2
  81. package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +2 -2
  82. package/nitrogen/generated/android/c++/JNitroDeepLinkOptionsAndroid.hpp +2 -2
  83. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +2 -2
  84. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +2 -2
  85. package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +2 -2
  86. package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +2 -2
  87. package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +2 -2
  88. package/nitrogen/generated/android/c++/JNitroGetBillingChoiceInfoParamsAndroid.hpp +2 -2
  89. package/nitrogen/generated/android/c++/JNitroInAppMessageParamsAndroid.hpp +2 -2
  90. package/nitrogen/generated/android/c++/JNitroInAppMessageResultAndroid.hpp +2 -2
  91. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +2 -2
  92. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +2 -2
  93. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +10 -10
  94. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +2 -2
  95. package/nitrogen/generated/android/c++/JNitroProduct.hpp +2 -2
  96. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +53 -5
  97. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +2 -2
  98. package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +46 -5
  99. package/nitrogen/generated/android/c++/JNitroReceiptValidationAppleOptions.hpp +2 -2
  100. package/nitrogen/generated/android/c++/JNitroReceiptValidationGoogleOptions.hpp +2 -2
  101. package/nitrogen/generated/android/c++/JNitroReceiptValidationHorizonOptions.hpp +2 -2
  102. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +2 -2
  103. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +2 -2
  104. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +26 -2
  105. package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +16 -3
  106. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +2 -2
  107. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +10 -10
  108. package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +2 -2
  109. package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +15 -9
  110. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +2 -2
  111. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAmazonProps.hpp +2 -2
  112. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAppleProps.hpp +2 -2
  113. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitGoogleProps.hpp +2 -2
  114. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitProps.hpp +2 -2
  115. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +2 -2
  116. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +2 -2
  117. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderProps.hpp +2 -2
  118. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +2 -2
  119. package/nitrogen/generated/android/c++/JPaymentModeIOS.hpp +2 -2
  120. package/nitrogen/generated/android/c++/JPendingPurchaseUpdateAndroid.hpp +10 -10
  121. package/nitrogen/generated/android/c++/JProductType.hpp +2 -2
  122. package/nitrogen/generated/android/c++/JPromotionalOfferJwsInputIOS.hpp +2 -2
  123. package/nitrogen/generated/android/c++/JPurchase.hpp +3 -3
  124. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +2 -2
  125. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +2 -2
  126. package/nitrogen/generated/android/c++/JPurchaseOfferIOS.hpp +2 -2
  127. package/nitrogen/generated/android/c++/JPurchaseState.hpp +2 -2
  128. package/nitrogen/generated/android/c++/JPurchaseUpdatedListenerOptions.hpp +2 -2
  129. package/nitrogen/generated/android/c++/JPurchaseVerificationProvider.hpp +2 -2
  130. package/nitrogen/generated/android/c++/JRenewalCommitmentInfoIOS.hpp +2 -2
  131. package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +2 -2
  132. package/nitrogen/generated/android/c++/JRequestPurchaseResult.cpp +4 -4
  133. package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +9 -9
  134. package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +2 -2
  135. package/nitrogen/generated/android/c++/JSubscriptionBillingPlanTypeIOS.hpp +2 -2
  136. package/nitrogen/generated/android/c++/JSubscriptionProductReplacementParamsAndroid.hpp +2 -2
  137. package/nitrogen/generated/android/c++/JSubscriptionReplacementModeAndroid.hpp +2 -2
  138. package/nitrogen/generated/android/c++/JTransactionCommitmentInfoIOS.hpp +2 -2
  139. package/nitrogen/generated/android/c++/JUserChoiceBillingDetails.hpp +29 -11
  140. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +6 -3
  141. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +27 -3
  142. package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceInfoIOS.hpp +3 -3
  143. package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceItemDetailsIOS.hpp +3 -3
  144. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.cpp +4 -4
  145. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.hpp +7 -7
  146. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.cpp +4 -4
  147. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.hpp +7 -7
  148. package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.cpp +35 -0
  149. package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.hpp +86 -0
  150. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.cpp +4 -4
  151. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.hpp +7 -7
  152. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.cpp +4 -4
  153. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.hpp +7 -7
  154. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.cpp +4 -4
  155. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.hpp +16 -10
  156. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.cpp +4 -4
  157. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.hpp +7 -7
  158. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.cpp +4 -4
  159. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.hpp +7 -7
  160. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +3 -3
  161. package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +3 -3
  162. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
  163. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +3 -3
  164. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +3 -3
  165. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesAndroidOptions.hpp +3 -3
  166. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesIosOptions.hpp +3 -3
  167. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.hpp +3 -3
  168. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.hpp +3 -3
  169. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionAndroidParams.hpp +3 -3
  170. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionIosParams.hpp +3 -3
  171. package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.hpp +3 -3
  172. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.hpp +3 -3
  173. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.hpp +3 -3
  174. package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.hpp +3 -3
  175. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.hpp +27 -3
  176. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.hpp +3 -3
  177. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.hpp +3 -3
  178. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.hpp +3 -3
  179. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRenewalInfoIOS.hpp +8 -3
  180. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.hpp +3 -3
  181. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +3 -3
  182. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseIos.hpp +3 -3
  183. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.hpp +3 -3
  184. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.hpp +3 -3
  185. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.hpp +3 -3
  186. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.hpp +3 -3
  187. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitProps.hpp +3 -3
  188. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitResult.hpp +3 -3
  189. package/nitrogen/generated/android/c++/JVariant_NullType_PendingPurchaseUpdateAndroid.hpp +3 -3
  190. package/nitrogen/generated/android/c++/JVariant_NullType_PromotionalOfferJwsInputIOS.hpp +3 -3
  191. package/nitrogen/generated/android/c++/JVariant_NullType_PurchaseOfferIOS.hpp +3 -3
  192. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalCommitmentInfoIOS.hpp +3 -3
  193. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalInfoIOS.hpp +3 -3
  194. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
  195. package/nitrogen/generated/android/c++/JVariant_NullType_SubscriptionProductReplacementParamsAndroid.hpp +3 -3
  196. package/nitrogen/generated/android/c++/JVariant_NullType_TransactionCommitmentInfoIOS.hpp +3 -3
  197. package/nitrogen/generated/android/c++/JVariant_NullType_WinBackOfferInputIOS.hpp +3 -3
  198. package/nitrogen/generated/android/c++/JWinBackOfferInputIOS.hpp +2 -2
  199. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceInfoIOS.kt +27 -0
  200. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemDetailsIOS.kt +13 -0
  201. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemIOS.kt +17 -0
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceRefundIOS.kt +13 -0
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt +15 -0
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingOptionParamsAndroid.kt +19 -0
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +19 -0
  206. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +17 -0
  207. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkNoticeResultIOS.kt +15 -0
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkTokenResultIOS.kt +15 -0
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt +15 -0
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt +17 -0
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +1 -1
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +17 -0
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +39 -0
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +15 -0
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +21 -0
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +15 -0
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +15 -0
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +19 -0
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +15 -0
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +15 -0
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +17 -0
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt +15 -0
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +15 -0
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +15 -0
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +15 -0
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +13 -0
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +15 -0
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +17 -0
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +13 -0
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +15 -0
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +21 -0
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +15 -0
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +37 -0
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +15 -0
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +85 -0
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +128 -3
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +19 -0
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +49 -3
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAppleOptions.kt +13 -0
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationGoogleOptions.kt +21 -0
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationHorizonOptions.kt +17 -0
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +17 -0
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +47 -0
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +19 -0
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +45 -2
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +15 -0
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +33 -0
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +31 -0
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +19 -2
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +15 -0
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAmazonProps.kt +17 -0
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAppleProps.kt +13 -0
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitGoogleProps.kt +13 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitProps.kt +19 -0
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +17 -0
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +15 -0
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderProps.kt +15 -0
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +17 -0
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PendingPurchaseUpdateAndroid.kt +15 -0
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PromotionalOfferJwsInputIOS.kt +15 -0
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Purchase.kt +16 -7
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +55 -0
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +85 -0
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseOfferIOS.kt +17 -0
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseUpdatedListenerOptions.kt +13 -0
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalCommitmentInfoIOS.kt +21 -0
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +37 -0
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RequestPurchaseResult.kt +20 -9
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubscriptionProductReplacementParamsAndroid.kt +15 -0
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/TransactionCommitmentInfoIOS.kt +19 -0
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/UserChoiceBillingDetails.kt +28 -3
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +16 -7
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +16 -7
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceInfoIOS.kt +16 -7
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceItemDetailsIOS.kt +16 -7
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AdvancedCommerceRefundIOS_.kt +16 -7
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AndroidSubscriptionOfferInput_.kt +16 -7
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_DeveloperProvidedBillingProductAndroid_.kt +62 -0
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +16 -7
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.kt +16 -7
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroSubscriptionStatus_.kt +16 -7
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroVerifyPurchaseWithProviderError_.kt +16 -7
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_String_.kt +16 -7
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Boolean.kt +16 -7
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +16 -7
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Double.kt +16 -7
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_InitConnectionConfig.kt +16 -7
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Map_String__String_.kt +16 -7
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesAndroidOptions.kt +16 -7
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesIosOptions.kt +16 -7
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountAmountAndroid.kt +16 -7
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountDisplayInfoAndroid.kt +16 -7
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionAndroidParams.kt +16 -7
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionIosParams.kt +16 -7
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +16 -7
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroLimitedQuantityInfoAndroid.kt +16 -7
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPreorderDetailsAndroid.kt +16 -7
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroProduct.kt +16 -7
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPurchase.kt +16 -7
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationAppleOptions.kt +16 -7
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationGoogleOptions.kt +16 -7
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationHorizonOptions.kt +16 -7
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRenewalInfoIOS.kt +16 -7
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRentalDetailsAndroid.kt +16 -7
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseAndroid.kt +16 -7
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseIos.kt +16 -7
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroValidTimeWindowAndroid.kt +16 -7
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.kt +16 -7
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.kt +16 -7
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.kt +16 -7
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.kt +16 -7
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.kt +16 -7
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PendingPurchaseUpdateAndroid.kt +16 -7
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PromotionalOfferJwsInputIOS.kt +16 -7
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PurchaseOfferIOS.kt +16 -7
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalCommitmentInfoIOS.kt +16 -7
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalInfoIOS.kt +16 -7
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_String.kt +16 -7
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_SubscriptionProductReplacementParamsAndroid.kt +16 -7
  320. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_TransactionCommitmentInfoIOS.kt +16 -7
  321. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_WinBackOfferInputIOS.kt +16 -7
  322. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/WinBackOfferInputIOS.kt +13 -0
  323. package/nitrogen/generated/ios/NitroIap+autolinking.rb +2 -0
  324. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +85 -73
  325. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +0 -3
  326. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +7 -10
  327. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +1 -1
  328. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +7 -7
  329. package/nitrogen/generated/ios/swift/NitroPurchase.swift +204 -2
  330. package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +90 -1
  331. package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +49 -1
  332. package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +11 -11
  333. package/nitrogen/generated/ios/swift/Purchase.swift +12 -0
  334. package/nitrogen/generated/ios/swift/RequestPurchaseResult.swift +14 -0
  335. package/nitrogen/generated/ios/swift/UserChoiceBillingDetails.swift +82 -2
  336. package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +12 -0
  337. package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +12 -0
  338. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceInfoIOS.swift +12 -0
  339. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceItemDetailsIOS.swift +12 -0
  340. package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +12 -0
  341. package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +12 -0
  342. package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +12 -0
  343. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +12 -0
  344. package/nitrogen/generated/ios/swift/Variant_NullType_InitConnectionConfig.swift +12 -0
  345. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesAndroidOptions.swift +12 -0
  346. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesIosOptions.swift +12 -0
  347. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +12 -0
  348. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +12 -0
  349. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionAndroidParams.swift +12 -0
  350. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionIosParams.swift +12 -0
  351. package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +12 -0
  352. package/nitrogen/generated/ios/swift/Variant_NullType_NitroLimitedQuantityInfoAndroid.swift +12 -0
  353. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPreorderDetailsAndroid.swift +12 -0
  354. package/nitrogen/generated/ios/swift/Variant_NullType_NitroProduct.swift +12 -0
  355. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPurchase.swift +12 -0
  356. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationAppleOptions.swift +12 -0
  357. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +12 -0
  358. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +12 -0
  359. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRenewalInfoIOS.swift +12 -0
  360. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +12 -0
  361. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseAndroid.swift +12 -0
  362. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseIos.swift +12 -0
  363. package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +12 -0
  364. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.swift +12 -0
  365. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.swift +12 -0
  366. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.swift +12 -0
  367. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.swift +12 -0
  368. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.swift +12 -0
  369. package/nitrogen/generated/ios/swift/Variant_NullType_PendingPurchaseUpdateAndroid.swift +12 -0
  370. package/nitrogen/generated/ios/swift/Variant_NullType_PromotionalOfferJwsInputIOS.swift +12 -0
  371. package/nitrogen/generated/ios/swift/Variant_NullType_PurchaseOfferIOS.swift +12 -0
  372. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalCommitmentInfoIOS.swift +12 -0
  373. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalInfoIOS.swift +12 -0
  374. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +12 -0
  375. package/nitrogen/generated/ios/swift/Variant_NullType_SubscriptionProductReplacementParamsAndroid.swift +12 -0
  376. package/nitrogen/generated/ios/swift/Variant_NullType_TransactionCommitmentInfoIOS.swift +12 -0
  377. package/nitrogen/generated/ios/swift/Variant_NullType_WinBackOfferInputIOS.swift +12 -0
  378. package/nitrogen/generated/ios/swift/Variant_NullType__AdvancedCommerceRefundIOS_.swift +12 -0
  379. package/nitrogen/generated/ios/swift/Variant_NullType__AndroidSubscriptionOfferInput_.swift +12 -0
  380. package/nitrogen/generated/ios/swift/Variant_NullType__DeveloperProvidedBillingProductAndroid_.swift +30 -0
  381. package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +12 -0
  382. package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +12 -0
  383. package/nitrogen/generated/ios/swift/Variant_NullType__NitroSubscriptionStatus_.swift +12 -0
  384. package/nitrogen/generated/ios/swift/Variant_NullType__NitroVerifyPurchaseWithProviderError_.swift +12 -0
  385. package/nitrogen/generated/ios/swift/Variant_NullType__String_.swift +12 -0
  386. package/nitrogen/generated/shared/c++/AdvancedCommerceInfoIOS.hpp +1 -1
  387. package/nitrogen/generated/shared/c++/AdvancedCommerceItemIOS.hpp +1 -1
  388. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +1 -1
  389. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +1 -1
  390. package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +1 -1
  391. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +1 -1
  392. package/nitrogen/generated/shared/c++/NitroProduct.hpp +1 -1
  393. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +40 -3
  394. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +1 -1
  395. package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +27 -4
  396. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +1 -1
  397. package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +15 -2
  398. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +1 -1
  399. package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +8 -8
  400. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +1 -1
  401. package/nitrogen/generated/shared/c++/PendingPurchaseUpdateAndroid.hpp +1 -1
  402. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +1 -1
  403. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +1 -1
  404. package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +16 -3
  405. package/openiap-versions.json +3 -3
  406. package/package.json +8 -5
  407. package/src/hooks/useIAP.ts +7 -4
  408. package/src/index.ts +59 -39
  409. package/src/specs/RnIap.nitro.ts +25 -19
  410. package/src/types.ts +58 -26
  411. package/src/utils/error.ts +11 -8
  412. package/src/utils/errorMapping.ts +9 -1
  413. package/src/utils/type-bridge.ts +37 -40
  414. package/src/vega-adapter.ts +66 -4
  415. package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +0 -83
  416. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.cpp +0 -26
  417. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.hpp +0 -75
  418. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +0 -53
  419. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo.kt +0 -53
  420. package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +0 -182
  421. package/nitrogen/generated/ios/swift/Variant_NullType_NitroSubscriptionRenewalInfo.swift +0 -18
  422. package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +0 -106
package/src/types.ts CHANGED
@@ -143,7 +143,8 @@ export type BillingChoiceScreenTypeAndroid = 'unspecified' | 'developer-rendered
143
143
 
144
144
  /**
145
145
  * Billing program types for Google Play Billing Programs (Android)
146
- * Available in Google Play Billing Library 8.2.0+, EXTERNAL_PAYMENTS added in 8.3.0,
146
+ * Available in Google Play Billing Library 8.2.0 (External Offer and External Content Link
147
+ * integrations require 8.2.1+), EXTERNAL_PAYMENTS added in 8.3.0,
147
148
  * BILLING_CHOICE added in OpenIAP Spec 2.1.0 / openiap-google 2.3.0
148
149
  * (requires Play Billing 9.1.0+).
149
150
  */
@@ -192,7 +193,8 @@ export interface BillingProgramReportingDetailsAndroid {
192
193
  billingProgram: BillingProgramAndroid;
193
194
  /**
194
195
  * External transaction token used to report transactions made outside of Google Play Billing.
195
- * This token must be used when reporting the external transaction to Google.
196
+ * Do not cache it for a later redirect session. For External Offer, the same token may report
197
+ * multiple purchases made during the session that generated it.
196
198
  */
197
199
  externalTransactionToken: string;
198
200
  }
@@ -297,7 +299,7 @@ export interface DeveloperProvidedBillingProductAndroid {
297
299
 
298
300
  /**
299
301
  * Discount amount details for one-time purchase offers (Android)
300
- * Available in Google Play Billing Library 7.0+
302
+ * Available in Google Play Billing Library 8.0+
301
303
  */
302
304
  export interface DiscountAmountAndroid {
303
305
  /** Discount amount in micro-units (1,000,000 = 1 unit of currency) */
@@ -308,7 +310,7 @@ export interface DiscountAmountAndroid {
308
310
 
309
311
  /**
310
312
  * Discount display information for one-time purchase offers (Android)
311
- * Available in Google Play Billing Library 7.0+
313
+ * Available in Google Play Billing Library 8.0+
312
314
  */
313
315
  export interface DiscountDisplayInfoAndroid {
314
316
  /**
@@ -343,7 +345,7 @@ export interface DiscountIOS {
343
345
  * Standardized one-time product discount offer.
344
346
  * Provides a unified interface for one-time purchase discounts across platforms.
345
347
  *
346
- * Currently supported on Android (Google Play Billing 7.0+).
348
+ * Currently supported on Android (Google Play Billing 8.0+).
347
349
  * iOS does not support one-time purchase discounts in the same way.
348
350
  *
349
351
  * @see https://openiap.dev/docs/features/discount
@@ -399,7 +401,7 @@ export interface DiscountOffer {
399
401
  /**
400
402
  * [Android] Purchase option ID for this offer.
401
403
  * Used to identify which purchase option the user selected.
402
- * Available in Google Play Billing Library 7.0+
404
+ * Available in Google Play Billing Library 8.0+
403
405
  */
404
406
  purchaseOptionIdAndroid?: (string | null);
405
407
  /** [Android] Rental details if this is a rental offer. */
@@ -501,7 +503,8 @@ export enum ErrorCode {
501
503
  /**
502
504
  * Launch mode for external link flow (Android)
503
505
  * Determines how the external URL is launched
504
- * Available in Google Play Billing Library 8.2.0+
506
+ * Introduced in Google Play Billing Library 8.2.0. External Offer and External Content Link
507
+ * integrations require 8.2.1+ and fresh details immediately before every redirect session.
505
508
  */
506
509
  export type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';
507
510
 
@@ -676,8 +679,8 @@ export interface InitConnectionConfig {
676
679
  * Enable a specific billing program for Android (7.0+)
677
680
  * When set, enables the specified billing program for external transactions.
678
681
  * - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)
679
- * - EXTERNAL_CONTENT_LINK: Link to external content (8.2.0+)
680
- * - EXTERNAL_OFFER: External offers for digital content (8.2.0+)
682
+ * - EXTERNAL_CONTENT_LINK: Link to external content (introduced in 8.2.0; use 8.2.1+)
683
+ * - EXTERNAL_OFFER: External offers for digital content (introduced in 8.2.0; use 8.2.1+)
681
684
  * - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)
682
685
  * - BILLING_CHOICE: Google-rendered or developer-rendered billing choice
683
686
  * (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+)
@@ -731,7 +734,7 @@ export interface LaunchExternalLinkParamsAndroid {
731
734
 
732
735
  /**
733
736
  * Limited quantity information for one-time purchase offers (Android)
734
- * Available in Google Play Billing Library 7.0+
737
+ * Available in Google Play Billing Library 8.0+
735
738
  */
736
739
  export interface LimitedQuantityInfoAndroid {
737
740
  /** Maximum quantity a user can purchase */
@@ -778,7 +781,11 @@ export interface Mutation {
778
781
  */
779
782
  createAlternativeBillingTokenAndroid?: Promise<(string | null)>;
780
783
  /**
781
- * Create the reporting payload Google requires after a Developer-Provided Billing transaction (Play Billing 8.3.0+).
784
+ * Create the reporting details and external transaction token required by a billing program.
785
+ * Introduced in Play Billing 8.2.0. External Offer and External Content Link integrations
786
+ * must use 8.2.1+ and create fresh details immediately before every redirect session;
787
+ * do not cache the token for a later redirect. The same token may report multiple purchases
788
+ * made during one External Offer session.
782
789
  * Replaces the deprecated createExternalOfferReportingDetailsAsync API.
783
790
  * Returns external transaction token needed for reporting external transactions.
784
791
  * developerBillingType is optional. When program is BILLING_CHOICE and developerBillingType is omitted,
@@ -812,14 +819,16 @@ export interface Mutation {
812
819
  /**
813
820
  * Check whether a billing program (e.g., External Payments) is available for the current user.
814
821
  * Replaces the deprecated isExternalOfferAvailableAsync API.
815
- * Available in Google Play Billing Library 8.2.0+.
822
+ * Introduced in Google Play Billing Library 8.2.0. External Offer and External
823
+ * Content Link integrations must use 8.2.1+ because 8.2.1 fixes this API.
816
824
  * Returns availability result with isAvailable flag.
817
825
  * Throws OpenIapError.NotPrepared if billing client not ready.
818
826
  * See: https://openiap.dev/docs/apis/android/is-billing-program-available-android
819
827
  */
820
828
  isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;
821
829
  /**
822
- * Launch an external content/offer link from inside the Billing Programs flow (Play Billing 8.2.0+),
830
+ * Launch an external content/offer link from inside the Billing Programs flow (introduced in
831
+ * Play Billing 8.2.0; External Offer and External Content Link require 8.2.1+),
823
832
  * including developer-rendered Billing Choice external-link flows.
824
833
  * Billing Choice availability: OpenIAP Spec 2.1.0 / openiap-google 2.3.0
825
834
  * (requires Play Billing 9.1.0+).
@@ -1067,7 +1076,7 @@ export interface ProductAndroid extends ProductCommon {
1067
1076
  nameAndroid: string;
1068
1077
  /**
1069
1078
  * One-time purchase offer details including discounts (Android)
1070
- * Returns all eligible offers. Available in Google Play Billing Library 7.0+
1079
+ * Returns all eligible offers. Available in Google Play Billing Library 8.0+
1071
1080
  * @deprecated Use discountOffers instead for cross-platform compatibility.
1072
1081
  * @deprecated Use discountOffers instead
1073
1082
  */
@@ -1099,7 +1108,7 @@ export interface ProductAndroid extends ProductCommon {
1099
1108
 
1100
1109
  /**
1101
1110
  * One-time purchase offer details (Android).
1102
- * Available in Google Play Billing Library 7.0+
1111
+ * Available in Google Play Billing Library 8.0+
1103
1112
  * @deprecated Use the standardized DiscountOffer type instead for cross-platform compatibility.
1104
1113
  * @see https://openiap.dev/docs/types#discount-offer
1105
1114
  */
@@ -1133,7 +1142,7 @@ export interface ProductAndroidOneTimePurchaseOfferDetail {
1133
1142
  /**
1134
1143
  * Purchase option ID for this offer (Android)
1135
1144
  * Used to identify which purchase option the user selected.
1136
- * Available in Google Play Billing Library 7.0+
1145
+ * Available in Google Play Billing Library 8.0+
1137
1146
  */
1138
1147
  purchaseOptionId?: (string | null);
1139
1148
  /** Rental details for rental offers */
@@ -1224,7 +1233,7 @@ export interface ProductSubscriptionAndroid extends ProductCommon {
1224
1233
  nameAndroid: string;
1225
1234
  /**
1226
1235
  * One-time purchase offer details including discounts (Android)
1227
- * Returns all eligible offers. Available in Google Play Billing Library 7.0+
1236
+ * Returns all eligible offers. Available in Google Play Billing Library 8.0+
1228
1237
  * @deprecated Use discountOffers instead for cross-platform compatibility.
1229
1238
  * @deprecated Use discountOffers instead
1230
1239
  */
@@ -1417,6 +1426,7 @@ export interface PurchaseError {
1417
1426
  productIds?: (string[] | null);
1418
1427
  productType?: (string | null);
1419
1428
  responseCode?: (number | null);
1429
+ subResponseCodeAndroid?: (SubResponseCodeAndroid | null);
1420
1430
  }
1421
1431
 
1422
1432
  export interface PurchaseIOS extends PurchaseCommon {
@@ -1528,7 +1538,7 @@ export interface Query {
1528
1538
  getActiveSubscriptions: Promise<ActiveSubscription[]>;
1529
1539
  /**
1530
1540
  * List every StoreKit transaction (finished + unfinished) for the current user.
1531
- * Requires the SK2ConsumableTransactionHistory Info.plist key in the host app
1541
+ * Requires the SKIncludeConsumableInAppPurchaseHistory Info.plist key in the host app
1532
1542
  * for finished consumables to be included (iOS 18+).
1533
1543
  * Unlike getAvailablePurchases, always returns the iOS-specific PurchaseIOS shape.
1534
1544
  * See: https://openiap.dev/docs/apis/ios/get-all-transactions-ios
@@ -1574,12 +1584,15 @@ export interface Query {
1574
1584
  */
1575
1585
  getReceiptDataIOS?: Promise<(string | null)>;
1576
1586
  /**
1577
- * Return the user's storefront country code.
1587
+ * Return the store-authoritative country code: ISO 3166-1 alpha-3 on Apple
1588
+ * platforms and alpha-2 on Android. The operation fails when the store cannot
1589
+ * provide a value; implementations must not synthesize a locale fallback.
1578
1590
  * See: https://openiap.dev/docs/apis/get-storefront
1579
1591
  */
1580
1592
  getStorefront: Promise<string>;
1581
1593
  /**
1582
- * Deprecated. Get the current App Store storefront country code — use cross-platform getStorefront instead.
1594
+ * Deprecated. Get the current App Store storefront ISO 3166-1 alpha-3 country
1595
+ * code — use cross-platform getStorefront instead.
1583
1596
  * See: https://openiap.dev/docs/apis/ios/get-storefront-ios
1584
1597
  * @deprecated Use getStorefront
1585
1598
  */
@@ -1693,7 +1706,7 @@ export interface RenewalInfoIOS {
1693
1706
  gracePeriodExpirationDate?: (number | null);
1694
1707
  /**
1695
1708
  * True if subscription failed to renew due to billing issue and is retrying
1696
- * Note: Not directly available in RenewalInfo, available in Status
1709
+ * StoreKit exposes this directly as RenewalInfo.isInBillingRetry.
1697
1710
  */
1698
1711
  isInBillingRetry?: (boolean | null);
1699
1712
  jsonRepresentation?: (string | null);
@@ -1726,7 +1739,7 @@ export interface RenewalInfoIOS {
1726
1739
 
1727
1740
  /**
1728
1741
  * Rental details for one-time purchase products that can be rented (Android)
1729
- * Available in Google Play Billing Library 7.0+
1742
+ * Available in Google Play Billing Library 8.0+
1730
1743
  */
1731
1744
  export interface RentalDetailsAndroid {
1732
1745
  /**
@@ -1755,7 +1768,7 @@ export interface RequestPurchaseAndroidProps {
1755
1768
  /** Obfuscated profile ID */
1756
1769
  obfuscatedProfileId?: (string | null);
1757
1770
  /**
1758
- * Offer token for one-time purchase discounts (7.0+).
1771
+ * Offer token for one-time purchase discounts (8.0+).
1759
1772
  * Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers
1760
1773
  * to apply a discount offer to the purchase.
1761
1774
  */
@@ -1861,6 +1874,9 @@ export interface RequestSubscriptionAndroidProps {
1861
1874
  /**
1862
1875
  * Product-level replacement parameters (8.1.0+)
1863
1876
  * Use this instead of replacementMode for item-level replacement
1877
+ * This singular form requires skus to contain exactly one target product.
1878
+ * Multi-item subscription changes need a per-target replacement mapping and
1879
+ * are rejected rather than applying one oldProductId to multiple products.
1864
1880
  */
1865
1881
  subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);
1866
1882
  }
@@ -2001,14 +2017,17 @@ export interface Subscription {
2001
2017
  */
2002
2018
  purchaseUpdated: Purchase;
2003
2019
  /**
2004
- * Fires when an active subscription enters a billing-issue state that needs user action
2020
+ * Fires when a subscription enters a billing-issue state that needs user action
2005
2021
  * (payment method failed, card expired, etc.). Cross-platform unification:
2006
2022
  *
2007
- * - iOS 18+: delivered via StoreKit 2 `Message.Reason.billingIssue`.
2023
+ * - iOS 16.4+ / Mac Catalyst 16.4+ / visionOS 1.0+: delivered via StoreKit 2
2024
+ * `Message.Reason.billingIssue`.
2008
2025
  * - Android (Play flavor, Billing 8.1+): emitted when `isSuspended == true` is first detected
2009
2026
  * on a previously healthy subscription. Requires Google Play Billing Library 8.1.0 or newer.
2010
2027
  * - Android (Horizon flavor): NOT emitted. The Horizon Billing Compatibility SDK implements
2011
2028
  * the Play Billing 7.0 API surface which does not expose a suspended-subscription signal.
2029
+ * - Android (Amazon flavor): NOT emitted. Amazon Appstore IAP does not expose an
2030
+ * equivalent subscription billing-issue signal.
2012
2031
  *
2013
2032
  * Listeners should not assume the event will fire on every store. Direct users to the
2014
2033
  * platform subscription management UI (`deepLinkToSubscriptions`) to resolve the issue.
@@ -2206,13 +2225,26 @@ export interface TransactionCommitmentInfoIOS {
2206
2225
  export interface UserChoiceBillingDetails {
2207
2226
  /** Token that must be reported to Google Play within 24 hours */
2208
2227
  externalTransactionToken: string;
2228
+ /**
2229
+ * External transaction ID of the originating subscription when the user is
2230
+ * upgrading or downgrading a developer-billed subscription. Available in
2231
+ * OpenIAP Spec 2.3.0 / openiap-google 2.3.1 (requires Play Billing 9.1+).
2232
+ */
2233
+ originalExternalTransactionId?: (string | null);
2234
+ /**
2235
+ * Structured product details selected in the user-choice flow, including the
2236
+ * product type and offer token. Legacy payloads may omit this field; use
2237
+ * products as the product-ID fallback. Available in OpenIAP Spec 2.3.0 /
2238
+ * openiap-google 2.3.1 (requires Play Billing 9.1+).
2239
+ */
2240
+ productDetailsAndroid?: (DeveloperProvidedBillingProductAndroid[] | null);
2209
2241
  /** List of product IDs selected by the user */
2210
2242
  products: string[];
2211
2243
  }
2212
2244
 
2213
2245
  /**
2214
2246
  * Valid time window for when an offer is available (Android)
2215
- * Available in Google Play Billing Library 7.0+
2247
+ * Available in Google Play Billing Library 8.0+
2216
2248
  */
2217
2249
  export interface ValidTimeWindowAndroid {
2218
2250
  /** End time in milliseconds since epoch */
@@ -110,11 +110,11 @@ const parseNSErrorJsonPayload = (rawString: string): IapError | null => {
110
110
  return null;
111
111
  };
112
112
 
113
- const parseStructuredError = (error: Error): IapError | null => {
114
- const errorWithCode = error as Error & {code?: unknown} & Record<
115
- string,
116
- unknown
117
- >;
113
+ const parseStructuredError = (error: object): IapError | null => {
114
+ const errorWithCode = error as {code?: unknown; message?: unknown} & Record<
115
+ string,
116
+ unknown
117
+ >;
118
118
 
119
119
  if (errorWithCode.code != null) {
120
120
  const {code, message, ...extraFields} = errorWithCode;
@@ -122,7 +122,7 @@ const parseStructuredError = (error: Error): IapError | null => {
122
122
  return {
123
123
  ...extraFields,
124
124
  code: String(code),
125
- message: typeof message === 'string' ? message : error.message,
125
+ message: typeof message === 'string' ? message : 'Unknown error occurred',
126
126
  };
127
127
  }
128
128
 
@@ -143,13 +143,16 @@ const parseStructuredError = (error: Error): IapError | null => {
143
143
  export function parseErrorStringToJsonObj(
144
144
  errorString: string | Error | unknown,
145
145
  ): IapError {
146
- // Handle Error objects
147
- if (errorString instanceof Error) {
146
+ // Nitro can reject with either Error instances or plain structured objects.
147
+ if (typeof errorString === 'object' && errorString !== null) {
148
148
  const structuredError = parseStructuredError(errorString);
149
149
  if (structuredError) {
150
150
  return structuredError;
151
151
  }
152
+ }
152
153
 
154
+ // Parse an Error's message after checking for attached structured fields.
155
+ if (errorString instanceof Error) {
153
156
  errorString = errorString.message;
154
157
  }
155
158
 
@@ -4,7 +4,11 @@
4
4
  * and constructing structured purchase errors.
5
5
  */
6
6
 
7
- import {ErrorCode, type IapPlatform} from '../types';
7
+ import {
8
+ ErrorCode,
9
+ type IapPlatform,
10
+ type SubResponseCodeAndroid,
11
+ } from '../types';
8
12
 
9
13
  /**
10
14
  * Error code for duplicate purchase events detected on iOS.
@@ -54,6 +58,7 @@ export interface PurchaseErrorProps {
54
58
  productIds?: string[];
55
59
  productType?: string;
56
60
  isEmptyProductList?: boolean;
61
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
57
62
  platform?: IapPlatform;
58
63
  }
59
64
 
@@ -65,6 +70,7 @@ export interface PurchaseError extends Error {
65
70
  productIds?: string[];
66
71
  productType?: string;
67
72
  isEmptyProductList?: boolean;
73
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
68
74
  platform?: IapPlatform;
69
75
  }
70
76
 
@@ -146,6 +152,7 @@ export const createPurchaseError = (
146
152
  error.productIds = props.productIds;
147
153
  error.productType = props.productType;
148
154
  error.isEmptyProductList = props.isEmptyProductList;
155
+ error.subResponseCodeAndroid = props.subResponseCodeAndroid;
149
156
  error.platform = props.platform;
150
157
  return error;
151
158
  };
@@ -170,6 +177,7 @@ export const createPurchaseErrorFromPlatform = (
170
177
  productIds: errorData.productIds,
171
178
  productType: errorData.productType,
172
179
  isEmptyProductList: errorData.isEmptyProductList,
180
+ subResponseCodeAndroid: errorData.subResponseCodeAndroid,
173
181
  platform,
174
182
  });
175
183
  };
@@ -8,6 +8,7 @@
8
8
  import type {
9
9
  NitroProduct,
10
10
  NitroPurchase,
11
+ NitroRenewalInfoIOS,
11
12
  NitroSubscriptionStatus,
12
13
  } from '../specs/RnIap.nitro';
13
14
  import type {
@@ -25,6 +26,7 @@ import type {
25
26
  Purchase,
26
27
  PurchaseAndroid,
27
28
  PurchaseIOS,
29
+ RenewalInfoIOS,
28
30
  SubscriptionStatusIOS,
29
31
  } from '../types';
30
32
  import {RnIapConsole} from './debug';
@@ -191,6 +193,30 @@ function toNullableBoolean(value: unknown): boolean | null {
191
193
  return null;
192
194
  }
193
195
 
196
+ function convertNitroRenewalInfoToRenewalInfoIOS(
197
+ renewalInfo: NitroRenewalInfoIOS,
198
+ ): RenewalInfoIOS {
199
+ return {
200
+ autoRenewPreference: toNullableString(renewalInfo.autoRenewPreference),
201
+ commitmentInfo: renewalInfo.commitmentInfo ?? null,
202
+ expirationReason: toNullableString(renewalInfo.expirationReason),
203
+ gracePeriodExpirationDate: toNullableNumber(
204
+ renewalInfo.gracePeriodExpirationDate,
205
+ ),
206
+ isInBillingRetry: toNullableBoolean(renewalInfo.isInBillingRetry),
207
+ jsonRepresentation: toNullableString(renewalInfo.jsonRepresentation),
208
+ pendingUpgradeProductId: toNullableString(
209
+ renewalInfo.pendingUpgradeProductId,
210
+ ),
211
+ priceIncreaseStatus: toNullableString(renewalInfo.priceIncreaseStatus),
212
+ renewalBillingPlanType: renewalInfo.renewalBillingPlanType ?? null,
213
+ renewalDate: toNullableNumber(renewalInfo.renewalDate),
214
+ renewalOfferId: toNullableString(renewalInfo.renewalOfferId),
215
+ renewalOfferType: toNullableString(renewalInfo.renewalOfferType),
216
+ willAutoRenew: renewalInfo.willAutoRenew ?? false,
217
+ };
218
+ }
219
+
194
220
  function parseSubscriptionOffers(value?: Nullable<string> | any[]) {
195
221
  if (!value) return undefined;
196
222
 
@@ -442,8 +468,13 @@ export function convertNitroPurchaseToPurchase(
442
468
  quantity: nitroPurchase.quantity ?? 1,
443
469
  purchaseState,
444
470
  isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
471
+ currentPlanId: toNullableString(nitroPurchase.currentPlanId),
472
+ ids: nitroPurchase.ids ?? null,
445
473
  // PurchaseIOS requires both id and transactionId (they are the same value)
446
474
  transactionId: nitroPurchase.id,
475
+ advancedCommerceInfoIOS: nitroPurchase.advancedCommerceInfoIOS ?? null,
476
+ billingPlanTypeIOS: nitroPurchase.billingPlanTypeIOS ?? null,
477
+ commitmentInfoIOS: nitroPurchase.commitmentInfoIOS ?? null,
447
478
  quantityIOS: toNullableNumber(nitroPurchase.quantityIOS),
448
479
  originalTransactionDateIOS: toNullableNumber(
449
480
  nitroPurchase.originalTransactionDateIOS,
@@ -488,39 +519,7 @@ export function convertNitroPurchaseToPurchase(
488
519
  nitroPurchase.webOrderLineItemIdIOS,
489
520
  ),
490
521
  renewalInfoIOS: nitroPurchase.renewalInfoIOS
491
- ? {
492
- autoRenewPreference: toNullableString(
493
- nitroPurchase.renewalInfoIOS.autoRenewPreference,
494
- ),
495
- expirationReason: toNullableString(
496
- nitroPurchase.renewalInfoIOS.expirationReason,
497
- ),
498
- gracePeriodExpirationDate: toNullableNumber(
499
- nitroPurchase.renewalInfoIOS.gracePeriodExpirationDate,
500
- ),
501
- isInBillingRetry: toNullableBoolean(
502
- nitroPurchase.renewalInfoIOS.isInBillingRetry,
503
- ),
504
- jsonRepresentation: toNullableString(
505
- nitroPurchase.renewalInfoIOS.jsonRepresentation,
506
- ),
507
- pendingUpgradeProductId: toNullableString(
508
- nitroPurchase.renewalInfoIOS.pendingUpgradeProductId,
509
- ),
510
- priceIncreaseStatus: toNullableString(
511
- nitroPurchase.renewalInfoIOS.priceIncreaseStatus,
512
- ),
513
- renewalDate: toNullableNumber(
514
- nitroPurchase.renewalInfoIOS.renewalDate,
515
- ),
516
- renewalOfferId: toNullableString(
517
- nitroPurchase.renewalInfoIOS.renewalOfferId,
518
- ),
519
- renewalOfferType: toNullableString(
520
- nitroPurchase.renewalInfoIOS.renewalOfferType,
521
- ),
522
- willAutoRenew: nitroPurchase.renewalInfoIOS.willAutoRenew ?? false,
523
- }
522
+ ? convertNitroRenewalInfoToRenewalInfoIOS(nitroPurchase.renewalInfoIOS)
524
523
  : null,
525
524
  };
526
525
  return iosPurchase;
@@ -537,6 +536,8 @@ export function convertNitroPurchaseToPurchase(
537
536
  quantity: nitroPurchase.quantity ?? 1,
538
537
  purchaseState,
539
538
  isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
539
+ currentPlanId: toNullableString(nitroPurchase.currentPlanId),
540
+ ids: nitroPurchase.ids ?? null,
540
541
  // PurchaseAndroid has optional transactionId (may differ from id/orderId)
541
542
  transactionId: toNullableString(nitroPurchase.id),
542
543
  autoRenewingAndroid: toNullableBoolean(
@@ -558,6 +559,8 @@ export function convertNitroPurchaseToPurchase(
558
559
  nitroPurchase.developerPayloadAndroid,
559
560
  ),
560
561
  isSuspendedAndroid: toNullableBoolean(nitroPurchase.isSuspendedAndroid),
562
+ pendingPurchaseUpdateAndroid:
563
+ nitroPurchase.pendingPurchaseUpdateAndroid ?? null,
561
564
  };
562
565
 
563
566
  return androidPurchase;
@@ -572,13 +575,7 @@ export function convertNitroSubscriptionStatusToSubscriptionStatusIOS(
572
575
  return {
573
576
  state: String(nitro.state ?? ''),
574
577
  renewalInfo: nitro.renewalInfo
575
- ? {
576
- autoRenewPreference: toNullableString(
577
- nitro.renewalInfo.autoRenewPreference,
578
- ),
579
- jsonRepresentation: JSON.stringify(nitro.renewalInfo),
580
- willAutoRenew: Boolean(nitro.renewalInfo.autoRenewStatus),
581
- }
578
+ ? convertNitroRenewalInfoToRenewalInfoIOS(nitro.renewalInfo)
582
579
  : undefined,
583
580
  };
584
581
  }
@@ -9,6 +9,7 @@ import type {
9
9
  RnIap,
10
10
  } from './specs/RnIap.nitro';
11
11
  import {ErrorCode} from './types';
12
+ import type {SubResponseCodeAndroid} from './types';
12
13
 
13
14
  type ResponseOperation =
14
15
  | 'product-data'
@@ -97,9 +98,13 @@ interface VegaUserDataRequest {
97
98
  interface VegaError extends Error {
98
99
  code?: ErrorCode;
99
100
  debugMessage?: string;
101
+ isEmptyProductList?: boolean;
100
102
  platform?: 'android';
101
103
  productId?: string;
104
+ productIds?: string[];
105
+ productType?: string;
102
106
  responseCode?: number;
107
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
103
108
  }
104
109
 
105
110
  export interface VegaPurchasingService {
@@ -151,8 +156,12 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
151
156
  if (
152
157
  vegaError.code != null ||
153
158
  vegaError.debugMessage != null ||
159
+ vegaError.isEmptyProductList != null ||
154
160
  vegaError.productId != null ||
155
- vegaError.responseCode != null
161
+ vegaError.productIds != null ||
162
+ vegaError.productType != null ||
163
+ vegaError.responseCode != null ||
164
+ vegaError.subResponseCodeAndroid != null
156
165
  ) {
157
166
  return {
158
167
  code: vegaError.code,
@@ -160,6 +169,10 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
160
169
  responseCode: vegaError.responseCode,
161
170
  debugMessage: vegaError.debugMessage,
162
171
  productId: vegaError.productId,
172
+ productIds: vegaError.productIds,
173
+ productType: vegaError.productType,
174
+ isEmptyProductList: vegaError.isEmptyProductList,
175
+ subResponseCodeAndroid: vegaError.subResponseCodeAndroid,
163
176
  platform: vegaError.platform,
164
177
  };
165
178
  }
@@ -176,9 +189,12 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
176
189
  function toPurchaseErrorResult(
177
190
  error: unknown,
178
191
  fallbackMessage: string,
192
+ productId?: string,
179
193
  ): NitroPurchaseResult {
180
194
  const parsed = parseVegaErrorPayload(error);
181
195
  const responseCode = parsed.responseCode;
196
+ const parsedProductIds = parsed.productIds;
197
+ const parsedSubResponseCode = parsed.subResponseCodeAndroid;
182
198
  return {
183
199
  responseCode: typeof responseCode === 'number' ? responseCode : -1,
184
200
  code:
@@ -192,6 +208,23 @@ function toPurchaseErrorResult(
192
208
  debugMessage:
193
209
  typeof parsed.debugMessage === 'string' ? parsed.debugMessage : undefined,
194
210
  purchaseToken: undefined,
211
+ productId:
212
+ typeof parsed.productId === 'string' ? parsed.productId : productId,
213
+ productIds: Array.isArray(parsedProductIds)
214
+ ? parsedProductIds.filter(
215
+ (candidate): candidate is string => typeof candidate === 'string',
216
+ )
217
+ : undefined,
218
+ productType:
219
+ typeof parsed.productType === 'string' ? parsed.productType : undefined,
220
+ isEmptyProductList:
221
+ typeof parsed.isEmptyProductList === 'boolean'
222
+ ? parsed.isEmptyProductList
223
+ : undefined,
224
+ subResponseCodeAndroid:
225
+ typeof parsedSubResponseCode === 'string'
226
+ ? (parsedSubResponseCode as SubResponseCodeAndroid)
227
+ : undefined,
195
228
  };
196
229
  }
197
230
 
@@ -564,6 +597,8 @@ function mapReceipt(
564
597
  productId,
565
598
  transactionDate: toTimestamp(receipt.purchaseDate),
566
599
  purchaseToken: receiptId,
600
+ currentPlanId: type === 'subs' ? productId : null,
601
+ ids: productId ? [productId] : [],
567
602
  platform: 'android',
568
603
  store: 'amazon',
569
604
  quantity: 1,
@@ -719,8 +754,34 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
719
754
  };
720
755
 
721
756
  const getStorefront = async (): Promise<string> => {
722
- await getUserData();
723
- return cachedUserData?.marketplace ?? cachedUserData?.countryCode ?? '';
757
+ try {
758
+ const userData = await getUserData();
759
+ const storefront = userData?.marketplace ?? userData?.countryCode;
760
+ if (typeof storefront !== 'string' || storefront.trim().length === 0) {
761
+ throw createVegaError(
762
+ ErrorCode.ServiceError,
763
+ 'Amazon Vega storefront lookup returned no country code.',
764
+ );
765
+ }
766
+ return storefront;
767
+ } catch (error) {
768
+ const errorCode =
769
+ error instanceof Error
770
+ ? (error as Error & {code?: unknown}).code
771
+ : undefined;
772
+ if (
773
+ typeof errorCode === 'string' &&
774
+ Object.values(ErrorCode).includes(errorCode as ErrorCode)
775
+ ) {
776
+ throw error;
777
+ }
778
+ throw createVegaError(
779
+ ErrorCode.ServiceError,
780
+ `Failed to get Amazon Vega storefront: ${
781
+ error instanceof Error ? error.message : String(error)
782
+ }`,
783
+ );
784
+ }
724
785
  };
725
786
 
726
787
  const getPurchaseUpdateReceipts = async (): Promise<VegaReceipt[]> => {
@@ -1322,6 +1383,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1322
1383
  toPurchaseErrorResult(
1323
1384
  error,
1324
1385
  'Failed to complete Amazon Vega purchase',
1386
+ sku,
1325
1387
  ),
1326
1388
  );
1327
1389
  throw error;
@@ -1401,7 +1463,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1401
1463
  async getPromotedProductIOS(): Promise<null> {
1402
1464
  return throwUnsupportedFeature('getPromotedProductIOS');
1403
1465
  },
1404
- async buyPromotedProductIOS(): Promise<void> {
1466
+ async buyPromotedProductIOS(): Promise<boolean> {
1405
1467
  return throwUnsupportedFeature('buyPromotedProductIOS');
1406
1468
  },
1407
1469
  async presentCodeRedemptionSheetIOS(): Promise<boolean> {