UNPKG

react-native-qonversion

Version:

Qonversion provides full in-app purchases infrastructure, so you do not need to build your own server for receipt validation. Implement in-app subscriptions, validate user receipts, check subscription status, and provide access to your app features and co

303 lines (302 loc) 12.2 kB
import { EntitlementGrantType, EntitlementSource, ExperimentGroupType, IntroEligibilityStatus, OfferingTag, PricingPhaseRecurrenceMode, PricingPhaseType, ProductType, QonversionErrorCode, RemoteConfigurationAssignmentType, RemoteConfigurationSourceType, SKPeriodUnit, SKProductDiscountPaymentMode, SKProductDiscountType, SubscriptionPeriodUnit, TransactionEnvironment, TransactionOwnershipType, TransactionType, UserPropertyKey, NoCodesErrorCode } from "../dto/enums"; import IntroEligibility from "../dto/IntroEligibility"; import Offering from "../dto/Offering"; import Offerings from "../dto/Offerings"; import Entitlement from "../dto/Entitlement"; import Product from "../dto/Product"; import SKProduct from "../dto/storeProducts/SKProduct"; import SKProductDiscount from "../dto/storeProducts/SKProductDiscount"; import SKSubscriptionPeriod from "../dto/storeProducts/SKSubscriptionPeriod"; import SkuDetails from "../dto/storeProducts/SkuDetails"; import User from '../dto/User'; import ScreenPresentationConfig from '../dto/ScreenPresentationConfig'; import SubscriptionPeriod from "../dto/SubscriptionPeriod"; import RemoteConfig from "../dto/RemoteConfig"; import RemoteConfigList from '../dto/RemoteConfigList'; import UserProperties from '../dto/UserProperties'; import Transaction from "../dto/Transaction"; import ProductStoreDetails from "../dto/storeProducts/ProductStoreDetails"; import ProductOfferDetails from "../dto/storeProducts/ProductOfferDetails"; import ProductInAppDetails from "../dto/storeProducts/ProductInAppDetails"; import ProductPrice from "../dto/storeProducts/ProductPrice"; import ProductPricingPhase from "../dto/storeProducts/ProductPricingPhase"; import ProductInstallmentPlanDetails from '../dto/storeProducts/ProductInstallmentPlanDetails'; import PromotionalOffer from '../dto/PromotionalOffer'; import SKPaymentDiscount from '../dto/storeProducts/SKPaymentDiscount'; import NoCodesAction from '../dto/NoCodesAction'; import QonversionError from '../dto/QonversionError'; import NoCodesError from '../dto/NoCodesError'; type QProduct = { id: string; storeId: string; basePlanId?: string | null; type: string; subscriptionPeriod?: QSubscriptionPeriod | null; trialPeriod?: QSubscriptionPeriod | null; skuDetails?: QSkuDetails | null; storeDetails?: QProductStoreDetails; skProduct?: QSKProduct | null; prettyPrice?: string | null; offeringId?: string | null; }; type QProductStoreDetails = { basePlanId?: string | null; productId: string; name: string; title: string; description: string; subscriptionOfferDetails?: QProductOfferDetails[] | null; defaultSubscriptionOfferDetails?: QProductOfferDetails | null; basePlanSubscriptionOfferDetails?: QProductOfferDetails | null; inAppOfferDetails?: QProductInAppDetails | null; hasTrialOffer: boolean; hasIntroOffer: boolean; hasTrialOrIntroOffer: boolean; productType: string; isInApp: boolean; isSubscription: boolean; isPrepaid: boolean; isInstallment: boolean; }; type QSubscriptionPeriod = { unitCount: number; unit: string; iso: string; }; type QProductPricingPhase = { price: QProductPrice; billingPeriod: QSubscriptionPeriod; billingCycleCount: number; recurrenceMode: string; type: string; isTrial: boolean; isIntro: boolean; isBasePlan: boolean; }; type QProductInstallmentPlanDetails = { commitmentPaymentsCount: number; subsequentCommitmentPaymentsCount: number; }; type QPromotionalOffer = { productDiscount: QProductDiscount; paymentDiscount: QPaymentDiscount; }; type QProductOfferDetails = { basePlanId: string; offerId?: string | null; offerToken: string; tags: string[]; pricingPhases: QProductPricingPhase[]; basePlan?: QProductPricingPhase | null; installmentPlanDetails?: QProductInstallmentPlanDetails | null; trialPhase?: QProductPricingPhase | null; introPhase: QProductPricingPhase | null; hasTrial: boolean; hasIntro: boolean; hasTrialOrIntro: boolean; }; type QProductPrice = { priceAmountMicros: number; priceCurrencyCode: string; formattedPrice: string; isFree: boolean; currencySymbol: string; }; type QProductInAppDetails = { price: QProductPrice; }; type QSkuDetails = { description: string; freeTrialPeriod: string; iconUrl: string; introductoryPrice: string; introductoryPriceAmountMicros: number; introductoryPriceCycles: number; introductoryPricePeriod: string; originalJson: string; originalPrice: string; originalPriceAmountMicros: number; price: string; priceAmountMicros: number; priceCurrencyCode: string; sku: string; subscriptionPeriod: string; title: string; type: string; hashCode: number; toString: string; }; type QSKProduct = { subscriptionPeriod: null | QSKSubscriptionPeriod; introductoryPrice: QProductDiscount | null; discounts: Array<QProductDiscount> | null; localizedDescription: string | undefined; localizedTitle: string | undefined; price: string; priceLocale: QLocale; productIdentifier: string | undefined; isDownloadable: boolean | undefined; downloadContentVersion: string | undefined; downloadContentLengths: number[] | undefined; productDiscount: SKProductDiscount | undefined; subscriptionGroupIdentifier: string | undefined; isFamilyShareable: boolean | undefined; }; type QSKSubscriptionPeriod = { numberOfUnits: number; unit: keyof typeof SKPeriodUnit; }; type QProductDiscount = { subscriptionPeriod: null | QSKSubscriptionPeriod; price: string; numberOfPeriods: number; paymentMode: keyof typeof SKProductDiscountPaymentMode; identifier?: string; type: keyof typeof SKProductDiscountType; priceLocale: QLocale; }; type QPaymentDiscount = { identifier: string; keyIdentifier: string; nonce: string; signature: string; timestamp: number; }; type QLocale = { currencySymbol: string | null; currencyCode: string | null; localeIdentifier: string; }; export type QEntitlement = { id: string; productId: string; active: boolean; renewState: string; source: string; startedTimestamp: number; expirationTimestamp: number; renewsCount: number; trialStartTimestamp: number; firstPurchaseTimestamp: number; lastPurchaseTimestamp: number; lastActivatedOfferCode: string; grantType: string; autoRenewDisableTimestamp: number; transactions?: Array<QTransaction>; }; type QTransaction = { originalTransactionId: string; transactionId: string; offerCode: string; transactionTimestamp: number; expirationTimestamp: number; transactionRevocationTimestamp: number; environment: string; ownershipType: string; type: string; promoOfferId: string; }; type QOfferings = { availableOfferings?: Array<QOffering>; main: QOffering; }; type QOffering = { id: string; tag: keyof typeof OfferingTag; products: Array<QProduct>; }; type QUser = { qonversionId: string; identityId?: string | null; }; type QRemoteConfig = { payload: Record<string, Object>; experiment?: QExperiment | null; source: QRemoteConfigurationSource; }; type QRemoteConfigList = { remoteConfigs: Array<QRemoteConfig>; }; type QRemoteConfigurationSource = { id: string; name: string; type: string; assignmentType: string; contextKey: string | null | undefined; }; type QExperiment = { id: string; name: string; group: QExperimentGroup; }; type QExperimentGroup = { id: string; name: string; type: string; }; type QUserProperty = { key: string; value: string; }; type QUserProperties = { properties: QUserProperty[]; }; type QQonversionError = { code: string | undefined; description: string | null | undefined; additionalMessage: string | null | undefined; domain: string | null | undefined; }; type QNoCodesError = QQonversionError & { qonversionError?: QQonversionError | null; }; declare class Mapper { static convertPromoOffer(promoOffer: QPromotionalOffer | null | undefined): PromotionalOffer | null; static convertEntitlements(entitlements: Record<string, QEntitlement> | null | undefined): Map<string, Entitlement>; static convertTransaction(transaction: QTransaction): Transaction; static convertTransactionType(typeKey: string): TransactionType; static convertTransactionOwnershipType(ownershipTypeKey: string): TransactionOwnershipType; static convertTransactionEnvironment(envKey: string): TransactionEnvironment; static convertEntitlementSource(sourceKey: string): EntitlementSource; static convertEntitlementGrantType(typeKey: string): EntitlementGrantType; static convertDefinedUserPropertyKey(sourceKey: string): UserPropertyKey; static convertUserProperties(properties: QUserProperties): UserProperties; static convertProducts(products: Record<string, QProduct> | null | undefined): Map<string, Product>; static convertProduct(product: QProduct): Product; static convertOfferings(offerings: QOfferings | null | undefined): Offerings | null; static convertOffering(offering: QOffering): Offering; static convertSkuDetails(skuDetails: QSkuDetails): SkuDetails; static convertProductType(productType: string): ProductType; static convertSubscriptionPeriod(productPeriod: QSubscriptionPeriod | null | undefined): SubscriptionPeriod | null; static convertSubscriptionPeriodUnit(unit: string): SubscriptionPeriodUnit; static convertProductPricingPhase(pricingPhase: QProductPricingPhase | null | undefined): ProductPricingPhase | null; static convertPrisingPhaseRecurrenceMode(recurrenceMode: string): PricingPhaseRecurrenceMode; static convertPrisingPhaseType(type: string): PricingPhaseType; static convertProductInstallmentPlanDetails(installmentPlanDetails: QProductInstallmentPlanDetails | null | undefined): ProductInstallmentPlanDetails | null; static convertProductOfferDetails(offerDetails: QProductOfferDetails): ProductOfferDetails; static convertInAppOfferDetails(inAppOfferDetails: QProductInAppDetails): ProductInAppDetails; static convertProductPrice(productPrice: QProductPrice): ProductPrice; static convertProductStoreDetails(productStoreDetails: QProductStoreDetails): ProductStoreDetails; static convertSKProduct(skProduct: QSKProduct): SKProduct; static convertSKSubscriptionPeriod(subscriptionPeriod: QSKSubscriptionPeriod): SKSubscriptionPeriod; static convertPaymentDiscount(discount: QPaymentDiscount): SKPaymentDiscount; static convertProductDiscount(discount: QProductDiscount): SKProductDiscount; static convertDiscounts(discounts: Array<QProductDiscount>): SKProductDiscount[]; static convertEligibility(eligibilityMap: Record<string, { status: "non_intro_or_trial_product" | "intro_or_trial_eligible" | "intro_or_trial_ineligible"; }> | null | undefined): Map<string, IntroEligibility>; static convertEligibilityStatus(status: string): IntroEligibilityStatus; static convertUserInfo(user: QUser): User; static convertRemoteConfig(remoteConfig: QRemoteConfig): RemoteConfig; static convertRemoteConfigList(remoteConfigList: QRemoteConfigList): RemoteConfigList; static convertRemoteConfigurationSourceType(type: String): RemoteConfigurationSourceType; static convertRemoteConfigurationAssignmentType(type: String): RemoteConfigurationAssignmentType; static convertGroupType(type: String): ExperimentGroupType; static convertAction(payload: Record<string, any>): NoCodesAction; static convertNoCodesError(payload: QNoCodesError | undefined): NoCodesError | undefined; static convertQonversionError(payload: QQonversionError | undefined): QonversionError | undefined; static convertScreenPresentationConfig(config: ScreenPresentationConfig): Object; static convertNoCodesErrorCode(code: string | undefined): NoCodesErrorCode; static convertQonversionErrorCode(code: string | undefined): QonversionErrorCode; } export default Mapper;