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