react-native-iap 15.4.0 → 15.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/margelo/nitro/iap/ConnectionLifecycleQueue.kt +113 -0
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +222 -87
- package/android/src/main/java/com/margelo/nitro/iap/RnIapLog.kt +23 -1
- package/ios/HybridRnIap.swift +214 -139
- package/ios/RnIapHelper.swift +150 -26
- package/ios/RnIapLog.swift +24 -1
- package/lib/module/hooks/useIAP.js +1 -1
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +47 -28
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +11 -9
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/error.js +7 -3
- package/lib/module/utils/error.js.map +1 -1
- package/lib/module/utils/errorMapping.js +2 -0
- package/lib/module/utils/errorMapping.js.map +1 -1
- package/lib/module/utils/type-bridge.js +28 -19
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/module/vega-adapter.js +108 -12
- package/lib/module/vega-adapter.js.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +3 -3
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +27 -19
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +65 -26
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/error.d.ts.map +1 -1
- package/lib/typescript/src/utils/errorMapping.d.ts +3 -1
- package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
- package/nitro.json +8 -2
- package/nitrogen/generated/android/NitroIap+autolinking.cmake +1 -1
- package/nitrogen/generated/android/NitroIapOnLoad.cpp +2 -2
- package/nitrogen/generated/android/c++/JAdvancedCommerceInfoIOS.hpp +10 -10
- package/nitrogen/generated/android/c++/JAdvancedCommerceItemDetailsIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JAdvancedCommerceItemIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JAdvancedCommerceRefundIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JAlternativeBillingModeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JAndroidSubscriptionOfferInput.hpp +2 -2
- package/nitrogen/generated/android/c++/JBillingChoiceImageLayoutAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JBillingChoiceScreenTypeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JDeveloperBillingLaunchModeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JDeveloperBillingOptionParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JDeveloperBillingTypeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +10 -10
- package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeResultIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkNoticeTypeIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenResultIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseCustomLinkTokenTypeIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseLinkResultIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseNoticeAction.hpp +2 -2
- package/nitrogen/generated/android/c++/JExternalPurchaseNoticeResultIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +26 -2
- package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +5 -2
- package/nitrogen/generated/android/c++/JFunc_void_UserChoiceBillingDetails.hpp +12 -2
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +51 -54
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +3 -3
- package/nitrogen/generated/android/c++/JIapPlatform.hpp +2 -2
- package/nitrogen/generated/android/c++/JIapStore.hpp +2 -2
- package/nitrogen/generated/android/c++/JIapkitPurchaseState.hpp +2 -2
- package/nitrogen/generated/android/c++/JInAppMessageCategoryAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JInAppMessageResponseCodeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroActiveSubscription.hpp +7 -2
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidType.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroDeepLinkOptionsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroGetBillingChoiceInfoParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroInAppMessageParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroInAppMessageResultAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +10 -10
- package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +53 -5
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +46 -5
- package/nitrogen/generated/android/c++/JNitroReceiptValidationAppleOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroReceiptValidationGoogleOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroReceiptValidationHorizonOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +26 -2
- package/nitrogen/generated/android/c++/JNitroRenewalInfoIOS.hpp +16 -3
- package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +10 -10
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +15 -9
- package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAmazonProps.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitAppleProps.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitGoogleProps.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitProps.hpp +7 -3
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithIapkitResult.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderError.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderProps.hpp +2 -2
- package/nitrogen/generated/android/c++/JNitroVerifyPurchaseWithProviderResult.hpp +2 -2
- package/nitrogen/generated/android/c++/JPaymentModeIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JPendingPurchaseUpdateAndroid.hpp +10 -10
- package/nitrogen/generated/android/c++/JProductType.hpp +2 -2
- package/nitrogen/generated/android/c++/JPromotionalOfferJwsInputIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchase.hpp +3 -3
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseOfferIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseState.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseUpdatedListenerOptions.hpp +2 -2
- package/nitrogen/generated/android/c++/JPurchaseVerificationProvider.hpp +2 -2
- package/nitrogen/generated/android/c++/JRenewalCommitmentInfoIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JRenewalInfoIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JRequestPurchaseResult.cpp +4 -4
- package/nitrogen/generated/android/c++/JRequestPurchaseResult.hpp +9 -9
- package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JSubscriptionBillingPlanTypeIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JSubscriptionProductReplacementParamsAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JSubscriptionReplacementModeAndroid.hpp +2 -2
- package/nitrogen/generated/android/c++/JTransactionCommitmentInfoIOS.hpp +2 -2
- package/nitrogen/generated/android/c++/JUserChoiceBillingDetails.hpp +29 -11
- package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +6 -3
- package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +27 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceInfoIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_AdvancedCommerceItemDetailsIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_AdvancedCommerceRefundIOS_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_AndroidSubscriptionOfferInput_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.cpp +35 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_DeveloperProvidedBillingProductAndroid_.hpp +86 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroOneTimePurchaseOfferDetail_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroSubscriptionStatus_.hpp +16 -10
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_NitroVerifyPurchaseWithProviderError_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.cpp +4 -4
- package/nitrogen/generated/android/c++/JVariant_NullType_Array_String_.hpp +7 -7
- package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesAndroidOptions.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroAvailablePurchasesIosOptions.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountAmountAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroDiscountDisplayInfoAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionAndroidParams.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroFinishTransactionIosParams.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroLimitedQuantityInfoAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroPreorderDetailsAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroProduct.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroPurchase.hpp +27 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationAppleOptions.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationGoogleOptions.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroReceiptValidationHorizonOptions.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroRenewalInfoIOS.hpp +8 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroRentalDetailsAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseIos.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroValidTimeWindowAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitProps.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroVerifyPurchaseWithIapkitResult.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_PendingPurchaseUpdateAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_PromotionalOfferJwsInputIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_PurchaseOfferIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_RenewalCommitmentInfoIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_RenewalInfoIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_SubscriptionProductReplacementParamsAndroid.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_TransactionCommitmentInfoIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_NullType_WinBackOfferInputIOS.hpp +3 -3
- package/nitrogen/generated/android/c++/JWinBackOfferInputIOS.hpp +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceInfoIOS.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemDetailsIOS.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceItemIOS.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AdvancedCommerceRefundIOS.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/AndroidSubscriptionOfferInput.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingOptionParamsAndroid.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkNoticeResultIOS.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseCustomLinkTokenResultIOS.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseLinkResultIOS.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalPurchaseNoticeResultIOS.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroActiveSubscription.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDeepLinkOptionsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +37 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +85 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +128 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +49 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationAppleOptions.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationGoogleOptions.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationHorizonOptions.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRenewalInfoIOS.kt +45 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +33 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +31 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +19 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAmazonProps.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitAppleProps.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitGoogleProps.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitProps.kt +26 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithIapkitResult.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderError.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderProps.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroVerifyPurchaseWithProviderResult.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PendingPurchaseUpdateAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PromotionalOfferJwsInputIOS.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Purchase.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +55 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseIOS.kt +85 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseOfferIOS.kt +17 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseUpdatedListenerOptions.kt +13 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalCommitmentInfoIOS.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RenewalInfoIOS.kt +37 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/RequestPurchaseResult.kt +20 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubscriptionProductReplacementParamsAndroid.kt +15 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/TransactionCommitmentInfoIOS.kt +19 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/UserChoiceBillingDetails.kt +28 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceInfoIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_AdvancedCommerceItemDetailsIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AdvancedCommerceRefundIOS_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_AndroidSubscriptionOfferInput_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_DeveloperProvidedBillingProductAndroid_.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroOneTimePurchaseOfferDetail_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroSubscriptionStatus_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_NitroVerifyPurchaseWithProviderError_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_String_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Boolean.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Double.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_InitConnectionConfig.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Map_String__String_.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesAndroidOptions.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroAvailablePurchasesIosOptions.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountAmountAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroDiscountDisplayInfoAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionAndroidParams.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroFinishTransactionIosParams.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroLimitedQuantityInfoAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPreorderDetailsAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroProduct.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroPurchase.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationAppleOptions.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationGoogleOptions.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroReceiptValidationHorizonOptions.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRenewalInfoIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRentalDetailsAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroRequestPurchaseIos.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroValidTimeWindowAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PendingPurchaseUpdateAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PromotionalOfferJwsInputIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_PurchaseOfferIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalCommitmentInfoIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_RenewalInfoIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_String.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_SubscriptionProductReplacementParamsAndroid.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_TransactionCommitmentInfoIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_WinBackOfferInputIOS.kt +16 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/WinBackOfferInputIOS.kt +13 -0
- package/nitrogen/generated/ios/NitroIap+autolinking.rb +2 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +85 -73
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +0 -3
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +7 -10
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +7 -7
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +204 -2
- package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +90 -1
- package/nitrogen/generated/ios/swift/NitroRenewalInfoIOS.swift +49 -1
- package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +11 -11
- package/nitrogen/generated/ios/swift/NitroVerifyPurchaseWithIapkitProps.swift +38 -1
- package/nitrogen/generated/ios/swift/Purchase.swift +12 -0
- package/nitrogen/generated/ios/swift/RequestPurchaseResult.swift +14 -0
- package/nitrogen/generated/ios/swift/UserChoiceBillingDetails.swift +82 -2
- package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceInfoIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_AdvancedCommerceItemDetailsIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_InitConnectionConfig.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesAndroidOptions.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroAvailablePurchasesIosOptions.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountAmountAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroDiscountDisplayInfoAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionAndroidParams.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroFinishTransactionIosParams.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroLimitedQuantityInfoAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroPreorderDetailsAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroProduct.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroPurchase.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationAppleOptions.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationGoogleOptions.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroReceiptValidationHorizonOptions.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroRenewalInfoIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroRentalDetailsAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroRequestPurchaseIos.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroValidTimeWindowAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAmazonProps.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitAppleProps.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitGoogleProps.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitProps.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroVerifyPurchaseWithIapkitResult.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_PendingPurchaseUpdateAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_PromotionalOfferJwsInputIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_PurchaseOfferIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_RenewalCommitmentInfoIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_RenewalInfoIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_SubscriptionProductReplacementParamsAndroid.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_TransactionCommitmentInfoIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_WinBackOfferInputIOS.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__AdvancedCommerceRefundIOS_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__AndroidSubscriptionOfferInput_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__DeveloperProvidedBillingProductAndroid_.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__NitroOneTimePurchaseOfferDetail_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__NitroSubscriptionStatus_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__NitroVerifyPurchaseWithProviderError_.swift +12 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__String_.swift +12 -0
- package/nitrogen/generated/shared/c++/AdvancedCommerceInfoIOS.hpp +1 -1
- package/nitrogen/generated/shared/c++/AdvancedCommerceItemIOS.hpp +1 -1
- package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +40 -3
- package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +27 -4
- package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroRenewalInfoIOS.hpp +15 -2
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +8 -8
- package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithIapkitProps.hpp +5 -1
- package/nitrogen/generated/shared/c++/NitroVerifyPurchaseWithProviderResult.hpp +1 -1
- package/nitrogen/generated/shared/c++/PendingPurchaseUpdateAndroid.hpp +1 -1
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +1 -1
- package/nitrogen/generated/shared/c++/PurchaseIOS.hpp +1 -1
- package/nitrogen/generated/shared/c++/UserChoiceBillingDetails.hpp +16 -3
- package/openiap-versions.json +3 -3
- package/package.json +8 -5
- package/src/hooks/useIAP.ts +7 -4
- package/src/index.ts +59 -39
- package/src/specs/RnIap.nitro.ts +31 -19
- package/src/types.ts +65 -26
- package/src/utils/error.ts +11 -8
- package/src/utils/errorMapping.ts +9 -1
- package/src/utils/type-bridge.ts +37 -40
- package/src/vega-adapter.ts +191 -26
- package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +0 -83
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.cpp +0 -26
- package/nitrogen/generated/android/c++/JVariant_NullType_NitroSubscriptionRenewalInfo.hpp +0 -75
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +0 -53
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo.kt +0 -53
- package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +0 -182
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroSubscriptionRenewalInfo.swift +0 -18
- package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +0 -106
package/src/index.ts
CHANGED
|
@@ -314,13 +314,23 @@ const purchaseUpdateDuplicateNativeHandler: NitroPurchaseListener = (
|
|
|
314
314
|
const purchaseErrorJsListeners = new Set<(error: PurchaseError) => void>();
|
|
315
315
|
let purchaseErrorNativeAttached = false;
|
|
316
316
|
const purchaseErrorNativeHandler: NitroPurchaseErrorListener = (error) => {
|
|
317
|
+
const normalizedCode =
|
|
318
|
+
error.code === DUPLICATE_PURCHASE_CODE
|
|
319
|
+
? ErrorCode.DuplicatePurchase
|
|
320
|
+
: normalizeErrorCodeFromNative(error.code);
|
|
317
321
|
const normalized: PurchaseError = {
|
|
318
|
-
code:
|
|
319
|
-
error.code === DUPLICATE_PURCHASE_CODE
|
|
320
|
-
? ErrorCode.DuplicatePurchase
|
|
321
|
-
: normalizeErrorCodeFromNative(error.code),
|
|
322
|
+
code: normalizedCode,
|
|
322
323
|
message: error.message,
|
|
323
|
-
|
|
324
|
+
responseCode:
|
|
325
|
+
normalizedCode === ErrorCode.QueryProduct
|
|
326
|
+
? error.responseCode
|
|
327
|
+
: undefined,
|
|
328
|
+
debugMessage: error.debugMessage,
|
|
329
|
+
productId: error.productId,
|
|
330
|
+
productIds: error.productIds,
|
|
331
|
+
productType: error.productType,
|
|
332
|
+
isEmptyProductList: error.isEmptyProductList,
|
|
333
|
+
subResponseCodeAndroid: error.subResponseCodeAndroid,
|
|
324
334
|
};
|
|
325
335
|
for (const listener of purchaseErrorJsListeners) {
|
|
326
336
|
try {
|
|
@@ -712,8 +722,8 @@ export const developerProvidedBillingListenerAndroid = (
|
|
|
712
722
|
/**
|
|
713
723
|
* Listen for subscription billing-issue events (cross-platform).
|
|
714
724
|
*
|
|
715
|
-
* Fires when
|
|
716
|
-
* - iOS
|
|
725
|
+
* Fires when a subscription enters a billing-issue state:
|
|
726
|
+
* - iOS / Mac Catalyst 16.4+ and visionOS 1.0+: via StoreKit 2 `Message.Reason.billingIssue`.
|
|
717
727
|
* - Android (Play Billing 8.1+): when `isSuspendedAndroid === true` is observed.
|
|
718
728
|
* - Horizon / iOS 17 / older platforms: never fires.
|
|
719
729
|
*
|
|
@@ -854,7 +864,8 @@ export const fetchProducts: QueryField<'fetchProducts'> = async (request) => {
|
|
|
854
864
|
|
|
855
865
|
if (normalizedType === 'all') {
|
|
856
866
|
const converted = (await fetchAndConvert('all')) as (
|
|
857
|
-
|
|
867
|
+
| Product
|
|
868
|
+
| ProductSubscription
|
|
858
869
|
)[];
|
|
859
870
|
|
|
860
871
|
RnIapConsole.debug(
|
|
@@ -1108,6 +1119,12 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
|
|
|
1108
1119
|
|
|
1109
1120
|
try {
|
|
1110
1121
|
const storefront = await IAP.instance.getStorefrontIOS();
|
|
1122
|
+
if (typeof storefront !== 'string' || storefront.trim().length === 0) {
|
|
1123
|
+
throw createPurchaseError({
|
|
1124
|
+
code: ErrorCode.ServiceError,
|
|
1125
|
+
message: 'Storefront lookup returned no country code.',
|
|
1126
|
+
});
|
|
1127
|
+
}
|
|
1111
1128
|
return storefront;
|
|
1112
1129
|
} catch (error) {
|
|
1113
1130
|
RnIapConsole.error('Failed to get storefront:', error);
|
|
@@ -1122,35 +1139,50 @@ export const getStorefrontIOS: QueryField<'getStorefrontIOS'> = async () => {
|
|
|
1122
1139
|
*/
|
|
1123
1140
|
export const getStorefront: QueryField<'getStorefront'> = async () => {
|
|
1124
1141
|
if (Platform.OS !== 'ios' && !isAndroidStoreRuntime()) {
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1142
|
+
throw createPurchaseError({
|
|
1143
|
+
code: ErrorCode.FeatureNotSupported,
|
|
1144
|
+
message: `Storefront lookup is not supported on ${Platform.OS}.`,
|
|
1145
|
+
});
|
|
1129
1146
|
}
|
|
1130
1147
|
|
|
1131
1148
|
const hasUnifiedMethod = typeof IAP.instance.getStorefront === 'function';
|
|
1132
1149
|
|
|
1133
|
-
if (!hasUnifiedMethod && Platform.OS
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
'[getStorefront] Native getStorefront is not available on this build.',
|
|
1140
|
-
);
|
|
1141
|
-
return '';
|
|
1150
|
+
if (!hasUnifiedMethod && Platform.OS !== 'ios') {
|
|
1151
|
+
throw createPurchaseError({
|
|
1152
|
+
code: ErrorCode.FeatureNotSupported,
|
|
1153
|
+
message: 'Native getStorefront is not available on this build.',
|
|
1154
|
+
platform: 'android',
|
|
1155
|
+
});
|
|
1142
1156
|
}
|
|
1143
1157
|
|
|
1158
|
+
let storefront: string | null | undefined;
|
|
1144
1159
|
try {
|
|
1145
|
-
|
|
1146
|
-
|
|
1160
|
+
storefront = hasUnifiedMethod
|
|
1161
|
+
? await IAP.instance.getStorefront()
|
|
1162
|
+
: await getStorefrontIOS();
|
|
1147
1163
|
} catch (error) {
|
|
1148
|
-
|
|
1164
|
+
const parsedError = parseErrorAndLogIfNeeded(
|
|
1149
1165
|
`[getStorefront] Failed to get storefront on ${Platform.OS}:`,
|
|
1150
1166
|
error,
|
|
1151
1167
|
);
|
|
1152
|
-
throw
|
|
1168
|
+
throw createPurchaseError({
|
|
1169
|
+
code: parsedError.code,
|
|
1170
|
+
message: parsedError.message,
|
|
1171
|
+
responseCode: parsedError.responseCode,
|
|
1172
|
+
debugMessage: parsedError.debugMessage,
|
|
1173
|
+
platform: Platform.OS === 'ios' ? 'ios' : 'android',
|
|
1174
|
+
});
|
|
1153
1175
|
}
|
|
1176
|
+
|
|
1177
|
+
if (typeof storefront !== 'string' || storefront.trim().length === 0) {
|
|
1178
|
+
throw createPurchaseError({
|
|
1179
|
+
code: ErrorCode.ServiceError,
|
|
1180
|
+
message: 'Storefront lookup returned no country code.',
|
|
1181
|
+
platform: Platform.OS === 'ios' ? 'ios' : 'android',
|
|
1182
|
+
});
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
return storefront;
|
|
1154
1186
|
};
|
|
1155
1187
|
|
|
1156
1188
|
/**
|
|
@@ -1851,7 +1883,7 @@ export const requestPurchase: MutationField<'requestPurchase'> = async (
|
|
|
1851
1883
|
androidRequest.developerBillingOption;
|
|
1852
1884
|
}
|
|
1853
1885
|
|
|
1854
|
-
// One-time purchase offerToken (Android
|
|
1886
|
+
// One-time purchase offerToken (Android 8.0+)
|
|
1855
1887
|
if (!isSubs) {
|
|
1856
1888
|
const purchaseRequest = androidRequest as RequestPurchaseAndroidProps;
|
|
1857
1889
|
if (purchaseRequest.offerToken) {
|
|
@@ -2415,19 +2447,7 @@ export const requestPurchaseOnPromotedProductIOS: MutationField<
|
|
|
2415
2447
|
}
|
|
2416
2448
|
|
|
2417
2449
|
try {
|
|
2418
|
-
await IAP.instance.buyPromotedProductIOS();
|
|
2419
|
-
const pending = await IAP.instance.getPendingTransactionsIOS();
|
|
2420
|
-
const latest = pending.find((purchase) => purchase != null);
|
|
2421
|
-
if (!latest) {
|
|
2422
|
-
throw new Error('No promoted purchase available after request');
|
|
2423
|
-
}
|
|
2424
|
-
|
|
2425
|
-
const converted = convertNitroPurchaseToPurchase(latest);
|
|
2426
|
-
if (converted.platform !== 'ios') {
|
|
2427
|
-
throw new Error('Promoted purchase result not available for iOS');
|
|
2428
|
-
}
|
|
2429
|
-
|
|
2430
|
-
return true;
|
|
2450
|
+
return await IAP.instance.buyPromotedProductIOS();
|
|
2431
2451
|
} catch (error) {
|
|
2432
2452
|
const parsedError = parseErrorAndLogIfNeeded(
|
|
2433
2453
|
'[requestPurchaseOnPromotedProductIOS] Failed:',
|
package/src/specs/RnIap.nitro.ts
CHANGED
|
@@ -25,6 +25,7 @@ import type {HybridObject} from 'react-native-nitro-modules';
|
|
|
25
25
|
// removing the types entirely.
|
|
26
26
|
import type {
|
|
27
27
|
ActiveSubscription,
|
|
28
|
+
AdvancedCommerceInfoIOS,
|
|
28
29
|
AndroidSubscriptionOfferInput,
|
|
29
30
|
DeepLinkOptions,
|
|
30
31
|
InitConnectionConfig,
|
|
@@ -53,8 +54,12 @@ import type {
|
|
|
53
54
|
RequestSubscriptionIosProps,
|
|
54
55
|
UserChoiceBillingDetails,
|
|
55
56
|
PaymentModeIOS,
|
|
57
|
+
PendingPurchaseUpdateAndroid,
|
|
58
|
+
RenewalCommitmentInfoIOS,
|
|
59
|
+
SubscriptionBillingPlanTypeIOS,
|
|
56
60
|
SubscriptionProductReplacementParamsAndroid,
|
|
57
61
|
SubResponseCodeAndroid,
|
|
62
|
+
TransactionCommitmentInfoIOS,
|
|
58
63
|
WinBackOfferInputIOS,
|
|
59
64
|
} from '../types';
|
|
60
65
|
|
|
@@ -236,7 +241,7 @@ export interface NitroRequestPurchaseAndroid {
|
|
|
236
241
|
obfuscatedProfileId?: RequestSubscriptionAndroidProps['obfuscatedProfileId'];
|
|
237
242
|
isOfferPersonalized?: RequestSubscriptionAndroidProps['isOfferPersonalized'];
|
|
238
243
|
/**
|
|
239
|
-
* Offer token for one-time purchase discounts (
|
|
244
|
+
* Offer token for one-time purchase discounts (8.0+).
|
|
240
245
|
* Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers
|
|
241
246
|
* to apply a discount offer to the purchase.
|
|
242
247
|
*/
|
|
@@ -360,25 +365,13 @@ export interface NitroInAppMessageParamsAndroid {
|
|
|
360
365
|
// ║ TYPES ║
|
|
361
366
|
// ╚══════════════════════════════════════════════════════════════════════════╝
|
|
362
367
|
|
|
363
|
-
/**
|
|
364
|
-
* Subscription renewal information (iOS only)
|
|
365
|
-
*/
|
|
366
|
-
export interface NitroSubscriptionRenewalInfo {
|
|
367
|
-
autoRenewStatus: boolean;
|
|
368
|
-
autoRenewPreference?: string | null;
|
|
369
|
-
expirationReason?: number | null;
|
|
370
|
-
gracePeriodExpirationDate?: number | null;
|
|
371
|
-
currentProductID?: string | null;
|
|
372
|
-
platform: string;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
368
|
/**
|
|
376
369
|
* Subscription status information (iOS only)
|
|
377
370
|
*/
|
|
378
371
|
export interface NitroSubscriptionStatus {
|
|
379
372
|
state: number;
|
|
380
373
|
platform: string;
|
|
381
|
-
renewalInfo?:
|
|
374
|
+
renewalInfo?: NitroRenewalInfoIOS | null;
|
|
382
375
|
}
|
|
383
376
|
|
|
384
377
|
/**
|
|
@@ -390,6 +383,11 @@ export interface NitroPurchaseResult {
|
|
|
390
383
|
code: string;
|
|
391
384
|
message: string;
|
|
392
385
|
purchaseToken?: string;
|
|
386
|
+
productId?: string;
|
|
387
|
+
productIds?: string[];
|
|
388
|
+
productType?: string;
|
|
389
|
+
isEmptyProductList?: boolean;
|
|
390
|
+
subResponseCodeAndroid?: SubResponseCodeAndroid;
|
|
393
391
|
}
|
|
394
392
|
|
|
395
393
|
export interface NitroBillingResultAndroid {
|
|
@@ -461,6 +459,12 @@ export interface NitroVerifyPurchaseWithIapkitProps {
|
|
|
461
459
|
apiKey?: string | null;
|
|
462
460
|
amazon?: NitroVerifyPurchaseWithIapkitAmazonProps | null;
|
|
463
461
|
apple?: NitroVerifyPurchaseWithIapkitAppleProps | null;
|
|
462
|
+
/**
|
|
463
|
+
* Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.
|
|
464
|
+
* HTTP(S) origin for a self-hosted or local IAPKit server. The apiKey must
|
|
465
|
+
* come from the same IAPKit/Convex deployment.
|
|
466
|
+
*/
|
|
467
|
+
baseUrl?: string | null;
|
|
464
468
|
google?: NitroVerifyPurchaseWithIapkitGoogleProps | null;
|
|
465
469
|
}
|
|
466
470
|
|
|
@@ -560,7 +564,7 @@ export interface NitroValidTimeWindowAndroid {
|
|
|
560
564
|
|
|
561
565
|
/**
|
|
562
566
|
* Android one-time purchase offer details
|
|
563
|
-
* Available in Google Play Billing Library
|
|
567
|
+
* Available in Google Play Billing Library 8.0+
|
|
564
568
|
*/
|
|
565
569
|
export interface NitroOneTimePurchaseOfferDetail {
|
|
566
570
|
discountDisplayInfo?: NitroDiscountDisplayInfoAndroid | null;
|
|
@@ -583,6 +587,8 @@ export interface NitroPurchase {
|
|
|
583
587
|
productId: PurchaseCommon['productId'];
|
|
584
588
|
transactionDate: PurchaseCommon['transactionDate'];
|
|
585
589
|
purchaseToken?: PurchaseCommon['purchaseToken'];
|
|
590
|
+
currentPlanId?: PurchaseCommon['currentPlanId'];
|
|
591
|
+
ids?: PurchaseCommon['ids'];
|
|
586
592
|
/** @deprecated Use store instead */
|
|
587
593
|
platform: IapPlatform;
|
|
588
594
|
/** Store where purchase was made */
|
|
@@ -591,6 +597,9 @@ export interface NitroPurchase {
|
|
|
591
597
|
purchaseState: PurchaseCommon['purchaseState'];
|
|
592
598
|
isAutoRenewing: PurchaseCommon['isAutoRenewing'];
|
|
593
599
|
// iOS specific fields
|
|
600
|
+
advancedCommerceInfoIOS?: AdvancedCommerceInfoIOS | null;
|
|
601
|
+
billingPlanTypeIOS?: SubscriptionBillingPlanTypeIOS | null;
|
|
602
|
+
commitmentInfoIOS?: TransactionCommitmentInfoIOS | null;
|
|
594
603
|
quantityIOS?: number | null;
|
|
595
604
|
originalTransactionDateIOS?: number | null;
|
|
596
605
|
originalTransactionIdentifierIOS?: string | null;
|
|
@@ -625,6 +634,7 @@ export interface NitroPurchase {
|
|
|
625
634
|
obfuscatedProfileIdAndroid?: string | null;
|
|
626
635
|
developerPayloadAndroid?: string | null;
|
|
627
636
|
isSuspendedAndroid?: boolean | null;
|
|
637
|
+
pendingPurchaseUpdateAndroid?: PendingPurchaseUpdateAndroid | null;
|
|
628
638
|
}
|
|
629
639
|
|
|
630
640
|
/**
|
|
@@ -656,12 +666,14 @@ export interface NitroActiveSubscription {
|
|
|
656
666
|
export interface NitroRenewalInfoIOS {
|
|
657
667
|
willAutoRenew: boolean;
|
|
658
668
|
autoRenewPreference?: string | null;
|
|
669
|
+
commitmentInfo?: RenewalCommitmentInfoIOS | null;
|
|
659
670
|
pendingUpgradeProductId?: string | null;
|
|
660
671
|
renewalDate?: number | null;
|
|
661
672
|
expirationReason?: string | null;
|
|
662
673
|
isInBillingRetry?: boolean | null;
|
|
663
674
|
gracePeriodExpirationDate?: number | null;
|
|
664
675
|
priceIncreaseStatus?: string | null;
|
|
676
|
+
renewalBillingPlanType?: SubscriptionBillingPlanTypeIOS | null;
|
|
665
677
|
renewalOfferType?: string | null;
|
|
666
678
|
renewalOfferId?: string | null;
|
|
667
679
|
jsonRepresentation?: string | null;
|
|
@@ -880,10 +892,10 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
|
|
|
880
892
|
|
|
881
893
|
/**
|
|
882
894
|
* Buy the promoted product from the App Store (iOS only)
|
|
883
|
-
* @returns Promise<
|
|
895
|
+
* @returns Promise<boolean> - Whether a promoted product was available and the request was initiated
|
|
884
896
|
* @platform iOS
|
|
885
897
|
*/
|
|
886
|
-
buyPromotedProductIOS(): Promise<
|
|
898
|
+
buyPromotedProductIOS(): Promise<boolean>;
|
|
887
899
|
|
|
888
900
|
/**
|
|
889
901
|
* Present the code redemption sheet for offer codes (iOS only)
|
|
@@ -940,7 +952,7 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
|
|
|
940
952
|
|
|
941
953
|
/**
|
|
942
954
|
* Get the full StoreKit 2 transaction history as PurchaseIOS values.
|
|
943
|
-
* Requires
|
|
955
|
+
* Requires SKIncludeConsumableInAppPurchaseHistory Info.plist key for finished consumables (iOS 18+).
|
|
944
956
|
* @returns Promise<NitroPurchase[]> - Array of all transactions
|
|
945
957
|
* @platform iOS
|
|
946
958
|
*/
|
|
@@ -1188,7 +1200,7 @@ export interface RnIap extends HybridObject<{ios: 'swift'; android: 'kotlin'}> {
|
|
|
1188
1200
|
*
|
|
1189
1201
|
* Fires when a user's active subscription enters a state that needs attention
|
|
1190
1202
|
* (payment method failed, card expired, etc.). Unifies:
|
|
1191
|
-
* - StoreKit 2 `Message.Reason.billingIssue` (iOS
|
|
1203
|
+
* - StoreKit 2 `Message.Reason.billingIssue` (iOS / Mac Catalyst 16.4+, visionOS 1.0+)
|
|
1192
1204
|
* - Google Play Billing `Purchase.isSuspended` (Play Billing 8.1+)
|
|
1193
1205
|
*
|
|
1194
1206
|
* NOT fired on Meta Horizon (Billing 7.0 compat SDK lacks the suspended signal).
|
package/src/types.ts
CHANGED
|
@@ -143,7 +143,8 @@ export type BillingChoiceScreenTypeAndroid = 'unspecified' | 'developer-rendered
|
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
145
|
* Billing program types for Google Play Billing Programs (Android)
|
|
146
|
-
* Available in Google Play Billing Library 8.2.0
|
|
146
|
+
* Available in Google Play Billing Library 8.2.0 (External Offer and External Content Link
|
|
147
|
+
* integrations require 8.2.1+), EXTERNAL_PAYMENTS added in 8.3.0,
|
|
147
148
|
* BILLING_CHOICE added in OpenIAP Spec 2.1.0 / openiap-google 2.3.0
|
|
148
149
|
* (requires Play Billing 9.1.0+).
|
|
149
150
|
*/
|
|
@@ -192,7 +193,8 @@ export interface BillingProgramReportingDetailsAndroid {
|
|
|
192
193
|
billingProgram: BillingProgramAndroid;
|
|
193
194
|
/**
|
|
194
195
|
* External transaction token used to report transactions made outside of Google Play Billing.
|
|
195
|
-
*
|
|
196
|
+
* Do not cache it for a later redirect session. For External Offer, the same token may report
|
|
197
|
+
* multiple purchases made during the session that generated it.
|
|
196
198
|
*/
|
|
197
199
|
externalTransactionToken: string;
|
|
198
200
|
}
|
|
@@ -297,7 +299,7 @@ export interface DeveloperProvidedBillingProductAndroid {
|
|
|
297
299
|
|
|
298
300
|
/**
|
|
299
301
|
* Discount amount details for one-time purchase offers (Android)
|
|
300
|
-
* Available in Google Play Billing Library
|
|
302
|
+
* Available in Google Play Billing Library 8.0+
|
|
301
303
|
*/
|
|
302
304
|
export interface DiscountAmountAndroid {
|
|
303
305
|
/** Discount amount in micro-units (1,000,000 = 1 unit of currency) */
|
|
@@ -308,7 +310,7 @@ export interface DiscountAmountAndroid {
|
|
|
308
310
|
|
|
309
311
|
/**
|
|
310
312
|
* Discount display information for one-time purchase offers (Android)
|
|
311
|
-
* Available in Google Play Billing Library
|
|
313
|
+
* Available in Google Play Billing Library 8.0+
|
|
312
314
|
*/
|
|
313
315
|
export interface DiscountDisplayInfoAndroid {
|
|
314
316
|
/**
|
|
@@ -343,7 +345,7 @@ export interface DiscountIOS {
|
|
|
343
345
|
* Standardized one-time product discount offer.
|
|
344
346
|
* Provides a unified interface for one-time purchase discounts across platforms.
|
|
345
347
|
*
|
|
346
|
-
* Currently supported on Android (Google Play Billing
|
|
348
|
+
* Currently supported on Android (Google Play Billing 8.0+).
|
|
347
349
|
* iOS does not support one-time purchase discounts in the same way.
|
|
348
350
|
*
|
|
349
351
|
* @see https://openiap.dev/docs/features/discount
|
|
@@ -399,7 +401,7 @@ export interface DiscountOffer {
|
|
|
399
401
|
/**
|
|
400
402
|
* [Android] Purchase option ID for this offer.
|
|
401
403
|
* Used to identify which purchase option the user selected.
|
|
402
|
-
* Available in Google Play Billing Library
|
|
404
|
+
* Available in Google Play Billing Library 8.0+
|
|
403
405
|
*/
|
|
404
406
|
purchaseOptionIdAndroid?: (string | null);
|
|
405
407
|
/** [Android] Rental details if this is a rental offer. */
|
|
@@ -501,7 +503,8 @@ export enum ErrorCode {
|
|
|
501
503
|
/**
|
|
502
504
|
* Launch mode for external link flow (Android)
|
|
503
505
|
* Determines how the external URL is launched
|
|
504
|
-
*
|
|
506
|
+
* Introduced in Google Play Billing Library 8.2.0. External Offer and External Content Link
|
|
507
|
+
* integrations require 8.2.1+ and fresh details immediately before every redirect session.
|
|
505
508
|
*/
|
|
506
509
|
export type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';
|
|
507
510
|
|
|
@@ -676,8 +679,8 @@ export interface InitConnectionConfig {
|
|
|
676
679
|
* Enable a specific billing program for Android (7.0+)
|
|
677
680
|
* When set, enables the specified billing program for external transactions.
|
|
678
681
|
* - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)
|
|
679
|
-
* - EXTERNAL_CONTENT_LINK: Link to external content (8.2.0+)
|
|
680
|
-
* - EXTERNAL_OFFER: External offers for digital content (8.2.0+)
|
|
682
|
+
* - EXTERNAL_CONTENT_LINK: Link to external content (introduced in 8.2.0; use 8.2.1+)
|
|
683
|
+
* - EXTERNAL_OFFER: External offers for digital content (introduced in 8.2.0; use 8.2.1+)
|
|
681
684
|
* - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)
|
|
682
685
|
* - BILLING_CHOICE: Google-rendered or developer-rendered billing choice
|
|
683
686
|
* (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+)
|
|
@@ -731,7 +734,7 @@ export interface LaunchExternalLinkParamsAndroid {
|
|
|
731
734
|
|
|
732
735
|
/**
|
|
733
736
|
* Limited quantity information for one-time purchase offers (Android)
|
|
734
|
-
* Available in Google Play Billing Library
|
|
737
|
+
* Available in Google Play Billing Library 8.0+
|
|
735
738
|
*/
|
|
736
739
|
export interface LimitedQuantityInfoAndroid {
|
|
737
740
|
/** Maximum quantity a user can purchase */
|
|
@@ -778,7 +781,11 @@ export interface Mutation {
|
|
|
778
781
|
*/
|
|
779
782
|
createAlternativeBillingTokenAndroid?: Promise<(string | null)>;
|
|
780
783
|
/**
|
|
781
|
-
* Create the reporting
|
|
784
|
+
* Create the reporting details and external transaction token required by a billing program.
|
|
785
|
+
* Introduced in Play Billing 8.2.0. External Offer and External Content Link integrations
|
|
786
|
+
* must use 8.2.1+ and create fresh details immediately before every redirect session;
|
|
787
|
+
* do not cache the token for a later redirect. The same token may report multiple purchases
|
|
788
|
+
* made during one External Offer session.
|
|
782
789
|
* Replaces the deprecated createExternalOfferReportingDetailsAsync API.
|
|
783
790
|
* Returns external transaction token needed for reporting external transactions.
|
|
784
791
|
* developerBillingType is optional. When program is BILLING_CHOICE and developerBillingType is omitted,
|
|
@@ -812,14 +819,16 @@ export interface Mutation {
|
|
|
812
819
|
/**
|
|
813
820
|
* Check whether a billing program (e.g., External Payments) is available for the current user.
|
|
814
821
|
* Replaces the deprecated isExternalOfferAvailableAsync API.
|
|
815
|
-
*
|
|
822
|
+
* Introduced in Google Play Billing Library 8.2.0. External Offer and External
|
|
823
|
+
* Content Link integrations must use 8.2.1+ because 8.2.1 fixes this API.
|
|
816
824
|
* Returns availability result with isAvailable flag.
|
|
817
825
|
* Throws OpenIapError.NotPrepared if billing client not ready.
|
|
818
826
|
* See: https://openiap.dev/docs/apis/android/is-billing-program-available-android
|
|
819
827
|
*/
|
|
820
828
|
isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;
|
|
821
829
|
/**
|
|
822
|
-
* Launch an external content/offer link from inside the Billing Programs flow (
|
|
830
|
+
* Launch an external content/offer link from inside the Billing Programs flow (introduced in
|
|
831
|
+
* Play Billing 8.2.0; External Offer and External Content Link require 8.2.1+),
|
|
823
832
|
* including developer-rendered Billing Choice external-link flows.
|
|
824
833
|
* Billing Choice availability: OpenIAP Spec 2.1.0 / openiap-google 2.3.0
|
|
825
834
|
* (requires Play Billing 9.1.0+).
|
|
@@ -1067,7 +1076,7 @@ export interface ProductAndroid extends ProductCommon {
|
|
|
1067
1076
|
nameAndroid: string;
|
|
1068
1077
|
/**
|
|
1069
1078
|
* One-time purchase offer details including discounts (Android)
|
|
1070
|
-
* Returns all eligible offers. Available in Google Play Billing Library
|
|
1079
|
+
* Returns all eligible offers. Available in Google Play Billing Library 8.0+
|
|
1071
1080
|
* @deprecated Use discountOffers instead for cross-platform compatibility.
|
|
1072
1081
|
* @deprecated Use discountOffers instead
|
|
1073
1082
|
*/
|
|
@@ -1099,7 +1108,7 @@ export interface ProductAndroid extends ProductCommon {
|
|
|
1099
1108
|
|
|
1100
1109
|
/**
|
|
1101
1110
|
* One-time purchase offer details (Android).
|
|
1102
|
-
* Available in Google Play Billing Library
|
|
1111
|
+
* Available in Google Play Billing Library 8.0+
|
|
1103
1112
|
* @deprecated Use the standardized DiscountOffer type instead for cross-platform compatibility.
|
|
1104
1113
|
* @see https://openiap.dev/docs/types#discount-offer
|
|
1105
1114
|
*/
|
|
@@ -1133,7 +1142,7 @@ export interface ProductAndroidOneTimePurchaseOfferDetail {
|
|
|
1133
1142
|
/**
|
|
1134
1143
|
* Purchase option ID for this offer (Android)
|
|
1135
1144
|
* Used to identify which purchase option the user selected.
|
|
1136
|
-
* Available in Google Play Billing Library
|
|
1145
|
+
* Available in Google Play Billing Library 8.0+
|
|
1137
1146
|
*/
|
|
1138
1147
|
purchaseOptionId?: (string | null);
|
|
1139
1148
|
/** Rental details for rental offers */
|
|
@@ -1224,7 +1233,7 @@ export interface ProductSubscriptionAndroid extends ProductCommon {
|
|
|
1224
1233
|
nameAndroid: string;
|
|
1225
1234
|
/**
|
|
1226
1235
|
* One-time purchase offer details including discounts (Android)
|
|
1227
|
-
* Returns all eligible offers. Available in Google Play Billing Library
|
|
1236
|
+
* Returns all eligible offers. Available in Google Play Billing Library 8.0+
|
|
1228
1237
|
* @deprecated Use discountOffers instead for cross-platform compatibility.
|
|
1229
1238
|
* @deprecated Use discountOffers instead
|
|
1230
1239
|
*/
|
|
@@ -1417,6 +1426,7 @@ export interface PurchaseError {
|
|
|
1417
1426
|
productIds?: (string[] | null);
|
|
1418
1427
|
productType?: (string | null);
|
|
1419
1428
|
responseCode?: (number | null);
|
|
1429
|
+
subResponseCodeAndroid?: (SubResponseCodeAndroid | null);
|
|
1420
1430
|
}
|
|
1421
1431
|
|
|
1422
1432
|
export interface PurchaseIOS extends PurchaseCommon {
|
|
@@ -1528,7 +1538,7 @@ export interface Query {
|
|
|
1528
1538
|
getActiveSubscriptions: Promise<ActiveSubscription[]>;
|
|
1529
1539
|
/**
|
|
1530
1540
|
* List every StoreKit transaction (finished + unfinished) for the current user.
|
|
1531
|
-
* Requires the
|
|
1541
|
+
* Requires the SKIncludeConsumableInAppPurchaseHistory Info.plist key in the host app
|
|
1532
1542
|
* for finished consumables to be included (iOS 18+).
|
|
1533
1543
|
* Unlike getAvailablePurchases, always returns the iOS-specific PurchaseIOS shape.
|
|
1534
1544
|
* See: https://openiap.dev/docs/apis/ios/get-all-transactions-ios
|
|
@@ -1574,12 +1584,15 @@ export interface Query {
|
|
|
1574
1584
|
*/
|
|
1575
1585
|
getReceiptDataIOS?: Promise<(string | null)>;
|
|
1576
1586
|
/**
|
|
1577
|
-
* Return the
|
|
1587
|
+
* Return the store-authoritative country code: ISO 3166-1 alpha-3 on Apple
|
|
1588
|
+
* platforms and alpha-2 on Android. The operation fails when the store cannot
|
|
1589
|
+
* provide a value; implementations must not synthesize a locale fallback.
|
|
1578
1590
|
* See: https://openiap.dev/docs/apis/get-storefront
|
|
1579
1591
|
*/
|
|
1580
1592
|
getStorefront: Promise<string>;
|
|
1581
1593
|
/**
|
|
1582
|
-
* Deprecated. Get the current App Store storefront
|
|
1594
|
+
* Deprecated. Get the current App Store storefront ISO 3166-1 alpha-3 country
|
|
1595
|
+
* code — use cross-platform getStorefront instead.
|
|
1583
1596
|
* See: https://openiap.dev/docs/apis/ios/get-storefront-ios
|
|
1584
1597
|
* @deprecated Use getStorefront
|
|
1585
1598
|
*/
|
|
@@ -1693,7 +1706,7 @@ export interface RenewalInfoIOS {
|
|
|
1693
1706
|
gracePeriodExpirationDate?: (number | null);
|
|
1694
1707
|
/**
|
|
1695
1708
|
* True if subscription failed to renew due to billing issue and is retrying
|
|
1696
|
-
*
|
|
1709
|
+
* StoreKit exposes this directly as RenewalInfo.isInBillingRetry.
|
|
1697
1710
|
*/
|
|
1698
1711
|
isInBillingRetry?: (boolean | null);
|
|
1699
1712
|
jsonRepresentation?: (string | null);
|
|
@@ -1726,7 +1739,7 @@ export interface RenewalInfoIOS {
|
|
|
1726
1739
|
|
|
1727
1740
|
/**
|
|
1728
1741
|
* Rental details for one-time purchase products that can be rented (Android)
|
|
1729
|
-
* Available in Google Play Billing Library
|
|
1742
|
+
* Available in Google Play Billing Library 8.0+
|
|
1730
1743
|
*/
|
|
1731
1744
|
export interface RentalDetailsAndroid {
|
|
1732
1745
|
/**
|
|
@@ -1755,7 +1768,7 @@ export interface RequestPurchaseAndroidProps {
|
|
|
1755
1768
|
/** Obfuscated profile ID */
|
|
1756
1769
|
obfuscatedProfileId?: (string | null);
|
|
1757
1770
|
/**
|
|
1758
|
-
* Offer token for one-time purchase discounts (
|
|
1771
|
+
* Offer token for one-time purchase discounts (8.0+).
|
|
1759
1772
|
* Pass the offerToken from oneTimePurchaseOfferDetailsAndroid or discountOffers
|
|
1760
1773
|
* to apply a discount offer to the purchase.
|
|
1761
1774
|
*/
|
|
@@ -1861,6 +1874,9 @@ export interface RequestSubscriptionAndroidProps {
|
|
|
1861
1874
|
/**
|
|
1862
1875
|
* Product-level replacement parameters (8.1.0+)
|
|
1863
1876
|
* Use this instead of replacementMode for item-level replacement
|
|
1877
|
+
* This singular form requires skus to contain exactly one target product.
|
|
1878
|
+
* Multi-item subscription changes need a per-target replacement mapping and
|
|
1879
|
+
* are rejected rather than applying one oldProductId to multiple products.
|
|
1864
1880
|
*/
|
|
1865
1881
|
subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);
|
|
1866
1882
|
}
|
|
@@ -1962,6 +1978,13 @@ export interface RequestVerifyPurchaseWithIapkitProps {
|
|
|
1962
1978
|
apiKey?: (string | null);
|
|
1963
1979
|
/** Apple App Store verification parameters. */
|
|
1964
1980
|
apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);
|
|
1981
|
+
/**
|
|
1982
|
+
* Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.
|
|
1983
|
+
* Base URL for the IAPKit server. Defaults to https://kit.openiap.dev.
|
|
1984
|
+
* Set this to a reachable HTTP(S) origin when self-hosting or testing a local IAPKit server.
|
|
1985
|
+
* The apiKey must be issued by the same IAPKit/Convex deployment as this server.
|
|
1986
|
+
*/
|
|
1987
|
+
baseUrl?: (string | null);
|
|
1965
1988
|
/** Google Play Store verification parameters. */
|
|
1966
1989
|
google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);
|
|
1967
1990
|
}
|
|
@@ -2001,14 +2024,17 @@ export interface Subscription {
|
|
|
2001
2024
|
*/
|
|
2002
2025
|
purchaseUpdated: Purchase;
|
|
2003
2026
|
/**
|
|
2004
|
-
* Fires when
|
|
2027
|
+
* Fires when a subscription enters a billing-issue state that needs user action
|
|
2005
2028
|
* (payment method failed, card expired, etc.). Cross-platform unification:
|
|
2006
2029
|
*
|
|
2007
|
-
* - iOS
|
|
2030
|
+
* - iOS 16.4+ / Mac Catalyst 16.4+ / visionOS 1.0+: delivered via StoreKit 2
|
|
2031
|
+
* `Message.Reason.billingIssue`.
|
|
2008
2032
|
* - Android (Play flavor, Billing 8.1+): emitted when `isSuspended == true` is first detected
|
|
2009
2033
|
* on a previously healthy subscription. Requires Google Play Billing Library 8.1.0 or newer.
|
|
2010
2034
|
* - Android (Horizon flavor): NOT emitted. The Horizon Billing Compatibility SDK implements
|
|
2011
2035
|
* the Play Billing 7.0 API surface which does not expose a suspended-subscription signal.
|
|
2036
|
+
* - Android (Amazon flavor): NOT emitted. Amazon Appstore IAP does not expose an
|
|
2037
|
+
* equivalent subscription billing-issue signal.
|
|
2012
2038
|
*
|
|
2013
2039
|
* Listeners should not assume the event will fire on every store. Direct users to the
|
|
2014
2040
|
* platform subscription management UI (`deepLinkToSubscriptions`) to resolve the issue.
|
|
@@ -2206,13 +2232,26 @@ export interface TransactionCommitmentInfoIOS {
|
|
|
2206
2232
|
export interface UserChoiceBillingDetails {
|
|
2207
2233
|
/** Token that must be reported to Google Play within 24 hours */
|
|
2208
2234
|
externalTransactionToken: string;
|
|
2235
|
+
/**
|
|
2236
|
+
* External transaction ID of the originating subscription when the user is
|
|
2237
|
+
* upgrading or downgrading a developer-billed subscription. Available in
|
|
2238
|
+
* OpenIAP Spec 2.3.0 / openiap-google 2.3.1 (requires Play Billing 9.1+).
|
|
2239
|
+
*/
|
|
2240
|
+
originalExternalTransactionId?: (string | null);
|
|
2241
|
+
/**
|
|
2242
|
+
* Structured product details selected in the user-choice flow, including the
|
|
2243
|
+
* product type and offer token. Legacy payloads may omit this field; use
|
|
2244
|
+
* products as the product-ID fallback. Available in OpenIAP Spec 2.3.0 /
|
|
2245
|
+
* openiap-google 2.3.1 (requires Play Billing 9.1+).
|
|
2246
|
+
*/
|
|
2247
|
+
productDetailsAndroid?: (DeveloperProvidedBillingProductAndroid[] | null);
|
|
2209
2248
|
/** List of product IDs selected by the user */
|
|
2210
2249
|
products: string[];
|
|
2211
2250
|
}
|
|
2212
2251
|
|
|
2213
2252
|
/**
|
|
2214
2253
|
* Valid time window for when an offer is available (Android)
|
|
2215
|
-
* Available in Google Play Billing Library
|
|
2254
|
+
* Available in Google Play Billing Library 8.0+
|
|
2216
2255
|
*/
|
|
2217
2256
|
export interface ValidTimeWindowAndroid {
|
|
2218
2257
|
/** End time in milliseconds since epoch */
|
package/src/utils/error.ts
CHANGED
|
@@ -110,11 +110,11 @@ const parseNSErrorJsonPayload = (rawString: string): IapError | null => {
|
|
|
110
110
|
return null;
|
|
111
111
|
};
|
|
112
112
|
|
|
113
|
-
const parseStructuredError = (error:
|
|
114
|
-
const errorWithCode = error as
|
|
115
|
-
|
|
116
|
-
|
|
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
|
|
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
|
-
//
|
|
147
|
-
if (errorString
|
|
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
|
|