cordova-plugin-qonversion
Version:
Qonversion Cordova Plugin
305 lines (304 loc) • 12 kB
TypeScript
import { AutomationsEventType, EntitlementSource, ExperimentGroupType, IntroEligibilityStatus, OfferingTag, PricingPhaseRecurrenceMode, PricingPhaseType, SubscriptionPeriodUnit, ProductType, RemoteConfigurationAssignmentType, RemoteConfigurationSourceType, SKPeriodUnit, SKProductDiscountPaymentMode, SKProductDiscountType, UserPropertyKey, TransactionType, TransactionOwnershipType, TransactionEnvironment, EntitlementGrantType, QonversionErrorCode } from "./enums";
import { IntroEligibility } from "./IntroEligibility";
import { Offering } from "./Offering";
import { Offerings } from "./Offerings";
import { Entitlement } from "./Entitlement";
import { Product } from "./Product";
import { SKProduct } from "./SKProduct";
import { SKProductDiscount } from "./SKProductDiscount";
import { SKSubscriptionPeriod } from "./SKSubscriptionPeriod";
import { SkuDetails } from "./SkuDetails";
import { ActionResult } from "./ActionResult";
import { QonversionError } from "./QonversionError";
import { AutomationsEvent } from "./AutomationsEvent";
import { User } from './User';
import { SubscriptionPeriod } from "./SubscriptionPeriod";
import { RemoteConfig } from "./RemoteConfig";
import { RemoteConfigList } from "./RemoteConfigList";
import { UserProperties } from './UserProperties';
import { Transaction } from "./Transaction";
import { ProductStoreDetails } from "./ProductStoreDetails";
import { ProductOfferDetails } from "./ProductOfferDetails";
import { ProductInAppDetails } from "./ProductInAppDetails";
import { ProductPrice } from "./ProductPrice";
import { ProductPricingPhase } from "./ProductPricingPhase";
import { ProductInstallmentPlanDetails } from "./ProductInstallmentPlanDetails";
import { ScreenPresentationConfig } from './ScreenPresentationConfig';
import { SKPaymentDiscount } from './SKPaymentDiscount';
import { PromotionalOffer } from './PromotionalOffer';
export 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 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;
};
export type QPromotionalOffer = {
productDiscount: QProductDiscount;
paymentDiscount: QPaymentDiscount;
};
type QPaymentDiscount = {
identifier: string;
keyIdentifier: string;
nonce: string;
signature: string;
timestamp: number;
};
type QProductDiscount = {
subscriptionPeriod: null | QSKSubscriptionPeriod;
price: string;
numberOfPeriods: number;
paymentMode: keyof typeof SKProductDiscountPaymentMode;
identifier?: string;
type: keyof typeof SKProductDiscountType;
priceLocale: QLocale;
};
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>;
};
export type QTransaction = {
originalTransactionId: string;
transactionId: string;
offerCode: string;
transactionTimestamp: number;
expirationTimestamp: number;
transactionRevocationTimestamp: number;
environment: string;
ownershipType: string;
type: string;
promoOfferId: string;
};
export type QOfferings = {
availableOfferings?: Array<QOffering>;
main: QOffering;
};
type QOffering = {
id: string;
tag: keyof typeof OfferingTag;
products: Array<QProduct>;
};
export type QTrialIntroEligibility = {
status: "non_intro_or_trial_product" | "intro_or_trial_eligible" | "intro_or_trial_ineligible";
};
type QAutomationsEvent = {
type: AutomationsEventType;
timestamp: number;
};
export type QEmptySuccessResult = {
success: boolean;
};
export type QUser = {
qonversionId: string;
identityId?: string | null;
};
export type QRemoteConfig = {
payload: Record<string, Object>;
experiment?: QExperiment | null;
source: QRemoteConfigurationSource;
};
export 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;
};
export type QUserProperties = {
properties: QUserProperty[];
};
export type QAutomationEvent = {
event: string;
payload: Record<string, any>;
};
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, QTrialIntroEligibility> | null | undefined): Map<string, IntroEligibility>;
static convertEligibilityStatus(status: string): IntroEligibilityStatus;
static convertActionResult(payload: Record<string, any>): ActionResult;
static convertQonversionError(payload: Record<string, string> | undefined): QonversionError | undefined;
static convertAutomationsEvent(automationsEvent: QAutomationsEvent): AutomationsEvent;
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 convertScreenPresentationConfig(config: ScreenPresentationConfig): Object;
static convertErrorCode(code: string): QonversionErrorCode;
}
export default Mapper;