react-native-iap 15.4.0-rc.3 → 15.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -25
- package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +250 -168
- package/android/src/main/java/com/margelo/nitro/iap/ProductSerialization.kt +98 -0
- package/ios/HybridRnIap.swift +19 -1
- package/ios/RnIapHelper.swift +30 -2
- package/lib/module/hooks/useIAP.js +19 -3
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +104 -18
- 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 +67 -6
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/type-bridge.js +22 -3
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/module/vega-adapter.js +24 -2
- package/lib/module/vega-adapter.js.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +25 -2
- 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 +79 -9
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +223 -35
- package/lib/typescript/src/types.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/nitrogen/generated/android/NitroIap+autolinking.cmake +3 -0
- 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 +3 -0
- 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 +45 -5
- package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +72 -0
- package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +10 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +118 -3
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -1
- 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 +7 -1
- package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +66 -0
- package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +18 -3
- package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +63 -0
- package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +72 -0
- 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 +10 -1
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +5 -1
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +13 -1
- package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +7 -0
- package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +16 -1
- package/nitrogen/generated/android/c++/JProductType.hpp +58 -0
- package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +61 -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_DeveloperBillingOptionParamsAndroid.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +78 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +2 -0
- 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_NitroRequestPurchaseAndroid.hpp +7 -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 +47 -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 +13 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +13 -1
- 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 +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +10 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +11 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +8 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ProductType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubResponseCodeAndroid.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +53 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +24 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +382 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +48 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +74 -2
- 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 +4 -1
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +78 -2
- 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/NitroRequestPurchaseAndroid.swift +75 -1
- package/nitrogen/generated/ios/swift/ProductType.swift +40 -0
- package/nitrogen/generated/ios/swift/SubResponseCodeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +18 -0
- package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +18 -0
- 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 +24 -6
- 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 +25 -1
- 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 +5 -1
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +13 -1
- package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +12 -1
- package/nitrogen/generated/shared/c++/ProductType.hpp +76 -0
- package/nitrogen/generated/shared/c++/SubResponseCodeAndroid.hpp +80 -0
- package/openiap-versions.json +3 -3
- package/package.json +1 -1
- package/src/hooks/useIAP.ts +63 -0
- package/src/index.kepler.ts +9 -0
- package/src/index.ts +223 -95
- package/src/specs/RnIap.nitro.ts +116 -8
- package/src/types.ts +238 -35
- package/src/utils/type-bridge.ts +26 -2
- package/src/vega-adapter.ts +46 -11
|
@@ -54,6 +54,7 @@ namespace margelo::nitro::iap {
|
|
|
54
54
|
std::string id SWIFT_PRIVATE;
|
|
55
55
|
std::string title SWIFT_PRIVATE;
|
|
56
56
|
std::string description SWIFT_PRIVATE;
|
|
57
|
+
std::optional<std::variant<nitro::NullType, std::string>> debugDescription SWIFT_PRIVATE;
|
|
57
58
|
std::string type SWIFT_PRIVATE;
|
|
58
59
|
std::optional<std::variant<nitro::NullType, std::string>> displayName SWIFT_PRIVATE;
|
|
59
60
|
std::optional<std::string> displayPrice SWIFT_PRIVATE;
|
|
@@ -63,6 +64,8 @@ namespace margelo::nitro::iap {
|
|
|
63
64
|
std::optional<std::variant<nitro::NullType, std::string>> typeIOS SWIFT_PRIVATE;
|
|
64
65
|
std::optional<std::variant<nitro::NullType, bool>> isFamilyShareableIOS SWIFT_PRIVATE;
|
|
65
66
|
std::optional<std::variant<nitro::NullType, std::string>> jsonRepresentationIOS SWIFT_PRIVATE;
|
|
67
|
+
std::optional<std::variant<nitro::NullType, std::string>> pricingTermsIOS SWIFT_PRIVATE;
|
|
68
|
+
std::optional<std::variant<nitro::NullType, std::string>> subscriptionInfoIOS SWIFT_PRIVATE;
|
|
66
69
|
std::optional<std::variant<nitro::NullType, std::string>> discountsIOS SWIFT_PRIVATE;
|
|
67
70
|
std::optional<std::variant<nitro::NullType, std::string>> introductoryPriceIOS SWIFT_PRIVATE;
|
|
68
71
|
std::optional<std::variant<nitro::NullType, double>> introductoryPriceAsAmountIOS SWIFT_PRIVATE;
|
|
@@ -88,7 +91,7 @@ namespace margelo::nitro::iap {
|
|
|
88
91
|
|
|
89
92
|
public:
|
|
90
93
|
NitroProduct() = default;
|
|
91
|
-
explicit NitroProduct(std::string id, std::string title, std::string description, std::string type, std::optional<std::variant<nitro::NullType, std::string>> displayName, std::optional<std::string> displayPrice, std::optional<std::string> currency, std::optional<std::variant<nitro::NullType, double>> price, IapPlatform platform, std::optional<std::variant<nitro::NullType, std::string>> typeIOS, std::optional<std::variant<nitro::NullType, bool>> isFamilyShareableIOS, std::optional<std::variant<nitro::NullType, std::string>> jsonRepresentationIOS, std::optional<std::variant<nitro::NullType, std::string>> discountsIOS, std::optional<std::variant<nitro::NullType, std::string>> introductoryPriceIOS, std::optional<std::variant<nitro::NullType, double>> introductoryPriceAsAmountIOS, std::optional<std::variant<nitro::NullType, double>> introductoryPriceNumberOfPeriodsIOS, PaymentModeIOS introductoryPricePaymentModeIOS, std::optional<std::variant<nitro::NullType, std::string>> introductoryPriceSubscriptionPeriodIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionGroupIdIOS, std::optional<std::variant<nitro::NullType, double>> subscriptionPeriodNumberIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionPeriodUnitIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionOffers, std::optional<std::variant<nitro::NullType, std::string>> discountOffers, std::optional<std::variant<nitro::NullType, std::string>> nameAndroid, std::optional<std::variant<nitro::NullType, std::string>> originalPriceAndroid, std::optional<std::variant<nitro::NullType, double>> originalPriceAmountMicrosAndroid, std::optional<std::variant<nitro::NullType, double>> introductoryPriceCyclesAndroid, std::optional<std::variant<nitro::NullType, std::string>> introductoryPricePeriodAndroid, std::optional<std::variant<nitro::NullType, double>> introductoryPriceValueAndroid, std::optional<std::variant<nitro::NullType, std::string>> subscriptionPeriodAndroid, std::optional<std::variant<nitro::NullType, std::string>> freeTrialPeriodAndroid, std::optional<std::variant<nitro::NullType, std::string>> subscriptionOfferDetailsAndroid, std::optional<std::variant<nitro::NullType, std::vector<NitroOneTimePurchaseOfferDetail>>> oneTimePurchaseOfferDetailsAndroid, std::optional<std::variant<nitro::NullType, std::string>> productStatusAndroid): id(id), title(title), description(description), type(type), displayName(displayName), displayPrice(displayPrice), currency(currency), price(price), platform(platform), typeIOS(typeIOS), isFamilyShareableIOS(isFamilyShareableIOS), jsonRepresentationIOS(jsonRepresentationIOS), discountsIOS(discountsIOS), introductoryPriceIOS(introductoryPriceIOS), introductoryPriceAsAmountIOS(introductoryPriceAsAmountIOS), introductoryPriceNumberOfPeriodsIOS(introductoryPriceNumberOfPeriodsIOS), introductoryPricePaymentModeIOS(introductoryPricePaymentModeIOS), introductoryPriceSubscriptionPeriodIOS(introductoryPriceSubscriptionPeriodIOS), subscriptionGroupIdIOS(subscriptionGroupIdIOS), subscriptionPeriodNumberIOS(subscriptionPeriodNumberIOS), subscriptionPeriodUnitIOS(subscriptionPeriodUnitIOS), subscriptionOffers(subscriptionOffers), discountOffers(discountOffers), nameAndroid(nameAndroid), originalPriceAndroid(originalPriceAndroid), originalPriceAmountMicrosAndroid(originalPriceAmountMicrosAndroid), introductoryPriceCyclesAndroid(introductoryPriceCyclesAndroid), introductoryPricePeriodAndroid(introductoryPricePeriodAndroid), introductoryPriceValueAndroid(introductoryPriceValueAndroid), subscriptionPeriodAndroid(subscriptionPeriodAndroid), freeTrialPeriodAndroid(freeTrialPeriodAndroid), subscriptionOfferDetailsAndroid(subscriptionOfferDetailsAndroid), oneTimePurchaseOfferDetailsAndroid(oneTimePurchaseOfferDetailsAndroid), productStatusAndroid(productStatusAndroid) {}
|
|
94
|
+
explicit NitroProduct(std::string id, std::string title, std::string description, std::optional<std::variant<nitro::NullType, std::string>> debugDescription, std::string type, std::optional<std::variant<nitro::NullType, std::string>> displayName, std::optional<std::string> displayPrice, std::optional<std::string> currency, std::optional<std::variant<nitro::NullType, double>> price, IapPlatform platform, std::optional<std::variant<nitro::NullType, std::string>> typeIOS, std::optional<std::variant<nitro::NullType, bool>> isFamilyShareableIOS, std::optional<std::variant<nitro::NullType, std::string>> jsonRepresentationIOS, std::optional<std::variant<nitro::NullType, std::string>> pricingTermsIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionInfoIOS, std::optional<std::variant<nitro::NullType, std::string>> discountsIOS, std::optional<std::variant<nitro::NullType, std::string>> introductoryPriceIOS, std::optional<std::variant<nitro::NullType, double>> introductoryPriceAsAmountIOS, std::optional<std::variant<nitro::NullType, double>> introductoryPriceNumberOfPeriodsIOS, PaymentModeIOS introductoryPricePaymentModeIOS, std::optional<std::variant<nitro::NullType, std::string>> introductoryPriceSubscriptionPeriodIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionGroupIdIOS, std::optional<std::variant<nitro::NullType, double>> subscriptionPeriodNumberIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionPeriodUnitIOS, std::optional<std::variant<nitro::NullType, std::string>> subscriptionOffers, std::optional<std::variant<nitro::NullType, std::string>> discountOffers, std::optional<std::variant<nitro::NullType, std::string>> nameAndroid, std::optional<std::variant<nitro::NullType, std::string>> originalPriceAndroid, std::optional<std::variant<nitro::NullType, double>> originalPriceAmountMicrosAndroid, std::optional<std::variant<nitro::NullType, double>> introductoryPriceCyclesAndroid, std::optional<std::variant<nitro::NullType, std::string>> introductoryPricePeriodAndroid, std::optional<std::variant<nitro::NullType, double>> introductoryPriceValueAndroid, std::optional<std::variant<nitro::NullType, std::string>> subscriptionPeriodAndroid, std::optional<std::variant<nitro::NullType, std::string>> freeTrialPeriodAndroid, std::optional<std::variant<nitro::NullType, std::string>> subscriptionOfferDetailsAndroid, std::optional<std::variant<nitro::NullType, std::vector<NitroOneTimePurchaseOfferDetail>>> oneTimePurchaseOfferDetailsAndroid, std::optional<std::variant<nitro::NullType, std::string>> productStatusAndroid): id(id), title(title), description(description), debugDescription(debugDescription), type(type), displayName(displayName), displayPrice(displayPrice), currency(currency), price(price), platform(platform), typeIOS(typeIOS), isFamilyShareableIOS(isFamilyShareableIOS), jsonRepresentationIOS(jsonRepresentationIOS), pricingTermsIOS(pricingTermsIOS), subscriptionInfoIOS(subscriptionInfoIOS), discountsIOS(discountsIOS), introductoryPriceIOS(introductoryPriceIOS), introductoryPriceAsAmountIOS(introductoryPriceAsAmountIOS), introductoryPriceNumberOfPeriodsIOS(introductoryPriceNumberOfPeriodsIOS), introductoryPricePaymentModeIOS(introductoryPricePaymentModeIOS), introductoryPriceSubscriptionPeriodIOS(introductoryPriceSubscriptionPeriodIOS), subscriptionGroupIdIOS(subscriptionGroupIdIOS), subscriptionPeriodNumberIOS(subscriptionPeriodNumberIOS), subscriptionPeriodUnitIOS(subscriptionPeriodUnitIOS), subscriptionOffers(subscriptionOffers), discountOffers(discountOffers), nameAndroid(nameAndroid), originalPriceAndroid(originalPriceAndroid), originalPriceAmountMicrosAndroid(originalPriceAmountMicrosAndroid), introductoryPriceCyclesAndroid(introductoryPriceCyclesAndroid), introductoryPricePeriodAndroid(introductoryPricePeriodAndroid), introductoryPriceValueAndroid(introductoryPriceValueAndroid), subscriptionPeriodAndroid(subscriptionPeriodAndroid), freeTrialPeriodAndroid(freeTrialPeriodAndroid), subscriptionOfferDetailsAndroid(subscriptionOfferDetailsAndroid), oneTimePurchaseOfferDetailsAndroid(oneTimePurchaseOfferDetailsAndroid), productStatusAndroid(productStatusAndroid) {}
|
|
92
95
|
|
|
93
96
|
public:
|
|
94
97
|
friend bool operator==(const NitroProduct& lhs, const NitroProduct& rhs) = default;
|
|
@@ -107,6 +110,7 @@ namespace margelo::nitro {
|
|
|
107
110
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "id"))),
|
|
108
111
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title"))),
|
|
109
112
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description"))),
|
|
113
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "debugDescription"))),
|
|
110
114
|
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type"))),
|
|
111
115
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "displayName"))),
|
|
112
116
|
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "displayPrice"))),
|
|
@@ -116,6 +120,8 @@ namespace margelo::nitro {
|
|
|
116
120
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "typeIOS"))),
|
|
117
121
|
JSIConverter<std::optional<std::variant<nitro::NullType, bool>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isFamilyShareableIOS"))),
|
|
118
122
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "jsonRepresentationIOS"))),
|
|
123
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "pricingTermsIOS"))),
|
|
124
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionInfoIOS"))),
|
|
119
125
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "discountsIOS"))),
|
|
120
126
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceIOS"))),
|
|
121
127
|
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceAsAmountIOS"))),
|
|
@@ -145,6 +151,7 @@ namespace margelo::nitro {
|
|
|
145
151
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "id"), JSIConverter<std::string>::toJSI(runtime, arg.id));
|
|
146
152
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "title"), JSIConverter<std::string>::toJSI(runtime, arg.title));
|
|
147
153
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "description"), JSIConverter<std::string>::toJSI(runtime, arg.description));
|
|
154
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "debugDescription"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.debugDescription));
|
|
148
155
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "type"), JSIConverter<std::string>::toJSI(runtime, arg.type));
|
|
149
156
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "displayName"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.displayName));
|
|
150
157
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "displayPrice"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.displayPrice));
|
|
@@ -154,6 +161,8 @@ namespace margelo::nitro {
|
|
|
154
161
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "typeIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.typeIOS));
|
|
155
162
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "isFamilyShareableIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, bool>>>::toJSI(runtime, arg.isFamilyShareableIOS));
|
|
156
163
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "jsonRepresentationIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.jsonRepresentationIOS));
|
|
164
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "pricingTermsIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.pricingTermsIOS));
|
|
165
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "subscriptionInfoIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.subscriptionInfoIOS));
|
|
157
166
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "discountsIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.discountsIOS));
|
|
158
167
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.introductoryPriceIOS));
|
|
159
168
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceAsAmountIOS"), JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.introductoryPriceAsAmountIOS));
|
|
@@ -189,6 +198,7 @@ namespace margelo::nitro {
|
|
|
189
198
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "id")))) return false;
|
|
190
199
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "title")))) return false;
|
|
191
200
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "description")))) return false;
|
|
201
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "debugDescription")))) return false;
|
|
192
202
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type")))) return false;
|
|
193
203
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "displayName")))) return false;
|
|
194
204
|
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "displayPrice")))) return false;
|
|
@@ -198,6 +208,8 @@ namespace margelo::nitro {
|
|
|
198
208
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "typeIOS")))) return false;
|
|
199
209
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, bool>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isFamilyShareableIOS")))) return false;
|
|
200
210
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "jsonRepresentationIOS")))) return false;
|
|
211
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "pricingTermsIOS")))) return false;
|
|
212
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionInfoIOS")))) return false;
|
|
201
213
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "discountsIOS")))) return false;
|
|
202
214
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceIOS")))) return false;
|
|
203
215
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "introductoryPriceAsAmountIOS")))) return false;
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
|
|
31
31
|
// Forward declaration of `AndroidSubscriptionOfferInput` to properly resolve imports.
|
|
32
32
|
namespace margelo::nitro::iap { struct AndroidSubscriptionOfferInput; }
|
|
33
|
+
// Forward declaration of `DeveloperBillingOptionParamsAndroid` to properly resolve imports.
|
|
34
|
+
namespace margelo::nitro::iap { struct DeveloperBillingOptionParamsAndroid; }
|
|
33
35
|
// Forward declaration of `SubscriptionProductReplacementParamsAndroid` to properly resolve imports.
|
|
34
36
|
namespace margelo::nitro::iap { struct SubscriptionProductReplacementParamsAndroid; }
|
|
35
37
|
|
|
@@ -39,6 +41,7 @@ namespace margelo::nitro::iap { struct SubscriptionProductReplacementParamsAndro
|
|
|
39
41
|
#include <variant>
|
|
40
42
|
#include <optional>
|
|
41
43
|
#include "AndroidSubscriptionOfferInput.hpp"
|
|
44
|
+
#include "DeveloperBillingOptionParamsAndroid.hpp"
|
|
42
45
|
#include "SubscriptionProductReplacementParamsAndroid.hpp"
|
|
43
46
|
|
|
44
47
|
namespace margelo::nitro::iap {
|
|
@@ -56,11 +59,13 @@ namespace margelo::nitro::iap {
|
|
|
56
59
|
std::optional<std::variant<nitro::NullType, std::vector<AndroidSubscriptionOfferInput>>> subscriptionOffers SWIFT_PRIVATE;
|
|
57
60
|
std::optional<std::variant<nitro::NullType, double>> replacementMode SWIFT_PRIVATE;
|
|
58
61
|
std::optional<std::variant<nitro::NullType, std::string>> purchaseToken SWIFT_PRIVATE;
|
|
62
|
+
std::optional<std::variant<nitro::NullType, std::string>> originalExternalTransactionId SWIFT_PRIVATE;
|
|
63
|
+
std::optional<std::variant<nitro::NullType, DeveloperBillingOptionParamsAndroid>> developerBillingOption SWIFT_PRIVATE;
|
|
59
64
|
std::optional<std::variant<nitro::NullType, SubscriptionProductReplacementParamsAndroid>> subscriptionProductReplacementParams SWIFT_PRIVATE;
|
|
60
65
|
|
|
61
66
|
public:
|
|
62
67
|
NitroRequestPurchaseAndroid() = default;
|
|
63
|
-
explicit NitroRequestPurchaseAndroid(std::vector<std::string> skus, std::optional<std::variant<nitro::NullType, std::string>> obfuscatedAccountId, std::optional<std::variant<nitro::NullType, std::string>> obfuscatedProfileId, std::optional<std::variant<nitro::NullType, bool>> isOfferPersonalized, std::optional<std::variant<nitro::NullType, std::string>> offerToken, std::optional<std::variant<nitro::NullType, std::vector<AndroidSubscriptionOfferInput>>> subscriptionOffers, std::optional<std::variant<nitro::NullType, double>> replacementMode, std::optional<std::variant<nitro::NullType, std::string>> purchaseToken, std::optional<std::variant<nitro::NullType, SubscriptionProductReplacementParamsAndroid>> subscriptionProductReplacementParams): skus(skus), obfuscatedAccountId(obfuscatedAccountId), obfuscatedProfileId(obfuscatedProfileId), isOfferPersonalized(isOfferPersonalized), offerToken(offerToken), subscriptionOffers(subscriptionOffers), replacementMode(replacementMode), purchaseToken(purchaseToken), subscriptionProductReplacementParams(subscriptionProductReplacementParams) {}
|
|
68
|
+
explicit NitroRequestPurchaseAndroid(std::vector<std::string> skus, std::optional<std::variant<nitro::NullType, std::string>> obfuscatedAccountId, std::optional<std::variant<nitro::NullType, std::string>> obfuscatedProfileId, std::optional<std::variant<nitro::NullType, bool>> isOfferPersonalized, std::optional<std::variant<nitro::NullType, std::string>> offerToken, std::optional<std::variant<nitro::NullType, std::vector<AndroidSubscriptionOfferInput>>> subscriptionOffers, std::optional<std::variant<nitro::NullType, double>> replacementMode, std::optional<std::variant<nitro::NullType, std::string>> purchaseToken, std::optional<std::variant<nitro::NullType, std::string>> originalExternalTransactionId, std::optional<std::variant<nitro::NullType, DeveloperBillingOptionParamsAndroid>> developerBillingOption, std::optional<std::variant<nitro::NullType, SubscriptionProductReplacementParamsAndroid>> subscriptionProductReplacementParams): skus(skus), obfuscatedAccountId(obfuscatedAccountId), obfuscatedProfileId(obfuscatedProfileId), isOfferPersonalized(isOfferPersonalized), offerToken(offerToken), subscriptionOffers(subscriptionOffers), replacementMode(replacementMode), purchaseToken(purchaseToken), originalExternalTransactionId(originalExternalTransactionId), developerBillingOption(developerBillingOption), subscriptionProductReplacementParams(subscriptionProductReplacementParams) {}
|
|
64
69
|
|
|
65
70
|
public:
|
|
66
71
|
friend bool operator==(const NitroRequestPurchaseAndroid& lhs, const NitroRequestPurchaseAndroid& rhs) = default;
|
|
@@ -84,6 +89,8 @@ namespace margelo::nitro {
|
|
|
84
89
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::vector<margelo::nitro::iap::AndroidSubscriptionOfferInput>>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionOffers"))),
|
|
85
90
|
JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "replacementMode"))),
|
|
86
91
|
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "purchaseToken"))),
|
|
92
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "originalExternalTransactionId"))),
|
|
93
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::DeveloperBillingOptionParamsAndroid>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "developerBillingOption"))),
|
|
87
94
|
JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::SubscriptionProductReplacementParamsAndroid>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionProductReplacementParams")))
|
|
88
95
|
);
|
|
89
96
|
}
|
|
@@ -97,6 +104,8 @@ namespace margelo::nitro {
|
|
|
97
104
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "subscriptionOffers"), JSIConverter<std::optional<std::variant<nitro::NullType, std::vector<margelo::nitro::iap::AndroidSubscriptionOfferInput>>>>::toJSI(runtime, arg.subscriptionOffers));
|
|
98
105
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "replacementMode"), JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::toJSI(runtime, arg.replacementMode));
|
|
99
106
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "purchaseToken"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.purchaseToken));
|
|
107
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "originalExternalTransactionId"), JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.originalExternalTransactionId));
|
|
108
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "developerBillingOption"), JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::DeveloperBillingOptionParamsAndroid>>>::toJSI(runtime, arg.developerBillingOption));
|
|
100
109
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "subscriptionProductReplacementParams"), JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::SubscriptionProductReplacementParamsAndroid>>>::toJSI(runtime, arg.subscriptionProductReplacementParams));
|
|
101
110
|
return obj;
|
|
102
111
|
}
|
|
@@ -116,6 +125,8 @@ namespace margelo::nitro {
|
|
|
116
125
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::vector<margelo::nitro::iap::AndroidSubscriptionOfferInput>>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionOffers")))) return false;
|
|
117
126
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, double>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "replacementMode")))) return false;
|
|
118
127
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "purchaseToken")))) return false;
|
|
128
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "originalExternalTransactionId")))) return false;
|
|
129
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::DeveloperBillingOptionParamsAndroid>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "developerBillingOption")))) return false;
|
|
119
130
|
if (!JSIConverter<std::optional<std::variant<nitro::NullType, margelo::nitro::iap::SubscriptionProductReplacementParamsAndroid>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "subscriptionProductReplacementParams")))) return false;
|
|
120
131
|
return true;
|
|
121
132
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// ProductType.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
|
+
#if __has_include(<NitroModules/NitroHash.hpp>)
|
|
11
|
+
#include <NitroModules/NitroHash.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
16
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
21
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
namespace margelo::nitro::iap {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (ProductType).
|
|
30
|
+
*/
|
|
31
|
+
enum class ProductType {
|
|
32
|
+
SUBS SWIFT_NAME(subs) = 0,
|
|
33
|
+
IN_APP SWIFT_NAME(inApp) = 1,
|
|
34
|
+
} CLOSED_ENUM;
|
|
35
|
+
|
|
36
|
+
} // namespace margelo::nitro::iap
|
|
37
|
+
|
|
38
|
+
namespace margelo::nitro {
|
|
39
|
+
|
|
40
|
+
// C++ ProductType <> JS ProductType (union)
|
|
41
|
+
template <>
|
|
42
|
+
struct JSIConverter<margelo::nitro::iap::ProductType> final {
|
|
43
|
+
static inline margelo::nitro::iap::ProductType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
44
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
45
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
46
|
+
case hashString("subs"): return margelo::nitro::iap::ProductType::SUBS;
|
|
47
|
+
case hashString("in-app"): return margelo::nitro::iap::ProductType::IN_APP;
|
|
48
|
+
default: [[unlikely]]
|
|
49
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum ProductType - invalid value!");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::iap::ProductType arg) {
|
|
53
|
+
switch (arg) {
|
|
54
|
+
case margelo::nitro::iap::ProductType::SUBS: return JSIConverter<std::string>::toJSI(runtime, "subs");
|
|
55
|
+
case margelo::nitro::iap::ProductType::IN_APP: return JSIConverter<std::string>::toJSI(runtime, "in-app");
|
|
56
|
+
default: [[unlikely]]
|
|
57
|
+
throw std::invalid_argument("Cannot convert ProductType to JS - invalid value: "
|
|
58
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
62
|
+
if (!value.isString()) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
66
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
67
|
+
case hashString("subs"):
|
|
68
|
+
case hashString("in-app"):
|
|
69
|
+
return true;
|
|
70
|
+
default:
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// SubResponseCodeAndroid.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
|
+
#if __has_include(<NitroModules/NitroHash.hpp>)
|
|
11
|
+
#include <NitroModules/NitroHash.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
16
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
21
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
namespace margelo::nitro::iap {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (SubResponseCodeAndroid).
|
|
30
|
+
*/
|
|
31
|
+
enum class SubResponseCodeAndroid {
|
|
32
|
+
NO_APPLICABLE_SUB_RESPONSE_CODE SWIFT_NAME(noApplicableSubResponseCode) = 0,
|
|
33
|
+
PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS SWIFT_NAME(paymentDeclinedDueToInsufficientFunds) = 1,
|
|
34
|
+
USER_INELIGIBLE SWIFT_NAME(userIneligible) = 2,
|
|
35
|
+
} CLOSED_ENUM;
|
|
36
|
+
|
|
37
|
+
} // namespace margelo::nitro::iap
|
|
38
|
+
|
|
39
|
+
namespace margelo::nitro {
|
|
40
|
+
|
|
41
|
+
// C++ SubResponseCodeAndroid <> JS SubResponseCodeAndroid (union)
|
|
42
|
+
template <>
|
|
43
|
+
struct JSIConverter<margelo::nitro::iap::SubResponseCodeAndroid> final {
|
|
44
|
+
static inline margelo::nitro::iap::SubResponseCodeAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
45
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
46
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
47
|
+
case hashString("no-applicable-sub-response-code"): return margelo::nitro::iap::SubResponseCodeAndroid::NO_APPLICABLE_SUB_RESPONSE_CODE;
|
|
48
|
+
case hashString("payment-declined-due-to-insufficient-funds"): return margelo::nitro::iap::SubResponseCodeAndroid::PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS;
|
|
49
|
+
case hashString("user-ineligible"): return margelo::nitro::iap::SubResponseCodeAndroid::USER_INELIGIBLE;
|
|
50
|
+
default: [[unlikely]]
|
|
51
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum SubResponseCodeAndroid - invalid value!");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::iap::SubResponseCodeAndroid arg) {
|
|
55
|
+
switch (arg) {
|
|
56
|
+
case margelo::nitro::iap::SubResponseCodeAndroid::NO_APPLICABLE_SUB_RESPONSE_CODE: return JSIConverter<std::string>::toJSI(runtime, "no-applicable-sub-response-code");
|
|
57
|
+
case margelo::nitro::iap::SubResponseCodeAndroid::PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS: return JSIConverter<std::string>::toJSI(runtime, "payment-declined-due-to-insufficient-funds");
|
|
58
|
+
case margelo::nitro::iap::SubResponseCodeAndroid::USER_INELIGIBLE: return JSIConverter<std::string>::toJSI(runtime, "user-ineligible");
|
|
59
|
+
default: [[unlikely]]
|
|
60
|
+
throw std::invalid_argument("Cannot convert SubResponseCodeAndroid to JS - invalid value: "
|
|
61
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
65
|
+
if (!value.isString()) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
69
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
70
|
+
case hashString("no-applicable-sub-response-code"):
|
|
71
|
+
case hashString("payment-declined-due-to-insufficient-funds"):
|
|
72
|
+
case hashString("user-ineligible"):
|
|
73
|
+
return true;
|
|
74
|
+
default:
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
} // namespace margelo::nitro
|
package/openiap-versions.json
CHANGED
package/package.json
CHANGED
package/src/hooks/useIAP.ts
CHANGED
|
@@ -24,7 +24,14 @@ import {
|
|
|
24
24
|
checkAlternativeBillingAvailabilityAndroid,
|
|
25
25
|
showAlternativeBillingDialogAndroid,
|
|
26
26
|
createAlternativeBillingTokenAndroid,
|
|
27
|
+
getBillingChoiceInfoAndroid,
|
|
28
|
+
isBillingProgramAvailableAndroid,
|
|
29
|
+
createBillingProgramReportingDetailsAndroid,
|
|
30
|
+
launchExternalLinkAndroid,
|
|
31
|
+
showBillingProgramInformationDialogAndroid,
|
|
32
|
+
showInAppMessagesAndroid,
|
|
27
33
|
userChoiceBillingListenerAndroid,
|
|
34
|
+
developerProvidedBillingListenerAndroid,
|
|
28
35
|
subscriptionBillingIssueListener,
|
|
29
36
|
isStandardIOS,
|
|
30
37
|
} from '../';
|
|
@@ -35,7 +42,9 @@ import type {
|
|
|
35
42
|
ProductQueryType,
|
|
36
43
|
RequestPurchaseProps,
|
|
37
44
|
AlternativeBillingModeAndroid,
|
|
45
|
+
BillingChoiceScreenTypeAndroid,
|
|
38
46
|
BillingProgramAndroid,
|
|
47
|
+
DeveloperProvidedBillingDetailsAndroid,
|
|
39
48
|
UserChoiceBillingDetails,
|
|
40
49
|
VerifyPurchaseProps,
|
|
41
50
|
VerifyPurchaseResult,
|
|
@@ -50,6 +59,8 @@ import type {
|
|
|
50
59
|
PurchaseError,
|
|
51
60
|
PurchaseUpdatedListenerOptions,
|
|
52
61
|
ProductSubscription,
|
|
62
|
+
MutationField,
|
|
63
|
+
QueryField,
|
|
53
64
|
} from '../types';
|
|
54
65
|
import type {MutationFinishTransactionArgs} from '../types';
|
|
55
66
|
|
|
@@ -265,6 +276,18 @@ type UseIap = {
|
|
|
265
276
|
createAlternativeBillingTokenAndroid?: (
|
|
266
277
|
sku?: string,
|
|
267
278
|
) => Promise<string | null>;
|
|
279
|
+
/** Fetch assets and loyalty text for a developer-rendered Billing Choice screen. */
|
|
280
|
+
getBillingChoiceInfoAndroid?: QueryField<'getBillingChoiceInfoAndroid'>;
|
|
281
|
+
/** Check Billing Program availability and the configured choice renderer. */
|
|
282
|
+
isBillingProgramAvailableAndroid?: MutationField<'isBillingProgramAvailableAndroid'>;
|
|
283
|
+
/** Create Google Play reporting details for a developer billing transaction. */
|
|
284
|
+
createBillingProgramReportingDetailsAndroid?: MutationField<'createBillingProgramReportingDetailsAndroid'>;
|
|
285
|
+
/** Launch a supported Billing Program external link. */
|
|
286
|
+
launchExternalLinkAndroid?: MutationField<'launchExternalLinkAndroid'>;
|
|
287
|
+
/** Show the required Billing Choice information dialog. */
|
|
288
|
+
showBillingProgramInformationDialogAndroid?: MutationField<'showBillingProgramInformationDialogAndroid'>;
|
|
289
|
+
/** Show Play billing in-app messages. */
|
|
290
|
+
showInAppMessagesAndroid?: MutationField<'showInAppMessagesAndroid'>;
|
|
268
291
|
};
|
|
269
292
|
|
|
270
293
|
export interface UseIapOptions {
|
|
@@ -280,6 +303,13 @@ export interface UseIapOptions {
|
|
|
280
303
|
onError?: (error: Error) => void;
|
|
281
304
|
onPromotedProductIOS?: (product: Product) => void;
|
|
282
305
|
onUserChoiceBillingAndroid?: (details: UserChoiceBillingDetails) => void;
|
|
306
|
+
/**
|
|
307
|
+
* Fires when the user selects developer-provided billing in an External
|
|
308
|
+
* Payments or Google-rendered Billing Choice flow.
|
|
309
|
+
*/
|
|
310
|
+
onDeveloperProvidedBillingAndroid?: (
|
|
311
|
+
details: DeveloperProvidedBillingDetailsAndroid,
|
|
312
|
+
) => void;
|
|
283
313
|
/**
|
|
284
314
|
* Fires when an active subscription enters a billing-issue state
|
|
285
315
|
* (StoreKit 2 Message.billingIssue on iOS 18+, Purchase.isSuspended on
|
|
@@ -301,8 +331,14 @@ export interface UseIapOptions {
|
|
|
301
331
|
* Use 'user-choice-billing' for User Choice Billing (7.0+).
|
|
302
332
|
* Use 'external-offer' for External Offer program.
|
|
303
333
|
* Use 'external-payments' for Developer Provided Billing (Japan only, 8.3.0+).
|
|
334
|
+
* Use 'billing-choice' for Billing Choice (9.1.0+).
|
|
304
335
|
*/
|
|
305
336
|
enableBillingProgramAndroid?: BillingProgramAndroid;
|
|
337
|
+
/**
|
|
338
|
+
* Select who renders the Billing Choice screen (9.1.0+). Must match the
|
|
339
|
+
* choiceScreenType returned by isBillingProgramAvailableAndroid.
|
|
340
|
+
*/
|
|
341
|
+
billingChoiceScreenTypeAndroid?: BillingChoiceScreenTypeAndroid;
|
|
306
342
|
}
|
|
307
343
|
|
|
308
344
|
/**
|
|
@@ -356,6 +392,7 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
356
392
|
purchaseError?: EventSubscription;
|
|
357
393
|
promotedProductIOS?: EventSubscription;
|
|
358
394
|
userChoiceBillingAndroid?: EventSubscription;
|
|
395
|
+
developerProvidedBillingAndroid?: EventSubscription;
|
|
359
396
|
subscriptionBillingIssue?: EventSubscription;
|
|
360
397
|
}>({});
|
|
361
398
|
|
|
@@ -565,6 +602,7 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
565
602
|
| {
|
|
566
603
|
enableBillingProgramAndroid?: BillingProgramAndroid;
|
|
567
604
|
alternativeBillingModeAndroid?: AlternativeBillingModeAndroid;
|
|
605
|
+
billingChoiceScreenTypeAndroid?: BillingChoiceScreenTypeAndroid;
|
|
568
606
|
}
|
|
569
607
|
| undefined;
|
|
570
608
|
|
|
@@ -573,6 +611,12 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
573
611
|
config = {
|
|
574
612
|
enableBillingProgramAndroid:
|
|
575
613
|
optionsRef.current.enableBillingProgramAndroid,
|
|
614
|
+
...(optionsRef.current.billingChoiceScreenTypeAndroid
|
|
615
|
+
? {
|
|
616
|
+
billingChoiceScreenTypeAndroid:
|
|
617
|
+
optionsRef.current.billingChoiceScreenTypeAndroid,
|
|
618
|
+
}
|
|
619
|
+
: {}),
|
|
576
620
|
};
|
|
577
621
|
} else if (optionsRef.current?.alternativeBillingModeAndroid) {
|
|
578
622
|
config = {
|
|
@@ -644,6 +688,17 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
644
688
|
});
|
|
645
689
|
}
|
|
646
690
|
|
|
691
|
+
if (
|
|
692
|
+
Platform.OS === 'android' &&
|
|
693
|
+
optionsRef.current?.onDeveloperProvidedBillingAndroid &&
|
|
694
|
+
!subscriptionsRef.current.developerProvidedBillingAndroid
|
|
695
|
+
) {
|
|
696
|
+
subscriptionsRef.current.developerProvidedBillingAndroid =
|
|
697
|
+
developerProvidedBillingListenerAndroid((details) => {
|
|
698
|
+
optionsRef.current?.onDeveloperProvidedBillingAndroid?.(details);
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
|
|
647
702
|
// Always attach so callers that supply `onSubscriptionBillingIssue` later
|
|
648
703
|
// (after the hook has already set up listeners) still receive events.
|
|
649
704
|
if (!subscriptionsRef.current.subscriptionBillingIssue) {
|
|
@@ -660,11 +715,13 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
660
715
|
subscriptionsRef.current.purchaseError?.remove();
|
|
661
716
|
subscriptionsRef.current.promotedProductIOS?.remove();
|
|
662
717
|
subscriptionsRef.current.userChoiceBillingAndroid?.remove();
|
|
718
|
+
subscriptionsRef.current.developerProvidedBillingAndroid?.remove();
|
|
663
719
|
subscriptionsRef.current.subscriptionBillingIssue?.remove();
|
|
664
720
|
subscriptionsRef.current.purchaseUpdate = undefined;
|
|
665
721
|
subscriptionsRef.current.purchaseError = undefined;
|
|
666
722
|
subscriptionsRef.current.promotedProductIOS = undefined;
|
|
667
723
|
subscriptionsRef.current.userChoiceBillingAndroid = undefined;
|
|
724
|
+
subscriptionsRef.current.developerProvidedBillingAndroid = undefined;
|
|
668
725
|
subscriptionsRef.current.subscriptionBillingIssue = undefined;
|
|
669
726
|
}, []);
|
|
670
727
|
|
|
@@ -763,6 +820,12 @@ export function useIAP(options?: UseIapOptions): UseIap {
|
|
|
763
820
|
checkAlternativeBillingAvailabilityAndroid,
|
|
764
821
|
showAlternativeBillingDialogAndroid,
|
|
765
822
|
createAlternativeBillingTokenAndroid,
|
|
823
|
+
getBillingChoiceInfoAndroid,
|
|
824
|
+
isBillingProgramAvailableAndroid,
|
|
825
|
+
createBillingProgramReportingDetailsAndroid,
|
|
826
|
+
launchExternalLinkAndroid,
|
|
827
|
+
showBillingProgramInformationDialogAndroid,
|
|
828
|
+
showInAppMessagesAndroid,
|
|
766
829
|
}
|
|
767
830
|
: {}),
|
|
768
831
|
};
|
package/src/index.kepler.ts
CHANGED
|
@@ -293,12 +293,21 @@ export const createAlternativeBillingTokenAndroid: MutationField<
|
|
|
293
293
|
export const isBillingProgramAvailableAndroid: MutationField<
|
|
294
294
|
'isBillingProgramAvailableAndroid'
|
|
295
295
|
> = async () => unsupported('isBillingProgramAvailableAndroid');
|
|
296
|
+
export const getBillingChoiceInfoAndroid: QueryField<
|
|
297
|
+
'getBillingChoiceInfoAndroid'
|
|
298
|
+
> = async () => unsupported('getBillingChoiceInfoAndroid');
|
|
296
299
|
export const launchExternalLinkAndroid: MutationField<
|
|
297
300
|
'launchExternalLinkAndroid'
|
|
298
301
|
> = async () => unsupported('launchExternalLinkAndroid');
|
|
299
302
|
export const createBillingProgramReportingDetailsAndroid: MutationField<
|
|
300
303
|
'createBillingProgramReportingDetailsAndroid'
|
|
301
304
|
> = async () => unsupported('createBillingProgramReportingDetailsAndroid');
|
|
305
|
+
export const showBillingProgramInformationDialogAndroid: MutationField<
|
|
306
|
+
'showBillingProgramInformationDialogAndroid'
|
|
307
|
+
> = async () => unsupported('showBillingProgramInformationDialogAndroid');
|
|
308
|
+
export const showInAppMessagesAndroid: MutationField<
|
|
309
|
+
'showInAppMessagesAndroid'
|
|
310
|
+
> = async () => unsupported('showInAppMessagesAndroid');
|
|
302
311
|
export const userChoiceBillingListenerAndroid = (): EventSubscription => ({
|
|
303
312
|
remove: () => {},
|
|
304
313
|
});
|