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

626 lines 37.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const enums_1 = require("../dto/enums"); const IntroEligibility_1 = __importDefault(require("../dto/IntroEligibility")); const Offering_1 = __importDefault(require("../dto/Offering")); const Offerings_1 = __importDefault(require("../dto/Offerings")); const Entitlement_1 = __importDefault(require("../dto/Entitlement")); const Product_1 = __importDefault(require("../dto/Product")); const SKProduct_1 = __importDefault(require("../dto/storeProducts/SKProduct")); const SKProductDiscount_1 = __importDefault(require("../dto/storeProducts/SKProductDiscount")); const SKSubscriptionPeriod_1 = __importDefault(require("../dto/storeProducts/SKSubscriptionPeriod")); const SkuDetails_1 = __importDefault(require("../dto/storeProducts/SkuDetails")); const User_1 = __importDefault(require("../dto/User")); const Experiment_1 = __importDefault(require("../dto/Experiment")); const ExperimentGroup_1 = __importDefault(require("../dto/ExperimentGroup")); const SubscriptionPeriod_1 = __importDefault(require("../dto/SubscriptionPeriod")); const RemoteConfig_1 = __importDefault(require("../dto/RemoteConfig")); const RemoteConfigList_1 = __importDefault(require("../dto/RemoteConfigList")); const UserProperties_1 = __importDefault(require("../dto/UserProperties")); const UserProperty_1 = __importDefault(require("../dto/UserProperty")); const RemoteConfigurationSource_1 = __importDefault(require("../dto/RemoteConfigurationSource")); const Transaction_1 = __importDefault(require("../dto/Transaction")); const ProductStoreDetails_1 = __importDefault(require("../dto/storeProducts/ProductStoreDetails")); const ProductOfferDetails_1 = __importDefault(require("../dto/storeProducts/ProductOfferDetails")); const ProductInAppDetails_1 = __importDefault(require("../dto/storeProducts/ProductInAppDetails")); const ProductPrice_1 = __importDefault(require("../dto/storeProducts/ProductPrice")); const ProductPricingPhase_1 = __importDefault(require("../dto/storeProducts/ProductPricingPhase")); const ProductInstallmentPlanDetails_1 = __importDefault(require("../dto/storeProducts/ProductInstallmentPlanDetails")); const PromotionalOffer_1 = __importDefault(require("../dto/PromotionalOffer")); const SKPaymentDiscount_1 = __importDefault(require("../dto/storeProducts/SKPaymentDiscount")); const NoCodesAction_1 = __importDefault(require("../dto/NoCodesAction")); const QonversionError_1 = __importDefault(require("../dto/QonversionError")); const NoCodesError_1 = __importDefault(require("../dto/NoCodesError")); const priceMicrosRatio = 1000000; class Mapper { static convertPromoOffer(promoOffer) { if (!promoOffer) { return null; } const productDiscount = this.convertProductDiscount(promoOffer.productDiscount); const paymentDiscount = this.convertPaymentDiscount(promoOffer.paymentDiscount); return new PromotionalOffer_1.default(productDiscount, paymentDiscount); } static convertEntitlements(entitlements) { let mappedPermissions = new Map(); if (!entitlements) { return mappedPermissions; } for (const [key, entitlement] of Object.entries(entitlements)) { let renewState; switch (entitlement.renewState) { case enums_1.EntitlementRenewState.NON_RENEWABLE: renewState = enums_1.EntitlementRenewState.NON_RENEWABLE; break; case enums_1.EntitlementRenewState.WILL_RENEW: renewState = enums_1.EntitlementRenewState.WILL_RENEW; break; case enums_1.EntitlementRenewState.CANCELED: renewState = enums_1.EntitlementRenewState.CANCELED; break; case enums_1.EntitlementRenewState.BILLING_ISSUE: renewState = enums_1.EntitlementRenewState.BILLING_ISSUE; break; default: renewState = enums_1.EntitlementRenewState.UNKNOWN; break; } const entitlementSource = this.convertEntitlementSource(entitlement.source); const entitlementGrantType = this.convertEntitlementGrantType(entitlement.grantType); const transactions = []; if (Array.isArray(entitlement.transactions)) { entitlement.transactions.forEach((transaction) => { const mappedTransaction = this.convertTransaction(transaction); transactions.push(mappedTransaction); }); } const mappedPermission = new Entitlement_1.default(entitlement.id, entitlement.productId, entitlement.active, renewState, entitlementSource, entitlement.startedTimestamp, entitlement.renewsCount, entitlementGrantType, transactions, entitlement.expirationTimestamp, entitlement.trialStartTimestamp, entitlement.firstPurchaseTimestamp, entitlement.lastPurchaseTimestamp, entitlement.autoRenewDisableTimestamp, entitlement.lastActivatedOfferCode); mappedPermissions.set(key, mappedPermission); } return mappedPermissions; } static convertTransaction(transaction) { const environment = this.convertTransactionEnvironment(transaction.environment); const ownershipType = this.convertTransactionOwnershipType(transaction.ownershipType); const type = this.convertTransactionType(transaction.type); return new Transaction_1.default(transaction.originalTransactionId, transaction.transactionId, transaction.transactionTimestamp, environment, ownershipType, type, transaction.expirationTimestamp, transaction.transactionRevocationTimestamp, transaction.offerCode, transaction.promoOfferId); } static convertTransactionType(typeKey) { switch (typeKey) { case "SubscriptionStarted": return enums_1.TransactionType.SUBSCRIPTION_STARTED; case "SubscriptionRenewed": return enums_1.TransactionType.SUBSCRIPTION_RENEWED; case "TrialStarted": return enums_1.TransactionType.TRIAL_STARTED; case "IntroStarted": return enums_1.TransactionType.INTRO_STARTED; case "IntroRenewed": return enums_1.TransactionType.INTRO_RENEWED; case "NonConsumablePurchase": return enums_1.TransactionType.NON_CONSUMABLE_PURCHASE; } return enums_1.TransactionType.UNKNOWN; } static convertTransactionOwnershipType(ownershipTypeKey) { switch (ownershipTypeKey) { case "Owner": return enums_1.TransactionOwnershipType.OWNER; case "FamilySharing": return enums_1.TransactionOwnershipType.FAMILY_SHARING; } return enums_1.TransactionOwnershipType.OWNER; } static convertTransactionEnvironment(envKey) { switch (envKey) { case "Production": return enums_1.TransactionEnvironment.PRODUCTION; case "Sandbox": return enums_1.TransactionEnvironment.SANDBOX; } return enums_1.TransactionEnvironment.PRODUCTION; } static convertEntitlementSource(sourceKey) { switch (sourceKey) { case "Unknown": return enums_1.EntitlementSource.UNKNOWN; case "AppStore": return enums_1.EntitlementSource.APP_STORE; case "PlayStore": return enums_1.EntitlementSource.PLAY_STORE; case "Stripe": return enums_1.EntitlementSource.STRIPE; case "Manual": return enums_1.EntitlementSource.MANUAL; } return enums_1.EntitlementSource.UNKNOWN; } static convertEntitlementGrantType(typeKey) { switch (typeKey) { case "Purchase": return enums_1.EntitlementGrantType.PURCHASE; case "FamilySharing": return enums_1.EntitlementGrantType.FAMILY_SHARING; case "OfferCode": return enums_1.EntitlementGrantType.OFFER_CODE; case "Manual": return enums_1.EntitlementGrantType.MANUAL; } return enums_1.EntitlementGrantType.PURCHASE; } static convertDefinedUserPropertyKey(sourceKey) { switch (sourceKey) { case '_q_email': return enums_1.UserPropertyKey.EMAIL; case '_q_name': return enums_1.UserPropertyKey.NAME; case '_q_kochava_device_id': return enums_1.UserPropertyKey.KOCHAVA_DEVICE_ID; case '_q_appsflyer_user_id': return enums_1.UserPropertyKey.APPS_FLYER_USER_ID; case '_q_adjust_adid': return enums_1.UserPropertyKey.ADJUST_AD_ID; case '_q_custom_user_id': return enums_1.UserPropertyKey.CUSTOM_USER_ID; case '_q_fb_attribution': return enums_1.UserPropertyKey.FACEBOOK_ATTRIBUTION; case '_q_firebase_instance_id': return enums_1.UserPropertyKey.FIREBASE_APP_INSTANCE_ID; case '_q_app_set_id': return enums_1.UserPropertyKey.APP_SET_ID; case '_q_advertising_id': return enums_1.UserPropertyKey.ADVERTISING_ID; case "_q_appmetrica_device_id": return enums_1.UserPropertyKey.APP_METRICA_DEVICE_ID; case "_q_appmetrica_user_profile_id": return enums_1.UserPropertyKey.APP_METRICA_USER_PROFILE_ID; case "_q_pushwoosh_hwid": return enums_1.UserPropertyKey.PUSH_WOOSH_HW_ID; case "_q_pushwoosh_user_id": return enums_1.UserPropertyKey.PUSH_WOOSH_USER_ID; case "_q_tenjin_aiid": return enums_1.UserPropertyKey.TENJIN_ANALYTICS_INSTALLATION_ID; } return enums_1.UserPropertyKey.CUSTOM; } static convertUserProperties(properties) { const mappedProperties = properties.properties.map(propertyData => new UserProperty_1.default(propertyData.key, propertyData.value)); return new UserProperties_1.default(mappedProperties); } static convertProducts(products) { let mappedProducts = new Map(); if (!products) { return mappedProducts; } for (const [key, product] of Object.entries(products)) { const mappedProduct = this.convertProduct(product); mappedProducts.set(key, mappedProduct); } return mappedProducts; } static convertProduct(product) { const productType = Mapper.convertProductType(product.type); const subscriptionPeriod = Mapper.convertSubscriptionPeriod(product.subscriptionPeriod); const trialPeriod = Mapper.convertSubscriptionPeriod(product.trialPeriod); const offeringId = product.offeringId ?? null; let skProduct = null; let skuDetails = null; let storeDetails = null; let price; let currencyCode; let storeTitle; let storeDescription; let prettyIntroductoryPrice; if (!!product.skProduct) { skProduct = Mapper.convertSKProduct(product.skProduct); price = parseFloat(skProduct.price); currencyCode = skProduct.currencyCode; storeTitle = skProduct.localizedTitle; storeDescription = skProduct.localizedDescription; if (skProduct.productDiscount) { prettyIntroductoryPrice = skProduct.productDiscount.currencySymbol + skProduct.productDiscount.price; } } else { let priceMicros = null; if (!!product.skuDetails) { skuDetails = Mapper.convertSkuDetails(product.skuDetails); storeTitle = skuDetails.title; storeDescription = skuDetails.description; priceMicros = skuDetails.priceAmountMicros; currencyCode = skuDetails.priceCurrencyCode; if (skuDetails.introductoryPrice.length > 0) { prettyIntroductoryPrice = skuDetails.introductoryPrice; } } if (!!product.storeDetails) { storeDetails = Mapper.convertProductStoreDetails(product.storeDetails); storeTitle = storeDetails.title; storeDescription = storeDetails.description; const defaultOffer = storeDetails.defaultSubscriptionOfferDetails; const inAppOffer = storeDetails.inAppOfferDetails; if (defaultOffer) { priceMicros = defaultOffer.basePlan?.price?.priceAmountMicros; currencyCode = defaultOffer.basePlan?.price?.priceCurrencyCode; prettyIntroductoryPrice = defaultOffer.introPhase?.price?.formattedPrice; } else if (inAppOffer) { priceMicros = inAppOffer.price.priceAmountMicros; currencyCode = inAppOffer.price.priceCurrencyCode; prettyIntroductoryPrice = undefined; } } price = priceMicros ? priceMicros / priceMicrosRatio : undefined; } const mappedProduct = new Product_1.default(product.id, product.storeId, product.basePlanId ?? null, skuDetails, storeDetails, skProduct, offeringId, subscriptionPeriod, trialPeriod, productType, product.prettyPrice ?? null, price, currencyCode, storeTitle, storeDescription, prettyIntroductoryPrice); return mappedProduct; } static convertOfferings(offerings) { if (!offerings) { return null; } if (!Array.isArray(offerings.availableOfferings) || offerings.availableOfferings.length === 0) { return null; } let mainOffering = null; if (offerings.main) { mainOffering = this.convertOffering(offerings.main); } const availableOfferings = []; offerings.availableOfferings.forEach((offering) => { const mappedOffering = this.convertOffering(offering); availableOfferings.push(mappedOffering); }); return new Offerings_1.default(mainOffering, availableOfferings); } static convertOffering(offering) { const products = []; offering.products.forEach((product) => { const mappedProduct = this.convertProduct(product); products.push(mappedProduct); }); const tag = enums_1.OfferingTag[offering.tag] ?? enums_1.OfferingTag['0']; return new Offering_1.default(offering.id, tag, products); } static convertSkuDetails(skuDetails) { return new SkuDetails_1.default(skuDetails.description, skuDetails.freeTrialPeriod, skuDetails.iconUrl, skuDetails.introductoryPrice, skuDetails.introductoryPriceAmountMicros, skuDetails.introductoryPriceCycles, skuDetails.introductoryPricePeriod, skuDetails.originalJson, skuDetails.originalPrice, skuDetails.originalPriceAmountMicros, skuDetails.price, skuDetails.priceAmountMicros, skuDetails.priceCurrencyCode, skuDetails.sku, skuDetails.subscriptionPeriod, skuDetails.title, skuDetails.type, skuDetails.hashCode, skuDetails.toString); } static convertProductType(productType) { let type = enums_1.ProductType.UNKNOWN; switch (productType) { case enums_1.ProductType.TRIAL: type = enums_1.ProductType.TRIAL; break; case enums_1.ProductType.INTRO: type = enums_1.ProductType.INTRO; break; case enums_1.ProductType.SUBSCRIPTION: type = enums_1.ProductType.SUBSCRIPTION; break; case enums_1.ProductType.IN_APP: type = enums_1.ProductType.IN_APP; break; } return type; } static convertSubscriptionPeriod(productPeriod) { if (!productPeriod) { return null; } const unit = Mapper.convertSubscriptionPeriodUnit(productPeriod.unit); return new SubscriptionPeriod_1.default(productPeriod.unitCount, unit, productPeriod.iso); } static convertSubscriptionPeriodUnit(unit) { let result = enums_1.SubscriptionPeriodUnit.UNKNOWN; switch (unit) { case enums_1.SubscriptionPeriodUnit.DAY: result = enums_1.SubscriptionPeriodUnit.DAY; break; case enums_1.SubscriptionPeriodUnit.WEEK: result = enums_1.SubscriptionPeriodUnit.WEEK; break; case enums_1.SubscriptionPeriodUnit.MONTH: result = enums_1.SubscriptionPeriodUnit.MONTH; break; case enums_1.SubscriptionPeriodUnit.YEAR: result = enums_1.SubscriptionPeriodUnit.YEAR; break; } return result; } static convertProductPricingPhase(pricingPhase) { if (!pricingPhase) { return null; } const price = Mapper.convertProductPrice(pricingPhase.price); const billingPeriod = Mapper.convertSubscriptionPeriod(pricingPhase.billingPeriod); const recurrenceMode = Mapper.convertPrisingPhaseRecurrenceMode(pricingPhase.recurrenceMode); const type = Mapper.convertPrisingPhaseType(pricingPhase.type); return new ProductPricingPhase_1.default(price, billingPeriod, pricingPhase.billingCycleCount, recurrenceMode, type, pricingPhase.isTrial, pricingPhase.isIntro, pricingPhase.isBasePlan); } static convertPrisingPhaseRecurrenceMode(recurrenceMode) { let mode = enums_1.PricingPhaseRecurrenceMode.UNKNOWN; switch (recurrenceMode) { case enums_1.PricingPhaseRecurrenceMode.INFINITE_RECURRING: mode = enums_1.PricingPhaseRecurrenceMode.INFINITE_RECURRING; break; case enums_1.PricingPhaseRecurrenceMode.FINITE_RECURRING: mode = enums_1.PricingPhaseRecurrenceMode.FINITE_RECURRING; break; case enums_1.PricingPhaseRecurrenceMode.NON_RECURRING: mode = enums_1.PricingPhaseRecurrenceMode.NON_RECURRING; break; } return mode; } static convertPrisingPhaseType(type) { let result = enums_1.PricingPhaseType.UNKNOWN; switch (type) { case enums_1.PricingPhaseType.REGULAR: result = enums_1.PricingPhaseType.REGULAR; break; case enums_1.PricingPhaseType.FREE_TRIAL: result = enums_1.PricingPhaseType.FREE_TRIAL; break; case enums_1.PricingPhaseType.DISCOUNTED_SINGLE_PAYMENT: result = enums_1.PricingPhaseType.DISCOUNTED_SINGLE_PAYMENT; break; case enums_1.PricingPhaseType.DISCOUNTED_RECURRING_PAYMENT: result = enums_1.PricingPhaseType.DISCOUNTED_RECURRING_PAYMENT; break; } return result; } static convertProductInstallmentPlanDetails(installmentPlanDetails) { if (!installmentPlanDetails) { return null; } return new ProductInstallmentPlanDetails_1.default(installmentPlanDetails.commitmentPaymentsCount, installmentPlanDetails.subsequentCommitmentPaymentsCount); } static convertProductOfferDetails(offerDetails) { let basePlan = Mapper.convertProductPricingPhase(offerDetails.basePlan); let trialPhase = Mapper.convertProductPricingPhase(offerDetails.trialPhase); let introPhase = Mapper.convertProductPricingPhase(offerDetails.introPhase); let installmentPlanDetails = Mapper.convertProductInstallmentPlanDetails(offerDetails.installmentPlanDetails); let pricingPhases = offerDetails.pricingPhases.map(pricingPhase => Mapper.convertProductPricingPhase(pricingPhase)).filter(Boolean); return new ProductOfferDetails_1.default(offerDetails.basePlanId, offerDetails.offerId ?? null, offerDetails.offerToken, offerDetails.tags, pricingPhases, basePlan, installmentPlanDetails, introPhase, trialPhase, offerDetails.hasTrial, offerDetails.hasIntro, offerDetails.hasTrialOrIntro); } static convertInAppOfferDetails(inAppOfferDetails) { let productPrice = this.convertProductPrice(inAppOfferDetails.price); return new ProductInAppDetails_1.default(productPrice); } static convertProductPrice(productPrice) { return new ProductPrice_1.default(productPrice.priceAmountMicros, productPrice.priceCurrencyCode, productPrice.formattedPrice, productPrice.isFree, productPrice.currencySymbol); } static convertProductStoreDetails(productStoreDetails) { let defaultSubscriptionOfferDetails = null; if (productStoreDetails.defaultSubscriptionOfferDetails != null) { defaultSubscriptionOfferDetails = this.convertProductOfferDetails(productStoreDetails.defaultSubscriptionOfferDetails); } let basePlanSubscriptionOfferDetails = null; if (productStoreDetails.basePlanSubscriptionOfferDetails != null) { basePlanSubscriptionOfferDetails = this.convertProductOfferDetails(productStoreDetails.basePlanSubscriptionOfferDetails); } let inAppOfferDetails = null; if (productStoreDetails.inAppOfferDetails != null) { inAppOfferDetails = this.convertInAppOfferDetails(productStoreDetails.inAppOfferDetails); } let subscriptionOfferDetails = null; if (productStoreDetails.subscriptionOfferDetails != null) { subscriptionOfferDetails = productStoreDetails.subscriptionOfferDetails.map(defaultOfferDetail => this.convertProductOfferDetails(defaultOfferDetail)); } const productType = Mapper.convertProductType(productStoreDetails.productType); return new ProductStoreDetails_1.default(productStoreDetails.basePlanId ?? null, productStoreDetails.productId, productStoreDetails.name, productStoreDetails.title, productStoreDetails.description, subscriptionOfferDetails, defaultSubscriptionOfferDetails, basePlanSubscriptionOfferDetails, inAppOfferDetails, productStoreDetails.hasTrialOffer, productStoreDetails.hasIntroOffer, productStoreDetails.hasTrialOrIntroOffer, productType, productStoreDetails.isInApp, productStoreDetails.isSubscription, productStoreDetails.isPrepaid, productStoreDetails.isInstallment); } static convertSKProduct(skProduct) { let subscriptionPeriod; if (skProduct.subscriptionPeriod != null) { subscriptionPeriod = this.convertSKSubscriptionPeriod(skProduct.subscriptionPeriod); } let discount; if (skProduct.introductoryPrice) { discount = this.convertProductDiscount(skProduct.introductoryPrice); } let discounts; if (Array.isArray(skProduct.discounts) && skProduct.discounts.length) { discounts = this.convertDiscounts(skProduct.discounts); } return new SKProduct_1.default(skProduct.localizedDescription, skProduct.localizedTitle, skProduct.price, skProduct.priceLocale.localeIdentifier, skProduct.productIdentifier, !!skProduct.isDownloadable, skProduct.downloadContentVersion, skProduct.downloadContentLengths, subscriptionPeriod, discount, discounts, skProduct.subscriptionGroupIdentifier, skProduct.isFamilyShareable, skProduct.priceLocale.currencyCode ?? ""); } static convertSKSubscriptionPeriod(subscriptionPeriod) { return new SKSubscriptionPeriod_1.default(subscriptionPeriod.numberOfUnits, enums_1.SKPeriodUnit[subscriptionPeriod.unit]); } static convertPaymentDiscount(discount) { return new SKPaymentDiscount_1.default(discount.identifier, discount.keyIdentifier, discount.nonce, discount.signature, discount.timestamp); } static convertProductDiscount(discount) { let subscriptionPeriod = undefined; if (discount.subscriptionPeriod != null) { subscriptionPeriod = this.convertSKSubscriptionPeriod(discount.subscriptionPeriod); } return new SKProductDiscount_1.default(discount.price, discount.priceLocale.localeIdentifier, discount.numberOfPeriods, subscriptionPeriod, enums_1.SKProductDiscountPaymentMode[discount.paymentMode], discount.identifier, enums_1.SKProductDiscountType[discount.type], discount.priceLocale.currencySymbol ?? ""); } static convertDiscounts(discounts) { const mappedDiscounts = discounts.map((discount) => { return this.convertProductDiscount(discount); }); return mappedDiscounts; } static convertEligibility(eligibilityMap) { let mappedEligibility = new Map(); if (!eligibilityMap) { return mappedEligibility; } for (const [key, value] of Object.entries(eligibilityMap)) { const status = Mapper.convertEligibilityStatus(value.status); const eligibilityInfo = new IntroEligibility_1.default(status); mappedEligibility.set(key, eligibilityInfo); } return mappedEligibility; } static convertEligibilityStatus(status) { switch (status) { case "non_intro_or_trial_product": return enums_1.IntroEligibilityStatus.NON_INTRO_OR_TRIAL_PRODUCT; case "intro_or_trial_eligible": return enums_1.IntroEligibilityStatus.ELIGIBLE; case "intro_or_trial_ineligible": return enums_1.IntroEligibilityStatus.INELIGIBLE; default: return enums_1.IntroEligibilityStatus.UNKNOWN; } } static convertUserInfo(user) { return new User_1.default(user.qonversionId, user.identityId); } static convertRemoteConfig(remoteConfig) { let experiment = null; if (remoteConfig.experiment) { const groupType = this.convertGroupType(remoteConfig.experiment.group.type); const group = new ExperimentGroup_1.default(remoteConfig.experiment.group.id, remoteConfig.experiment.group.name, groupType); experiment = new Experiment_1.default(remoteConfig.experiment.id, remoteConfig.experiment.name, group); } const sourceType = this.convertRemoteConfigurationSourceType(remoteConfig.source.type); const assignmentType = this.convertRemoteConfigurationAssignmentType(remoteConfig.source.assignmentType); const source = new RemoteConfigurationSource_1.default(remoteConfig.source.id, remoteConfig.source.name, sourceType, assignmentType, remoteConfig.source.contextKey ?? null); return new RemoteConfig_1.default(remoteConfig.payload, experiment, source); } static convertRemoteConfigList(remoteConfigList) { const remoteConfigs = remoteConfigList.remoteConfigs.map(config => this.convertRemoteConfig(config)); return new RemoteConfigList_1.default(remoteConfigs); } static convertRemoteConfigurationSourceType(type) { switch (type) { case "experiment_control_group": return enums_1.RemoteConfigurationSourceType.EXPERIMENT_CONTROL_GROUP; case "experiment_treatment_group": return enums_1.RemoteConfigurationSourceType.EXPERIMENT_TREATMENT_GROUP; case "remote_configuration": return enums_1.RemoteConfigurationSourceType.REMOTE_CONFIGURATION; default: return enums_1.RemoteConfigurationSourceType.UNKNOWN; } } static convertRemoteConfigurationAssignmentType(type) { switch (type) { case "auto": return enums_1.RemoteConfigurationAssignmentType.AUTO; case "manual": return enums_1.RemoteConfigurationAssignmentType.MANUAL; default: return enums_1.RemoteConfigurationAssignmentType.UNKNOWN; } } static convertGroupType(type) { switch (type) { case "control": return enums_1.ExperimentGroupType.CONTROL; case "treatment": return enums_1.ExperimentGroupType.TREATMENT; default: return enums_1.ExperimentGroupType.UNKNOWN; } } static convertAction(payload) { return new NoCodesAction_1.default(payload["type"], payload["parameters"], this.convertNoCodesError(payload["error"])); } static convertNoCodesError(payload) { if (!payload) return undefined; const code = this.convertNoCodesErrorCode(payload.code); const error = payload.qonversionError ? this.convertQonversionError(payload.qonversionError) : undefined; return new NoCodesError_1.default(code, payload.description, payload.additionalMessage, payload.domain, error); } static convertQonversionError(payload) { if (!payload) return undefined; const code = this.convertQonversionErrorCode(payload.code); return new QonversionError_1.default(code, payload.description, payload.additionalMessage, payload.domain); } static convertScreenPresentationConfig(config) { return { presentationStyle: config.presentationStyle, animated: config.animated ? '1' : '0', }; } static convertNoCodesErrorCode(code) { if (!code) { return enums_1.NoCodesErrorCode.UNKNOWN; } switch (code) { case enums_1.NoCodesErrorCode.UNKNOWN: return enums_1.NoCodesErrorCode.UNKNOWN; case enums_1.NoCodesErrorCode.BAD_NETWORK_REQUEST: return enums_1.NoCodesErrorCode.BAD_NETWORK_REQUEST; case enums_1.NoCodesErrorCode.BAD_RESPONSE: return enums_1.NoCodesErrorCode.BAD_RESPONSE; case enums_1.NoCodesErrorCode.ACTIVITY_START: return enums_1.NoCodesErrorCode.ACTIVITY_START; case enums_1.NoCodesErrorCode.NETWORK_REQUEST_EXECUTION: return enums_1.NoCodesErrorCode.NETWORK_REQUEST_EXECUTION; case enums_1.NoCodesErrorCode.SERIALIZATION: return enums_1.NoCodesErrorCode.SERIALIZATION; case enums_1.NoCodesErrorCode.DESERIALIZATION: return enums_1.NoCodesErrorCode.DESERIALIZATION; case enums_1.NoCodesErrorCode.REQUEST_DENIED: return enums_1.NoCodesErrorCode.REQUEST_DENIED; case enums_1.NoCodesErrorCode.MAPPING: return enums_1.NoCodesErrorCode.MAPPING; case enums_1.NoCodesErrorCode.BACKEND_ERROR: return enums_1.NoCodesErrorCode.BACKEND_ERROR; case enums_1.NoCodesErrorCode.SCREEN_NOT_FOUND: return enums_1.NoCodesErrorCode.SCREEN_NOT_FOUND; case enums_1.NoCodesErrorCode.QONVERSION_ERROR: return enums_1.NoCodesErrorCode.QONVERSION_ERROR; case enums_1.NoCodesErrorCode.INTERNAL: return enums_1.NoCodesErrorCode.INTERNAL; case enums_1.NoCodesErrorCode.AUTHORIZATION_FAILED: return enums_1.NoCodesErrorCode.AUTHORIZATION_FAILED; case enums_1.NoCodesErrorCode.CRITICAL: return enums_1.NoCodesErrorCode.CRITICAL; case enums_1.NoCodesErrorCode.PRODUCT_NOT_FOUND: return enums_1.NoCodesErrorCode.PRODUCT_NOT_FOUND; case enums_1.NoCodesErrorCode.PRODUCTS_LOADING_FAILED: return enums_1.NoCodesErrorCode.PRODUCTS_LOADING_FAILED; case enums_1.NoCodesErrorCode.RATE_LIMIT_EXCEEDED: return enums_1.NoCodesErrorCode.RATE_LIMIT_EXCEEDED; case enums_1.NoCodesErrorCode.SCREEN_LOADING_FAILED: return enums_1.NoCodesErrorCode.SCREEN_LOADING_FAILED; case enums_1.NoCodesErrorCode.SDK_INITIALIZATION_ERROR: return enums_1.NoCodesErrorCode.SDK_INITIALIZATION_ERROR; } return enums_1.NoCodesErrorCode.UNKNOWN; } static convertQonversionErrorCode(code) { if (!code) { return enums_1.QonversionErrorCode.UNKNOWN; } switch (code) { case enums_1.QonversionErrorCode.UNKNOWN: return enums_1.QonversionErrorCode.UNKNOWN; case enums_1.QonversionErrorCode.API_RATE_LIMIT_EXCEEDED: return enums_1.QonversionErrorCode.API_RATE_LIMIT_EXCEEDED; case enums_1.QonversionErrorCode.APPLE_STORE_ERROR: return enums_1.QonversionErrorCode.APPLE_STORE_ERROR; case enums_1.QonversionErrorCode.BACKEND_ERROR: return enums_1.QonversionErrorCode.BACKEND_ERROR; case enums_1.QonversionErrorCode.BILLING_UNAVAILABLE: return enums_1.QonversionErrorCode.BILLING_UNAVAILABLE; case enums_1.QonversionErrorCode.CLIENT_INVALID: return enums_1.QonversionErrorCode.CLIENT_INVALID; case enums_1.QonversionErrorCode.CLOUD_SERVICE_NETWORK_CONNECTION_FAILED: return enums_1.QonversionErrorCode.CLOUD_SERVICE_NETWORK_CONNECTION_FAILED; case enums_1.QonversionErrorCode.CLOUD_SERVICE_PERMISSION_DENIED: return enums_1.QonversionErrorCode.CLOUD_SERVICE_PERMISSION_DENIED; case enums_1.QonversionErrorCode.CLOUD_SERVICE_REVOKED: return enums_1.QonversionErrorCode.CLOUD_SERVICE_REVOKED; case enums_1.QonversionErrorCode.FAILED_TO_RECEIVE_DATA: return enums_1.QonversionErrorCode.FAILED_TO_RECEIVE_DATA; case enums_1.QonversionErrorCode.FEATURE_NOT_SUPPORTED: return enums_1.QonversionErrorCode.FEATURE_NOT_SUPPORTED; case enums_1.QonversionErrorCode.FRAUD_PURCHASE: return enums_1.QonversionErrorCode.FRAUD_PURCHASE; case enums_1.QonversionErrorCode.INCORRECT_REQUEST: return enums_1.QonversionErrorCode.INCORRECT_REQUEST; case enums_1.QonversionErrorCode.INTERNAL_ERROR: return enums_1.QonversionErrorCode.INTERNAL_ERROR; case enums_1.QonversionErrorCode.INVALID_CLIENT_UID: return enums_1.QonversionErrorCode.INVALID_CLIENT_UID; case enums_1.QonversionErrorCode.INVALID_CREDENTIALS: return enums_1.QonversionErrorCode.INVALID_CREDENTIALS; case enums_1.QonversionErrorCode.INVALID_STORE_CREDENTIALS: return enums_1.QonversionErrorCode.INVALID_STORE_CREDENTIALS; case enums_1.QonversionErrorCode.LAUNCH_ERROR: return enums_1.QonversionErrorCode.LAUNCH_ERROR; case enums_1.QonversionErrorCode.NETWORK_CONNECTION_FAILED: return enums_1.QonversionErrorCode.NETWORK_CONNECTION_FAILED; case enums_1.QonversionErrorCode.OFFERINGS_NOT_FOUND: return enums_1.QonversionErrorCode.OFFERINGS_NOT_FOUND; case enums_1.QonversionErrorCode.PAYMENT_INVALID: return enums_1.QonversionErrorCode.PAYMENT_INVALID; case enums_1.QonversionErrorCode.PAYMENT_NOT_ALLOWED: return enums_1.QonversionErrorCode.PAYMENT_NOT_ALLOWED; case enums_1.QonversionErrorCode.PLAY_STORE_ERROR: return enums_1.QonversionErrorCode.PLAY_STORE_ERROR; case enums_1.QonversionErrorCode.PRIVACY_ACKNOWLEDGEMENT_REQUIRED: return enums_1.QonversionErrorCode.PRIVACY_ACKNOWLEDGEMENT_REQUIRED; case enums_1.QonversionErrorCode.PRODUCT_ALREADY_OWNED: return enums_1.QonversionErrorCode.PRODUCT_ALREADY_OWNED; case enums_1.QonversionErrorCode.PRODUCT_NOT_FOUND: return enums_1.QonversionErrorCode.PRODUCT_NOT_FOUND; case enums_1.QonversionErrorCode.PRODUCT_NOT_OWNED: return enums_1.QonversionErrorCode.PRODUCT_NOT_OWNED; case enums_1.QonversionErrorCode.PROJECT_CONFIG_ERROR: return enums_1.QonversionErrorCode.PROJECT_CONFIG_ERROR; case enums_1.QonversionErrorCode.PURCHASE_CANCELED: return enums_1.QonversionErrorCode.PURCHASE_CANCELED; case enums_1.QonversionErrorCode.PURCHASE_INVALID: return enums_1.QonversionErrorCode.PURCHASE_INVALID; case enums_1.QonversionErrorCode.PURCHASE_PENDING: return enums_1.QonversionErrorCode.PURCHASE_PENDING; case enums_1.QonversionErrorCode.PURCHASE_UNSPECIFIED: return enums_1.QonversionErrorCode.PURCHASE_UNSPECIFIED; case enums_1.QonversionErrorCode.RECEIPT_VALIDATION_ERROR: return enums_1.QonversionErrorCode.RECEIPT_VALIDATION_ERROR; case enums_1.QonversionErrorCode.REMOTE_CONFIGURATION_NOT_AVAILABLE: return enums_1.QonversionErrorCode.REMOTE_CONFIGURATION_NOT_AVAILABLE; case enums_1.QonversionErrorCode.RESPONSE_PARSING_FAILED: return enums_1.QonversionErrorCode.RESPONSE_PARSING_FAILED; case enums_1.QonversionErrorCode.STORE_PRODUCT_NOT_AVAILABLE: return enums_1.QonversionErrorCode.STORE_PRODUCT_NOT_AVAILABLE; case enums_1.QonversionErrorCode.UNAUTHORIZED_REQUEST_DATA: return enums_1.QonversionErrorCode.UNAUTHORIZED_REQUEST_DATA; case enums_1.QonversionErrorCode.UNKNOWN_CLIENT_PLATFORM: return enums_1.QonversionErrorCode.UNKNOWN_CLIENT_PLATFORM; } return enums_1.QonversionErrorCode.UNKNOWN; } } exports.default = Mapper; //# sourceMappingURL=Mapper.js.map