react-native-iap 15.4.0-rc.3 → 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 (489) hide show
  1. package/README.md +23 -25
  2. package/android/src/main/java/com/margelo/nitro/iap/ConnectionLifecycleQueue.kt +113 -0
  3. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +471 -255
  4. package/android/src/main/java/com/margelo/nitro/iap/ProductSerialization.kt +98 -0
  5. package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +23 -1
  6. package/ios/HybridRnIap.swift +230 -140
  7. package/ios/RnIapHelper.swift +180 -28
  8. package/ios/RnIapLog.swift +24 -1
  9. package/lib/module/hooks/useIAP.js +20 -4
  10. package/lib/module/hooks/useIAP.js.map +1 -1
  11. package/lib/module/index.js +151 -46
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/index.kepler.js +3 -0
  14. package/lib/module/index.kepler.js.map +1 -1
  15. package/lib/module/types.js +77 -14
  16. package/lib/module/types.js.map +1 -1
  17. package/lib/module/utils/error.js +7 -3
  18. package/lib/module/utils/error.js.map +1 -1
  19. package/lib/module/utils/errorMapping.js +2 -0
  20. package/lib/module/utils/errorMapping.js.map +1 -1
  21. package/lib/module/utils/type-bridge.js +50 -22
  22. package/lib/module/utils/type-bridge.js.map +1 -1
  23. package/lib/module/vega-adapter.js +55 -8
  24. package/lib/module/vega-adapter.js.map +1 -1
  25. package/lib/typescript/src/hooks/useIAP.d.ts +28 -5
  26. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  27. package/lib/typescript/src/index.d.ts +50 -10
  28. package/lib/typescript/src/index.d.ts.map +1 -1
  29. package/lib/typescript/src/index.kepler.d.ts +3 -0
  30. package/lib/typescript/src/index.kepler.d.ts.map +1 -1
  31. package/lib/typescript/src/specs/RnIap.nitro.d.ts +98 -26
  32. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  33. package/lib/typescript/src/types.d.ts +279 -59
  34. package/lib/typescript/src/types.d.ts.map +1 -1
  35. package/lib/typescript/src/utils/error.d.ts.map +1 -1
  36. package/lib/typescript/src/utils/errorMapping.d.ts +3 -1
  37. package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
  38. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  39. package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
  40. package/nitro.json +8 -2
  41. package/nitrogen/generated/android/NitroIap+autolinking.cmake +4 -1
  42. package/nitrogen/generated/android/NitroIapOnLoad.cpp +2 -2
  43. package/nitrogen/generated/android/c++/JAdvancedCommerceInfoIOS.hpp +10 -10
  44. package/nitrogen/generated/android/c++/JAdvancedCommerceItemDetailsIOS.hpp +2 -2
  45. package/nitrogen/generated/android/c++/JAdvancedCommerceItemIOS.hpp +2 -2
  46. package/nitrogen/generated/android/c++/JAdvancedCommerceRefundIOS.hpp +2 -2
  47. package/nitrogen/generated/android/c++/JAlternativeBillingModeAndroid.hpp +2 -2
  48. package/nitrogen/generated/android/c++/JAndroidSubscriptionOfferInput.hpp +2 -2
  49. package/nitrogen/generated/android/c++/JBillingChoiceImageLayoutAndroid.hpp +61 -0
  50. package/nitrogen/generated/android/c++/JBillingChoiceScreenTypeAndroid.hpp +61 -0
  51. package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +5 -2
  52. package/nitrogen/generated/android/c++/JDeveloperBillingLaunchModeAndroid.hpp +61 -0
  53. package/nitrogen/generated/android/c++/JDeveloperBillingOptionParamsAndroid.hpp +78 -0
  54. package/nitrogen/generated/android/c++/JDeveloperBillingTypeAndroid.hpp +61 -0
  55. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +47 -7
  56. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +72 -0
  57. package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +2 -2
  58. package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +2 -2
  59. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeResultIOS.hpp +2 -2
  60. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeTypeIOS.hpp +2 -2
  61. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenResultIOS.hpp +2 -2
  62. package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenTypeIOS.hpp +2 -2
  63. package/nitrogen/generated/android/c++/JExternalPurchaseLinkResultIOS.hpp +2 -2
  64. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeAction.hpp +2 -2
  65. package/nitrogen/generated/android/c++/JExternalPurchaseNoticeResultIOS.hpp +2 -2
  66. package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +12 -2
  67. package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +2 -2
  68. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +26 -2
  69. package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +5 -2
  70. package/nitrogen/generated/android/c++/JFunc_void_UserChoiceBillingDetails.hpp +12 -2
  71. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +160 -48
  72. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +7 -4
  73. package/nitrogen/generated/android/c++/JIapPlatform.hpp +2 -2
  74. package/nitrogen/generated/android/c++/JIapStore.hpp +2 -2
  75. package/nitrogen/generated/android/c++/JIapkitPurchaseState.hpp +2 -2
  76. package/nitrogen/generated/android/c++/JInAppMessageCategoryAndroid.hpp +58 -0
  77. package/nitrogen/generated/android/c++/JInAppMessageResponseCodeAndroid.hpp +58 -0
  78. package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +9 -3
  79. package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +7 -2
  80. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +2 -2
  81. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidType.hpp +2 -2
  82. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +2 -2
  83. package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +2 -2
  84. package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +66 -0
  85. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +20 -5
  86. package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +63 -0
  87. package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +2 -2
  88. package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +72 -0
  89. package/nitrogen/generated/android/c++/JNitroDeepLinkOptionsAndroid.hpp +2 -2
  90. package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +2 -2
  91. package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +2 -2
  92. package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +2 -2
  93. package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +2 -2
  94. package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +2 -2
  95. package/nitrogen/generated/android/c++/JNitroGetBillingChoiceInfoParamsAndroid.hpp +74 -0
  96. package/nitrogen/generated/android/c++/JNitroInAppMessageParamsAndroid.hpp +64 -0
  97. package/nitrogen/generated/android/c++/JNitroInAppMessageResultAndroid.hpp +68 -0
  98. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +12 -3
  99. package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +2 -2
  100. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +15 -11
  101. package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +2 -2
  102. package/nitrogen/generated/android/c++/JNitroProduct.hpp +15 -3
  103. package/nitrogen/generated/android/c++/JNitroPurchase.hpp +53 -5
  104. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +9 -2
  105. package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +46 -5
  106. package/nitrogen/generated/android/c++/JNitroReceiptValidationAppleOptions.hpp +2 -2
  107. package/nitrogen/generated/android/c++/JNitroReceiptValidationGoogleOptions.hpp +2 -2
  108. package/nitrogen/generated/android/c++/JNitroReceiptValidationHorizonOptions.hpp +2 -2
  109. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +2 -2
  110. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +2 -2
  111. package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +26 -2
  112. package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +16 -3
  113. package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +2 -2
  114. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +26 -11
  115. package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +2 -2
  116. package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +15 -9
  117. package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +2 -2
  118. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAmazonProps.hpp +2 -2
  119. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAppleProps.hpp +2 -2
  120. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitGoogleProps.hpp +2 -2
  121. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitProps.hpp +2 -2
  122. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +2 -2
  123. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +2 -2
  124. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderProps.hpp +2 -2
  125. package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +2 -2
  126. package/nitrogen/generated/android/c++/JPaymentModeIOS.hpp +2 -2
  127. package/nitrogen/generated/android/c++/JPendingPurchaseUpdateAndroid.hpp +10 -10
  128. package/nitrogen/generated/android/c++/JProductType.hpp +58 -0
  129. package/nitrogen/generated/android/c++/JPromotionalOfferJwsInputIOS.hpp +2 -2
  130. package/nitrogen/generated/android/c++/JPurchase.hpp +3 -3
  131. package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +2 -2
  132. package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +2 -2
  133. package/nitrogen/generated/android/c++/JPurchaseOfferIOS.hpp +2 -2
  134. package/nitrogen/generated/android/c++/JPurchaseState.hpp +2 -2
  135. package/nitrogen/generated/android/c++/JPurchaseUpdatedListenerOptions.hpp +2 -2
  136. package/nitrogen/generated/android/c++/JPurchaseVerificationProvider.hpp +2 -2
  137. package/nitrogen/generated/android/c++/JRenewalCommitmentInfoIOS.hpp +2 -2
  138. package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +2 -2
  139. package/nitrogen/generated/android/c++/JRequestPurchaseResult.cpp +4 -4
  140. package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +9 -9
  141. package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +61 -0
  142. package/nitrogen/generated/android/c++/JSubscriptionBillingPlanTypeIOS.hpp +2 -2
  143. package/nitrogen/generated/android/c++/JSubscriptionProductReplacementParamsAndroid.hpp +2 -2
  144. package/nitrogen/generated/android/c++/JSubscriptionReplacementModeAndroid.hpp +2 -2
  145. package/nitrogen/generated/android/c++/JTransactionCommitmentInfoIOS.hpp +2 -2
  146. package/nitrogen/generated/android/c++/JUserChoiceBillingDetails.hpp +29 -11
  147. package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +6 -3
  148. package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +27 -3
  149. package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceInfoIOS.hpp +3 -3
  150. package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceItemDetailsIOS.hpp +3 -3
  151. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.cpp +4 -4
  152. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.hpp +7 -7
  153. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.cpp +4 -4
  154. package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.hpp +7 -7
  155. package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.cpp +35 -0
  156. package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.hpp +86 -0
  157. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.cpp +35 -0
  158. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.hpp +81 -0
  159. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.cpp +4 -4
  160. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.hpp +7 -7
  161. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.cpp +4 -4
  162. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.hpp +16 -10
  163. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.cpp +4 -4
  164. package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.hpp +7 -7
  165. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.cpp +4 -4
  166. package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.hpp +7 -7
  167. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +3 -3
  168. package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.cpp +26 -0
  169. package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +78 -0
  170. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
  171. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +5 -3
  172. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +3 -3
  173. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesAndroidOptions.hpp +3 -3
  174. package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesIosOptions.hpp +3 -3
  175. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.hpp +3 -3
  176. package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.hpp +3 -3
  177. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionAndroidParams.hpp +3 -3
  178. package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionIosParams.hpp +3 -3
  179. package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.cpp +26 -0
  180. package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.hpp +76 -0
  181. package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.hpp +3 -3
  182. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.hpp +3 -3
  183. package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.hpp +3 -3
  184. package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.hpp +27 -3
  185. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.hpp +3 -3
  186. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.hpp +3 -3
  187. package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.hpp +3 -3
  188. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRenewalInfoIOS.hpp +8 -3
  189. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.hpp +3 -3
  190. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +10 -3
  191. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseIos.hpp +3 -3
  192. package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.hpp +3 -3
  193. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.hpp +3 -3
  194. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.hpp +3 -3
  195. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.hpp +3 -3
  196. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitProps.hpp +3 -3
  197. package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitResult.hpp +3 -3
  198. package/nitrogen/generated/android/c++/JVariant_NullType_PendingPurchaseUpdateAndroid.hpp +3 -3
  199. package/nitrogen/generated/android/c++/JVariant_NullType_PromotionalOfferJwsInputIOS.hpp +3 -3
  200. package/nitrogen/generated/android/c++/JVariant_NullType_PurchaseOfferIOS.hpp +3 -3
  201. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalCommitmentInfoIOS.hpp +3 -3
  202. package/nitrogen/generated/android/c++/JVariant_NullType_RenewalInfoIOS.hpp +3 -3
  203. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
  204. package/nitrogen/generated/android/c++/JVariant_NullType_SubscriptionProductReplacementParamsAndroid.hpp +3 -3
  205. package/nitrogen/generated/android/c++/JVariant_NullType_TransactionCommitmentInfoIOS.hpp +3 -3
  206. package/nitrogen/generated/android/c++/JVariant_NullType_WinBackOfferInputIOS.hpp +3 -3
  207. package/nitrogen/generated/android/c++/JWinBackOfferInputIOS.hpp +2 -2
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceInfoIOS.kt +27 -0
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemDetailsIOS.kt +13 -0
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemIOS.kt +17 -0
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceRefundIOS.kt +13 -0
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt +15 -0
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceImageLayoutAndroid.kt +24 -0
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceScreenTypeAndroid.kt +24 -0
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +2 -1
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingLaunchModeAndroid.kt +24 -0
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingOptionParamsAndroid.kt +66 -0
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingTypeAndroid.kt +24 -0
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +32 -4
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +61 -0
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkNoticeResultIOS.kt +15 -0
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkTokenResultIOS.kt +15 -0
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt +15 -0
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt +17 -0
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +14 -2
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageCategoryAndroid.kt +23 -0
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageResponseCodeAndroid.kt +23 -0
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +22 -2
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +39 -0
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +15 -0
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +21 -0
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +15 -0
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +56 -0
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +29 -4
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +56 -0
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +15 -0
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +61 -0
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt +15 -0
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +15 -0
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +15 -0
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +15 -0
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +13 -0
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +15 -0
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +61 -0
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +51 -0
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +56 -0
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +27 -3
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +15 -0
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +42 -2
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +15 -0
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +96 -2
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +128 -3
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +19 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +49 -3
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAppleOptions.kt +13 -0
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationGoogleOptions.kt +21 -0
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationHorizonOptions.kt +17 -0
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +17 -0
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +47 -0
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +19 -0
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +45 -2
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +15 -0
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +41 -2
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +31 -0
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +19 -2
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +15 -0
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAmazonProps.kt +17 -0
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAppleProps.kt +13 -0
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitGoogleProps.kt +13 -0
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitProps.kt +19 -0
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +17 -0
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +15 -0
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderProps.kt +15 -0
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +17 -0
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PendingPurchaseUpdateAndroid.kt +15 -0
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ProductType.kt +23 -0
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PromotionalOfferJwsInputIOS.kt +15 -0
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Purchase.kt +16 -7
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +55 -0
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +85 -0
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseOfferIOS.kt +17 -0
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseUpdatedListenerOptions.kt +13 -0
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalCommitmentInfoIOS.kt +21 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +37 -0
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RequestPurchaseResult.kt +20 -9
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubResponseCodeAndroid.kt +24 -0
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubscriptionProductReplacementParamsAndroid.kt +15 -0
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/TransactionCommitmentInfoIOS.kt +19 -0
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/UserChoiceBillingDetails.kt +28 -3
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +16 -7
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +16 -7
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceInfoIOS.kt +16 -7
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceItemDetailsIOS.kt +16 -7
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AdvancedCommerceRefundIOS_.kt +16 -7
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AndroidSubscriptionOfferInput_.kt +16 -7
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_DeveloperProvidedBillingProductAndroid_.kt +62 -0
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +62 -0
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.kt +16 -7
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroSubscriptionStatus_.kt +16 -7
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroVerifyPurchaseWithProviderError_.kt +16 -7
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_String_.kt +16 -7
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Boolean.kt +16 -7
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +62 -0
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Double.kt +16 -7
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_InitConnectionConfig.kt +16 -7
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Map_String__String_.kt +16 -7
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesAndroidOptions.kt +16 -7
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesIosOptions.kt +16 -7
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountAmountAndroid.kt +16 -7
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountDisplayInfoAndroid.kt +16 -7
  311. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionAndroidParams.kt +16 -7
  312. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionIosParams.kt +16 -7
  313. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +62 -0
  314. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroLimitedQuantityInfoAndroid.kt +16 -7
  315. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPreorderDetailsAndroid.kt +16 -7
  316. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroProduct.kt +16 -7
  317. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPurchase.kt +16 -7
  318. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationAppleOptions.kt +16 -7
  319. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationGoogleOptions.kt +16 -7
  320. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationHorizonOptions.kt +16 -7
  321. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRenewalInfoIOS.kt +16 -7
  322. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRentalDetailsAndroid.kt +16 -7
  323. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseAndroid.kt +16 -7
  324. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseIos.kt +16 -7
  325. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroValidTimeWindowAndroid.kt +16 -7
  326. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.kt +16 -7
  327. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.kt +16 -7
  328. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.kt +16 -7
  329. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.kt +16 -7
  330. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.kt +16 -7
  331. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PendingPurchaseUpdateAndroid.kt +16 -7
  332. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PromotionalOfferJwsInputIOS.kt +16 -7
  333. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PurchaseOfferIOS.kt +16 -7
  334. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalCommitmentInfoIOS.kt +16 -7
  335. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalInfoIOS.kt +16 -7
  336. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_String.kt +16 -7
  337. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_SubscriptionProductReplacementParamsAndroid.kt +16 -7
  338. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_TransactionCommitmentInfoIOS.kt +16 -7
  339. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_WinBackOfferInputIOS.kt +16 -7
  340. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/WinBackOfferInputIOS.kt +13 -0
  341. package/nitrogen/generated/ios/NitroIap+autolinking.rb +2 -0
  342. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +24 -0
  343. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +441 -47
  344. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +48 -3
  345. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +75 -6
  346. package/nitrogen/generated/ios/swift/BillingChoiceImageLayoutAndroid.swift +44 -0
  347. package/nitrogen/generated/ios/swift/BillingChoiceScreenTypeAndroid.swift +44 -0
  348. package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +4 -0
  349. package/nitrogen/generated/ios/swift/DeveloperBillingLaunchModeAndroid.swift +44 -0
  350. package/nitrogen/generated/ios/swift/DeveloperBillingOptionParamsAndroid.swift +114 -0
  351. package/nitrogen/generated/ios/swift/DeveloperBillingTypeAndroid.swift +44 -0
  352. package/nitrogen/generated/ios/swift/DeveloperProvidedBillingDetailsAndroid.swift +121 -4
  353. package/nitrogen/generated/ios/swift/DeveloperProvidedBillingProductAndroid.swift +71 -0
  354. package/nitrogen/generated/ios/swift/Func_void_NitroBillingChoiceInfoAndroid.swift +46 -0
  355. package/nitrogen/generated/ios/swift/Func_void_NitroBillingResultAndroid.swift +46 -0
  356. package/nitrogen/generated/ios/swift/Func_void_NitroInAppMessageResultAndroid.swift +46 -0
  357. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +5 -2
  358. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +85 -9
  359. package/nitrogen/generated/ios/swift/InAppMessageCategoryAndroid.swift +40 -0
  360. package/nitrogen/generated/ios/swift/InAppMessageResponseCodeAndroid.swift +40 -0
  361. package/nitrogen/generated/ios/swift/InitConnectionConfig.swift +12 -1
  362. package/nitrogen/generated/ios/swift/NitroBillingChoiceInfoAndroid.swift +66 -0
  363. package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +50 -2
  364. package/nitrogen/generated/ios/swift/NitroBillingProgramInformationDialogParamsAndroid.swift +34 -0
  365. package/nitrogen/generated/ios/swift/NitroBillingResultAndroid.swift +77 -0
  366. package/nitrogen/generated/ios/swift/NitroGetBillingChoiceInfoParamsAndroid.swift +71 -0
  367. package/nitrogen/generated/ios/swift/NitroInAppMessageParamsAndroid.swift +67 -0
  368. package/nitrogen/generated/ios/swift/NitroInAppMessageResultAndroid.swift +66 -0
  369. package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +39 -2
  370. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +39 -2
  371. package/nitrogen/generated/ios/swift/NitroProduct.swift +113 -2
  372. package/nitrogen/generated/ios/swift/NitroPurchase.swift +204 -2
  373. package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +90 -1
  374. package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +49 -1
  375. package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +75 -1
  376. package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +11 -11
  377. package/nitrogen/generated/ios/swift/ProductType.swift +40 -0
  378. package/nitrogen/generated/ios/swift/Purchase.swift +12 -0
  379. package/nitrogen/generated/ios/swift/RequestPurchaseResult.swift +14 -0
  380. package/nitrogen/generated/ios/swift/SubResponseCodeAndroid.swift +44 -0
  381. package/nitrogen/generated/ios/swift/UserChoiceBillingDetails.swift +82 -2
  382. package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +12 -0
  383. package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +12 -0
  384. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceInfoIOS.swift +12 -0
  385. package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceItemDetailsIOS.swift +12 -0
  386. package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +12 -0
  387. package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +30 -0
  388. package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +12 -0
  389. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +12 -0
  390. package/nitrogen/generated/ios/swift/Variant_NullType_InitConnectionConfig.swift +12 -0
  391. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesAndroidOptions.swift +12 -0
  392. package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesIosOptions.swift +12 -0
  393. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +12 -0
  394. package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +12 -0
  395. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionAndroidParams.swift +12 -0
  396. package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionIosParams.swift +12 -0
  397. package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +30 -0
  398. package/nitrogen/generated/ios/swift/Variant_NullType_NitroLimitedQuantityInfoAndroid.swift +12 -0
  399. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPreorderDetailsAndroid.swift +12 -0
  400. package/nitrogen/generated/ios/swift/Variant_NullType_NitroProduct.swift +12 -0
  401. package/nitrogen/generated/ios/swift/Variant_NullType_NitroPurchase.swift +12 -0
  402. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationAppleOptions.swift +12 -0
  403. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +12 -0
  404. package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +12 -0
  405. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRenewalInfoIOS.swift +12 -0
  406. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +12 -0
  407. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseAndroid.swift +12 -0
  408. package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseIos.swift +12 -0
  409. package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +12 -0
  410. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.swift +12 -0
  411. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.swift +12 -0
  412. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.swift +12 -0
  413. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.swift +12 -0
  414. package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.swift +12 -0
  415. package/nitrogen/generated/ios/swift/Variant_NullType_PendingPurchaseUpdateAndroid.swift +12 -0
  416. package/nitrogen/generated/ios/swift/Variant_NullType_PromotionalOfferJwsInputIOS.swift +12 -0
  417. package/nitrogen/generated/ios/swift/Variant_NullType_PurchaseOfferIOS.swift +12 -0
  418. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalCommitmentInfoIOS.swift +12 -0
  419. package/nitrogen/generated/ios/swift/Variant_NullType_RenewalInfoIOS.swift +12 -0
  420. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +12 -0
  421. package/nitrogen/generated/ios/swift/Variant_NullType_SubscriptionProductReplacementParamsAndroid.swift +12 -0
  422. package/nitrogen/generated/ios/swift/Variant_NullType_TransactionCommitmentInfoIOS.swift +12 -0
  423. package/nitrogen/generated/ios/swift/Variant_NullType_WinBackOfferInputIOS.swift +12 -0
  424. package/nitrogen/generated/ios/swift/Variant_NullType__AdvancedCommerceRefundIOS_.swift +12 -0
  425. package/nitrogen/generated/ios/swift/Variant_NullType__AndroidSubscriptionOfferInput_.swift +12 -0
  426. package/nitrogen/generated/ios/swift/Variant_NullType__DeveloperProvidedBillingProductAndroid_.swift +30 -0
  427. package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +30 -0
  428. package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +12 -0
  429. package/nitrogen/generated/ios/swift/Variant_NullType__NitroSubscriptionStatus_.swift +12 -0
  430. package/nitrogen/generated/ios/swift/Variant_NullType__NitroVerifyPurchaseWithProviderError_.swift +12 -0
  431. package/nitrogen/generated/ios/swift/Variant_NullType__String_.swift +12 -0
  432. package/nitrogen/generated/shared/c++/AdvancedCommerceInfoIOS.hpp +1 -1
  433. package/nitrogen/generated/shared/c++/AdvancedCommerceItemIOS.hpp +1 -1
  434. package/nitrogen/generated/shared/c++/BillingChoiceImageLayoutAndroid.hpp +80 -0
  435. package/nitrogen/generated/shared/c++/BillingChoiceScreenTypeAndroid.hpp +80 -0
  436. package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +4 -0
  437. package/nitrogen/generated/shared/c++/DeveloperBillingLaunchModeAndroid.hpp +80 -0
  438. package/nitrogen/generated/shared/c++/DeveloperBillingOptionParamsAndroid.hpp +103 -0
  439. package/nitrogen/generated/shared/c++/DeveloperBillingTypeAndroid.hpp +80 -0
  440. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +25 -7
  441. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingProductAndroid.hpp +96 -0
  442. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +3 -0
  443. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +26 -2
  444. package/nitrogen/generated/shared/c++/InAppMessageCategoryAndroid.hpp +76 -0
  445. package/nitrogen/generated/shared/c++/InAppMessageResponseCodeAndroid.hpp +76 -0
  446. package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +8 -1
  447. package/nitrogen/generated/shared/c++/NitroBillingChoiceInfoAndroid.hpp +90 -0
  448. package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +16 -2
  449. package/nitrogen/generated/shared/c++/NitroBillingProgramInformationDialogParamsAndroid.hpp +89 -0
  450. package/nitrogen/generated/shared/c++/NitroBillingResultAndroid.hpp +96 -0
  451. package/nitrogen/generated/shared/c++/NitroGetBillingChoiceInfoParamsAndroid.hpp +99 -0
  452. package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +88 -0
  453. package/nitrogen/generated/shared/c++/NitroInAppMessageResultAndroid.hpp +92 -0
  454. package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +9 -2
  455. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +6 -2
  456. package/nitrogen/generated/shared/c++/NitroProduct.hpp +14 -2
  457. package/nitrogen/generated/shared/c++/NitroPurchase.hpp +40 -3
  458. package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +1 -1
  459. package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +27 -4
  460. package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +1 -1
  461. package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +15 -2
  462. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +13 -2
  463. package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +8 -8
  464. package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +1 -1
  465. package/nitrogen/generated/shared/c++/PendingPurchaseUpdateAndroid.hpp +1 -1
  466. package/nitrogen/generated/shared/c++/ProductType.hpp +76 -0
  467. package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +1 -1
  468. package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +1 -1
  469. package/nitrogen/generated/shared/c++/SubResponseCodeAndroid.hpp +80 -0
  470. package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +16 -3
  471. package/openiap-versions.json +3 -3
  472. package/package.json +8 -5
  473. package/src/hooks/useIAP.ts +70 -4
  474. package/src/index.kepler.ts +9 -0
  475. package/src/index.ts +268 -120
  476. package/src/specs/RnIap.nitro.ts +141 -27
  477. package/src/types.ts +294 -59
  478. package/src/utils/error.ts +11 -8
  479. package/src/utils/errorMapping.ts +9 -1
  480. package/src/utils/type-bridge.ts +63 -42
  481. package/src/vega-adapter.ts +112 -15
  482. package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +0 -83
  483. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.cpp +0 -26
  484. package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.hpp +0 -75
  485. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +0 -53
  486. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo.kt +0 -53
  487. package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +0 -182
  488. package/nitrogen/generated/ios/swift/Variant_NullType_NitroSubscriptionRenewalInfo.swift +0 -18
  489. package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +0 -106
