react-native-iap 15.4.0 → 15.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) 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 +222 -87
  3. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +23 -1
  4. package/ios/HybridRnIap.swift +214 -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 +108 -12
  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 +27 -19
  25. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  26. package/lib/typescript/src/types.d.ts +65 -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 +7 -3
  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 +26 -2
  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/NitroVerifyPurchaseWithIapkitProps.swift +38 -1
  334. package/nitrogen/generated/ios/swift/Purchase.swift +12 -0
  335. package/nitrogen/generated/ios/swift/RequestPurchaseResult.swift +14 -0
  336. package/nitrogen/generated/ios/swift/UserChoiceBillingDetails.swift +82 -2
  337. package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +12 -0
  338. package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +12 -0
  339. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceInfoIOS.swift +12 -0
  340. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceItemDetailsIOS.swift +12 -0
  341. package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +12 -0
  342. package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +12 -0
  343. package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +12 -0
  344. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +12 -0
  345. package/nitrogen/generated/ios/swift/Variant_NullType_InitConnectionConfig.swift +12 -0
  346. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesAndroidOptions.swift +12 -0
  347. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesIosOptions.swift +12 -0
  348. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +12 -0
  349. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +12 -0
  350. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionAndroidParams.swift +12 -0
  351. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionIosParams.swift +12 -0
  352. package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +12 -0
  353. package/nitrogen/generated/ios/swift/Variant_NullType_NitroLimitedQuantityInfoAndroid.swift +12 -0
  354. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPreorderDetailsAndroid.swift +12 -0
  355. package/nitrogen/generated/ios/swift/Variant_NullType_NitroProduct.swift +12 -0
  356. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPurchase.swift +12 -0
  357. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationAppleOptions.swift +12 -0
  358. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +12 -0
  359. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +12 -0
  360. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRenewalInfoIOS.swift +12 -0
  361. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +12 -0
  362. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseAndroid.swift +12 -0
  363. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseIos.swift +12 -0
  364. package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +12 -0
  365. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.swift +12 -0
  366. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.swift +12 -0
  367. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.swift +12 -0
  368. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.swift +12 -0
  369. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.swift +12 -0
  370. package/nitrogen/generated/ios/swift/Variant_NullType_PendingPurchaseUpdateAndroid.swift +12 -0
  371. package/nitrogen/generated/ios/swift/Variant_NullType_PromotionalOfferJwsInputIOS.swift +12 -0
  372. package/nitrogen/generated/ios/swift/Variant_NullType_PurchaseOfferIOS.swift +12 -0
  373. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalCommitmentInfoIOS.swift +12 -0
  374. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalInfoIOS.swift +12 -0
  375. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +12 -0
  376. package/nitrogen/generated/ios/swift/Variant_NullType_SubscriptionProductReplacementParamsAndroid.swift +12 -0
  377. package/nitrogen/generated/ios/swift/Variant_NullType_TransactionCommitmentInfoIOS.swift +12 -0
  378. package/nitrogen/generated/ios/swift/Variant_NullType_WinBackOfferInputIOS.swift +12 -0
  379. package/nitrogen/generated/ios/swift/Variant_NullType__AdvancedCommerceRefundIOS_.swift +12 -0
  380. package/nitrogen/generated/ios/swift/Variant_NullType__AndroidSubscriptionOfferInput_.swift +12 -0
  381. package/nitrogen/generated/ios/swift/Variant_NullType__DeveloperProvidedBillingProductAndroid_.swift +30 -0
  382. package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +12 -0
  383. package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +12 -0
  384. package/nitrogen/generated/ios/swift/Variant_NullType__NitroSubscriptionStatus_.swift +12 -0
  385. package/nitrogen/generated/ios/swift/Variant_NullType__NitroVerifyPurchaseWithProviderError_.swift +12 -0
  386. package/nitrogen/generated/ios/swift/Variant_NullType__String_.swift +12 -0
  387. package/nitrogen/generated/shared/c++/AdvancedCommerceInfoIOS.hpp +1 -1
  388. package/nitrogen/generated/shared/c++/AdvancedCommerceItemIOS.hpp +1 -1
  389. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +1 -1
  390. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +1 -1
  391. package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +1 -1
  392. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +1 -1
  393. package/nitrogen/generated/shared/c++/NitroProduct.hpp +1 -1
  394. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +40 -3
  395. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +1 -1
  396. package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +27 -4
  397. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +1 -1
  398. package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +15 -2
  399. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +1 -1
  400. package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +8 -8
  401. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitProps.hpp +5 -1
  402. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +1 -1
  403. package/nitrogen/generated/shared/c++/PendingPurchaseUpdateAndroid.hpp +1 -1
  404. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +1 -1
  405. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +1 -1
  406. package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +16 -3
  407. package/openiap-versions.json +3 -3
  408. package/package.json +8 -5
  409. package/src/hooks/useIAP.ts +7 -4
  410. package/src/index.ts +59 -39
  411. package/src/specs/RnIap.nitro.ts +31 -19
  412. package/src/types.ts +65 -26
  413. package/src/utils/error.ts +11 -8
  414. package/src/utils/errorMapping.ts +9 -1
  415. package/src/utils/type-bridge.ts +37 -40
  416. package/src/vega-adapter.ts +191 -26
  417. package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +0 -83
  418. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.cpp +0 -26
  419. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.hpp +0 -75
  420. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +0 -53
  421. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo.kt +0 -53
  422. package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +0 -182
  423. package/nitrogen/generated/ios/swift/Variant_NullType_NitroSubscriptionRenewalInfo.swift +0 -18
  424. package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +0 -106
