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
@@ -110,11 +110,11 @@ const parseNSErrorJsonPayload = (rawString: string): IapError | null => {
110
110
  return null;
111
111
  };
112
112
 
113
- const parseStructuredError = (error: Error): IapError | null => {
114
- const errorWithCode = error as Error & {code?: unknown} & Record<
115
- string,
116
- unknown
117
- >;
113
+ const parseStructuredError = (error: object): IapError | null => {
114
+ const errorWithCode = error as {code?: unknown; message?: unknown} & Record<
115
+ string,
116
+ unknown
117
+ >;
118
118
 
119
119
  if (errorWithCode.code != null) {
120
120
  const {code, message, ...extraFields} = errorWithCode;
@@ -122,7 +122,7 @@ const parseStructuredError = (error: Error): IapError | null => {
122
122
  return {
123
123
  ...extraFields,
124
124
  code: String(code),
125
- message: typeof message === 'string' ? message : error.message,
125
+ message: typeof message === 'string' ? message : 'Unknown error occurred',
126
126
  };
127
127
  }
128
128
 
@@ -143,13 +143,16 @@ const parseStructuredError = (error: Error): IapError | null => {
143
143
  export function parseErrorStringToJsonObj(
144
144
  errorString: string | Error | unknown,
145
145
  ): IapError {
146
- // Handle Error objects
147
- if (errorString instanceof Error) {
146
+ // Nitro can reject with either Error instances or plain structured objects.
147
+ if (typeof errorString === 'object' && errorString !== null) {
148
148
  const structuredError = parseStructuredError(errorString);
149
149
  if (structuredError) {
150
150
  return structuredError;
151
151
  }
152
+ }
152
153
 
154
+ // Parse an Error's message after checking for attached structured fields.
155
+ if (errorString instanceof Error) {
153
156
  errorString = errorString.message;
154
157
  }
155
158
 
@@ -4,7 +4,11 @@
4
4
  * and constructing structured purchase errors.
5
5
  */
6
6
 
7
- import {ErrorCode, type IapPlatform} from '../types';
7
+ import {
8
+ ErrorCode,
9
+ type IapPlatform,
10
+ type SubResponseCodeAndroid,
11
+ } from '../types';
8
12
 
9
13
  /**
10
14
  * Error code for duplicate purchase events detected on iOS.
@@ -54,6 +58,7 @@ export interface PurchaseErrorProps {
54
58
  productIds?: string[];
55
59
  productType?: string;
56
60
  isEmptyProductList?: boolean;
61
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
57
62
  platform?: IapPlatform;
58
63
  }
59
64
 
@@ -65,6 +70,7 @@ export interface PurchaseError extends Error {
65
70
  productIds?: string[];
66
71
  productType?: string;
67
72
  isEmptyProductList?: boolean;
73
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
68
74
  platform?: IapPlatform;
69
75
  }
70
76
 
@@ -146,6 +152,7 @@ export const createPurchaseError = (
146
152
  error.productIds = props.productIds;
147
153
  error.productType = props.productType;
148
154
  error.isEmptyProductList = props.isEmptyProductList;
155
+ error.subResponseCodeAndroid = props.subResponseCodeAndroid;
149
156
  error.platform = props.platform;
150
157
  return error;
151
158
  };
@@ -170,6 +177,7 @@ export const createPurchaseErrorFromPlatform = (
170
177
  productIds: errorData.productIds,
171
178
  productType: errorData.productType,
172
179
  isEmptyProductList: errorData.isEmptyProductList,
180
+ subResponseCodeAndroid: errorData.subResponseCodeAndroid,
173
181
  platform,
174
182
  });
175
183
  };
@@ -8,6 +8,7 @@
8
8
  import type {
9
9
  NitroProduct,
10
10
  NitroPurchase,
11
+ NitroRenewalInfoIOS,
11
12
  NitroSubscriptionStatus,
12
13
  } from '../specs/RnIap.nitro';
13
14
  import type {
@@ -25,6 +26,7 @@ import type {
25
26
  Purchase,
26
27
  PurchaseAndroid,
27
28
  PurchaseIOS,
29
+ RenewalInfoIOS,
28
30
  SubscriptionStatusIOS,
29
31
  } from '../types';
30
32
  import {RnIapConsole} from './debug';
@@ -191,6 +193,30 @@ function toNullableBoolean(value: unknown): boolean | null {
191
193
  return null;
192
194
  }
193
195
 
196
+ function convertNitroRenewalInfoToRenewalInfoIOS(
197
+ renewalInfo: NitroRenewalInfoIOS,
198
+ ): RenewalInfoIOS {
199
+ return {
200
+ autoRenewPreference: toNullableString(renewalInfo.autoRenewPreference),
201
+ commitmentInfo: renewalInfo.commitmentInfo ?? null,
202
+ expirationReason: toNullableString(renewalInfo.expirationReason),
203
+ gracePeriodExpirationDate: toNullableNumber(
204
+ renewalInfo.gracePeriodExpirationDate,
205
+ ),
206
+ isInBillingRetry: toNullableBoolean(renewalInfo.isInBillingRetry),
207
+ jsonRepresentation: toNullableString(renewalInfo.jsonRepresentation),
208
+ pendingUpgradeProductId: toNullableString(
209
+ renewalInfo.pendingUpgradeProductId,
210
+ ),
211
+ priceIncreaseStatus: toNullableString(renewalInfo.priceIncreaseStatus),
212
+ renewalBillingPlanType: renewalInfo.renewalBillingPlanType ?? null,
213
+ renewalDate: toNullableNumber(renewalInfo.renewalDate),
214
+ renewalOfferId: toNullableString(renewalInfo.renewalOfferId),
215
+ renewalOfferType: toNullableString(renewalInfo.renewalOfferType),
216
+ willAutoRenew: renewalInfo.willAutoRenew ?? false,
217
+ };
218
+ }
219
+
194
220
  function parseSubscriptionOffers(value?: Nullable<string> | any[]) {
195
221
  if (!value) return undefined;
196
222
 
@@ -232,7 +258,7 @@ export function convertNitroProductToProduct(
232
258
  displayPrice: nitroProduct.displayPrice ?? '',
233
259
  currency: nitroProduct.currency ?? '',
234
260
  price: toNullableNumber(nitroProduct.price),
235
- debugDescription: null,
261
+ debugDescription: nitroProduct.debugDescription ?? null,
236
262
  platform,
237
263
  };
238
264
 
@@ -244,7 +270,6 @@ export function convertNitroProductToProduct(
244
270
  jsonRepresentationIOS:
245
271
  nitroProduct.jsonRepresentationIOS ?? DEFAULT_JSON_REPR,
246
272
  typeIOS: normalizeProductTypeIOS(nitroProduct.typeIOS),
247
- subscriptionInfoIOS: undefined,
248
273
  };
249
274
 
250
275
  iosProduct.introductoryPriceAsAmountIOS = toNullableString(
@@ -284,6 +309,31 @@ export function convertNitroProductToProduct(
284
309
  iosProduct.discountsIOS = null;
285
310
  }
286
311
 
312
+ if (nitroProduct.pricingTermsIOS) {
313
+ try {
314
+ const parsed = JSON.parse(nitroProduct.pricingTermsIOS);
315
+ iosProduct.pricingTermsIOS = Array.isArray(parsed) ? parsed : null;
316
+ } catch {
317
+ iosProduct.pricingTermsIOS = null;
318
+ }
319
+ } else {
320
+ iosProduct.pricingTermsIOS = null;
321
+ }
322
+
323
+ if (nitroProduct.subscriptionInfoIOS) {
324
+ try {
325
+ const parsed = JSON.parse(nitroProduct.subscriptionInfoIOS);
326
+ iosProduct.subscriptionInfoIOS =
327
+ typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)
328
+ ? parsed
329
+ : null;
330
+ } catch {
331
+ iosProduct.subscriptionInfoIOS = null;
332
+ }
333
+ } else {
334
+ iosProduct.subscriptionInfoIOS = null;
335
+ }
336
+
287
337
  // Parse standardized subscriptionOffers (cross-platform, OpenIAP 1.3.10+)
288
338
  if (nitroProduct.subscriptionOffers) {
289
339
  try {
@@ -418,8 +468,13 @@ export function convertNitroPurchaseToPurchase(
418
468
  quantity: nitroPurchase.quantity ?? 1,
419
469
  purchaseState,
420
470
  isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
471
+ currentPlanId: toNullableString(nitroPurchase.currentPlanId),
472
+ ids: nitroPurchase.ids ?? null,
421
473
  // PurchaseIOS requires both id and transactionId (they are the same value)
422
474
  transactionId: nitroPurchase.id,
475
+ advancedCommerceInfoIOS: nitroPurchase.advancedCommerceInfoIOS ?? null,
476
+ billingPlanTypeIOS: nitroPurchase.billingPlanTypeIOS ?? null,
477
+ commitmentInfoIOS: nitroPurchase.commitmentInfoIOS ?? null,
423
478
  quantityIOS: toNullableNumber(nitroPurchase.quantityIOS),
424
479
  originalTransactionDateIOS: toNullableNumber(
425
480
  nitroPurchase.originalTransactionDateIOS,
@@ -464,39 +519,7 @@ export function convertNitroPurchaseToPurchase(
464
519
  nitroPurchase.webOrderLineItemIdIOS,
465
520
  ),
466
521
  renewalInfoIOS: nitroPurchase.renewalInfoIOS
467
- ? {
468
- autoRenewPreference: toNullableString(
469
- nitroPurchase.renewalInfoIOS.autoRenewPreference,
470
- ),
471
- expirationReason: toNullableString(
472
- nitroPurchase.renewalInfoIOS.expirationReason,
473
- ),
474
- gracePeriodExpirationDate: toNullableNumber(
475
- nitroPurchase.renewalInfoIOS.gracePeriodExpirationDate,
476
- ),
477
- isInBillingRetry: toNullableBoolean(
478
- nitroPurchase.renewalInfoIOS.isInBillingRetry,
479
- ),
480
- jsonRepresentation: toNullableString(
481
- nitroPurchase.renewalInfoIOS.jsonRepresentation,
482
- ),
483
- pendingUpgradeProductId: toNullableString(
484
- nitroPurchase.renewalInfoIOS.pendingUpgradeProductId,
485
- ),
486
- priceIncreaseStatus: toNullableString(
487
- nitroPurchase.renewalInfoIOS.priceIncreaseStatus,
488
- ),
489
- renewalDate: toNullableNumber(
490
- nitroPurchase.renewalInfoIOS.renewalDate,
491
- ),
492
- renewalOfferId: toNullableString(
493
- nitroPurchase.renewalInfoIOS.renewalOfferId,
494
- ),
495
- renewalOfferType: toNullableString(
496
- nitroPurchase.renewalInfoIOS.renewalOfferType,
497
- ),
498
- willAutoRenew: nitroPurchase.renewalInfoIOS.willAutoRenew ?? false,
499
- }
522
+ ? convertNitroRenewalInfoToRenewalInfoIOS(nitroPurchase.renewalInfoIOS)
500
523
  : null,
501
524
  };
502
525
  return iosPurchase;
@@ -513,6 +536,8 @@ export function convertNitroPurchaseToPurchase(
513
536
  quantity: nitroPurchase.quantity ?? 1,
514
537
  purchaseState,
515
538
  isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
539
+ currentPlanId: toNullableString(nitroPurchase.currentPlanId),
540
+ ids: nitroPurchase.ids ?? null,
516
541
  // PurchaseAndroid has optional transactionId (may differ from id/orderId)
517
542
  transactionId: toNullableString(nitroPurchase.id),
518
543
  autoRenewingAndroid: toNullableBoolean(
@@ -534,6 +559,8 @@ export function convertNitroPurchaseToPurchase(
534
559
  nitroPurchase.developerPayloadAndroid,
535
560
  ),
536
561
  isSuspendedAndroid: toNullableBoolean(nitroPurchase.isSuspendedAndroid),
562
+ pendingPurchaseUpdateAndroid:
563
+ nitroPurchase.pendingPurchaseUpdateAndroid ?? null,
537
564
  };
538
565
 
539
566
  return androidPurchase;
@@ -548,13 +575,7 @@ export function convertNitroSubscriptionStatusToSubscriptionStatusIOS(
548
575
  return {
549
576
  state: String(nitro.state ?? ''),
550
577
  renewalInfo: nitro.renewalInfo
551
- ? {
552
- autoRenewPreference: toNullableString(
553
- nitro.renewalInfo.autoRenewPreference,
554
- ),
555
- jsonRepresentation: JSON.stringify(nitro.renewalInfo),
556
- willAutoRenew: Boolean(nitro.renewalInfo.autoRenewStatus),
557
- }
578
+ ? convertNitroRenewalInfoToRenewalInfoIOS(nitro.renewalInfo)
558
579
  : undefined,
559
580
  };
560
581
  }
@@ -9,6 +9,7 @@ import type {
9
9
  RnIap,
10
10
  } from './specs/RnIap.nitro';
11
11
  import {ErrorCode} from './types';
12
+ import type {SubResponseCodeAndroid} from './types';
12
13
 
13
14
  type ResponseOperation =
14
15
  | 'product-data'
@@ -21,6 +22,7 @@ const IAPKIT_VERIFY_TIMEOUT_MS = 10_000;
21
22
  const MAX_IAPKIT_ERROR_DEPTH = 5;
22
23
  const MAX_PRODUCT_DATA_BATCH_SIZE = 100;
23
24
  const MAX_PURCHASE_UPDATE_PAGES = 100;
25
+ const NOTIFY_FULFILLMENT_ATTEMPT_TIMEOUT_MS = 2_000;
24
26
  const NOTIFY_FULFILLMENT_MAX_ATTEMPTS = 15;
25
27
  const NOTIFY_FULFILLMENT_RETRY_DELAY_MS = 1_000;
26
28
  const PURCHASE_UPDATES_MAX_ATTEMPTS = 5;
@@ -96,9 +98,13 @@ interface VegaUserDataRequest {
96
98
  interface VegaError extends Error {
97
99
  code?: ErrorCode;
98
100
  debugMessage?: string;
101
+ isEmptyProductList?: boolean;
99
102
  platform?: 'android';
100
103
  productId?: string;
104
+ productIds?: string[];
105
+ productType?: string;
101
106
  responseCode?: number;
107
+ subResponseCodeAndroid?: SubResponseCodeAndroid;
102
108
  }
103
109
 
104
110
  export interface VegaPurchasingService {
@@ -150,8 +156,12 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
150
156
  if (
151
157
  vegaError.code != null ||
152
158
  vegaError.debugMessage != null ||
159
+ vegaError.isEmptyProductList != null ||
153
160
  vegaError.productId != null ||
154
- vegaError.responseCode != null
161
+ vegaError.productIds != null ||
162
+ vegaError.productType != null ||
163
+ vegaError.responseCode != null ||
164
+ vegaError.subResponseCodeAndroid != null
155
165
  ) {
156
166
  return {
157
167
  code: vegaError.code,
@@ -159,6 +169,10 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
159
169
  responseCode: vegaError.responseCode,
160
170
  debugMessage: vegaError.debugMessage,
161
171
  productId: vegaError.productId,
172
+ productIds: vegaError.productIds,
173
+ productType: vegaError.productType,
174
+ isEmptyProductList: vegaError.isEmptyProductList,
175
+ subResponseCodeAndroid: vegaError.subResponseCodeAndroid,
162
176
  platform: vegaError.platform,
163
177
  };
164
178
  }
@@ -175,9 +189,12 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
175
189
  function toPurchaseErrorResult(
176
190
  error: unknown,
177
191
  fallbackMessage: string,
192
+ productId?: string,
178
193
  ): NitroPurchaseResult {
179
194
  const parsed = parseVegaErrorPayload(error);
180
195
  const responseCode = parsed.responseCode;
196
+ const parsedProductIds = parsed.productIds;
197
+ const parsedSubResponseCode = parsed.subResponseCodeAndroid;
181
198
  return {
182
199
  responseCode: typeof responseCode === 'number' ? responseCode : -1,
183
200
  code:
@@ -191,6 +208,23 @@ function toPurchaseErrorResult(
191
208
  debugMessage:
192
209
  typeof parsed.debugMessage === 'string' ? parsed.debugMessage : undefined,
193
210
  purchaseToken: undefined,
211
+ productId:
212
+ typeof parsed.productId === 'string' ? parsed.productId : productId,
213
+ productIds: Array.isArray(parsedProductIds)
214
+ ? parsedProductIds.filter(
215
+ (candidate): candidate is string => typeof candidate === 'string',
216
+ )
217
+ : undefined,
218
+ productType:
219
+ typeof parsed.productType === 'string' ? parsed.productType : undefined,
220
+ isEmptyProductList:
221
+ typeof parsed.isEmptyProductList === 'boolean'
222
+ ? parsed.isEmptyProductList
223
+ : undefined,
224
+ subResponseCodeAndroid:
225
+ typeof parsedSubResponseCode === 'string'
226
+ ? (parsedSubResponseCode as SubResponseCodeAndroid)
227
+ : undefined,
194
228
  };
195
229
  }
196
230
 
@@ -207,6 +241,26 @@ function delay(ms: number): Promise<void> {
207
241
  });
208
242
  }
209
243
 
244
+ function withTimeout<T>(
245
+ operation: Promise<T>,
246
+ timeoutMs: number,
247
+ timeoutError: Error,
248
+ ): Promise<T> {
249
+ return new Promise((resolve, reject) => {
250
+ const timeoutId = setTimeout(() => reject(timeoutError), timeoutMs);
251
+ operation.then(
252
+ (value) => {
253
+ clearTimeout(timeoutId);
254
+ resolve(value);
255
+ },
256
+ (error) => {
257
+ clearTimeout(timeoutId);
258
+ reject(error);
259
+ },
260
+ );
261
+ });
262
+ }
263
+
210
264
  function isSuccess(
211
265
  operation: ResponseOperation,
212
266
  responseCode: unknown,
@@ -543,6 +597,8 @@ function mapReceipt(
543
597
  productId,
544
598
  transactionDate: toTimestamp(receipt.purchaseDate),
545
599
  purchaseToken: receiptId,
600
+ currentPlanId: type === 'subs' ? productId : null,
601
+ ids: productId ? [productId] : [],
546
602
  platform: 'android',
547
603
  store: 'amazon',
548
604
  quantity: 1,
@@ -698,8 +754,34 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
698
754
  };
699
755
 
700
756
  const getStorefront = async (): Promise<string> => {
701
- await getUserData();
702
- return cachedUserData?.marketplace ?? cachedUserData?.countryCode ?? '';
757
+ try {
758
+ const userData = await getUserData();
759
+ const storefront = userData?.marketplace ?? userData?.countryCode;
760
+ if (typeof storefront !== 'string' || storefront.trim().length === 0) {
761
+ throw createVegaError(
762
+ ErrorCode.ServiceError,
763
+ 'Amazon Vega storefront lookup returned no country code.',
764
+ );
765
+ }
766
+ return storefront;
767
+ } catch (error) {
768
+ const errorCode =
769
+ error instanceof Error
770
+ ? (error as Error & {code?: unknown}).code
771
+ : undefined;
772
+ if (
773
+ typeof errorCode === 'string' &&
774
+ Object.values(ErrorCode).includes(errorCode as ErrorCode)
775
+ ) {
776
+ throw error;
777
+ }
778
+ throw createVegaError(
779
+ ErrorCode.ServiceError,
780
+ `Failed to get Amazon Vega storefront: ${
781
+ error instanceof Error ? error.message : String(error)
782
+ }`,
783
+ );
784
+ }
703
785
  };
704
786
 
705
787
  const getPurchaseUpdateReceipts = async (): Promise<VegaReceipt[]> => {
@@ -860,10 +942,17 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
860
942
  attempt <= NOTIFY_FULFILLMENT_MAX_ATTEMPTS;
861
943
  attempt += 1
862
944
  ) {
863
- const response = await service.notifyFulfillment({
864
- fulfillmentResult: FULFILLMENT_RESULT_FULFILLED,
865
- receiptId: purchaseToken,
866
- });
945
+ const response = await withTimeout(
946
+ service.notifyFulfillment({
947
+ fulfillmentResult: FULFILLMENT_RESULT_FULFILLED,
948
+ receiptId: purchaseToken,
949
+ }),
950
+ NOTIFY_FULFILLMENT_ATTEMPT_TIMEOUT_MS,
951
+ createVegaError(
952
+ ErrorCode.ServiceTimeout,
953
+ 'Amazon Vega notifyFulfillment timed out.',
954
+ ),
955
+ );
867
956
  if (isSuccess('notify-fulfillment', response?.responseCode)) {
868
957
  return {
869
958
  responseCode: 0,
@@ -872,7 +961,6 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
872
961
  purchaseToken,
873
962
  };
874
963
  }
875
-
876
964
  lastResponse = response;
877
965
  if (attempt < NOTIFY_FULFILLMENT_MAX_ATTEMPTS) {
878
966
  await delay(NOTIFY_FULFILLMENT_RETRY_DELAY_MS);
@@ -909,7 +997,8 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
909
997
  const purchaseTimestamp = toTimestamp(receipt.purchaseDate);
910
998
  if (
911
999
  options?.minPurchaseDateMs != null &&
912
- (purchaseTimestamp === 0 || purchaseTimestamp < options.minPurchaseDateMs)
1000
+ (purchaseTimestamp === 0 ||
1001
+ purchaseTimestamp < options.minPurchaseDateMs)
913
1002
  ) {
914
1003
  continue;
915
1004
  }
@@ -1286,11 +1375,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1286
1375
  if (!response.receipt) return [];
1287
1376
 
1288
1377
  cachedUserData = response.userData ?? cachedUserData;
1289
- const purchase = mapReceipt(
1290
- response.receipt,
1291
- fallbackProductType,
1292
- sku,
1293
- );
1378
+ const purchase = mapReceipt(response.receipt, fallbackProductType, sku);
1294
1379
  emitPurchaseUpdated(purchase);
1295
1380
  return [purchase];
1296
1381
  } catch (error) {
@@ -1298,6 +1383,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1298
1383
  toPurchaseErrorResult(
1299
1384
  error,
1300
1385
  'Failed to complete Amazon Vega purchase',
1386
+ sku,
1301
1387
  ),
1302
1388
  );
1303
1389
  throw error;
@@ -1377,7 +1463,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1377
1463
  async getPromotedProductIOS(): Promise<null> {
1378
1464
  return throwUnsupportedFeature('getPromotedProductIOS');
1379
1465
  },
1380
- async buyPromotedProductIOS(): Promise<void> {
1466
+ async buyPromotedProductIOS(): Promise<boolean> {
1381
1467
  return throwUnsupportedFeature('buyPromotedProductIOS');
1382
1468
  },
1383
1469
  async presentCodeRedemptionSheetIOS(): Promise<boolean> {
@@ -1469,11 +1555,22 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
1469
1555
  async isBillingProgramAvailableAndroid(): Promise<never> {
1470
1556
  return throwUnsupportedFeature('isBillingProgramAvailableAndroid');
1471
1557
  },
1558
+ async getBillingChoiceInfoAndroid(): Promise<never> {
1559
+ return throwUnsupportedFeature('getBillingChoiceInfoAndroid');
1560
+ },
1472
1561
  async createBillingProgramReportingDetailsAndroid(): Promise<never> {
1473
1562
  return throwUnsupportedFeature(
1474
1563
  'createBillingProgramReportingDetailsAndroid',
1475
1564
  );
1476
1565
  },
1566
+ async showBillingProgramInformationDialogAndroid(): Promise<never> {
1567
+ return throwUnsupportedFeature(
1568
+ 'showBillingProgramInformationDialogAndroid',
1569
+ );
1570
+ },
1571
+ async showInAppMessagesAndroid(): Promise<never> {
1572
+ return throwUnsupportedFeature('showInAppMessagesAndroid');
1573
+ },
1477
1574
  async launchExternalLinkAndroid(): Promise<boolean> {
1478
1575
  return throwUnsupportedFeature('launchExternalLinkAndroid');
1479
1576
  },
@@ -1,83 +0,0 @@
1
- ///
2
- /// JNitroSubscriptionRenewalInfo.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #include <fbjni/fbjni.h>
11
- #include "NitroSubscriptionRenewalInfo.hpp"
12
-
13
- #include "JVariant_NullType_Double.hpp"
14
- #include "JVariant_NullType_String.hpp"
15
- #include <NitroModules/JNull.hpp>
16
- #include <NitroModules/Null.hpp>
17
- #include <optional>
18
- #include <string>
19
- #include <variant>
20
-
21
- namespace margelo::nitro::iap {
22
-
23
- using namespace facebook;
24
-
25
- /**
26
- * The C++ JNI bridge between the C++ struct "NitroSubscriptionRenewalInfo" and the the Kotlin data class "NitroSubscriptionRenewalInfo".
27
- */
28
- struct JNitroSubscriptionRenewalInfo final: public jni::JavaClass<JNitroSubscriptionRenewalInfo> {
29
- public:
30
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/NitroSubscriptionRenewalInfo;";
31
-
32
- public:
33
- /**
34
- * Convert this Java/Kotlin-based struct to the C++ struct NitroSubscriptionRenewalInfo by copying all values to C++.
35
- */
36
- [[maybe_unused]]
37
- [[nodiscard]]
38
- NitroSubscriptionRenewalInfo toCpp() const {
39
- static const auto clazz = javaClassStatic();
40
- static const auto fieldAutoRenewStatus = clazz->getField<jboolean>("autoRenewStatus");
41
- jboolean autoRenewStatus = this->getFieldValue(fieldAutoRenewStatus);
42
- static const auto fieldAutoRenewPreference = clazz->getField<JVariant_NullType_String>("autoRenewPreference");
43
- jni::local_ref<JVariant_NullType_String> autoRenewPreference = this->getFieldValue(fieldAutoRenewPreference);
44
- static const auto fieldExpirationReason = clazz->getField<JVariant_NullType_Double>("expirationReason");
45
- jni::local_ref<JVariant_NullType_Double> expirationReason = this->getFieldValue(fieldExpirationReason);
46
- static const auto fieldGracePeriodExpirationDate = clazz->getField<JVariant_NullType_Double>("gracePeriodExpirationDate");
47
- jni::local_ref<JVariant_NullType_Double> gracePeriodExpirationDate = this->getFieldValue(fieldGracePeriodExpirationDate);
48
- static const auto fieldCurrentProductID = clazz->getField<JVariant_NullType_String>("currentProductID");
49
- jni::local_ref<JVariant_NullType_String> currentProductID = this->getFieldValue(fieldCurrentProductID);
50
- static const auto fieldPlatform = clazz->getField<jni::JString>("platform");
51
- jni::local_ref<jni::JString> platform = this->getFieldValue(fieldPlatform);
52
- return NitroSubscriptionRenewalInfo(
53
- static_cast<bool>(autoRenewStatus),
54
- autoRenewPreference != nullptr ? std::make_optional(autoRenewPreference->toCpp()) : std::nullopt,
55
- expirationReason != nullptr ? std::make_optional(expirationReason->toCpp()) : std::nullopt,
56
- gracePeriodExpirationDate != nullptr ? std::make_optional(gracePeriodExpirationDate->toCpp()) : std::nullopt,
57
- currentProductID != nullptr ? std::make_optional(currentProductID->toCpp()) : std::nullopt,
58
- platform->toStdString()
59
- );
60
- }
61
-
62
- public:
63
- /**
64
- * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
65
- */
66
- [[maybe_unused]]
67
- static jni::local_ref<JNitroSubscriptionRenewalInfo::javaobject> fromCpp(const NitroSubscriptionRenewalInfo& value) {
68
- using JSignature = JNitroSubscriptionRenewalInfo(jboolean, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<JVariant_NullType_Double>, jni::alias_ref<JVariant_NullType_Double>, jni::alias_ref<JVariant_NullType_String>, jni::alias_ref<jni::JString>);
69
- static const auto clazz = javaClassStatic();
70
- static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
71
- return create(
72
- clazz,
73
- value.autoRenewStatus,
74
- value.autoRenewPreference.has_value() ? JVariant_NullType_String::fromCpp(value.autoRenewPreference.value()) : nullptr,
75
- value.expirationReason.has_value() ? JVariant_NullType_Double::fromCpp(value.expirationReason.value()) : nullptr,
76
- value.gracePeriodExpirationDate.has_value() ? JVariant_NullType_Double::fromCpp(value.gracePeriodExpirationDate.value()) : nullptr,
77
- value.currentProductID.has_value() ? JVariant_NullType_String::fromCpp(value.currentProductID.value()) : nullptr,
78
- jni::make_jstring(value.platform)
79
- );
80
- }
81
- };
82
-
83
- } // namespace margelo::nitro::iap
@@ -1,26 +0,0 @@
1
- ///
2
- /// JVariant_NullType_NitroSubscriptionRenewalInfo.cpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
6
- ///
7
-
8
- #include "JVariant_NullType_NitroSubscriptionRenewalInfo.hpp"
9
-
10
- namespace margelo::nitro::iap {
11
- /**
12
- * Converts JVariant_NullType_NitroSubscriptionRenewalInfo to std::variant<nitro::NullType, NitroSubscriptionRenewalInfo>
13
- */
14
- std::variant<nitro::NullType, NitroSubscriptionRenewalInfo> JVariant_NullType_NitroSubscriptionRenewalInfo::toCpp() const {
15
- if (isInstanceOf(JVariant_NullType_NitroSubscriptionRenewalInfo_impl::First::javaClassStatic())) {
16
- // It's a `nitro::NullType`
17
- auto jniValue = static_cast<const JVariant_NullType_NitroSubscriptionRenewalInfo_impl::First*>(this)->getValue();
18
- return nitro::null;
19
- } else if (isInstanceOf(JVariant_NullType_NitroSubscriptionRenewalInfo_impl::Second::javaClassStatic())) {
20
- // It's a `NitroSubscriptionRenewalInfo`
21
- auto jniValue = static_cast<const JVariant_NullType_NitroSubscriptionRenewalInfo_impl::Second*>(this)->getValue();
22
- return jniValue->toCpp();
23
- }
24
- throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
- }
26
- } // namespace margelo::nitro::iap