package/src/index.ts CHANGED
@@ -18,11 +18,6 @@ import {ErrorCode} from './types';
18
18
  import type {
19
19
  AndroidSubscriptionOfferInput,
20
20
  DiscountOfferInputIOS,
21
- ExternalPurchaseCustomLinkNoticeResultIOS,
22
- ExternalPurchaseCustomLinkNoticeTypeIOS,
23
- ExternalPurchaseCustomLinkTokenResultIOS,
24
- ExternalPurchaseCustomLinkTokenTypeIOS,
25
- ExternalPurchaseNoticeResultIOS,
26
21
  FetchProductsResult,
27
22
  MutationField,
28
23
  Product,
@@ -73,7 +68,17 @@ import {getVegaIapModule, isVegaOS} from './vega';
73
68
  // Note: BillingProgramAndroid, ExternalLinkLaunchModeAndroid, and ExternalLinkTypeAndroid
74
69
  // are exported from './types' (auto-generated from openiap-gql).
75
70
  // Import them here for use in this file's interfaces and functions.
76
- import type {BillingProgramAndroid} from './types';
71
+ import type {
72
+ BillingChoiceInfoAndroid,
73
+ BillingProgramAndroid,
74
+ BillingProgramInformationDialogParamsAndroid,
75
+ BillingProgramReportingDetailsAndroid,
76
+ BillingResultAndroid,
77
+ DeveloperBillingTypeAndroid,
78
+ GetBillingChoiceInfoParamsAndroid,
79
+ InAppMessageParamsAndroid,
80
+ InAppMessageResultAndroid,
81
+ } from './types';
77
82
 
78
83
  // Export all types
79
84
  export type {
@@ -309,13 +314,23 @@ const purchaseUpdateDuplicateNativeHandler: NitroPurchaseListener = (
309
314
  const purchaseErrorJsListeners = new Set<(error: PurchaseError) => void>();
310
315
  let purchaseErrorNativeAttached = false;
311
316
  const purchaseErrorNativeHandler: NitroPurchaseErrorListener = (error) => {
317
+ const normalizedCode =
318
+ error.code === DUPLICATE_PURCHASE_CODE
319
+ ? ErrorCode.DuplicatePurchase
320
+ : normalizeErrorCodeFromNative(error.code);
312
321
  const normalized: PurchaseError = {
313
- code:
314
- error.code === DUPLICATE_PURCHASE_CODE
315
- ? ErrorCode.DuplicatePurchase
316
- : normalizeErrorCodeFromNative(error.code),
322
+ code: normalizedCode,
317
323
  message: error.message,
318
- 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,
319
334
  };
320
335
  for (const listener of purchaseErrorJsListeners) {
321
336
  try {
@@ -621,12 +636,11 @@ export const userChoiceBillingListenerAndroid = (
621
636
  };
622
637
 
623
638
  /**
624
- * Add a listener for developer provided billing events (Android 8.3.0+ only).
625
- * Fires when a user selects developer billing in the External Payments flow.
639
+ * Add a listener for developer provided billing events (Android 8.3.0+).
640
+ * Fires for External Payments and Billing Choice developer billing flows.
626
641
  *
627
- * External Payments is part of Google Play Billing Library 8.3.0+ and allows
628
- * showing a side-by-side choice between Google Play Billing and developer's
629
- * external payment option directly in the purchase flow. (Japan only)
642
+ * The payload includes selected products and nullable token, link, and original
643
+ * transaction fields. Billing Choice fields require Billing Library 9.1.0+.
630
644
  *
631
645
  * @param listener - Function to call when user chooses developer billing
632
646
  * @returns EventSubscription with remove() method to unsubscribe
@@ -636,14 +650,10 @@ export const userChoiceBillingListenerAndroid = (
636
650
  * @example
637
651
  * ```typescript
638
652
  * const subscription = developerProvidedBillingListenerAndroid((details) => {
639
- * console.log('User chose developer billing');
640
- * console.log('External transaction token received; send it to your backend without logging it.');
641
- *
642
- * // Process payment through your external payment system
643
- * await processExternalPayment();
644
- *
645
- * // Report transaction to Google Play (within 24 hours)
646
- * await reportToGooglePlay(details.externalTransactionToken);
653
+ * await processExternalPayment(details.products, details.linkUri);
654
+ * if (details.externalTransactionToken) {
655
+ * await reportToGooglePlay(details.externalTransactionToken);
656
+ * }
647
657
  * });
648
658
  *
649
659
  * // Later, remove the listener
@@ -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
  *
@@ -1109,6 +1119,12 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
1109
1119
 
1110
1120
  try {
1111
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
+ }
1112
1128
  return storefront;
1113
1129
  } catch (error) {
1114
1130
  RnIapConsole.error('Failed to get storefront:', error);
@@ -1123,35 +1139,50 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
1123
1139
  */
1124
1140
  export const getStorefront: QueryField<'getStorefront'> = async () => {
1125
1141
  if (Platform.OS !== 'ios' && !isAndroidStoreRuntime()) {
1126
- RnIapConsole.warn(
1127
- '[getStorefront] Storefront lookup is only supported on iOS, Android, and Vega OS.',
1128
- );
1129
- return '';
1142
+ throw createPurchaseError({
1143
+ code: ErrorCode.FeatureNotSupported,
1144
+ message: `Storefront lookup is not supported on ${Platform.OS}.`,
1145
+ });
1130
1146
  }
1131
1147
 
1132
1148
  const hasUnifiedMethod = typeof IAP.instance.getStorefront === 'function';
1133
1149
 
1134
- if (!hasUnifiedMethod && Platform.OS === 'ios') {
1135
- return getStorefrontIOS();
1136
- }
1137
-
1138
- if (!hasUnifiedMethod) {
1139
- RnIapConsole.warn(
1140
- '[getStorefront] Native getStorefront is not available on this build.',
1141
- );
1142
- 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
+ });
1143
1156
  }
1144
1157
 
1158
+ let storefront: string | null | undefined;
1145
1159
  try {
1146
- const storefront = await IAP.instance.getStorefront();
1147
- return storefront ?? '';
1160
+ storefront = hasUnifiedMethod
1161
+ ? await IAP.instance.getStorefront()
1162
+ : await getStorefrontIOS();
1148
1163
  } catch (error) {
1149
- RnIapConsole.error(
1164
+ const parsedError = parseErrorAndLogIfNeeded(
1150
1165
  `[getStorefront] Failed to get storefront on ${Platform.OS}:`,
1151
1166
  error,
1152
1167
  );
1153
- 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
+ });
1154
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;
1155
1186
  };
1156
1187
 
1157
1188
  /**
@@ -1621,6 +1652,10 @@ export const getTransactionJwsIOS: QueryField<'getTransactionJwsIOS'> = async (
1621
1652
  * ```ts
1622
1653
  * await initConnection();
1623
1654
  * await initConnection({ enableBillingProgramAndroid: 'external-offer' });
1655
+ * await initConnection({
1656
+ * enableBillingProgramAndroid: 'billing-choice',
1657
+ * billingChoiceScreenTypeAndroid: 'developer-rendered',
1658
+ * });
1624
1659
  * ```
1625
1660
  *
1626
1661
  * @remarks When using `useIAP()`, connection is auto-managed on mount/unmount —
@@ -1843,8 +1878,12 @@ export const requestPurchase: MutationField<'requestPurchase'> = async (
1843
1878
  if (androidRequest.isOfferPersonalized != null) {
1844
1879
  androidPayload.isOfferPersonalized = androidRequest.isOfferPersonalized;
1845
1880
  }
1881
+ if (androidRequest.developerBillingOption) {
1882
+ androidPayload.developerBillingOption =
1883
+ androidRequest.developerBillingOption;
1884
+ }
1846
1885
 
1847
- // One-time purchase offerToken (Android 7.0+)
1886
+ // One-time purchase offerToken (Android 8.0+)
1848
1887
  if (!isSubs) {
1849
1888
  const purchaseRequest = androidRequest as RequestPurchaseAndroidProps;
1850
1889
  if (purchaseRequest.offerToken) {
@@ -1857,6 +1896,10 @@ export const requestPurchase: MutationField<'requestPurchase'> = async (
1857
1896
  if (subsRequest.purchaseToken) {
1858
1897
  androidPayload.purchaseToken = subsRequest.purchaseToken;
1859
1898
  }
1899
+ if (subsRequest.originalExternalTransactionId) {
1900
+ androidPayload.originalExternalTransactionId =
1901
+ subsRequest.originalExternalTransactionId;
1902
+ }
1860
1903
  if (subsRequest.replacementMode != null) {
1861
1904
  androidPayload.replacementMode = subsRequest.replacementMode;
1862
1905
  }
@@ -2394,41 +2437,30 @@ export const presentCodeRedemptionSheetIOS: MutationField<
2394
2437
  *
2395
2438
  * @see {@link https://openiap.dev/docs/apis/ios/request-purchase-on-promoted-product-ios}
2396
2439
  */
2397
- export const requestPurchaseOnPromotedProductIOS =
2398
- async (): Promise<boolean> => {
2399
- if (Platform.OS !== 'ios') {
2400
- throw new Error(
2401
- 'requestPurchaseOnPromotedProductIOS is only available on iOS',
2402
- );
2403
- }
2404
-
2405
- try {
2406
- await IAP.instance.buyPromotedProductIOS();
2407
- const pending = await IAP.instance.getPendingTransactionsIOS();
2408
- const latest = pending.find((purchase) => purchase != null);
2409
- if (!latest) {
2410
- throw new Error('No promoted purchase available after request');
2411
- }
2412
-
2413
- const converted = convertNitroPurchaseToPurchase(latest);
2414
- if (converted.platform !== 'ios') {
2415
- throw new Error('Promoted purchase result not available for iOS');
2416
- }
2440
+ export const requestPurchaseOnPromotedProductIOS: MutationField<
2441
+ 'requestPurchaseOnPromotedProductIOS'
2442
+ > = async () => {
2443
+ if (Platform.OS !== 'ios') {
2444
+ throw new Error(
2445
+ 'requestPurchaseOnPromotedProductIOS is only available on iOS',
2446
+ );
2447
+ }
2417
2448
 
2418
- return true;
2419
- } catch (error) {
2420
- const parsedError = parseErrorAndLogIfNeeded(
2421
- '[requestPurchaseOnPromotedProductIOS] Failed:',
2422
- error,
2423
- );
2424
- throw createPurchaseError({
2425
- code: parsedError.code,
2426
- message: parsedError.message,
2427
- responseCode: parsedError.responseCode,
2428
- debugMessage: parsedError.debugMessage,
2429
- });
2430
- }
2431
- };
2449
+ try {
2450
+ return await IAP.instance.buyPromotedProductIOS();
2451
+ } catch (error) {
2452
+ const parsedError = parseErrorAndLogIfNeeded(
2453
+ '[requestPurchaseOnPromotedProductIOS] Failed:',
2454
+ error,
2455
+ );
2456
+ throw createPurchaseError({
2457
+ code: parsedError.code,
2458
+ message: parsedError.message,
2459
+ responseCode: parsedError.responseCode,
2460
+ debugMessage: parsedError.debugMessage,
2461
+ });
2462
+ }
2463
+ };
2432
2464
 
2433
2465
  /**
2434
2466
  * Clear unfinished transactions on iOS
@@ -2925,7 +2957,9 @@ export const isBillingProgramAvailableAndroid: MutationField<
2925
2957
  const result = await IAP.instance.isBillingProgramAvailableAndroid(program);
2926
2958
  return {
2927
2959
  billingProgram: result.billingProgram as unknown as BillingProgramAndroid,
2960
+ choiceScreenType: result.choiceScreenType,
2928
2961
  isAvailable: result.isAvailable,
2962
+ isExternalLinkAvailable: result.isExternalLinkAvailable,
2929
2963
  };
2930
2964
  } catch (error) {
2931
2965
  RnIapConsole.error('Failed to check billing program availability:', error);
@@ -2933,6 +2967,37 @@ export const isBillingProgramAvailableAndroid: MutationField<
2933
2967
  }
2934
2968
  };
2935
2969
 
2970
+ /**
2971
+ * Fetch Play Billing assets and loyalty text for developer-rendered Billing Choice screens (Android only).
2972
+ *
2973
+ * @param params - Billing Choice info request parameters
2974
+ * @returns Promise with Play-hosted image URL and optional loyalty information
2975
+ * @platform Android
2976
+ * @since Google Play Billing Library 9.1.0+
2977
+ *
2978
+ * @see {@link https://openiap.dev/docs/apis/android/get-billing-choice-info-android}
2979
+ */
2980
+ export const getBillingChoiceInfoAndroid: QueryField<
2981
+ 'getBillingChoiceInfoAndroid'
2982
+ > = async (
2983
+ params: GetBillingChoiceInfoParamsAndroid = {},
2984
+ ): Promise<BillingChoiceInfoAndroid> => {
2985
+ if (Platform.OS !== 'android') {
2986
+ throw new Error('Billing Choice API is only supported on Android');
2987
+ }
2988
+ try {
2989
+ return await IAP.instance.getBillingChoiceInfoAndroid({
2990
+ billingProgram: params.billingProgram ?? 'billing-choice',
2991
+ playBillingChoiceImageLayout:
2992
+ params.playBillingChoiceImageLayout ?? 'rectangular-four-by-one',
2993
+ userLocale: params.userLocale ?? null,
2994
+ });
2995
+ } catch (error) {
2996
+ RnIapConsole.error('Failed to get Billing Choice info:', error);
2997
+ throw error;
2998
+ }
2999
+ };
3000
+
2936
3001
  /**
2937
3002
  * Create billing program reporting details for external transactions (Android only).
2938
3003
  * Used to get the external transaction token needed for reporting to Google.
@@ -2954,15 +3019,34 @@ export const isBillingProgramAvailableAndroid: MutationField<
2954
3019
  *
2955
3020
  * @see {@link https://openiap.dev/docs/apis/android/create-billing-program-reporting-details-android}
2956
3021
  */
2957
- export const createBillingProgramReportingDetailsAndroid: MutationField<
2958
- 'createBillingProgramReportingDetailsAndroid'
2959
- > = async (program) => {
3022
+ export const createBillingProgramReportingDetailsAndroid: MutationField<'createBillingProgramReportingDetailsAndroid'> &
3023
+ ((
3024
+ program: BillingProgramAndroid,
3025
+ developerBillingType?: DeveloperBillingTypeAndroid | null,
3026
+ ) => Promise<BillingProgramReportingDetailsAndroid>) = async (
3027
+ programOrArgs:
3028
+ | BillingProgramAndroid
3029
+ | {
3030
+ program: BillingProgramAndroid;
3031
+ developerBillingType?: DeveloperBillingTypeAndroid | null;
3032
+ },
3033
+ developerBillingType?: DeveloperBillingTypeAndroid | null,
3034
+ ): Promise<BillingProgramReportingDetailsAndroid> => {
2960
3035
  if (Platform.OS !== 'android') {
2961
3036
  throw new Error('Billing Programs API is only supported on Android');
2962
3037
  }
2963
3038
  try {
3039
+ const program =
3040
+ typeof programOrArgs === 'string' ? programOrArgs : programOrArgs.program;
3041
+ const resolvedDeveloperBillingType =
3042
+ typeof programOrArgs === 'string'
3043
+ ? developerBillingType
3044
+ : (programOrArgs.developerBillingType ?? developerBillingType);
2964
3045
  const result =
2965
- await IAP.instance.createBillingProgramReportingDetailsAndroid(program);
3046
+ await IAP.instance.createBillingProgramReportingDetailsAndroid(
3047
+ program,
3048
+ resolvedDeveloperBillingType ?? null,
3049
+ );
2966
3050
  return {
2967
3051
  billingProgram: result.billingProgram as unknown as BillingProgramAndroid,
2968
3052
  externalTransactionToken: result.externalTransactionToken,
@@ -2977,7 +3061,67 @@ export const createBillingProgramReportingDetailsAndroid: MutationField<
2977
3061
  };
2978
3062
 
2979
3063
  /**
2980
- * Launch external link for external offers or app download (Android only).
3064
+ * Show Google's mandatory information dialog before a developer-rendered,
3065
+ * in-app Billing Choice screen (Android only).
3066
+ *
3067
+ * @param params - Dialog parameters with the external transaction token
3068
+ * @returns Promise with BillingResult
3069
+ * @platform Android
3070
+ * @since Google Play Billing Library 9.1.0+
3071
+ *
3072
+ * @see {@link https://openiap.dev/docs/apis/android/show-billing-program-information-dialog-android}
3073
+ */
3074
+ export const showBillingProgramInformationDialogAndroid: MutationField<
3075
+ 'showBillingProgramInformationDialogAndroid'
3076
+ > = async (
3077
+ params: BillingProgramInformationDialogParamsAndroid,
3078
+ ): Promise<BillingResultAndroid> => {
3079
+ if (Platform.OS !== 'android') {
3080
+ throw new Error('Billing Choice API is only supported on Android');
3081
+ }
3082
+ try {
3083
+ return await IAP.instance.showBillingProgramInformationDialogAndroid({
3084
+ billingProgram: params.billingProgram ?? 'billing-choice',
3085
+ externalTransactionToken: params.externalTransactionToken,
3086
+ });
3087
+ } catch (error) {
3088
+ RnIapConsole.error(
3089
+ 'Failed to show Billing Choice information dialog:',
3090
+ error,
3091
+ );
3092
+ throw error;
3093
+ }
3094
+ };
3095
+
3096
+ /**
3097
+ * Show Play Billing in-app messages, such as transactional subscription updates (Android only).
3098
+ *
3099
+ * @param params - Optional in-app message categories
3100
+ * @returns Promise with in-app message result
3101
+ * @platform Android
3102
+ * @since Google Play Billing Library 4.1.0+
3103
+ *
3104
+ * @see {@link https://openiap.dev/docs/apis/android/show-in-app-messages-android}
3105
+ */
3106
+ export const showInAppMessagesAndroid: MutationField<
3107
+ 'showInAppMessagesAndroid'
3108
+ > = async (
3109
+ params?: InAppMessageParamsAndroid | null,
3110
+ ): Promise<InAppMessageResultAndroid> => {
3111
+ if (Platform.OS !== 'android') {
3112
+ throw new Error('In-app messages are only supported on Android');
3113
+ }
3114
+ try {
3115
+ return await IAP.instance.showInAppMessagesAndroid(params ?? null);
3116
+ } catch (error) {
3117
+ RnIapConsole.error('Failed to show in-app messages:', error);
3118
+ throw error;
3119
+ }
3120
+ };
3121
+
3122
+ /**
3123
+ * Launch an external link for Billing Programs (Android only). Developer-rendered
3124
+ * Billing Choice external-link flows require 9.1.0+ and a pre-generated token.
2981
3125
  *
2982
3126
  * @param params - Parameters for launching the external link
2983
3127
  * @returns Promise<boolean> - true if user accepted, false otherwise
@@ -2987,7 +3131,8 @@ export const createBillingProgramReportingDetailsAndroid: MutationField<
2987
3131
  * @example
2988
3132
  * ```typescript
2989
3133
  * const success = await launchExternalLinkAndroid({
2990
- * billingProgram: 'external-offer',
3134
+ * billingProgram: 'billing-choice',
3135
+ * externalTransactionToken: reportingDetails.externalTransactionToken,
2991
3136
  * launchMode: 'launch-in-external-browser-or-app',
2992
3137
  * linkType: 'link-to-digital-content-offer',
2993
3138
  * linkUri: 'https://your-website.com/purchase'
@@ -3008,6 +3153,7 @@ export const launchExternalLinkAndroid: MutationField<
3008
3153
  try {
3009
3154
  return await IAP.instance.launchExternalLinkAndroid({
3010
3155
  billingProgram: params.billingProgram,
3156
+ externalTransactionToken: params.externalTransactionToken,
3011
3157
  launchMode: params.launchMode,
3012
3158
  linkType: params.linkType,
3013
3159
  linkUri: params.linkUri,
@@ -3078,21 +3224,22 @@ export const canPresentExternalPurchaseNoticeIOS: QueryField<
3078
3224
  *
3079
3225
  * @see {@link https://openiap.dev/docs/apis/ios/present-external-purchase-notice-sheet-ios}
3080
3226
  */
3081
- export const presentExternalPurchaseNoticeSheetIOS =
3082
- async (): Promise<ExternalPurchaseNoticeResultIOS> => {
3083
- if (Platform.OS !== 'ios') {
3084
- throw new Error('External purchase is only supported on iOS');
3085
- }
3086
- try {
3087
- return await IAP.instance.presentExternalPurchaseNoticeSheetIOS();
3088
- } catch (error) {
3089
- RnIapConsole.error(
3090
- 'Failed to present external purchase notice sheet:',
3091
- error,
3092
- );
3093
- throw error;
3094
- }
3095
- };
3227
+ export const presentExternalPurchaseNoticeSheetIOS: MutationField<
3228
+ 'presentExternalPurchaseNoticeSheetIOS'
3229
+ > = async () => {
3230
+ if (Platform.OS !== 'ios') {
3231
+ throw new Error('External purchase is only supported on iOS');
3232
+ }
3233
+ try {
3234
+ return await IAP.instance.presentExternalPurchaseNoticeSheetIOS();
3235
+ } catch (error) {
3236
+ RnIapConsole.error(
3237
+ 'Failed to present external purchase notice sheet:',
3238
+ error,
3239
+ );
3240
+ throw error;
3241
+ }
3242
+ };
3096
3243
 
3097
3244
  /**
3098
3245
  * Present an external purchase link to redirect users to your website (iOS 16.0+).
@@ -3147,21 +3294,22 @@ export const presentExternalPurchaseLinkIOS: MutationField<
3147
3294
  *
3148
3295
  * @see {@link https://openiap.dev/docs/apis/ios/is-eligible-for-external-purchase-custom-link-ios}
3149
3296
  */
3150
- export const isEligibleForExternalPurchaseCustomLinkIOS =
3151
- async (): Promise<boolean> => {
3152
- if (Platform.OS !== 'ios') {
3153
- return false;
3154
- }
3155
- try {
3156
- return await IAP.instance.isEligibleForExternalPurchaseCustomLinkIOS();
3157
- } catch (error) {
3158
- RnIapConsole.error(
3159
- 'Failed to check external purchase custom link eligibility:',
3160
- error,
3161
- );
3162
- return false;
3163
- }
3164
- };
3297
+ export const isEligibleForExternalPurchaseCustomLinkIOS: QueryField<
3298
+ 'isEligibleForExternalPurchaseCustomLinkIOS'
3299
+ > = async () => {
3300
+ if (Platform.OS !== 'ios') {
3301
+ return false;
3302
+ }
3303
+ try {
3304
+ return await IAP.instance.isEligibleForExternalPurchaseCustomLinkIOS();
3305
+ } catch (error) {
3306
+ RnIapConsole.error(
3307
+ 'Failed to check external purchase custom link eligibility:',
3308
+ error,
3309
+ );
3310
+ return false;
3311
+ }
3312
+ };
3165
3313
 
3166
3314
  /**
3167
3315
  * Get external purchase token for reporting to Apple (iOS 18.1+).
@@ -3184,9 +3332,9 @@ export const isEligibleForExternalPurchaseCustomLinkIOS =
3184
3332
  *
3185
3333
  * @see {@link https://openiap.dev/docs/apis/ios/get-external-purchase-custom-link-token-ios}
3186
3334
  */
3187
- export const getExternalPurchaseCustomLinkTokenIOS = async (
3188
- tokenType: ExternalPurchaseCustomLinkTokenTypeIOS,
3189
- ): Promise<ExternalPurchaseCustomLinkTokenResultIOS> => {
3335
+ export const getExternalPurchaseCustomLinkTokenIOS: QueryField<
3336
+ 'getExternalPurchaseCustomLinkTokenIOS'
3337
+ > = async (tokenType) => {
3190
3338
  if (Platform.OS !== 'ios') {
3191
3339
  throw new Error(
3192
3340
  'External purchase custom link is only supported on iOS 18.1+',
@@ -3224,9 +3372,9 @@ export const getExternalPurchaseCustomLinkTokenIOS = async (
3224
3372
  *
3225
3373
  * @see {@link https://openiap.dev/docs/apis/ios/show-external-purchase-custom-link-notice-ios}
3226
3374
  */
3227
- export const showExternalPurchaseCustomLinkNoticeIOS = async (
3228
- noticeType: ExternalPurchaseCustomLinkNoticeTypeIOS,
3229
- ): Promise<ExternalPurchaseCustomLinkNoticeResultIOS> => {
3375
+ export const showExternalPurchaseCustomLinkNoticeIOS: MutationField<
3376
+ 'showExternalPurchaseCustomLinkNoticeIOS'
3377
+ > = async (noticeType) => {
3230
3378
  if (Platform.OS !== 'ios') {
3231
3379
  throw new Error(
3232
3380
  'External purchase custom link is only supported on iOS 18.1+',