react-native-iap 13.0.4 → 14.0.0-rc.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/NitroIap.podspec +33 -0
- package/README.md +163 -51
- package/android/CMakeLists.txt +32 -0
- package/android/build.gradle +107 -138
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -13
- package/android/src/main/AndroidManifest.xml +1 -4
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +843 -0
- package/android/src/main/java/com/margelo/nitro/iap/NitroIapPackage.java +33 -0
- package/android/src/main/java/com/margelo/nitro/iap/Types.kt +173 -0
- package/ios/Bridge.h +8 -0
- package/ios/ErrorUtils.swift +153 -0
- package/ios/HybridRnIap.swift +1326 -0
- package/ios/ProductStore.swift +33 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/lib/module/helpers/subscription.js +56 -0
- package/lib/module/helpers/subscription.js.map +1 -0
- package/lib/module/hooks/useIAP.js +175 -123
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +1015 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/specs/RnIap.nitro.js +4 -0
- package/lib/{commonjs/modules/common.js.map → module/specs/RnIap.nitro.js.map} +1 -1
- package/lib/module/types.js +187 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/error.js +80 -0
- package/lib/module/utils/error.js.map +1 -0
- package/lib/module/utils/type-bridge.js +202 -0
- package/lib/module/utils/type-bridge.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/plugin/src/withIAP.d.ts +2 -7
- package/lib/typescript/plugin/src/withIAP.d.ts.map +1 -1
- package/lib/typescript/scripts/check-nitro-versions.d.ts +3 -0
- package/lib/typescript/scripts/check-nitro-versions.d.ts.map +1 -0
- package/lib/typescript/src/helpers/subscription.d.ts +14 -0
- package/lib/typescript/src/helpers/subscription.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useIAP.d.ts +42 -26
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +356 -8
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +404 -0
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +544 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/error.d.ts +30 -0
- package/lib/typescript/src/utils/error.d.ts.map +1 -0
- package/lib/typescript/src/utils/type-bridge.d.ts +40 -0
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -0
- package/nitro.json +17 -0
- package/nitrogen/generated/android/NitroIap+autolinking.cmake +80 -0
- package/nitrogen/generated/android/NitroIap+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroIapOnLoad.cpp +50 -0
- package/nitrogen/generated/android/NitroIapOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_NitroPurchase.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_NitroPurchaseResult.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +577 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +93 -0
- package/nitrogen/generated/android/c++/JNitroAndroidReceiptValidationOptions.hpp +66 -0
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesAndroidOptions.hpp +54 -0
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesIosOptions.hpp +65 -0
- package/nitrogen/generated/android/c++/JNitroAvailablePurchasesOptions.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroFinishTransactionAndroidParams.hpp +58 -0
- package/nitrogen/generated/android/c++/JNitroFinishTransactionIosParams.hpp +53 -0
- package/nitrogen/generated/android/c++/JNitroFinishTransactionParams.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +154 -0
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +122 -0
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +66 -0
- package/nitrogen/generated/android/c++/JNitroPurchaseResult.hpp +70 -0
- package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +60 -0
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultAndroid.hpp +122 -0
- package/nitrogen/generated/android/c++/JNitroReceiptValidationResultIOS.hpp +68 -0
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +115 -0
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseIos.hpp +84 -0
- package/nitrogen/generated/android/c++/JNitroSubscriptionOffer.hpp +57 -0
- package/nitrogen/generated/android/c++/JNitroSubscriptionRenewalInfo.hpp +74 -0
- package/nitrogen/generated/android/c++/JNitroSubscriptionStatus.hpp +64 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_Boolean_NitroPurchaseResult.hpp +71 -0
- package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.hpp +75 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroProduct.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchase.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Func_void_NitroPurchaseResult.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +198 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAndroidReceiptValidationOptions.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesAndroidOptions.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesIosOptions.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroAvailablePurchasesOptions.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionAndroidParams.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionIosParams.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroFinishTransactionParams.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroIapOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +104 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseRequest.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchaseResult.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultAndroid.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationResultIOS.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseIos.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionOffer.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionRenewalInfo.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroSubscriptionStatus.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_Boolean_NitroPurchaseResult.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.kt +42 -0
- package/nitrogen/generated/ios/NitroIap+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +152 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +1061 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +107 -0
- package/nitrogen/generated/ios/NitroIapAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroIapAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +355 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroProduct.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroPurchase.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroPurchaseResult.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroProduct_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_NitroPurchase_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__vector_NitroSubscriptionStatus__.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_NitroReceiptValidationResultIOS__NitroReceiptValidationResultAndroid_.swift +59 -0
- package/nitrogen/generated/ios/swift/Func_void_std__variant_bool__NitroPurchaseResult_.swift +59 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroProduct_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_NitroPurchase_.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +78 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +750 -0
- package/nitrogen/generated/ios/swift/NitroAndroidReceiptValidationOptions.swift +80 -0
- package/nitrogen/generated/ios/swift/NitroAvailablePurchasesAndroidOptions.swift +54 -0
- package/nitrogen/generated/ios/swift/NitroAvailablePurchasesIosOptions.swift +116 -0
- package/nitrogen/generated/ios/swift/NitroAvailablePurchasesOptions.swift +84 -0
- package/nitrogen/generated/ios/swift/NitroFinishTransactionAndroidParams.swift +58 -0
- package/nitrogen/generated/ios/swift/NitroFinishTransactionIosParams.swift +35 -0
- package/nitrogen/generated/ios/swift/NitroFinishTransactionParams.swift +84 -0
- package/nitrogen/generated/ios/swift/NitroProduct.swift +653 -0
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +453 -0
- package/nitrogen/generated/ios/swift/NitroPurchaseRequest.swift +84 -0
- package/nitrogen/generated/ios/swift/NitroPurchaseResult.swift +117 -0
- package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +65 -0
- package/nitrogen/generated/ios/swift/NitroReceiptValidationResultAndroid.swift +258 -0
- package/nitrogen/generated/ios/swift/NitroReceiptValidationResultIOS.swift +87 -0
- package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +225 -0
- package/nitrogen/generated/ios/swift/NitroRequestPurchaseIos.swift +161 -0
- package/nitrogen/generated/ios/swift/NitroSubscriptionOffer.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroSubscriptionRenewalInfo.swift +152 -0
- package/nitrogen/generated/ios/swift/NitroSubscriptionStatus.swift +76 -0
- package/nitrogen/generated/ios/swift/Variant_Bool_NitroPurchaseResult.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NitroReceiptValidationResultIOS_NitroReceiptValidationResultAndroid.swift +18 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +50 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +125 -0
- package/nitrogen/generated/shared/c++/NitroAndroidReceiptValidationOptions.hpp +80 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesAndroidOptions.hpp +68 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesIosOptions.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroAvailablePurchasesOptions.hpp +76 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionAndroidParams.hpp +72 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionIosParams.hpp +67 -0
- package/nitrogen/generated/shared/c++/NitroFinishTransactionParams.hpp +76 -0
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +168 -0
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +136 -0
- package/nitrogen/generated/shared/c++/NitroPurchaseRequest.hpp +76 -0
- package/nitrogen/generated/shared/c++/NitroPurchaseResult.hpp +84 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +74 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationResultAndroid.hpp +136 -0
- package/nitrogen/generated/shared/c++/NitroReceiptValidationResultIOS.hpp +82 -0
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +95 -0
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseIos.hpp +85 -0
- package/nitrogen/generated/shared/c++/NitroSubscriptionOffer.hpp +71 -0
- package/nitrogen/generated/shared/c++/NitroSubscriptionRenewalInfo.hpp +88 -0
- package/nitrogen/generated/shared/c++/NitroSubscriptionStatus.hpp +78 -0
- package/package.json +145 -104
- package/plugin/build/src/withIAP.d.ts +3 -0
- package/plugin/build/src/withIAP.js +81 -0
- package/plugin/build/tsconfig.tsbuildinfo +1 -0
- package/plugin/build/withIAP.d.ts +2 -7
- package/plugin/build/withIAP.js +62 -51
- package/plugin/src/withIAP.ts +119 -0
- package/plugin/tsconfig.json +18 -0
- package/plugin/tsconfig.tsbuildinfo +1 -0
- package/src/helpers/subscription.ts +65 -0
- package/src/hooks/useIAP.ts +361 -222
- package/src/index.ts +1194 -9
- package/src/specs/RnIap.nitro.ts +501 -0
- package/src/types.ts +680 -0
- package/src/utils/error.ts +97 -0
- package/src/utils/type-bridge.ts +209 -0
- package/LICENSE +0 -21
- package/RNIap.podspec +0 -36
- package/android/src/amazon/AndroidManifest.xml +0 -14
- package/android/src/amazon/java/com/dooboolab/rniap/EventSender.kt +0 -10
- package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxy.kt +0 -29
- package/android/src/amazon/java/com/dooboolab/rniap/PurchasingServiceProxyAmazonImpl.kt +0 -31
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapActivityListener.kt +0 -55
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonListener.kt +0 -325
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapAmazonModule.kt +0 -244
- package/android/src/amazon/java/com/dooboolab/rniap/RNIapPackage.kt +0 -17
- package/android/src/amazon/java/com/dooboolab/rniap/modifysubscription/RNIapAmazonModifySubscriptionListener.kt +0 -88
- package/android/src/amazon/java/com/dooboolab/rniap/utils/Extensions.kt +0 -22
- package/android/src/main/java/com/dooboolab/rniap/PromiseUtils.kt +0 -62
- package/android/src/main/java/com/dooboolab/rniap/PromiseUtlis.kt +0 -43
- package/android/src/play/java/com/dooboolab/rniap/PlayUtils.kt +0 -114
- package/android/src/play/java/com/dooboolab/rniap/RNIapActivityListener.kt +0 -15
- package/android/src/play/java/com/dooboolab/rniap/RNIapModule.kt +0 -911
- package/android/src/play/java/com/dooboolab/rniap/RNIapPackage.kt +0 -17
- package/android/src/testAmazon/java/com/dooboolab/rniap/RNIapAmazonModuleTest.kt +0 -170
- package/app.plugin.js +0 -1
- package/ios/IapSerializationUtils.swift +0 -290
- package/ios/IapTypes.swift +0 -56
- package/ios/IapUtils.swift +0 -40
- package/ios/LatestPromiseKeeper.swift +0 -52
- package/ios/RNIapIos-Bridging-Header.h +0 -2
- package/ios/RNIapIos.m +0 -69
- package/ios/RNIapIos.swift +0 -868
- package/ios/RNIapIos.xcodeproj/project.pbxproj +0 -289
- package/ios/RNIapIosSk2.m +0 -126
- package/ios/RNIapIosSk2.swift +0 -1413
- package/ios/ThreadSafe.swift +0 -18
- package/lib/commonjs/eventEmitter.js +0 -195
- package/lib/commonjs/eventEmitter.js.map +0 -1
- package/lib/commonjs/hooks/index.js +0 -17
- package/lib/commonjs/hooks/index.js.map +0 -1
- package/lib/commonjs/hooks/useIAP.js +0 -203
- package/lib/commonjs/hooks/useIAP.js.map +0 -1
- package/lib/commonjs/hooks/withIAPContext.js +0 -95
- package/lib/commonjs/hooks/withIAPContext.js.map +0 -1
- package/lib/commonjs/iap.js +0 -836
- package/lib/commonjs/iap.js.map +0 -1
- package/lib/commonjs/index.js +0 -105
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/internal/enhancedFetch.js +0 -26
- package/lib/commonjs/internal/enhancedFetch.js.map +0 -1
- package/lib/commonjs/internal/fillProductsWithAdditionalData.js +0 -50
- package/lib/commonjs/internal/fillProductsWithAdditionalData.js.map +0 -1
- package/lib/commonjs/internal/index.js +0 -39
- package/lib/commonjs/internal/index.js.map +0 -1
- package/lib/commonjs/internal/platform.js +0 -119
- package/lib/commonjs/internal/platform.js.map +0 -1
- package/lib/commonjs/modules/amazon.js +0 -50
- package/lib/commonjs/modules/amazon.js.map +0 -1
- package/lib/commonjs/modules/android.js +0 -92
- package/lib/commonjs/modules/android.js.map +0 -1
- package/lib/commonjs/modules/common.js +0 -2
- package/lib/commonjs/modules/index.js +0 -50
- package/lib/commonjs/modules/index.js.map +0 -1
- package/lib/commonjs/modules/ios.js +0 -160
- package/lib/commonjs/modules/ios.js.map +0 -1
- package/lib/commonjs/modules/iosSk2.js +0 -113
- package/lib/commonjs/modules/iosSk2.js.map +0 -1
- package/lib/commonjs/purchaseError.js +0 -170
- package/lib/commonjs/purchaseError.js.map +0 -1
- package/lib/commonjs/types/amazon.js +0 -2
- package/lib/commonjs/types/amazon.js.map +0 -1
- package/lib/commonjs/types/android.js +0 -67
- package/lib/commonjs/types/android.js.map +0 -1
- package/lib/commonjs/types/apple.js +0 -24
- package/lib/commonjs/types/apple.js.map +0 -1
- package/lib/commonjs/types/appleSk2.js +0 -137
- package/lib/commonjs/types/appleSk2.js.map +0 -1
- package/lib/commonjs/types/index.js +0 -67
- package/lib/commonjs/types/index.js.map +0 -1
- package/lib/commonjs/utils/errorMapping.js +0 -83
- package/lib/commonjs/utils/errorMapping.js.map +0 -1
- package/lib/commonjs/utils/typeGuards.js +0 -74
- package/lib/commonjs/utils/typeGuards.js.map +0 -1
- package/lib/module/eventEmitter.js +0 -185
- package/lib/module/eventEmitter.js.map +0 -1
- package/lib/module/hooks/index.js +0 -2
- package/lib/module/hooks/index.js.map +0 -1
- package/lib/module/hooks/withIAPContext.js +0 -86
- package/lib/module/hooks/withIAPContext.js.map +0 -1
- package/lib/module/iap.js +0 -805
- package/lib/module/iap.js.map +0 -1
- package/lib/module/internal/enhancedFetch.js +0 -19
- package/lib/module/internal/enhancedFetch.js.map +0 -1
- package/lib/module/internal/fillProductsWithAdditionalData.js +0 -43
- package/lib/module/internal/fillProductsWithAdditionalData.js.map +0 -1
- package/lib/module/internal/index.js +0 -4
- package/lib/module/internal/index.js.map +0 -1
- package/lib/module/internal/platform.js +0 -102
- package/lib/module/internal/platform.js.map +0 -1
- package/lib/module/modules/amazon.js +0 -42
- package/lib/module/modules/amazon.js.map +0 -1
- package/lib/module/modules/android.js +0 -81
- package/lib/module/modules/android.js.map +0 -1
- package/lib/module/modules/common.js +0 -2
- package/lib/module/modules/common.js.map +0 -1
- package/lib/module/modules/index.js +0 -5
- package/lib/module/modules/index.js.map +0 -1
- package/lib/module/modules/ios.js +0 -145
- package/lib/module/modules/ios.js.map +0 -1
- package/lib/module/modules/iosSk2.js +0 -96
- package/lib/module/modules/iosSk2.js.map +0 -1
- package/lib/module/purchaseError.js +0 -164
- package/lib/module/purchaseError.js.map +0 -1
- package/lib/module/types/amazon.js +0 -2
- package/lib/module/types/amazon.js.map +0 -1
- package/lib/module/types/android.js +0 -63
- package/lib/module/types/android.js.map +0 -1
- package/lib/module/types/apple.js +0 -17
- package/lib/module/types/apple.js.map +0 -1
- package/lib/module/types/appleSk2.js +0 -129
- package/lib/module/types/appleSk2.js.map +0 -1
- package/lib/module/types/index.js +0 -75
- package/lib/module/types/index.js.map +0 -1
- package/lib/module/utils/errorMapping.js +0 -75
- package/lib/module/utils/errorMapping.js.map +0 -1
- package/lib/module/utils/typeGuards.js +0 -61
- package/lib/module/utils/typeGuards.js.map +0 -1
- package/lib/typescript/src/eventEmitter.d.ts +0 -151
- package/lib/typescript/src/eventEmitter.d.ts.map +0 -1
- package/lib/typescript/src/hooks/index.d.ts +0 -2
- package/lib/typescript/src/hooks/index.d.ts.map +0 -1
- package/lib/typescript/src/hooks/withIAPContext.d.ts +0 -27
- package/lib/typescript/src/hooks/withIAPContext.d.ts.map +0 -1
- package/lib/typescript/src/iap.d.ts +0 -503
- package/lib/typescript/src/iap.d.ts.map +0 -1
- package/lib/typescript/src/internal/enhancedFetch.d.ts +0 -6
- package/lib/typescript/src/internal/enhancedFetch.d.ts.map +0 -1
- package/lib/typescript/src/internal/fillProductsWithAdditionalData.d.ts +0 -7
- package/lib/typescript/src/internal/fillProductsWithAdditionalData.d.ts.map +0 -1
- package/lib/typescript/src/internal/index.d.ts +0 -4
- package/lib/typescript/src/internal/index.d.ts.map +0 -1
- package/lib/typescript/src/internal/platform.d.ts +0 -27
- package/lib/typescript/src/internal/platform.d.ts.map +0 -1
- package/lib/typescript/src/modules/amazon.d.ts +0 -55
- package/lib/typescript/src/modules/amazon.d.ts.map +0 -1
- package/lib/typescript/src/modules/android.d.ts +0 -74
- package/lib/typescript/src/modules/android.d.ts.map +0 -1
- package/lib/typescript/src/modules/common.d.ts +0 -14
- package/lib/typescript/src/modules/common.d.ts.map +0 -1
- package/lib/typescript/src/modules/index.d.ts +0 -5
- package/lib/typescript/src/modules/index.d.ts.map +0 -1
- package/lib/typescript/src/modules/ios.d.ts +0 -117
- package/lib/typescript/src/modules/ios.d.ts.map +0 -1
- package/lib/typescript/src/modules/iosSk2.d.ts +0 -140
- package/lib/typescript/src/modules/iosSk2.d.ts.map +0 -1
- package/lib/typescript/src/purchaseError.d.ts +0 -133
- package/lib/typescript/src/purchaseError.d.ts.map +0 -1
- package/lib/typescript/src/types/amazon.d.ts +0 -33
- package/lib/typescript/src/types/amazon.d.ts.map +0 -1
- package/lib/typescript/src/types/android.d.ts +0 -66
- package/lib/typescript/src/types/android.d.ts.map +0 -1
- package/lib/typescript/src/types/apple.d.ts +0 -27
- package/lib/typescript/src/types/apple.d.ts.map +0 -1
- package/lib/typescript/src/types/appleSk2.d.ts +0 -129
- package/lib/typescript/src/types/appleSk2.d.ts.map +0 -1
- package/lib/typescript/src/types/index.d.ts +0 -302
- package/lib/typescript/src/types/index.d.ts.map +0 -1
- package/lib/typescript/src/utils/errorMapping.d.ts +0 -29
- package/lib/typescript/src/utils/errorMapping.d.ts.map +0 -1
- package/lib/typescript/src/utils/typeGuards.d.ts +0 -53
- package/lib/typescript/src/utils/typeGuards.d.ts.map +0 -1
- package/src/eventEmitter.ts +0 -212
- package/src/hooks/index.ts +0 -1
- package/src/hooks/withIAPContext.tsx +0 -179
- package/src/iap.ts +0 -1046
- package/src/internal/enhancedFetch.ts +0 -25
- package/src/internal/fillProductsWithAdditionalData.ts +0 -47
- package/src/internal/index.ts +0 -3
- package/src/internal/platform.ts +0 -135
- package/src/modules/amazon.ts +0 -94
- package/src/modules/android.ts +0 -179
- package/src/modules/common.ts +0 -16
- package/src/modules/index.ts +0 -4
- package/src/modules/ios.ts +0 -229
- package/src/modules/iosSk2.ts +0 -194
- package/src/purchaseError.ts +0 -196
- package/src/types/amazon.ts +0 -40
- package/src/types/android.ts +0 -89
- package/src/types/apple.ts +0 -44
- package/src/types/appleSk2.ts +0 -275
- package/src/types/index.ts +0 -379
- package/src/utils/errorMapping.ts +0 -88
- package/src/utils/typeGuards.ts +0 -90
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
interface OverwrittenRequestInit extends Omit<RequestInit, 'body'> {
|
|
2
|
-
body: Record<string, any>;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export const enhancedFetch = async <T = any>(
|
|
6
|
-
url: string,
|
|
7
|
-
init?: OverwrittenRequestInit,
|
|
8
|
-
) => {
|
|
9
|
-
const response = await fetch(url, {
|
|
10
|
-
method: init?.method ?? 'GET',
|
|
11
|
-
headers: {
|
|
12
|
-
Accept: 'application/json',
|
|
13
|
-
'Content-Type': 'application/json',
|
|
14
|
-
},
|
|
15
|
-
...(init?.body ? {body: JSON.stringify(init.body)} : {}),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
if (!response.ok) {
|
|
19
|
-
throw Object.assign(new Error(response.statusText), {
|
|
20
|
-
statusCode: response.status,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return response.json() as Promise<T>;
|
|
25
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import {NativeModules} from 'react-native';
|
|
2
|
-
|
|
3
|
-
import type {ProductCommon} from '../types';
|
|
4
|
-
|
|
5
|
-
const {RNIapAmazonModule} = NativeModules;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* For Amazon products, we add the currency code from the user's information
|
|
9
|
-
* since it isn't included in the product information.
|
|
10
|
-
*/
|
|
11
|
-
export const fillProductsWithAdditionalData = async <T extends ProductCommon>(
|
|
12
|
-
items: T[],
|
|
13
|
-
): Promise<T[]> => {
|
|
14
|
-
if (RNIapAmazonModule) {
|
|
15
|
-
// On amazon we must get the user marketplace to detect the currency
|
|
16
|
-
const user = await RNIapAmazonModule.getUser();
|
|
17
|
-
|
|
18
|
-
const currencies = {
|
|
19
|
-
CA: 'CAD',
|
|
20
|
-
ES: 'EUR',
|
|
21
|
-
AU: 'AUD',
|
|
22
|
-
DE: 'EUR',
|
|
23
|
-
IN: 'INR',
|
|
24
|
-
US: 'USD',
|
|
25
|
-
JP: 'JPY',
|
|
26
|
-
GB: 'GBP',
|
|
27
|
-
IT: 'EUR',
|
|
28
|
-
BR: 'BRL',
|
|
29
|
-
FR: 'EUR',
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const currency =
|
|
33
|
-
currencies[user.userMarketplaceAmazon as keyof typeof currencies];
|
|
34
|
-
|
|
35
|
-
// Add currency to items
|
|
36
|
-
items.forEach((item) => {
|
|
37
|
-
if (currency) {
|
|
38
|
-
const {originalPrice} = item;
|
|
39
|
-
item.currency = currency;
|
|
40
|
-
item.price = originalPrice ?? '0.0';
|
|
41
|
-
item.localizedPrice = originalPrice ?? '0.0';
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return items;
|
|
47
|
-
};
|
package/src/internal/index.ts
DELETED
package/src/internal/platform.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import {NativeModules, Platform} from 'react-native';
|
|
2
|
-
|
|
3
|
-
import {ErrorCode} from '../purchaseError';
|
|
4
|
-
|
|
5
|
-
const {RNIapIos, RNIapIosSk2, RNIapModule, RNIapAmazonModule} = NativeModules;
|
|
6
|
-
|
|
7
|
-
export const isIos = Platform.OS === 'ios';
|
|
8
|
-
export const isAndroid = Platform.OS === 'android';
|
|
9
|
-
export const isAmazon = isAndroid && !!RNIapAmazonModule;
|
|
10
|
-
export const isPlay = isAndroid && !!RNIapModule;
|
|
11
|
-
|
|
12
|
-
// Android
|
|
13
|
-
|
|
14
|
-
let androidNativeModule = RNIapModule;
|
|
15
|
-
|
|
16
|
-
export const setAndroidNativeModule = (
|
|
17
|
-
nativeModule: typeof RNIapModule,
|
|
18
|
-
): void => {
|
|
19
|
-
androidNativeModule = nativeModule;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const checkNativeAndroidAvailable = (): void => {
|
|
23
|
-
if (!RNIapModule && !RNIapAmazonModule) {
|
|
24
|
-
throw new Error(ErrorCode.E_IAP_NOT_AVAILABLE);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* If changing the typings of `getAndroidModule` to accommodate extra modules,
|
|
30
|
-
* make sure to update `getAndroidModuleType`.
|
|
31
|
-
*/
|
|
32
|
-
export const getAndroidModule = ():
|
|
33
|
-
| typeof RNIapModule
|
|
34
|
-
| typeof RNIapAmazonModule => {
|
|
35
|
-
checkNativeAndroidAvailable();
|
|
36
|
-
|
|
37
|
-
return androidNativeModule
|
|
38
|
-
? androidNativeModule
|
|
39
|
-
: RNIapModule
|
|
40
|
-
? RNIapModule
|
|
41
|
-
: RNIapAmazonModule;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Returns whether the Android in-app-purchase code is using the Android,
|
|
46
|
-
* Amazon, or another store.
|
|
47
|
-
*/
|
|
48
|
-
export const getAndroidModuleType = (): 'android' | 'amazon' | null => {
|
|
49
|
-
const module = getAndroidModule();
|
|
50
|
-
switch (module) {
|
|
51
|
-
case RNIapModule:
|
|
52
|
-
return 'android';
|
|
53
|
-
case RNIapAmazonModule:
|
|
54
|
-
return 'amazon';
|
|
55
|
-
default:
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export const getNativeModule = ():
|
|
61
|
-
| typeof RNIapModule
|
|
62
|
-
| typeof RNIapAmazonModule
|
|
63
|
-
| typeof RNIapIos
|
|
64
|
-
| typeof RNIapIosSk2 => {
|
|
65
|
-
return isAndroid ? getAndroidModule() : getIosModule();
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// iOS
|
|
69
|
-
|
|
70
|
-
let iosNativeModule: typeof RNIapIos | typeof RNIapIosSk2 = RNIapIos;
|
|
71
|
-
|
|
72
|
-
export const isStorekit2Available = (): boolean =>
|
|
73
|
-
isIos && RNIapIosSk2?.isAvailable() === 1;
|
|
74
|
-
|
|
75
|
-
export const isIosStorekit2 = () =>
|
|
76
|
-
isIos &&
|
|
77
|
-
!!iosNativeModule &&
|
|
78
|
-
iosNativeModule === RNIapIosSk2 &&
|
|
79
|
-
isStorekit2Available();
|
|
80
|
-
|
|
81
|
-
export const setIosNativeModule = (
|
|
82
|
-
nativeModule: typeof RNIapIos | typeof RNIapIosSk2,
|
|
83
|
-
): void => {
|
|
84
|
-
iosNativeModule = nativeModule;
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export const storekit2Mode = () => {
|
|
88
|
-
iosNativeModule = RNIapIosSk2;
|
|
89
|
-
if (isStorekit2Available()) {
|
|
90
|
-
RNIapIos.disable();
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
if (isIos) {
|
|
94
|
-
console.warn('Storekit 2 is not available on this device');
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
return true;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
export const storekit1Mode = () => {
|
|
101
|
-
iosNativeModule = RNIapIos;
|
|
102
|
-
if (isStorekit2Available()) {
|
|
103
|
-
RNIapIosSk2.disable();
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
return false;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
export const storekitHybridMode = () => {
|
|
110
|
-
if (isStorekit2Available()) {
|
|
111
|
-
iosNativeModule = RNIapIosSk2;
|
|
112
|
-
console.info('Using Storekit 2');
|
|
113
|
-
return true;
|
|
114
|
-
} else {
|
|
115
|
-
iosNativeModule = RNIapIos;
|
|
116
|
-
console.info('Using Storekit 1');
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
const checkNativeIOSAvailable = (): void => {
|
|
122
|
-
if (!RNIapIos && !isStorekit2Available()) {
|
|
123
|
-
throw new Error(ErrorCode.E_IAP_NOT_AVAILABLE);
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
export const getIosModule = (): typeof RNIapIos | typeof RNIapIosSk2 => {
|
|
128
|
-
checkNativeIOSAvailable();
|
|
129
|
-
|
|
130
|
-
return iosNativeModule
|
|
131
|
-
? iosNativeModule
|
|
132
|
-
: RNIapIosSk2
|
|
133
|
-
? RNIapIosSk2
|
|
134
|
-
: RNIapIos;
|
|
135
|
-
};
|
package/src/modules/amazon.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {NativeModules} from 'react-native';
|
|
2
|
-
|
|
3
|
-
import {enhancedFetch} from '../internal';
|
|
4
|
-
import type {Product, ProrationModesAmazon, Purchase, Sku} from '../types';
|
|
5
|
-
import type {
|
|
6
|
-
AmazonLicensingStatus,
|
|
7
|
-
ReceiptType,
|
|
8
|
-
UserDataAmazon,
|
|
9
|
-
} from '../types/amazon';
|
|
10
|
-
|
|
11
|
-
import type {NativeModuleProps} from './common';
|
|
12
|
-
// ----------
|
|
13
|
-
|
|
14
|
-
type GetUser = () => Promise<UserDataAmazon>;
|
|
15
|
-
type FlushFailedPurchasesCachedAsPending = () => Promise<boolean>;
|
|
16
|
-
type GetItemsByType = (type: string, skus: Sku[]) => Promise<Product[]>;
|
|
17
|
-
type GetAvailableItems = () => Promise<Purchase[]>;
|
|
18
|
-
type BuyItemByType = (
|
|
19
|
-
sku: Sku,
|
|
20
|
-
proration: ProrationModesAmazon,
|
|
21
|
-
) => Promise<Purchase>;
|
|
22
|
-
|
|
23
|
-
type AcknowledgePurchase = (
|
|
24
|
-
purchaseToken: string,
|
|
25
|
-
developerPayloadAndroid?: string,
|
|
26
|
-
) => Promise<boolean>;
|
|
27
|
-
|
|
28
|
-
type ConsumeProduct = (
|
|
29
|
-
purchaseToken: string,
|
|
30
|
-
developerPayloadAndroid?: string,
|
|
31
|
-
) => Promise<boolean>;
|
|
32
|
-
|
|
33
|
-
type StartListening = () => Promise<void>;
|
|
34
|
-
|
|
35
|
-
export interface AmazonModuleProps extends NativeModuleProps {
|
|
36
|
-
getUser: GetUser;
|
|
37
|
-
flushFailedPurchasesCachedAsPending: FlushFailedPurchasesCachedAsPending;
|
|
38
|
-
getItemsByType: GetItemsByType;
|
|
39
|
-
getAvailableItems: GetAvailableItems;
|
|
40
|
-
buyItemByType: BuyItemByType;
|
|
41
|
-
acknowledgePurchase: AcknowledgePurchase;
|
|
42
|
-
consumeProduct: ConsumeProduct;
|
|
43
|
-
/** @deprecated to be renamed to sendUnconsumedPurchases if not removed completely */
|
|
44
|
-
startListening: StartListening;
|
|
45
|
-
verifyLicense: () => Promise<AmazonLicensingStatus>;
|
|
46
|
-
deepLinkToSubscriptions: (isAmazonDevice: boolean) => Promise<void>;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const AmazonModule =
|
|
50
|
-
NativeModules.RNIapAmazonModule as AmazonModuleProps;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Validate receipt for Amazon. NOTE: This method is here for debugging purposes only. Including
|
|
54
|
-
* your developer secret in the binary you ship to users is potentially dangerous.
|
|
55
|
-
* Use server side validation instead for your production builds
|
|
56
|
-
* @param {string} developerSecret: from the Amazon developer console.
|
|
57
|
-
* @param {string} userId who purchased the item.
|
|
58
|
-
* @param {string} receiptId long obfuscated string returned when purchasing the item
|
|
59
|
-
* @param {boolean} useSandbox Defaults to true, use sandbox environment or production.
|
|
60
|
-
* @returns {Promise<object>}
|
|
61
|
-
*/
|
|
62
|
-
export const validateReceiptAmazon = async ({
|
|
63
|
-
developerSecret,
|
|
64
|
-
userId,
|
|
65
|
-
receiptId,
|
|
66
|
-
useSandbox = true,
|
|
67
|
-
}: {
|
|
68
|
-
developerSecret: string;
|
|
69
|
-
userId: string;
|
|
70
|
-
receiptId: string;
|
|
71
|
-
useSandbox: boolean;
|
|
72
|
-
}): Promise<ReceiptType> => {
|
|
73
|
-
const sandBoxUrl = useSandbox ? 'sandbox/' : '';
|
|
74
|
-
const url = `https://appstore-sdk.amazon.com/${sandBoxUrl}version/1.0/verifyReceiptId/developer/${developerSecret}/user/${userId}/receiptId/${receiptId}`;
|
|
75
|
-
|
|
76
|
-
return await enhancedFetch<ReceiptType>(url);
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Returns the status of verifying app's license @see AmazonLicensingStatus
|
|
81
|
-
*/
|
|
82
|
-
export const verifyLicense = async (): Promise<AmazonLicensingStatus> =>
|
|
83
|
-
AmazonModule.verifyLicense();
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Deep link to subscriptions screen on Android.
|
|
87
|
-
* @param {string} sku The product's SKU (on Android)
|
|
88
|
-
* @returns {Promise<void>}
|
|
89
|
-
*/
|
|
90
|
-
export const deepLinkToSubscriptionsAmazon = async ({
|
|
91
|
-
isAmazonDevice,
|
|
92
|
-
}: {
|
|
93
|
-
isAmazonDevice: boolean;
|
|
94
|
-
}): Promise<void> => AmazonModule.deepLinkToSubscriptions(isAmazonDevice);
|
package/src/modules/android.ts
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import {Linking, NativeModules} from 'react-native';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
checkNativeAndroidAvailable,
|
|
5
|
-
getAndroidModule,
|
|
6
|
-
isAndroid,
|
|
7
|
-
} from '../internal';
|
|
8
|
-
import {
|
|
9
|
-
InstallSourceAndroid,
|
|
10
|
-
Product,
|
|
11
|
-
ProductType,
|
|
12
|
-
Purchase,
|
|
13
|
-
PurchaseResult,
|
|
14
|
-
ReplacementModesAndroid,
|
|
15
|
-
Sku,
|
|
16
|
-
} from '../types';
|
|
17
|
-
import type * as Android from '../types/android';
|
|
18
|
-
|
|
19
|
-
import type {NativeModuleProps} from './common';
|
|
20
|
-
|
|
21
|
-
const {RNIapModule} = NativeModules;
|
|
22
|
-
|
|
23
|
-
type FlushFailedPurchasesCachedAsPending = () => Promise<boolean>;
|
|
24
|
-
|
|
25
|
-
type GetItemsByType = <T = Product>(
|
|
26
|
-
type: ProductType,
|
|
27
|
-
skus: Sku[],
|
|
28
|
-
) => Promise<T[]>;
|
|
29
|
-
|
|
30
|
-
type GetAvailableItemsByType = <T = Purchase>(
|
|
31
|
-
type: ProductType,
|
|
32
|
-
) => Promise<T[]>;
|
|
33
|
-
|
|
34
|
-
type GetPurchaseHistoryByType = <T = Purchase>(
|
|
35
|
-
type: ProductType,
|
|
36
|
-
) => Promise<T[]>;
|
|
37
|
-
|
|
38
|
-
export type BuyItemByType = (
|
|
39
|
-
type: string,
|
|
40
|
-
skus: Sku[],
|
|
41
|
-
purchaseToken: string | undefined,
|
|
42
|
-
replacementModeAndroid: ReplacementModesAndroid | -1,
|
|
43
|
-
obfuscatedAccountId: string | undefined,
|
|
44
|
-
obfuscatedProfileId: string | undefined,
|
|
45
|
-
subscriptionOffers: string[],
|
|
46
|
-
isOfferPersonalized: boolean,
|
|
47
|
-
) => Promise<Purchase>;
|
|
48
|
-
|
|
49
|
-
type AcknowledgePurchase = (
|
|
50
|
-
purchaseToken: string,
|
|
51
|
-
developerPayloadAndroid?: string,
|
|
52
|
-
) => Promise<PurchaseResult | boolean>;
|
|
53
|
-
|
|
54
|
-
type ConsumeProduct = (
|
|
55
|
-
purchaseToken: string,
|
|
56
|
-
developerPayloadAndroid?: string,
|
|
57
|
-
) => Promise<PurchaseResult | boolean>;
|
|
58
|
-
|
|
59
|
-
type StartListening = () => Promise<void>;
|
|
60
|
-
type GetPackageName = () => Promise<string>;
|
|
61
|
-
type GetStorefront = () => Promise<string>;
|
|
62
|
-
type GetAvailableItems = () => Promise<Purchase[]>;
|
|
63
|
-
|
|
64
|
-
export interface AndroidModuleProps extends NativeModuleProps {
|
|
65
|
-
flushFailedPurchasesCachedAsPending: FlushFailedPurchasesCachedAsPending;
|
|
66
|
-
getItemsByType: GetItemsByType;
|
|
67
|
-
getAvailableItemsByType: GetAvailableItemsByType;
|
|
68
|
-
getPurchaseHistoryByType: GetPurchaseHistoryByType;
|
|
69
|
-
buyItemByType: BuyItemByType;
|
|
70
|
-
acknowledgePurchase: AcknowledgePurchase;
|
|
71
|
-
consumeProduct: ConsumeProduct;
|
|
72
|
-
/** @deprecated to be renamed to sendUnconsumedPurchases if not removed completely */
|
|
73
|
-
startListening: StartListening;
|
|
74
|
-
getPackageName: GetPackageName;
|
|
75
|
-
getStorefront: GetStorefront;
|
|
76
|
-
isFeatureSupported: (feature: Android.FeatureType) => Promise<boolean>;
|
|
77
|
-
getAvailableItems?: GetAvailableItems;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export const AndroidModule = NativeModules.RNIapModule as AndroidModuleProps;
|
|
81
|
-
|
|
82
|
-
export const getInstallSourceAndroid = (): InstallSourceAndroid => {
|
|
83
|
-
return RNIapModule
|
|
84
|
-
? InstallSourceAndroid.GOOGLE_PLAY
|
|
85
|
-
: InstallSourceAndroid.AMAZON;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Deep link to subscriptions screen on Android.
|
|
90
|
-
* @param {string} sku The product's SKU (on Android)
|
|
91
|
-
* @returns {Promise<void>}
|
|
92
|
-
*/
|
|
93
|
-
export const deepLinkToSubscriptionsAndroid = async ({
|
|
94
|
-
sku,
|
|
95
|
-
}: {
|
|
96
|
-
sku: Sku;
|
|
97
|
-
}): Promise<void> => {
|
|
98
|
-
checkNativeAndroidAvailable();
|
|
99
|
-
|
|
100
|
-
return Linking.openURL(
|
|
101
|
-
`https://play.google.com/store/account/subscriptions?package=${await RNIapModule.getPackageName()}&sku=${sku}`,
|
|
102
|
-
);
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Validate receipt for Android. NOTE: This method is here for debugging purposes only. Including
|
|
107
|
-
* your access token in the binary you ship to users is potentially dangerous.
|
|
108
|
-
* Use server side validation instead for your production builds
|
|
109
|
-
* @param {string} packageName package name of your app.
|
|
110
|
-
* @param {string} productId product id for your in app product.
|
|
111
|
-
* @param {string} productToken token for your purchase.
|
|
112
|
-
* @param {string} accessToken accessToken from googleApis.
|
|
113
|
-
* @param {boolean} isSub whether this is subscription or inapp. `true` for subscription.
|
|
114
|
-
* @returns {Promise<object>}
|
|
115
|
-
*/
|
|
116
|
-
export const validateReceiptAndroid = async ({
|
|
117
|
-
packageName,
|
|
118
|
-
productId,
|
|
119
|
-
productToken,
|
|
120
|
-
accessToken,
|
|
121
|
-
isSub,
|
|
122
|
-
}: {
|
|
123
|
-
packageName: string;
|
|
124
|
-
productId: string;
|
|
125
|
-
productToken: string;
|
|
126
|
-
accessToken: string;
|
|
127
|
-
isSub?: boolean;
|
|
128
|
-
}): Promise<Android.ReceiptType> => {
|
|
129
|
-
const type = isSub ? 'subscriptions' : 'products';
|
|
130
|
-
|
|
131
|
-
const url =
|
|
132
|
-
'https://androidpublisher.googleapis.com/androidpublisher/v3/applications' +
|
|
133
|
-
`/${packageName}/purchases/${type}/${productId}` +
|
|
134
|
-
`/tokens/${productToken}?access_token=${accessToken}`;
|
|
135
|
-
|
|
136
|
-
const response = await fetch(url, {
|
|
137
|
-
method: 'GET',
|
|
138
|
-
headers: {
|
|
139
|
-
'Content-Type': 'application/json',
|
|
140
|
-
},
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
if (!response.ok) {
|
|
144
|
-
throw Object.assign(new Error(response.statusText), {
|
|
145
|
-
statusCode: response.status,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return response.json();
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Acknowledge a product (on Android.) No-op on iOS.
|
|
154
|
-
* @param {string} token The product's token (on Android)
|
|
155
|
-
* @returns {Promise<PurchaseResult | void>}
|
|
156
|
-
*/
|
|
157
|
-
export const acknowledgePurchaseAndroid = ({
|
|
158
|
-
token,
|
|
159
|
-
developerPayload,
|
|
160
|
-
}: {
|
|
161
|
-
token: string;
|
|
162
|
-
developerPayload?: string;
|
|
163
|
-
}): Promise<PurchaseResult | boolean | void> => {
|
|
164
|
-
return getAndroidModule().acknowledgePurchase(token, developerPayload);
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Acknowledge a product (on Android.) No-op on iOS.
|
|
169
|
-
* @param {Android.FeatureType} feature to be checked
|
|
170
|
-
* @returns {Promise<boolean>}
|
|
171
|
-
*/
|
|
172
|
-
export const isFeatureSupported = (
|
|
173
|
-
feature: Android.FeatureType,
|
|
174
|
-
): Promise<boolean> => {
|
|
175
|
-
if (!(isAndroid && RNIapModule)) {
|
|
176
|
-
return Promise.reject('This is only available on Android clients');
|
|
177
|
-
}
|
|
178
|
-
return AndroidModule.isFeatureSupported(feature);
|
|
179
|
-
};
|
package/src/modules/common.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Common interface for all native modules (iOS — AppStore, Android — PlayStore and Amazon).
|
|
3
|
-
*/
|
|
4
|
-
export interface NativeModuleProps {
|
|
5
|
-
/** Required method to start a payment provider connection */
|
|
6
|
-
initConnection(): Promise<boolean>;
|
|
7
|
-
|
|
8
|
-
/** Required method to end the payment provider connection */
|
|
9
|
-
endConnection(): Promise<boolean>;
|
|
10
|
-
|
|
11
|
-
/** addListener for NativeEventEmitter */
|
|
12
|
-
addListener(eventType: string): void;
|
|
13
|
-
|
|
14
|
-
/** removeListeners for NativeEventEmitter */
|
|
15
|
-
removeListeners(count: number): void;
|
|
16
|
-
}
|
package/src/modules/index.ts
DELETED