cordova-plugin-qonversion
Version:
Qonversion Cordova Plugin
276 lines (275 loc) • 12.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const enums_1 = require("./enums");
const Mapper_1 = __importDefault(require("./Mapper"));
const utils_1 = require("./utils");
const PurchaseOptionsBuilder_1 = require("./PurchaseOptionsBuilder");
const sdkVersion = "6.3.1";
class QonversionInternal {
entitlementsUpdateListener;
promoPurchasesListener;
constructor(qonversionConfig) {
(0, utils_1.callQonversionNative)('storeSDKInfo', ['cordova', sdkVersion]).then(utils_1.noop);
(0, utils_1.subscribeOnQonversionNativeEvents)('initializeSdk', (updatedEntitlements) => {
if (this.entitlementsUpdateListener) {
const entitlements = Mapper_1.default.convertEntitlements(updatedEntitlements);
this.entitlementsUpdateListener.onEntitlementsUpdated(entitlements);
}
}, [
qonversionConfig.projectKey,
qonversionConfig.launchMode,
qonversionConfig.environment,
qonversionConfig.entitlementsCacheLifetime,
qonversionConfig.proxyUrl,
qonversionConfig.kidsMode
]);
this.entitlementsUpdateListener = qonversionConfig.entitlementsUpdateListener;
}
syncHistoricalData() {
(0, utils_1.callQonversionNative)('syncHistoricalData').then(utils_1.noop);
}
syncStoreKit2Purchases() {
if ((0, utils_1.isIos)()) {
(0, utils_1.callQonversionNative)('syncStoreKit2Purchases').then(utils_1.noop);
}
}
async getPromotionalOffer(product, discount) {
if ((0, utils_1.isAndroid)()) {
return null;
}
const args = [product.qonversionID, discount.identifier];
let promoOffer = await (0, utils_1.callQonversionNative)('getPromotionalOffer', args);
const mappedPromoOffer = Mapper_1.default.convertPromoOffer(promoOffer);
return mappedPromoOffer;
}
async purchaseProduct(product, options) {
try {
if (!options) {
options = new PurchaseOptionsBuilder_1.PurchaseOptionsBuilder().build();
}
const promoOffer = {
productDiscountId: options.promotionalOffer?.productDiscount.identifier,
keyIdentifier: options.promotionalOffer?.paymentDiscount.keyIdentifier,
nonce: options.promotionalOffer?.paymentDiscount.nonce,
signature: options.promotionalOffer?.paymentDiscount.signature,
timestamp: options.promotionalOffer?.paymentDiscount.timestamp
};
let args = [product.qonversionID];
if ((0, utils_1.isIos)()) {
args = [...args, options.quantity, options.contextKeys, promoOffer];
}
else {
args = [...args, options.offerId, options.applyOffer, options.oldProduct?.qonversionID, options.updatePolicy, options.contextKeys];
}
const entitlements = await (0, utils_1.callQonversionNative)('purchase', args);
// noinspection UnnecessaryLocalVariableJS
const mappedPermissions = Mapper_1.default.convertEntitlements(entitlements);
return mappedPermissions;
}
catch (e) {
if (e) {
e.userCanceled = e.code === enums_1.QonversionErrorCode.PURCHASE_CANCELED;
throw e;
}
else {
throw 'Unknown error occurred while purchase';
}
}
}
async purchase(purchaseModel) {
try {
let args = [purchaseModel.productId];
if ((0, utils_1.isAndroid)()) {
args = [...args, purchaseModel.offerId, purchaseModel.applyOffer, null, null, []];
}
const entitlements = await (0, utils_1.callQonversionNative)('purchase', args);
// noinspection UnnecessaryLocalVariableJS
const mappedEntitlement = Mapper_1.default.convertEntitlements(entitlements);
return mappedEntitlement;
}
catch (e) {
if (e) {
e.userCanceled = e.code === enums_1.QonversionErrorCode.PURCHASE_CANCELED;
throw e;
}
else {
throw 'Unknown error occurred while purchase';
}
}
}
async updatePurchase(purchaseUpdateModel) {
if (!(0, utils_1.isAndroid)()) {
return null;
}
try {
const entitlements = await (0, utils_1.callQonversionNative)('updatePurchase', [
purchaseUpdateModel.productId,
purchaseUpdateModel.offerId,
purchaseUpdateModel.applyOffer,
purchaseUpdateModel.oldProductId,
purchaseUpdateModel.updatePolicy,
[]
]);
// noinspection UnnecessaryLocalVariableJS
const mappedEntitlement = Mapper_1.default.convertEntitlements(entitlements);
return mappedEntitlement;
}
catch (e) {
if (e) {
e.userCanceled = e.code === enums_1.QonversionErrorCode.PURCHASE_CANCELED;
throw e;
}
else {
throw 'Unknown error occurred while purchase';
}
}
}
async products() {
let products = await (0, utils_1.callQonversionNative)('products');
// noinspection UnnecessaryLocalVariableJS
const mappedProducts = Mapper_1.default.convertProducts(products);
return mappedProducts;
}
async offerings() {
let offerings = await (0, utils_1.callQonversionNative)('offerings');
// noinspection UnnecessaryLocalVariableJS
const mappedOfferings = Mapper_1.default.convertOfferings(offerings);
return mappedOfferings;
}
async checkTrialIntroEligibility(ids) {
const eligibilityInfo = await (0, utils_1.callQonversionNative)('checkTrialIntroEligibilityForProductIds', [ids]);
// noinspection UnnecessaryLocalVariableJS
const mappedEligibility = Mapper_1.default.convertEligibility(eligibilityInfo);
return mappedEligibility;
}
async checkEntitlements() {
const entitlements = await (0, utils_1.callQonversionNative)('checkEntitlements');
// noinspection UnnecessaryLocalVariableJS
const mappedEntitlement = Mapper_1.default.convertEntitlements(entitlements);
return mappedEntitlement;
}
async restore() {
const entitlements = await (0, utils_1.callQonversionNative)('restore');
// noinspection UnnecessaryLocalVariableJS
const mappedEntitlement = Mapper_1.default.convertEntitlements(entitlements);
return mappedEntitlement;
}
syncPurchases() {
if (!(0, utils_1.isAndroid)()) {
return;
}
(0, utils_1.callQonversionNative)('syncPurchases').then(utils_1.noop);
}
async isFallbackFileAccessible() {
const isAccessibleResult = await (0, utils_1.callQonversionNative)('isFallbackFileAccessible');
return isAccessibleResult.success;
}
async identify(userID) {
const info = await (0, utils_1.callQonversionNative)('identify', [userID]);
// noinspection UnnecessaryLocalVariableJS
const mappedUserInfo = Mapper_1.default.convertUserInfo(info);
return mappedUserInfo;
}
logout() {
(0, utils_1.callQonversionNative)('logout').then(utils_1.noop);
}
async userInfo() {
const info = await (0, utils_1.callQonversionNative)('userInfo');
// noinspection UnnecessaryLocalVariableJS
const mappedUserInfo = Mapper_1.default.convertUserInfo(info);
return mappedUserInfo;
}
async remoteConfig(contextKey) {
const remoteConfig = await (0, utils_1.callQonversionNative)('remoteConfig', [contextKey]);
// noinspection UnnecessaryLocalVariableJS
const mappedRemoteConfig = Mapper_1.default.convertRemoteConfig(remoteConfig);
return mappedRemoteConfig;
}
async remoteConfigList() {
const remoteConfigList = await (0, utils_1.callQonversionNative)('remoteConfigList');
// noinspection UnnecessaryLocalVariableJS
const mappedRemoteConfigList = Mapper_1.default.convertRemoteConfigList(remoteConfigList);
return mappedRemoteConfigList;
}
async remoteConfigListForContextKeys(contextKeys, includeEmptyContextKey) {
let remoteConfigList = await (0, utils_1.callQonversionNative)('remoteConfigListForContextKeys', [contextKeys, includeEmptyContextKey]);
// noinspection UnnecessaryLocalVariableJS
const mappedRemoteConfigList = Mapper_1.default.convertRemoteConfigList(remoteConfigList);
return mappedRemoteConfigList;
}
async attachUserToExperiment(experimentId, groupId) {
await (0, utils_1.callQonversionNative)('attachUserToExperiment', [experimentId, groupId]);
return;
}
async detachUserFromExperiment(experimentId) {
await (0, utils_1.callQonversionNative)('detachUserFromExperiment', [experimentId]);
return;
}
async attachUserToRemoteConfiguration(remoteConfigurationId) {
await (0, utils_1.callQonversionNative)('attachUserToRemoteConfiguration', [remoteConfigurationId]);
return;
}
async detachUserFromRemoteConfiguration(remoteConfigurationId) {
await (0, utils_1.callQonversionNative)('detachUserFromRemoteConfiguration', [remoteConfigurationId]);
return;
}
attribution(data, provider) {
(0, utils_1.callQonversionNative)('attribution', [data, provider]).then(utils_1.noop);
}
setUserProperty(property, value) {
if (property == enums_1.UserPropertyKey.CUSTOM) {
console.warn("Can not set user property with the key `UserPropertyKey.CUSTOM`. " +
"To set custom user property, use the `setCustomUserProperty` method.");
return;
}
(0, utils_1.callQonversionNative)('setDefinedProperty', [property, value]).then(utils_1.noop);
}
setCustomUserProperty(property, value) {
(0, utils_1.callQonversionNative)('setCustomProperty', [property, value]).then(utils_1.noop);
}
async userProperties() {
const properties = await (0, utils_1.callQonversionNative)('userProperties');
// noinspection UnnecessaryLocalVariableJS
const mappedUserProperties = Mapper_1.default.convertUserProperties(properties);
return mappedUserProperties;
}
collectAdvertisingId() {
if ((0, utils_1.isIos)()) {
(0, utils_1.callQonversionNative)('collectAdvertisingId').then(utils_1.noop);
}
}
collectAppleSearchAdsAttribution() {
if ((0, utils_1.isIos)()) {
(0, utils_1.callQonversionNative)('collectAppleSearchAdsAttribution').then(utils_1.noop);
}
}
setEntitlementsUpdateListener(listener) {
this.entitlementsUpdateListener = listener;
}
setPromoPurchasesDelegate(delegate) {
if (!(0, utils_1.isIos)()) {
return;
}
this.promoPurchasesListener = delegate;
(0, utils_1.subscribeOnQonversionNativeEvents)('subscribeOnPromoPurchases', productId => {
if (this.promoPurchasesListener) {
const promoPurchaseExecutor = async () => {
const entitlements = await (0, utils_1.callQonversionNative)('promoPurchase', [productId]);
// noinspection UnnecessaryLocalVariableJS
const mappedEntitlement = Mapper_1.default.convertEntitlements(entitlements);
return mappedEntitlement;
};
this.promoPurchasesListener.onPromoPurchaseReceived(productId, promoPurchaseExecutor);
}
});
}
presentCodeRedemptionSheet() {
if ((0, utils_1.isIos)()) {
(0, utils_1.callQonversionNative)('presentCodeRedemptionSheet').then(utils_1.noop);
}
}
}
exports.default = QonversionInternal;