package/src/index.ts CHANGED
@@ -314,13 +314,23 @@ const purchaseUpdateDuplicateNativeHandler: NitroPurchaseListener = (
314
314
  const purchaseErrorJsListeners = new Set<(error: PurchaseError) => void>();
315
315
  let purchaseErrorNativeAttached = false;
316
316
  const purchaseErrorNativeHandler: NitroPurchaseErrorListener = (error) => {
317
+ const normalizedCode =
318
+ error.code === DUPLICATE_PURCHASE_CODE
319
+ ? ErrorCode.DuplicatePurchase
320
+ : normalizeErrorCodeFromNative(error.code);
317
321
  const normalized: PurchaseError = {
318
- code:
319
- error.code === DUPLICATE_PURCHASE_CODE
320
- ? ErrorCode.DuplicatePurchase
321
- : normalizeErrorCodeFromNative(error.code),
322
+ code: normalizedCode,
322
323
  message: error.message,
323
- productId: undefined,
324
+ responseCode:
325
+ normalizedCode === ErrorCode.QueryProduct
326
+ ? error.responseCode
327
+ : undefined,
328
+ debugMessage: error.debugMessage,
329
+ productId: error.productId,
330
+ productIds: error.productIds,
331
+ productType: error.productType,
332
+ isEmptyProductList: error.isEmptyProductList,
333
+ subResponseCodeAndroid: error.subResponseCodeAndroid,
324
334
  };
325
335
  for (const listener of purchaseErrorJsListeners) {
326
336
  try {
@@ -712,8 +722,8 @@ export const developerProvidedBillingListenerAndroid = (
712
722
  /**
713
723
  * Listen for subscription billing-issue events (cross-platform).
714
724
  *
715
- * Fires when an active subscription enters a billing-issue state:
716
- * - iOS 18+ / Mac Catalyst 18+: via StoreKit 2 `Message.Reason.billingIssue`.
725
+ * Fires when a subscription enters a billing-issue state:
726
+ * - iOS / Mac Catalyst 16.4+ and visionOS 1.0+: via StoreKit 2 `Message.Reason.billingIssue`.
717
727
  * - Android (Play Billing 8.1+): when `isSuspendedAndroid === true` is observed.
718
728
  * - Horizon / iOS 17 / older platforms: never fires.
719
729
  *
@@ -854,7 +864,8 @@ export const fetchProducts: QueryField<'fetchProducts'> = async (request) => {
854
864
 
855
865
  if (normalizedType === 'all') {
856
866
  const converted = (await fetchAndConvert('all')) as (
857
- Product | ProductSubscription
867
+ | Product
868
+ | ProductSubscription
858
869
  )[];
859
870
 
860
871
  RnIapConsole.debug(
@@ -1108,6 +1119,12 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
1108
1119
 
1109
1120
  try {
1110
1121
  const storefront = await IAP.instance.getStorefrontIOS();
1122
+ if (typeof storefront !== 'string' || storefront.trim().length === 0) {
1123
+ throw createPurchaseError({
1124
+ code: ErrorCode.ServiceError,
1125
+ message: 'Storefront lookup returned no country code.',
1126
+ });
1127
+ }
1111
1128
  return storefront;
1112
1129
  } catch (error) {
1113
1130
  RnIapConsole.error('Failed to get storefront:', error);
@@ -1122,35 +1139,50 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
1122
1139
  */
1123
1140
  export const getStorefront: QueryField<'getStorefront'> = async () => {
1124
1141
  if (Platform.OS !== 'ios' && !isAndroidStoreRuntime()) {
1125
- RnIapConsole.warn(
1126
- '[getStorefront] Storefront lookup is only supported on iOS, Android, and Vega OS.',
1127
- );
1128
- return '';
1142
+ throw createPurchaseError({
1143
+ code: ErrorCode.FeatureNotSupported,
1144
+ message: `Storefront lookup is not supported on ${Platform.OS}.`,
1145
+ });
1129
1146
  }
1130
1147
 
1131
1148
  const hasUnifiedMethod = typeof IAP.instance.getStorefront === 'function';
1132
1149
 
1133
- if (!hasUnifiedMethod && Platform.OS === 'ios') {
1134
- return getStorefrontIOS();
1135
- }
1136
-
1137
- if (!hasUnifiedMethod) {
1138
- RnIapConsole.warn(
1139
- '[getStorefront] Native getStorefront is not available on this build.',
1140
- );
1141
- return '';
1150
+ if (!hasUnifiedMethod && Platform.OS !== 'ios') {
1151
+ throw createPurchaseError({
1152
+ code: ErrorCode.FeatureNotSupported,
1153
+ message: 'Native getStorefront is not available on this build.',
1154
+ platform: 'android',
1155
+ });
1142
1156
  }
1143
1157
 
1158
+ let storefront: string | null | undefined;
1144
1159
  try {
1145
- const storefront = await IAP.instance.getStorefront();
1146
- return storefront ?? '';
1160
+ storefront = hasUnifiedMethod
1161
+ ? await IAP.instance.getStorefront()
1162
+ : await getStorefrontIOS();
1147
1163
  } catch (error) {
1148
- RnIapConsole.error(
1164
+ const parsedError = parseErrorAndLogIfNeeded(
1149
1165
  `[getStorefront] Failed to get storefront on ${Platform.OS}:`,
1150
1166
  error,
1151
1167
  );
1152
- throw error;
1168
+ throw createPurchaseError({
1169
+ code: parsedError.code,
1170
+ message: parsedError.message,
1171
+ responseCode: parsedError.responseCode,
1172
+ debugMessage: parsedError.debugMessage,
1173
+ platform: Platform.OS === 'ios' ? 'ios' : 'android',
1174
+ });
1153
1175
  }
1176
+
1177
+ if (typeof storefront !== 'string' || storefront.trim().length === 0) {
1178
+ throw createPurchaseError({
1179
+ code: ErrorCode.ServiceError,
1180
+ message: 'Storefront lookup returned no country code.',
1181
+ platform: Platform.OS === 'ios' ? 'ios' : 'android',
1182
+ });
1183
+ }
1184
+
1185
+ return storefront;
1154
1186
  };
1155
1187
 
1156
1188
  /**
@@ -1851,7 +1883,7 @@ export const requestPurchase: MutationField<'requestPurchase'> = async (
1851
1883
  androidRequest.developerBillingOption;
1852
1884
  }
1853
1885
 
1854
- // One-time purchase offerToken (Android 7.0+)
1886
+ // One-time purchase offerToken (Android 8.0+)
1855
1887
  if (!isSubs) {
1856
1888
  const purchaseRequest = androidRequest as RequestPurchaseAndroidProps;
1857
1889
  if (purchaseRequest.offerToken) {
@@ -2415,19 +2447,7 @@ export const requestPurchaseOnPromotedProductIOS: MutationField<
2415
2447
  }
2416
2448
 
2417
2449
  try {
2418
- await IAP.instance.buyPromotedProductIOS();
2419
- const pending = await IAP.instance.getPendingTransactionsIOS();
2420
- const latest = pending.find((purchase) => purchase != null);
2421
- if (!latest) {
2422
- throw new Error('No promoted purchase available after request');
2423
- }
2424
-
2425
- const converted = convertNitroPurchaseToPurchase(latest);
2426
- if (converted.platform !== 'ios') {
2427
- throw new Error('Promoted purchase result not available for iOS');
2428
- }
2429
-
2430
- return true;
2450
+ return await IAP.instance.buyPromotedProductIOS();
2431
2451
  } catch (error) {
2432
2452
  const parsedError = parseErrorAndLogIfNeeded(
2433
2453
  '[requestPurchaseOnPromotedProductIOS] Failed:',
@@ -25,6 +25,7 @@ import type {HybridObject} from 'react-native-nitro-modules';
25
25
  // removing the types entirely.
26
26
  import type {
27
27
  ActiveSubscription,
28
+ AdvancedCommerceInfoIOS,
28
29
  AndroidSubscriptionOfferInput,
29
30
  DeepLinkOptions,
30
31
  InitConnectionConfig,
@@ -53,8 +54,12 @@ import type {
53
54
  RequestSubscriptionIosProps,
54
55
  UserChoiceBillingDetails,
55
56
  PaymentModeIOS,
57
+ PendingPurchaseUpdateAndroid,
58
+ RenewalCommitmentInfoIOS,
59
+ SubscriptionBillingPlanTypeIOS,
56
60
  SubscriptionProductReplacementParamsAndroid,
57
61
  SubResponseCodeAndroid,
62
+ TransactionCommitmentInfoIOS,
58
63
  WinBackOfferInputIOS,
59
64
  } from '../types';
60
65
 
@@ -236,7 +241,7 @@ export interface NitroRequestPurchaseAndroid {
236
241
  obfuscatedProfileId?: RequestSubscriptionAndroidProps['obfuscatedProfileId'];
237
242
  isOfferPersonalized?: RequestSubscriptionAndroidProps['isOfferPersonalized'];
238
243
  /**
239
- * Offer token for one-time purchase discounts (7.0+).
244
+ * Offer token for one-time purchase discounts (8.0+).
240
245
  * Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers
241
246
  * to apply a discount offer to the purchase.
242
247
  */
@@ -360,25 +365,13 @@ export interface NitroInAppMessageParamsAndroid {
360
365
  // ║ TYPES ║
361
366
  // ╚══════════════════════════════════════════════════════════════════════════╝
362
367
 
363
- /**
364
- * Subscription renewal information (iOS only)
365
- */
366
- export interface NitroSubscriptionRenewalInfo {
367
- autoRenewStatus: boolean;
368
- autoRenewPreference?: string | null;
369
- expirationReason?: number | null;
370
- gracePeriodExpirationDate?: number | null;
371
- currentProductID?: string | null;
372
- platform: string;
373
- }
374
-
375
368
  /**
376
369
  * Subscription status information (iOS only)
377
370
  */
378
371
  export interface NitroSubscriptionStatus {
379
372
  state: number;
380
373
  platform: string;
381
- renewalInfo?: NitroSubscriptionRenewalInfo | null;
374
+ renewalInfo?: NitroRenewalInfoIOS | null;
382
375
  }
383
376
 
384
377
  /**
@@ -390,6 +383,11 @@ export interface NitroPurchaseResult {
390
383
  code: string;
391
384
  message: string;
392
385
  purchaseToken?: string;
386
+ productId?: string;
387
+ productIds?: string[];
388
+ productType?: string;
389
+ isEmptyProductList?: boolean;
390
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
393
391
  }
394
392
 
395
393
  export interface NitroBillingResultAndroid {
@@ -461,6 +459,12 @@ export interface NitroVerifyPurchaseWithIapkitProps {
461
459
  apiKey?: string | null;
462
460
  amazon?: NitroVerifyPurchaseWithIapkitAmazonProps | null;
463
461
  apple?: NitroVerifyPurchaseWithIapkitAppleProps | null;
462
+ /**
463
+ * Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.
464
+ * HTTP(S) origin for a self-hosted or local IAPKit server. The apiKey must
465
+ * come from the same IAPKit/Convex deployment.
466
+ */
467
+ baseUrl?: string | null;
464
468
  google?: NitroVerifyPurchaseWithIapkitGoogleProps | null;
465
469
  }
466
470
 
@@ -560,7 +564,7 @@ export interface NitroValidTimeWindowAndroid {
560
564
 
561
565
  /**
562
566
  * Android one-time purchase offer details
563
- * Available in Google Play Billing Library 7.0+
567
+ * Available in Google Play Billing Library 8.0+
564
568
  */
565
569
  export interface NitroOneTimePurchaseOfferDetail {
566
570
  discountDisplayInfo?: NitroDiscountDisplayInfoAndroid | null;
@@ -583,6 +587,8 @@ export interface NitroPurchase {
583
587
  productId: PurchaseCommon['productId'];
584
588
  transactionDate: PurchaseCommon['transactionDate'];
585
589
  purchaseToken?: PurchaseCommon['purchaseToken'];
590
+ currentPlanId?: PurchaseCommon['currentPlanId'];
591
+ ids?: PurchaseCommon['ids'];
586
592
  /** @deprecated Use store instead */
587
593
  platform: IapPlatform;
588
594
  /** Store where purchase was made */
@@ -591,6 +597,9 @@ export interface NitroPurchase {
591
597
  purchaseState: PurchaseCommon['purchaseState'];
592
598
  isAutoRenewing: PurchaseCommon['isAutoRenewing'];
593
599
  // iOS specific fields
600
+ advancedCommerceInfoIOS?: AdvancedCommerceInfoIOS | null;
601
+ billingPlanTypeIOS?: SubscriptionBillingPlanTypeIOS | null;
602
+ commitmentInfoIOS?: TransactionCommitmentInfoIOS | null;
594
603
  quantityIOS?: number | null;
595
604
  originalTransactionDateIOS?: number | null;
596
605
  originalTransactionIdentifierIOS?: string | null;
@@ -625,6 +634,7 @@ export interface NitroPurchase {
625
634
  obfuscatedProfileIdAndroid?: string | null;
626
635
  developerPayloadAndroid?: string | null;
627
636
  isSuspendedAndroid?: boolean | null;
637
+ pendingPurchaseUpdateAndroid?: PendingPurchaseUpdateAndroid | null;
628
638
  }
629
639
 
630
640
  /**
@@ -656,12 +666,14 @@ export interface NitroActiveSubscription {
656
666
  export interface NitroRenewalInfoIOS {
657
667
  willAutoRenew: boolean;
658
668
  autoRenewPreference?: string | null;
669
+ commitmentInfo?: RenewalCommitmentInfoIOS | null;
659
670
  pendingUpgradeProductId?: string | null;
660
671
  renewalDate?: number | null;
661
672
  expirationReason?: string | null;
662
673
  isInBillingRetry?: boolean | null;
663
674
  gracePeriodExpirationDate?: number | null;
664
675
  priceIncreaseStatus?: string | null;
676
+ renewalBillingPlanType?: SubscriptionBillingPlanTypeIOS | null;
665
677
  renewalOfferType?: string | null;
666
678
  renewalOfferId?: string | null;
667
679
  jsonRepresentation?: string | null;
@@ -880,10 +892,10 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
880
892
 
881
893
  /**
882
894
  * Buy the promoted product from the App Store (iOS only)
883
- * @returns Promise<void>
895
+ * @returns Promise<boolean> - Whether a promoted product was available and the request was initiated
884
896
  * @platform iOS
885
897
  */
886
- buyPromotedProductIOS(): Promise<void>;
898
+ buyPromotedProductIOS(): Promise<boolean>;
887
899
 
888
900
  /**
889
901
  * Present the code redemption sheet for offer codes (iOS only)
@@ -940,7 +952,7 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
940
952
 
941
953
  /**
942
954
  * Get the full StoreKit 2 transaction history as PurchaseIOS values.
943
- * Requires SK2ConsumableTransactionHistory Info.plist key for finished consumables (iOS 18+).
955
+ * Requires SKIncludeConsumableInAppPurchaseHistory Info.plist key for finished consumables (iOS 18+).
944
956
  * @returns Promise<NitroPurchase[]> - Array of all transactions
945
957
  * @platform iOS
946
958
  */
@@ -1188,7 +1200,7 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
1188
1200
  *
1189
1201
  * Fires when a user's active subscription enters a state that needs attention
1190
1202
  * (payment method failed, card expired, etc.). Unifies:
1191
- * - StoreKit 2 `Message.Reason.billingIssue` (iOS 18+ / Mac Catalyst 18+)
1203
+ * - StoreKit 2 `Message.Reason.billingIssue` (iOS / Mac Catalyst 16.4+, visionOS 1.0+)
1192
1204
  * - Google Play Billing `Purchase.isSuspended` (Play Billing 8.1+)
1193
1205
  *
1194
1206
  * NOT fired on Meta Horizon (Billing 7.0 compat SDK lacks the suspended signal).
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
  }
@@ -1962,6 +1978,13 @@ export interface RequestVerifyPurchaseWithIapkitProps {
1962
1978
  apiKey?: (string | null);
1963
1979
  /** Apple App Store verification parameters. */
1964
1980
  apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);
1981
+ /**
1982
+ * Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.
1983
+ * Base URL for the IAPKit server. Defaults to https://kit.openiap.dev.
1984
+ * Set this to a reachable HTTP(S) origin when self-hosting or testing a local IAPKit server.
1985
+ * The apiKey must be issued by the same IAPKit/Convex deployment as this server.
1986
+ */
1987
+ baseUrl?: (string | null);
1965
1988
  /** Google Play Store verification parameters. */
1966
1989
  google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);
1967
1990
  }
@@ -2001,14 +2024,17 @@ export interface Subscription {
2001
2024
  */
2002
2025
  purchaseUpdated: Purchase;
2003
2026
  /**
2004
- * Fires when an active subscription enters a billing-issue state that needs user action
2027
+ * Fires when a subscription enters a billing-issue state that needs user action
2005
2028
  * (payment method failed, card expired, etc.). Cross-platform unification:
2006
2029
  *
2007
- * - iOS 18+: delivered via StoreKit 2 `Message.Reason.billingIssue`.
2030
+ * - iOS 16.4+ / Mac Catalyst 16.4+ / visionOS 1.0+: delivered via StoreKit 2
2031
+ * `Message.Reason.billingIssue`.
2008
2032
  * - Android (Play flavor, Billing 8.1+): emitted when `isSuspended == true` is first detected
2009
2033
  * on a previously healthy subscription. Requires Google Play Billing Library 8.1.0 or newer.
2010
2034
  * - Android (Horizon flavor): NOT emitted. The Horizon Billing Compatibility SDK implements
2011
2035
  * the Play Billing 7.0 API surface which does not expose a suspended-subscription signal.
2036
+ * - Android (Amazon flavor): NOT emitted. Amazon Appstore IAP does not expose an
2037
+ * equivalent subscription billing-issue signal.
2012
2038
  *
2013
2039
  * Listeners should not assume the event will fire on every store. Direct users to the
2014
2040
  * platform subscription management UI (`deepLinkToSubscriptions`) to resolve the issue.
@@ -2206,13 +2232,26 @@ export interface TransactionCommitmentInfoIOS {
2206
2232
  export interface UserChoiceBillingDetails {
2207
2233
  /** Token that must be reported to Google Play within 24 hours */
2208
2234
  externalTransactionToken: string;
2235
+ /**
2236
+ * External transaction ID of the originating subscription when the user is
2237
+ * upgrading or downgrading a developer-billed subscription. Available in
2238
+ * OpenIAP Spec 2.3.0 / openiap-google 2.3.1 (requires Play Billing 9.1+).
2239
+ */
2240
+ originalExternalTransactionId?: (string | null);
2241
+ /**
2242
+ * Structured product details selected in the user-choice flow, including the
2243
+ * product type and offer token. Legacy payloads may omit this field; use
2244
+ * products as the product-ID fallback. Available in OpenIAP Spec 2.3.0 /
2245
+ * openiap-google 2.3.1 (requires Play Billing 9.1+).
2246
+ */
2247
+ productDetailsAndroid?: (DeveloperProvidedBillingProductAndroid[] | null);
2209
2248
  /** List of product IDs selected by the user */
2210
2249
  products: string[];
2211
2250
  }
2212
2251
 
2213
2252
  /**
2214
2253
  * Valid time window for when an offer is available (Android)
2215
- * Available in Google Play Billing Library 7.0+
2254
+ * Available in Google Play Billing Library 8.0+
2216
2255
  */
2217
2256
  export interface ValidTimeWindowAndroid {
2218
2257
  /** 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