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
|
@@ -4,7 +4,11 @@
|
|
|
4
4
|
* and constructing structured purchase errors.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
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
|
};
|
package/src/utils/type-bridge.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import type {
|
|
9
9
|
NitroProduct,
|
|
10
10
|
NitroPurchase,
|
|
11
|
+
NitroRenewalInfoIOS,
|
|
11
12
|
NitroSubscriptionStatus,
|
|
12
13
|
} from '../specs/RnIap.nitro';
|
|
13
14
|
import type {
|
|
@@ -25,6 +26,7 @@ import type {
|
|
|
25
26
|
Purchase,
|
|
26
27
|
PurchaseAndroid,
|
|
27
28
|
PurchaseIOS,
|
|
29
|
+
RenewalInfoIOS,
|
|
28
30
|
SubscriptionStatusIOS,
|
|
29
31
|
} from '../types';
|
|
30
32
|
import {RnIapConsole} from './debug';
|
|
@@ -191,6 +193,30 @@ function toNullableBoolean(value: unknown): boolean | null {
|
|
|
191
193
|
return null;
|
|
192
194
|
}
|
|
193
195
|
|
|
196
|
+
function convertNitroRenewalInfoToRenewalInfoIOS(
|
|
197
|
+
renewalInfo: NitroRenewalInfoIOS,
|
|
198
|
+
): RenewalInfoIOS {
|
|
199
|
+
return {
|
|
200
|
+
autoRenewPreference: toNullableString(renewalInfo.autoRenewPreference),
|
|
201
|
+
commitmentInfo: renewalInfo.commitmentInfo ?? null,
|
|
202
|
+
expirationReason: toNullableString(renewalInfo.expirationReason),
|
|
203
|
+
gracePeriodExpirationDate: toNullableNumber(
|
|
204
|
+
renewalInfo.gracePeriodExpirationDate,
|
|
205
|
+
),
|
|
206
|
+
isInBillingRetry: toNullableBoolean(renewalInfo.isInBillingRetry),
|
|
207
|
+
jsonRepresentation: toNullableString(renewalInfo.jsonRepresentation),
|
|
208
|
+
pendingUpgradeProductId: toNullableString(
|
|
209
|
+
renewalInfo.pendingUpgradeProductId,
|
|
210
|
+
),
|
|
211
|
+
priceIncreaseStatus: toNullableString(renewalInfo.priceIncreaseStatus),
|
|
212
|
+
renewalBillingPlanType: renewalInfo.renewalBillingPlanType ?? null,
|
|
213
|
+
renewalDate: toNullableNumber(renewalInfo.renewalDate),
|
|
214
|
+
renewalOfferId: toNullableString(renewalInfo.renewalOfferId),
|
|
215
|
+
renewalOfferType: toNullableString(renewalInfo.renewalOfferType),
|
|
216
|
+
willAutoRenew: renewalInfo.willAutoRenew ?? false,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
|
|
194
220
|
function parseSubscriptionOffers(value?: Nullable<string> | any[]) {
|
|
195
221
|
if (!value) return undefined;
|
|
196
222
|
|
|
@@ -442,8 +468,13 @@ export function convertNitroPurchaseToPurchase(
|
|
|
442
468
|
quantity: nitroPurchase.quantity ?? 1,
|
|
443
469
|
purchaseState,
|
|
444
470
|
isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
|
|
471
|
+
currentPlanId: toNullableString(nitroPurchase.currentPlanId),
|
|
472
|
+
ids: nitroPurchase.ids ?? null,
|
|
445
473
|
// PurchaseIOS requires both id and transactionId (they are the same value)
|
|
446
474
|
transactionId: nitroPurchase.id,
|
|
475
|
+
advancedCommerceInfoIOS: nitroPurchase.advancedCommerceInfoIOS ?? null,
|
|
476
|
+
billingPlanTypeIOS: nitroPurchase.billingPlanTypeIOS ?? null,
|
|
477
|
+
commitmentInfoIOS: nitroPurchase.commitmentInfoIOS ?? null,
|
|
447
478
|
quantityIOS: toNullableNumber(nitroPurchase.quantityIOS),
|
|
448
479
|
originalTransactionDateIOS: toNullableNumber(
|
|
449
480
|
nitroPurchase.originalTransactionDateIOS,
|
|
@@ -488,39 +519,7 @@ export function convertNitroPurchaseToPurchase(
|
|
|
488
519
|
nitroPurchase.webOrderLineItemIdIOS,
|
|
489
520
|
),
|
|
490
521
|
renewalInfoIOS: nitroPurchase.renewalInfoIOS
|
|
491
|
-
?
|
|
492
|
-
autoRenewPreference: toNullableString(
|
|
493
|
-
nitroPurchase.renewalInfoIOS.autoRenewPreference,
|
|
494
|
-
),
|
|
495
|
-
expirationReason: toNullableString(
|
|
496
|
-
nitroPurchase.renewalInfoIOS.expirationReason,
|
|
497
|
-
),
|
|
498
|
-
gracePeriodExpirationDate: toNullableNumber(
|
|
499
|
-
nitroPurchase.renewalInfoIOS.gracePeriodExpirationDate,
|
|
500
|
-
),
|
|
501
|
-
isInBillingRetry: toNullableBoolean(
|
|
502
|
-
nitroPurchase.renewalInfoIOS.isInBillingRetry,
|
|
503
|
-
),
|
|
504
|
-
jsonRepresentation: toNullableString(
|
|
505
|
-
nitroPurchase.renewalInfoIOS.jsonRepresentation,
|
|
506
|
-
),
|
|
507
|
-
pendingUpgradeProductId: toNullableString(
|
|
508
|
-
nitroPurchase.renewalInfoIOS.pendingUpgradeProductId,
|
|
509
|
-
),
|
|
510
|
-
priceIncreaseStatus: toNullableString(
|
|
511
|
-
nitroPurchase.renewalInfoIOS.priceIncreaseStatus,
|
|
512
|
-
),
|
|
513
|
-
renewalDate: toNullableNumber(
|
|
514
|
-
nitroPurchase.renewalInfoIOS.renewalDate,
|
|
515
|
-
),
|
|
516
|
-
renewalOfferId: toNullableString(
|
|
517
|
-
nitroPurchase.renewalInfoIOS.renewalOfferId,
|
|
518
|
-
),
|
|
519
|
-
renewalOfferType: toNullableString(
|
|
520
|
-
nitroPurchase.renewalInfoIOS.renewalOfferType,
|
|
521
|
-
),
|
|
522
|
-
willAutoRenew: nitroPurchase.renewalInfoIOS.willAutoRenew ?? false,
|
|
523
|
-
}
|
|
522
|
+
? convertNitroRenewalInfoToRenewalInfoIOS(nitroPurchase.renewalInfoIOS)
|
|
524
523
|
: null,
|
|
525
524
|
};
|
|
526
525
|
return iosPurchase;
|
|
@@ -537,6 +536,8 @@ export function convertNitroPurchaseToPurchase(
|
|
|
537
536
|
quantity: nitroPurchase.quantity ?? 1,
|
|
538
537
|
purchaseState,
|
|
539
538
|
isAutoRenewing: Boolean(nitroPurchase.isAutoRenewing),
|
|
539
|
+
currentPlanId: toNullableString(nitroPurchase.currentPlanId),
|
|
540
|
+
ids: nitroPurchase.ids ?? null,
|
|
540
541
|
// PurchaseAndroid has optional transactionId (may differ from id/orderId)
|
|
541
542
|
transactionId: toNullableString(nitroPurchase.id),
|
|
542
543
|
autoRenewingAndroid: toNullableBoolean(
|
|
@@ -558,6 +559,8 @@ export function convertNitroPurchaseToPurchase(
|
|
|
558
559
|
nitroPurchase.developerPayloadAndroid,
|
|
559
560
|
),
|
|
560
561
|
isSuspendedAndroid: toNullableBoolean(nitroPurchase.isSuspendedAndroid),
|
|
562
|
+
pendingPurchaseUpdateAndroid:
|
|
563
|
+
nitroPurchase.pendingPurchaseUpdateAndroid ?? null,
|
|
561
564
|
};
|
|
562
565
|
|
|
563
566
|
return androidPurchase;
|
|
@@ -572,13 +575,7 @@ export function convertNitroSubscriptionStatusToSubscriptionStatusIOS(
|
|
|
572
575
|
return {
|
|
573
576
|
state: String(nitro.state ?? ''),
|
|
574
577
|
renewalInfo: nitro.renewalInfo
|
|
575
|
-
?
|
|
576
|
-
autoRenewPreference: toNullableString(
|
|
577
|
-
nitro.renewalInfo.autoRenewPreference,
|
|
578
|
-
),
|
|
579
|
-
jsonRepresentation: JSON.stringify(nitro.renewalInfo),
|
|
580
|
-
willAutoRenew: Boolean(nitro.renewalInfo.autoRenewStatus),
|
|
581
|
-
}
|
|
578
|
+
? convertNitroRenewalInfoToRenewalInfoIOS(nitro.renewalInfo)
|
|
582
579
|
: undefined,
|
|
583
580
|
};
|
|
584
581
|
}
|
package/src/vega-adapter.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
RnIap,
|
|
10
10
|
} from './specs/RnIap.nitro';
|
|
11
11
|
import {ErrorCode} from './types';
|
|
12
|
+
import type {SubResponseCodeAndroid} from './types';
|
|
12
13
|
|
|
13
14
|
type ResponseOperation =
|
|
14
15
|
| 'product-data'
|
|
@@ -97,9 +98,13 @@ interface VegaUserDataRequest {
|
|
|
97
98
|
interface VegaError extends Error {
|
|
98
99
|
code?: ErrorCode;
|
|
99
100
|
debugMessage?: string;
|
|
101
|
+
isEmptyProductList?: boolean;
|
|
100
102
|
platform?: 'android';
|
|
101
103
|
productId?: string;
|
|
104
|
+
productIds?: string[];
|
|
105
|
+
productType?: string;
|
|
102
106
|
responseCode?: number;
|
|
107
|
+
subResponseCodeAndroid?: SubResponseCodeAndroid;
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
export interface VegaPurchasingService {
|
|
@@ -145,14 +150,141 @@ function createVegaError(
|
|
|
145
150
|
return error;
|
|
146
151
|
}
|
|
147
152
|
|
|
153
|
+
function isValidIpv4Address(address: string): boolean {
|
|
154
|
+
const octets = address.split('.');
|
|
155
|
+
return (
|
|
156
|
+
octets.length === 4 &&
|
|
157
|
+
octets.every(
|
|
158
|
+
(octet) =>
|
|
159
|
+
/^(?:0|[1-9]\d{0,2})$/.test(octet) && Number(octet) <= 255,
|
|
160
|
+
)
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function isValidIpv6Address(address: string): boolean {
|
|
165
|
+
let ipv6Part = address;
|
|
166
|
+
let ipv4GroupCount = 0;
|
|
167
|
+
|
|
168
|
+
if (address.includes('.')) {
|
|
169
|
+
const lastColon = address.lastIndexOf(':');
|
|
170
|
+
if (lastColon < 0 || !isValidIpv4Address(address.slice(lastColon + 1))) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
const ipv6Prefix = address.slice(0, lastColon);
|
|
174
|
+
ipv6Part = ipv6Prefix.endsWith(':') ? `${ipv6Prefix}:` : ipv6Prefix;
|
|
175
|
+
ipv4GroupCount = 2;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (
|
|
179
|
+
!ipv6Part.includes(':') ||
|
|
180
|
+
!/^[0-9a-f:]+$/i.test(ipv6Part) ||
|
|
181
|
+
ipv6Part.includes(':::')
|
|
182
|
+
) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const compressionIndex = ipv6Part.indexOf('::');
|
|
187
|
+
const hasCompression = compressionIndex >= 0;
|
|
188
|
+
if (
|
|
189
|
+
(hasCompression && ipv6Part.indexOf('::', compressionIndex + 2) >= 0) ||
|
|
190
|
+
(!hasCompression && (ipv6Part.startsWith(':') || ipv6Part.endsWith(':')))
|
|
191
|
+
) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const sections = hasCompression ? ipv6Part.split('::') : [ipv6Part];
|
|
196
|
+
const groups: string[] = [];
|
|
197
|
+
for (const section of sections) {
|
|
198
|
+
if (section.length > 0) groups.push(...section.split(':'));
|
|
199
|
+
}
|
|
200
|
+
if (!groups.every((group) => /^[0-9a-f]{1,4}$/i.test(group))) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
const groupCount = groups.length + ipv4GroupCount;
|
|
205
|
+
return hasCompression ? groupCount < 8 : groupCount === 8;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function isValidHostname(hostname: string): boolean {
|
|
209
|
+
if (/^[0-9.]+$/.test(hostname)) {
|
|
210
|
+
return isValidIpv4Address(hostname);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const normalizedHostname = hostname.endsWith('.')
|
|
214
|
+
? hostname.slice(0, -1)
|
|
215
|
+
: hostname;
|
|
216
|
+
if (normalizedHostname.length === 0 || normalizedHostname.length > 253) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
const hostnameLabels = normalizedHostname.split('.');
|
|
220
|
+
const lastLabel = hostnameLabels[hostnameLabels.length - 1]!;
|
|
221
|
+
if (/^(?:[0-9]+|0x[0-9a-f]+)$/i.test(lastLabel)) {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return normalizedHostname
|
|
226
|
+
.split('.')
|
|
227
|
+
.every(
|
|
228
|
+
(label) =>
|
|
229
|
+
label.length <= 63 && /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(label),
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function getIapkitVerifyUrl(baseUrl?: string | null): string {
|
|
234
|
+
const requestedBaseUrl =
|
|
235
|
+
typeof baseUrl === 'string' && baseUrl.trim().length > 0
|
|
236
|
+
? baseUrl.trim()
|
|
237
|
+
: IAPKIT_DEFAULT_BASE_URL;
|
|
238
|
+
const normalizedBaseUrl = requestedBaseUrl.replace(/\/+$/, '');
|
|
239
|
+
// Kepler's URL polyfill throws for standard getters such as protocol,
|
|
240
|
+
// host, and pathname. Parse the small origin-only contract directly.
|
|
241
|
+
const originMatch = /^(https?):\/\/([^/?#@\s\\]+)$/i.exec(normalizedBaseUrl);
|
|
242
|
+
if (!originMatch) {
|
|
243
|
+
throw createVegaError(
|
|
244
|
+
ErrorCode.DeveloperError,
|
|
245
|
+
'IAPKit baseUrl must be a valid HTTP(S) origin',
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const authority = originMatch[2]!;
|
|
250
|
+
const isBracketedIpv6 = authority.startsWith('[');
|
|
251
|
+
const authorityMatch = isBracketedIpv6
|
|
252
|
+
? /^\[([^\]]+)\](?::([0-9]+))?$/.exec(authority)
|
|
253
|
+
: /^([^:]+)(?::([0-9]+))?$/.exec(authority);
|
|
254
|
+
const host = authorityMatch?.[1];
|
|
255
|
+
const requestedPort = authorityMatch?.[2];
|
|
256
|
+
const portNumber = requestedPort ? Number(requestedPort) : null;
|
|
257
|
+
const hasValidHost =
|
|
258
|
+
typeof host === 'string' &&
|
|
259
|
+
(isBracketedIpv6 ? isValidIpv6Address(host) : isValidHostname(host));
|
|
260
|
+
const hasValidPort =
|
|
261
|
+
portNumber === null ||
|
|
262
|
+
(Number.isInteger(portNumber) && portNumber >= 1 && portNumber <= 65535);
|
|
263
|
+
if (!authorityMatch || !hasValidHost || !hasValidPort) {
|
|
264
|
+
throw createVegaError(
|
|
265
|
+
ErrorCode.DeveloperError,
|
|
266
|
+
'IAPKit baseUrl must be a valid HTTP(S) origin',
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const scheme = originMatch[1]!.toLowerCase();
|
|
271
|
+
const serializedHost = isBracketedIpv6 ? `[${host!}]` : host!;
|
|
272
|
+
const port = requestedPort ? `:${requestedPort}` : '';
|
|
273
|
+
return `${scheme}://${serializedHost}${port}${IAPKIT_VERIFY_PATH}`;
|
|
274
|
+
}
|
|
275
|
+
|
|
148
276
|
function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
|
|
149
277
|
if (!(error instanceof Error)) return {};
|
|
150
278
|
const vegaError = error as VegaError;
|
|
151
279
|
if (
|
|
152
280
|
vegaError.code != null ||
|
|
153
281
|
vegaError.debugMessage != null ||
|
|
282
|
+
vegaError.isEmptyProductList != null ||
|
|
154
283
|
vegaError.productId != null ||
|
|
155
|
-
vegaError.
|
|
284
|
+
vegaError.productIds != null ||
|
|
285
|
+
vegaError.productType != null ||
|
|
286
|
+
vegaError.responseCode != null ||
|
|
287
|
+
vegaError.subResponseCodeAndroid != null
|
|
156
288
|
) {
|
|
157
289
|
return {
|
|
158
290
|
code: vegaError.code,
|
|
@@ -160,6 +292,10 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
|
|
|
160
292
|
responseCode: vegaError.responseCode,
|
|
161
293
|
debugMessage: vegaError.debugMessage,
|
|
162
294
|
productId: vegaError.productId,
|
|
295
|
+
productIds: vegaError.productIds,
|
|
296
|
+
productType: vegaError.productType,
|
|
297
|
+
isEmptyProductList: vegaError.isEmptyProductList,
|
|
298
|
+
subResponseCodeAndroid: vegaError.subResponseCodeAndroid,
|
|
163
299
|
platform: vegaError.platform,
|
|
164
300
|
};
|
|
165
301
|
}
|
|
@@ -176,9 +312,12 @@ function parseVegaErrorPayload(error: unknown): Record<string, unknown> {
|
|
|
176
312
|
function toPurchaseErrorResult(
|
|
177
313
|
error: unknown,
|
|
178
314
|
fallbackMessage: string,
|
|
315
|
+
productId?: string,
|
|
179
316
|
): NitroPurchaseResult {
|
|
180
317
|
const parsed = parseVegaErrorPayload(error);
|
|
181
318
|
const responseCode = parsed.responseCode;
|
|
319
|
+
const parsedProductIds = parsed.productIds;
|
|
320
|
+
const parsedSubResponseCode = parsed.subResponseCodeAndroid;
|
|
182
321
|
return {
|
|
183
322
|
responseCode: typeof responseCode === 'number' ? responseCode : -1,
|
|
184
323
|
code:
|
|
@@ -192,6 +331,23 @@ function toPurchaseErrorResult(
|
|
|
192
331
|
debugMessage:
|
|
193
332
|
typeof parsed.debugMessage === 'string' ? parsed.debugMessage : undefined,
|
|
194
333
|
purchaseToken: undefined,
|
|
334
|
+
productId:
|
|
335
|
+
typeof parsed.productId === 'string' ? parsed.productId : productId,
|
|
336
|
+
productIds: Array.isArray(parsedProductIds)
|
|
337
|
+
? parsedProductIds.filter(
|
|
338
|
+
(candidate): candidate is string => typeof candidate === 'string',
|
|
339
|
+
)
|
|
340
|
+
: undefined,
|
|
341
|
+
productType:
|
|
342
|
+
typeof parsed.productType === 'string' ? parsed.productType : undefined,
|
|
343
|
+
isEmptyProductList:
|
|
344
|
+
typeof parsed.isEmptyProductList === 'boolean'
|
|
345
|
+
? parsed.isEmptyProductList
|
|
346
|
+
: undefined,
|
|
347
|
+
subResponseCodeAndroid:
|
|
348
|
+
typeof parsedSubResponseCode === 'string'
|
|
349
|
+
? (parsedSubResponseCode as SubResponseCodeAndroid)
|
|
350
|
+
: undefined,
|
|
195
351
|
};
|
|
196
352
|
}
|
|
197
353
|
|
|
@@ -564,6 +720,8 @@ function mapReceipt(
|
|
|
564
720
|
productId,
|
|
565
721
|
transactionDate: toTimestamp(receipt.purchaseDate),
|
|
566
722
|
purchaseToken: receiptId,
|
|
723
|
+
currentPlanId: type === 'subs' ? productId : null,
|
|
724
|
+
ids: productId ? [productId] : [],
|
|
567
725
|
platform: 'android',
|
|
568
726
|
store: 'amazon',
|
|
569
727
|
quantity: 1,
|
|
@@ -719,8 +877,34 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
719
877
|
};
|
|
720
878
|
|
|
721
879
|
const getStorefront = async (): Promise<string> => {
|
|
722
|
-
|
|
723
|
-
|
|
880
|
+
try {
|
|
881
|
+
const userData = await getUserData();
|
|
882
|
+
const storefront = userData?.marketplace ?? userData?.countryCode;
|
|
883
|
+
if (typeof storefront !== 'string' || storefront.trim().length === 0) {
|
|
884
|
+
throw createVegaError(
|
|
885
|
+
ErrorCode.ServiceError,
|
|
886
|
+
'Amazon Vega storefront lookup returned no country code.',
|
|
887
|
+
);
|
|
888
|
+
}
|
|
889
|
+
return storefront;
|
|
890
|
+
} catch (error) {
|
|
891
|
+
const errorCode =
|
|
892
|
+
error instanceof Error
|
|
893
|
+
? (error as Error & {code?: unknown}).code
|
|
894
|
+
: undefined;
|
|
895
|
+
if (
|
|
896
|
+
typeof errorCode === 'string' &&
|
|
897
|
+
Object.values(ErrorCode).includes(errorCode as ErrorCode)
|
|
898
|
+
) {
|
|
899
|
+
throw error;
|
|
900
|
+
}
|
|
901
|
+
throw createVegaError(
|
|
902
|
+
ErrorCode.ServiceError,
|
|
903
|
+
`Failed to get Amazon Vega storefront: ${
|
|
904
|
+
error instanceof Error ? error.message : String(error)
|
|
905
|
+
}`,
|
|
906
|
+
);
|
|
907
|
+
}
|
|
724
908
|
};
|
|
725
909
|
|
|
726
910
|
const getPurchaseUpdateReceipts = async (): Promise<VegaReceipt[]> => {
|
|
@@ -962,27 +1146,6 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
962
1146
|
const verifyWithIapkit = async (
|
|
963
1147
|
params: NitroVerifyPurchaseWithProviderProps,
|
|
964
1148
|
): Promise<NitroVerifyPurchaseWithProviderResult> => {
|
|
965
|
-
type IapkitEndpointOptions = NonNullable<
|
|
966
|
-
NitroVerifyPurchaseWithProviderProps['iapkit']
|
|
967
|
-
> & {
|
|
968
|
-
baseUrl?: string | null;
|
|
969
|
-
};
|
|
970
|
-
|
|
971
|
-
function iapkitVerifyUrl(
|
|
972
|
-
iapkit: NitroVerifyPurchaseWithProviderProps['iapkit'],
|
|
973
|
-
): string {
|
|
974
|
-
const endpointOptions = iapkit as
|
|
975
|
-
| IapkitEndpointOptions
|
|
976
|
-
| null
|
|
977
|
-
| undefined;
|
|
978
|
-
const baseUrl =
|
|
979
|
-
typeof endpointOptions?.baseUrl === 'string' &&
|
|
980
|
-
endpointOptions.baseUrl.trim().length > 0
|
|
981
|
-
? endpointOptions.baseUrl.trim()
|
|
982
|
-
: IAPKIT_DEFAULT_BASE_URL;
|
|
983
|
-
return `${baseUrl.replace(/\/+$/, '')}${IAPKIT_VERIFY_PATH}`;
|
|
984
|
-
}
|
|
985
|
-
|
|
986
1149
|
function normalizeIapkitState(state: unknown): IapkitPurchaseState {
|
|
987
1150
|
const normalized =
|
|
988
1151
|
typeof state === 'string'
|
|
@@ -1137,6 +1300,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1137
1300
|
|
|
1138
1301
|
const apiKey =
|
|
1139
1302
|
typeof iapkit?.apiKey === 'string' ? iapkit.apiKey.trim() : '';
|
|
1303
|
+
const verificationUrl = getIapkitVerifyUrl(iapkit?.baseUrl);
|
|
1140
1304
|
let response: Response;
|
|
1141
1305
|
try {
|
|
1142
1306
|
const controller = new AbortController();
|
|
@@ -1144,7 +1308,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1144
1308
|
() => controller.abort(),
|
|
1145
1309
|
IAPKIT_VERIFY_TIMEOUT_MS,
|
|
1146
1310
|
);
|
|
1147
|
-
response = await fetch(
|
|
1311
|
+
response = await fetch(verificationUrl, {
|
|
1148
1312
|
method: 'POST',
|
|
1149
1313
|
headers: {
|
|
1150
1314
|
'Content-Type': 'application/json',
|
|
@@ -1322,6 +1486,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1322
1486
|
toPurchaseErrorResult(
|
|
1323
1487
|
error,
|
|
1324
1488
|
'Failed to complete Amazon Vega purchase',
|
|
1489
|
+
sku,
|
|
1325
1490
|
),
|
|
1326
1491
|
);
|
|
1327
1492
|
throw error;
|
|
@@ -1401,7 +1566,7 @@ export function createVegaIapModule(service: VegaPurchasingService): RnIap {
|
|
|
1401
1566
|
async getPromotedProductIOS(): Promise<null> {
|
|
1402
1567
|
return throwUnsupportedFeature('getPromotedProductIOS');
|
|
1403
1568
|
},
|
|
1404
|
-
async buyPromotedProductIOS(): Promise<
|
|
1569
|
+
async buyPromotedProductIOS(): Promise<boolean> {
|
|
1405
1570
|
return throwUnsupportedFeature('buyPromotedProductIOS');
|
|
1406
1571
|
},
|
|
1407
1572
|
async presentCodeRedemptionSheetIOS(): Promise<boolean> {
|
|
@@ -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
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
///
|
|
2
|
-
/// JVariant_NullType_NitroSubscriptionRenewalInfo.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 <variant>
|
|
12
|
-
|
|
13
|
-
#include <NitroModules/Null.hpp>
|
|
14
|
-
#include "NitroSubscriptionRenewalInfo.hpp"
|
|
15
|
-
#include <variant>
|
|
16
|
-
#include <NitroModules/JNull.hpp>
|
|
17
|
-
#include "JNitroSubscriptionRenewalInfo.hpp"
|
|
18
|
-
#include <string>
|
|
19
|
-
#include <optional>
|
|
20
|
-
#include "JVariant_NullType_String.hpp"
|
|
21
|
-
#include "JVariant_NullType_Double.hpp"
|
|
22
|
-
|
|
23
|
-
namespace margelo::nitro::iap {
|
|
24
|
-
|
|
25
|
-
using namespace facebook;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The C++ JNI bridge between the C++ std::variant and the Java class "Variant_NullType_NitroSubscriptionRenewalInfo".
|
|
29
|
-
*/
|
|
30
|
-
class JVariant_NullType_NitroSubscriptionRenewalInfo: public jni::JavaClass<JVariant_NullType_NitroSubscriptionRenewalInfo> {
|
|
31
|
-
public:
|
|
32
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo;";
|
|
33
|
-
|
|
34
|
-
static jni::local_ref<JVariant_NullType_NitroSubscriptionRenewalInfo> create_0(jni::alias_ref<JNull> value) {
|
|
35
|
-
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_NitroSubscriptionRenewalInfo(jni::alias_ref<JNull>)>("create");
|
|
36
|
-
return method(javaClassStatic(), value);
|
|
37
|
-
}
|
|
38
|
-
static jni::local_ref<JVariant_NullType_NitroSubscriptionRenewalInfo> create_1(jni::alias_ref<JNitroSubscriptionRenewalInfo> value) {
|
|
39
|
-
static const auto method = javaClassStatic()->getStaticMethod<JVariant_NullType_NitroSubscriptionRenewalInfo(jni::alias_ref<JNitroSubscriptionRenewalInfo>)>("create");
|
|
40
|
-
return method(javaClassStatic(), value);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
static jni::local_ref<JVariant_NullType_NitroSubscriptionRenewalInfo> fromCpp(const std::variant<nitro::NullType, NitroSubscriptionRenewalInfo>& variant) {
|
|
44
|
-
switch (variant.index()) {
|
|
45
|
-
case 0: return create_0(JNull::null());
|
|
46
|
-
case 1: return create_1(JNitroSubscriptionRenewalInfo::fromCpp(std::get<1>(variant)));
|
|
47
|
-
default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
[[nodiscard]] std::variant<nitro::NullType, NitroSubscriptionRenewalInfo> toCpp() const;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
namespace JVariant_NullType_NitroSubscriptionRenewalInfo_impl {
|
|
55
|
-
class First final: public jni::JavaClass<First, JVariant_NullType_NitroSubscriptionRenewalInfo> {
|
|
56
|
-
public:
|
|
57
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo$First;";
|
|
58
|
-
|
|
59
|
-
[[nodiscard]] jni::local_ref<JNull> getValue() const {
|
|
60
|
-
static const auto field = javaClassStatic()->getField<JNull>("value");
|
|
61
|
-
return getFieldValue(field);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
class Second final: public jni::JavaClass<Second, JVariant_NullType_NitroSubscriptionRenewalInfo> {
|
|
66
|
-
public:
|
|
67
|
-
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/iap/Variant_NullType_NitroSubscriptionRenewalInfo$Second;";
|
|
68
|
-
|
|
69
|
-
[[nodiscard]] jni::local_ref<JNitroSubscriptionRenewalInfo> getValue() const {
|
|
70
|
-
static const auto field = javaClassStatic()->getField<JNitroSubscriptionRenewalInfo>("value");
|
|
71
|
-
return getFieldValue(field);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
} // namespace JVariant_NullType_NitroSubscriptionRenewalInfo_impl
|
|
75
|
-
} // namespace margelo::nitro::iap
|