UNPKG

@qonversion/react-native-sdk

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

390 lines (342 loc) 12.6 kB
export enum LaunchMode { ANALYTICS = 'Analytics', SUBSCRIPTION_MANAGEMENT = 'SubscriptionManagement', } export enum Environment { SANDBOX = "Sandbox", PRODUCTION = "Production", } export enum ProductType { TRIAL = "Trial", INTRO = "Intro", /** Currently works for Android only. iOS support will be added soon. */ SUBSCRIPTION = "Subscription", IN_APP = "InApp", UNKNOWN = "Unknown", } export enum SubscriptionPeriodUnit { DAY = "Day", WEEK = "Week", MONTH = "Month", YEAR = "Year", UNKNOWN = "Unknown", } /** * Recurrence mode of the pricing phase. */ export enum PricingPhaseRecurrenceMode { /** * The billing plan payment recurs for infinite billing periods unless canceled. */ INFINITE_RECURRING = "InfiniteRecurring", /** * The billing plan payment recurs for a fixed number of billing periods * set in {@link ProductPricingPhase.billingCycleCount}. */ FINITE_RECURRING = "FiniteRecurring", /** * The billing plan payment is a one-time charge that does not repeat. */ NON_RECURRING = "NonRecurring", /** * Unknown recurrence mode. */ UNKNOWN = "Unknown", } /** * Type of the pricing phase. */ export enum PricingPhaseType { /** * Regular subscription without any discounts like trial or intro offers. */ REGULAR = "Regular", /** * A free phase. */ FREE_TRIAL = "FreeTrial", /** * A phase with a discounted payment for a single period. */ DISCOUNTED_SINGLE_PAYMENT = "DiscountedSinglePayment", /** * A phase with a discounted payment for several periods, described in {@link ProductPricingPhase.billingCycleCount}. */ DISCOUNTED_RECURRING_PAYMENT = "DiscountedRecurringPayment", /** * Unknown pricing phase type. */ UNKNOWN = "Unknown", } export enum EntitlementRenewState { NON_RENEWABLE = 'non_renewable', UNKNOWN = 'unknown', WILL_RENEW = 'will_renew', CANCELED = 'canceled', BILLING_ISSUE = 'billing_issue', } export enum EntitlementSource { UNKNOWN = "Unknown", APP_STORE = "AppStore", PLAY_STORE = "PlayStore", STRIPE = "Stripe", MANUAL = "Manual", } export enum TransactionEnvironment { PRODUCTION = "Production", SANDBOX = "Sandbox" } export enum TransactionOwnershipType { OWNER = "Owner", FAMILY_SHARING = "FamilySharing" } export enum EntitlementGrantType { PURCHASE = "Purchase", FAMILY_SHARING = "FamilySharing", OFFER_CODE = "OfferCode", MANUAL = "Manual", } export enum TransactionType { UNKNOWN = "Unknown", SUBSCRIPTION_STARTED = "SubscriptionStarted", SUBSCRIPTION_RENEWED = "SubscriptionRenewed", TRIAL_STARTED = "TrialStarted", INTRO_STARTED = "IntroStarted", INTRO_RENEWED = "IntroRenewed", NON_CONSUMABLE_PURCHASE = "NonConsumablePurchase" } export enum UserPropertyKey { EMAIL = "Email", NAME = "Name", KOCHAVA_DEVICE_ID = "KochavaDeviceId", APPS_FLYER_USER_ID = "AppsFlyerUserId", ADJUST_AD_ID = "AdjustAdId", CUSTOM_USER_ID = "CustomUserId", FACEBOOK_ATTRIBUTION = "FacebookAttribution", // Android only FIREBASE_APP_INSTANCE_ID = "FirebaseAppInstanceId", APP_SET_ID = "AppSetId", // Android only ADVERTISING_ID = "AdvertisingId", // iOS only APP_METRICA_DEVICE_ID = "AppMetricaDeviceId", APP_METRICA_USER_PROFILE_ID = "AppMetricaUserProfileId", PUSH_WOOSH_HW_ID = "PushWooshHwId", PUSH_WOOSH_USER_ID = "PushWooshUserId", TENJIN_ANALYTICS_INSTALLATION_ID = "TenjinAnalyticsInstallationId", CUSTOM = "Custom", } export enum AttributionProvider { APPSFLYER = "AppsFlyer", BRANCH = "Branch", ADJUST = "Adjust", APPLE_SEARCH_ADS = "AppleSearchAds", // ios only APPLE_AD_SERVICES = "AppleAdServices", // ios only } /** * A policy used for purchase updates on Android, which describes * how to migrate from purchased plan to a new one. * * Used in {@link PurchaseOptions} class for purchase updates. */ export enum PurchaseUpdatePolicy { /** * The new plan takes effect immediately, and the user is charged full price of new plan * and is given a full billing cycle of subscription, plus remaining prorated time * from the old plan. */ CHARGE_FULL_PRICE = 'ChargeFullPrice', /** * The new plan takes effect immediately, and the billing cycle remains the same. */ CHARGE_PRORATED_PRICE = 'ChargeProratedPrice', /** * The new plan takes effect immediately, and the remaining time will be prorated * and credited to the user. */ WITH_TIME_PRORATION = 'WithTimeProration', /** * The new purchase takes effect immediately, the new plan will take effect * when the old item expires. */ DEFERRED = 'Deferred', /** * The new plan takes effect immediately, and the new price will be charged * on next recurrence time. */ WITHOUT_PRORATION = 'WithoutProration', /** * Unknown police. */ UNKNOWN = 'Unknown', } export enum EntitlementsCacheLifetime { WEEK = "Week", TWO_WEEKS = "TwoWeeks", MONTH = "Month", TWO_MONTHS = "TwoMonths", THREE_MONTHS = "ThreeMonths", SIX_MONTHS = "SixMonths", YEAR = "Year", UNLIMITED = "Unlimited", } export const SKPeriodUnit = { 0: "DAY", 1: "WEEK", 2: "MONTH", 3: "YEAR", } as const; export type SKPeriodUnits = typeof SKPeriodUnit[keyof typeof SKPeriodUnit]; export const SKProductDiscountType = { 0: "INTRODUCTORY", 1: "SUBSCRIPTION", } as const; export type SKProductDiscountTypes = typeof SKProductDiscountType[keyof typeof SKProductDiscountType]; export const SKProductDiscountPaymentMode = { 0: "PAY_AS_YOU_GO", 1: "PAY_UP_FRONT", 2: "FREE_TRIAL", } as const; export type SKProductDiscountPaymentModes = typeof SKProductDiscountPaymentMode[keyof typeof SKProductDiscountPaymentMode]; export const OfferingTag = { "-1": "UNKNOWN", "0": "NONE", "1": "MAIN", } as const; export type OfferingTags = typeof OfferingTag[keyof typeof OfferingTag]; export enum IntroEligibilityStatus { UNKNOWN = "unknown", NON_INTRO_OR_TRIAL_PRODUCT = "non_intro_or_trial_product", ELIGIBLE = "intro_or_trial_eligible", INELIGIBLE = "intro_or_trial_ineligible", } export enum ExperimentGroupType { UNKNOWN = "unknown", CONTROL = "control", TREATMENT = "treatment", } export enum RemoteConfigurationSourceType { UNKNOWN = "unknown", EXPERIMENT_CONTROL_GROUP = "experiment_control_group", EXPERIMENT_TREATMENT_GROUP = "experiment_treatment_group", REMOTE_CONFIGURATION = "remote_configuration", } export enum ActionType { /** * Unspecified action type */ UNKNOWN = 'unknown', /** * URL action that opens the URL using SafariViewController */ URL = 'url', /** * Deeplink action that opens if Application can open specified deeplink */ DEEPLINK = 'deeplink', /** * Navigation to another No-Codes screen */ NAVIGATION = 'navigation', /** * Purchase the product */ PURCHASE = 'purchase', /** * Restore all purchases */ RESTORE = 'restore', /** * Close current screen */ CLOSE = 'close', /** * Close all No-Code screens */ CLOSE_ALL = 'closeAll', } export enum RemoteConfigurationAssignmentType { UNKNOWN = "unknown", AUTO = "auto", MANUAL = "manual", } export enum ScreenPresentationStyle { /** * on Android - default screen transaction animation will be used. * on iOS - not a modal presentation. This style pushes a controller to a current navigation stack. * For iOS NavigationController on the top of the stack is required. */ PUSH = 'Push', /** * on Android - screen will move from bottom to top. * on iOS - UIModalPresentationFullScreen analog. */ FULL_SCREEN = 'FullScreen', /** * iOS only - UIModalPresentationPopover analog */ POPOVER = 'Popover', /** * Android only - screen will appear/disappear without any animation. * For iOS consider providing the {@link ScreenPresentationConfig.animated} flag. */ NO_ANIMATION = 'NoAnimation', } export enum QonversionErrorCode { UNKNOWN = "Unknown", // Unknown error API_RATE_LIMIT_EXCEEDED = "ApiRateLimitExceeded", // API requests rate limit exceeded APPLE_STORE_ERROR = "AppleStoreError", // Apple Store error received BACKEND_ERROR = "BackendError", // There was a backend error BILLING_UNAVAILABLE = "BillingUnavailable", // The Billing service is unavailable on the device CLIENT_INVALID = "ClientInvalid", // Client is not allowed to issue the request, etc CLOUD_SERVICE_NETWORK_CONNECTION_FAILED = "CloudServiceNetworkConnectionFailed", // The device could not connect to the network CLOUD_SERVICE_PERMISSION_DENIED = "CloudServicePermissionDenied", // User is not allowed to access cloud service information CLOUD_SERVICE_REVOKED = "CloudServiceRevoked", // User has revoked permission to use this cloud service FAILED_TO_RECEIVE_DATA = "FailedToReceiveData", // Could not receive data FEATURE_NOT_SUPPORTED = "FeatureNotSupported", // The requested feature is not supported FRAUD_PURCHASE = "FraudPurchase", // Fraud purchase was detected INCORRECT_REQUEST = "IncorrectRequest", // Request failed INTERNAL_ERROR = "InternalError", // Internal backend error INVALID_CLIENT_UID = "InvalidClientUid", // Client Uid is invalid or not set INVALID_CREDENTIALS = "InvalidCredentials", // Access token is invalid or not set INVALID_STORE_CREDENTIALS = "InvalidStoreCredentials", // This account does not have access to the requested application LAUNCH_ERROR = "LaunchError", // There was an error while launching Qonversion SDK NETWORK_CONNECTION_FAILED = "NetworkConnectionFailed", // There was a network issue. Make sure that the Internet connection is available on the device OFFERINGS_NOT_FOUND = "OfferingsNotFound", // No offerings found PAYMENT_INVALID = "PaymentInvalid", // Purchase identifier was invalid, etc. PAYMENT_NOT_ALLOWED = "PaymentNotAllowed", // This device is not allowed to make the payment PLAY_STORE_ERROR = "PlayStoreError", // There was an issue with the Play Store service PRIVACY_ACKNOWLEDGEMENT_REQUIRED = "PrivacyAcknowledgementRequired", // User needs to acknowledge Apple's privacy policy PRODUCT_ALREADY_OWNED = "ProductAlreadyOwned", // Failed to purchase since item is already owned PRODUCT_NOT_FOUND = "ProductNotFound", // Failed to purchase since the Qonversion product was not found PRODUCT_NOT_OWNED = "ProductNotOwned", // Failed to consume purchase since item is not owned PROJECT_CONFIG_ERROR = "ProjectConfigError", // The project is not configured or configured incorrectly in the Qonversion Dashboard PURCHASE_CANCELED = "PurchaseCanceled", // User pressed back or canceled a dialog for purchase PURCHASE_INVALID = "PurchaseInvalid", // Failure of purchase PURCHASE_PENDING = "PurchasePending", // Purchase is pending PURCHASE_UNSPECIFIED = "PurchaseUnspecified", // Unspecified state of the purchase RECEIPT_VALIDATION_ERROR = "ReceiptValidationError", // Receipt validation error REMOTE_CONFIGURATION_NOT_AVAILABLE = "RemoteConfigurationNotAvailable", // Remote configuration is not available for the current user or for the provided context key RESPONSE_PARSING_FAILED = "ResponseParsingFailed", // A problem occurred while serializing or deserializing data STORE_PRODUCT_NOT_AVAILABLE = "StoreProductNotAvailable", // Requested product is not available for purchase or its product id was not found UNAUTHORIZED_REQUEST_DATA = "UnauthorizedRequestData", // App is attempting to use SKPayment's requestData property, but does not have the appropriate entitlement UNKNOWN_CLIENT_PLATFORM = "UnknownClientPlatform", // The current platform is not supported } export enum NoCodesErrorCode { UNKNOWN = "Unknown", BAD_NETWORK_REQUEST = "BadNetworkRequest", BAD_RESPONSE = "BadResponse", ACTIVITY_START = "ActivityStart", // Android NETWORK_REQUEST_EXECUTION = "NetworkRequestExecution", // Android SERIALIZATION = "Serialization", // Android DESERIALIZATION = "Deserialization", // Android REQUEST_DENIED = "RequestDenied", // Android MAPPING = "Mapping", // Android BACKEND_ERROR = "BackendError", // Android SCREEN_NOT_FOUND = "ScreenNotFound", // Android QONVERSION_ERROR = "QonversionError", INTERNAL = "Internal", // iOS AUTHORIZATION_FAILED = "AuthorizationFailed", // iOS CRITICAL = "Critical", // iOS PRODUCT_NOT_FOUND = "ProductNotFound", // iOS PRODUCTS_LOADING_FAILED = "ProductsLoadingFailed", // iOS RATE_LIMIT_EXCEEDED = "RateLimitExceeded", // iOS SCREEN_LOADING_FAILED = "ScreenLoadingFailed", // iOS SDK_INITIALIZATION_ERROR = "SDKInitializationError" // iOS }