Compare commits

..
2 changed files with 124 additions and 220 deletions
@@ -62,35 +62,35 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/**
* Sets the user's consent for event and profile tracking.
*
* You must call this method separately for each active user profile,
* for example, when switching user profiles using `onUserLogin`.
*
* Consent Scenarios:
*
* 1. **Complete Opt-Out**
* `userOptOut = true`, `allowSystemEvents = false`
* → No events (custom or system) are saved locally or remotely. Maximum privacy.
*
* 2. **Full Opt-In**
* `userOptOut = false`, `allowSystemEvents = true`
* → All events (custom and system) are tracked. Default behavior.
*
* 3. **Partial Opt-In**
* `userOptOut = true`, `allowSystemEvents = true`
* → Only system events (e.g., app launch, notification viewed) are tracked. Custom events are ignored.
*
* ⚠️ The combination `userOptOut = false` and `allowSystemEvents = false` is invalid.
* In such cases, the SDK defaults to **Full Opt-In**.
*
* To re-enable full tracking after opting out, call with:
* `userOptOut = false`, `allowSystemEvents = true`.
*
* @param {boolean} userOptOut - Set to `true` to disable custom event tracking.
* @param {boolean} allowSystemEvents - Set to `true` to allow system-level event tracking.
*/
/**
* Sets the user's consent for event and profile tracking.
*
* You must call this method separately for each active user profile,
* for example, when switching user profiles using `onUserLogin`.
*
* Consent Scenarios:
*
* 1. **Complete Opt-Out**
* `userOptOut = true`, `allowSystemEvents = false`
* → No events (custom or system) are saved locally or remotely. Maximum privacy.
*
* 2. **Full Opt-In**
* `userOptOut = false`, `allowSystemEvents = true`
* → All events (custom and system) are tracked. Default behavior.
*
* 3. **Partial Opt-In**
* `userOptOut = true`, `allowSystemEvents = true`
* → Only system events (e.g., app launch, notification viewed) are tracked. Custom events are ignored.
*
* ⚠️ The combination `userOptOut = false` and `allowSystemEvents = false` is invalid.
* In such cases, the SDK defaults to **Full Opt-In**.
*
* To re-enable full tracking after opting out, call with:
* `userOptOut = false`, `allowSystemEvents = true`.
*
* @param {boolean} userOptOut - Set to `true` to disable custom event tracking.
* @param {boolean} allowSystemEvents - Set to `true` to allow system-level event tracking.
*/
@Cordova()
setOptOut(optOut: boolean, allowSystemEvents?: boolean): Promise<any> {
return;
@@ -361,7 +361,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserEventLog(eventName: string): Promise<any> {
return;
return;
}
/**
@@ -372,7 +372,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserEventLogCount(eventName: string): Promise<any> {
return;
return;
}
/**
@@ -382,7 +382,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserLastVisitTs(): Promise<any> {
return;
return;
}
/**
@@ -392,7 +392,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserAppLaunchCount(): Promise<any> {
return;
return;
}
/**
@@ -402,10 +402,9 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserEventLogHistory(): Promise<any> {
return;
return;
}
/**
* @deprecated - Use getUserEventLog() instead
* Get Event First Time
@@ -670,7 +669,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
profileIncrementValueBy(key: string,value: number): Promise<any> {
profileIncrementValueBy(key: string, value: number): Promise<any> {
return;
}
@@ -682,7 +681,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
* @returns {Promise<any>}
*/
@Cordova()
profileDecrementValueBy(key: string,value: number): Promise<any> {
profileDecrementValueBy(key: string, value: number): Promise<any> {
return;
}
@@ -706,9 +705,12 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
* Discards inApp notifications until 'resumeInAppNotifications' is called for current session.
* Automatically resumes InApp notifications display on CleverTap shared instance creation.
* Pending inApp notifications are not displayed.
*
* @param dismissInAppIfVisible {boolean} - Optional. If true, also dismisses the currently visible InApp notification.
* @returns {Promise<any>}
*/
@Cordova()
discardInAppNotifications(): Promise<any> {
discardInAppNotifications(dismissInAppIfVisible?: boolean): Promise<any> {
return;
}
@@ -739,10 +741,10 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
* @param expiredOnly {boolean} - to clear only assets which will not be needed further for inapps
* @returns {Promise<any>}
*/
@Cordova()
clearFileResources(expiredOnly: boolean): Promise<any> {
return;
}
@Cordova()
clearFileResources(expiredOnly: boolean): Promise<any> {
return;
}
/**
* Fetches In Apps from server.
@@ -754,7 +756,6 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/*******************
* Session
******************/
@@ -1221,10 +1222,10 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
* @returns {Promise<any>}
* @param {string} variable The String specifying the name of file varible to be created.
*/
@Cordova()
defineFileVariable(variable: string): Promise<any> {
return;
}
@Cordova()
defineFileVariable(variable: string): Promise<any> {
return;
}
/**
* Get a variable or a group for the specified name.
@@ -1245,6 +1246,28 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/**
* Returns information about the active A/B experiment variants for the current user.
* Each variant object contains an "id" key mapping to the numeric ID of the variant.
*
* @returns {Promise<any>} - Returns an array of variant objects.
*/
@Cordova()
variants(): Promise<any> {
return;
}
/**
* Clears any active mute state set by the backend, allowing the SDK to resume
* normal event tracking and network operations immediately.
*
* @returns {Promise<any>}
*/
@Cordova()
unmute(): Promise<any> {
return;
}
/**
* Adds a callback to be invoked when variables are initialised with server values. Will be called each time new values are fetched.
* @returns {Promise<any>}
@@ -1264,7 +1287,6 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/**
* Called when the value of the file variable is downloaded and ready
* @param {name} string the name of the variable
@@ -1302,7 +1324,6 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/****************************
* Custom Templates methods
****************************/
@@ -1331,105 +1352,104 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
}
/**
* Notify the SDK that an active custom template is dismissed. The active custom template is considered to be
* visible to the user until this method is called. Since the SDK can show only one InApp message at a time, all
* other messages will be queued until the current one is dismissed.
* @param {string} templateName The name of the active template
* @returns {Promise<any>}
*/
* Notify the SDK that an active custom template is dismissed. The active custom template is considered to be
* visible to the user until this method is called. Since the SDK can show only one InApp message at a time, all
* other messages will be queued until the current one is dismissed.
* @param {string} templateName The name of the active template
* @returns {Promise<any>}
*/
@Cordova()
customTemplateSetDismissed(templateName: string): Promise<any> {
return;
}
/**
* Notify the SDK that an active custom template is presented to the user.
* @param {string} templateName The name of the active template
* @returns {Promise<any>}
*/
* Notify the SDK that an active custom template is presented to the user.
* @param {string} templateName The name of the active template
* @returns {Promise<any>}
*/
@Cordova()
customTemplateSetPresented(templateName: string): Promise<any> {
return;
}
/**
* Trigger a custom template action argument by name.
*
* @param {string} templateName The name of an active template for which the action is defined
* @param {string} argName The action argument na
* @returns {Promise<any>}
*/
* Trigger a custom template action argument by name.
*
* @param {string} templateName The name of an active template for which the action is defined
* @param {string} argName The action argument na
* @returns {Promise<any>}
*/
@Cordova()
customTemplateRunAction(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Retrieve a string argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
* Retrieve a string argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
@Cordova()
customTemplateGetStringArg(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Retrieve a number argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
* Retrieve a number argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
@Cordova()
customTemplateGetNumberArg(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Retrieve a boolean argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
* Retrieve a boolean argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
@Cordova()
customTemplateGetBooleanArg(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Retrieve a file argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
* Retrieve a file argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
@Cordova()
customTemplateGetFileArg(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Retrieve an object argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
* Retrieve an object argument by name.
*
* @param {string} templateName The name of an active template for which the argument is defined
* @param {string} argName The action argument name
* @returns {Promise<any>}
*/
@Cordova()
customTemplateGetObjectArg(templateName: string, argName: string): Promise<any> {
return;
}
/**
* Get a string representation of an active's template context with information about all arguments.
* @param {string} templateName The name of an active template
* @returns {Promise<any>}
*/
* Get a string representation of an active's template context with information about all arguments.
* @param {string} templateName The name of an active template
* @returns {Promise<any>}
*/
@Cordova()
customTemplateContextToString(templateName: string): Promise<any> {
return;
@@ -1469,7 +1489,6 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/*******************
* Developer Options
******************/
@@ -5,12 +5,6 @@ export interface IAPProductOptions {
id: string;
alias?: string;
type: string;
/**
* Name of the group your subscription product is a member of (default to "default").
*
* If you don't set anything, all subscription will be members of the same group.
*/
group?: string;
}
export interface IRefeshResult {
@@ -37,29 +31,6 @@ export type IAPProducts = IAPProduct[] & {
export type IAPQueryCallback = ((product: IAPProduct) => void) | ((error: IAPError) => void);
export interface IAPProductDiscount {
/** The discount identifier */
id: string;
/** Localized price, with currency symbol */
price: string;
/** Price in micro-units (divide by 1000000 to get numeric price) */
priceMicros: number;
/** Number of subscription periods */
period: number;
/** Unit of the subcription period ("Day", "Week", "Month" or "Year") */
periodUnit: string;
/** "PayAsYouGo", "UpFront", or "FreeTrial" */
paymentMode: string;
/** True if the user is deemed eligible for this discount by the platform */
eligible: boolean;
}
export interface IAPProduct {
id: string;
@@ -67,11 +38,6 @@ export interface IAPProduct {
type: string;
/**
* Name of the group your subscription product is a member of (default to "default").
*/
group?: string;
state: string;
title: string;
@@ -84,9 +50,6 @@ export interface IAPProduct {
currency: string;
/** Country code. Available only on iOS */
countryCode?: string;
loaded: boolean;
valid: boolean;
@@ -95,9 +58,6 @@ export interface IAPProduct {
owned: boolean;
/** Purchase has been initiated but is waiting for external action (for example, Ask to Buy on iOS) */
deferred?: boolean;
downloading?: boolean;
downloaded?: boolean;
@@ -114,19 +74,10 @@ export interface IAPProduct {
introPriceSubscriptionPeriod?: string;
/** Duration the introductory price is available (in period-unit) */
introPricePeriod?: string;
/** Period for the introductory price ("Day", "Week", "Month" or "Year") */
introPricePeriodUnit?: string;
introPricePaymentMode?: string;
ineligibleForIntroPrice?: boolean;
/** Array of discounts available for the product. */
discounts?: IAPProductDiscount[];
billingPeriod?: number;
billingPeriodUnit?: string;
@@ -612,7 +563,6 @@ export class IAPError {
* IAPProduct
* IAPProductOptions
* IAPProductEvents
* IAPProductDiscount
* ```
*/
@Plugin({
@@ -644,7 +594,7 @@ export class InAppPurchase2 extends AwesomeCordovaNativePlugin {
* Debug level. Use QUIET, ERROR, WARNING, INFO or DEBUG constants
*/
@CordovaProperty()
verbosity: number | boolean;
verbosity: number;
/**
* Set to true to clear the transaction queue. Not recommended for production.
@@ -666,14 +616,6 @@ export class InAppPurchase2 extends AwesomeCordovaNativePlugin {
@CordovaProperty()
disableHostedContent: boolean;
/**
* An optional string of developer profile name. This value can be used for payment risk evaluation.
*
* Do not use the user account ID for this field.
*/
@CordovaProperty()
developerName: string;
@CordovaProperty()
FREE_SUBSCRIPTION: string;
@@ -689,10 +631,6 @@ export class InAppPurchase2 extends AwesomeCordovaNativePlugin {
@CordovaProperty()
NON_CONSUMABLE: string;
/** Type: The application bundle */
@CordovaProperty()
APPLICATION: string;
@CordovaProperty()
ERR_SETUP: number;
@@ -756,46 +694,6 @@ export class InAppPurchase2 extends AwesomeCordovaNativePlugin {
@CordovaProperty()
ERR_SUBSCRIPTION_UPDATE_NOT_AVAILABLE: number;
/** Error: The requested product is not available in the store. */
@CordovaProperty()
ERR_PRODUCT_NOT_AVAILABLE: number;
/** Error: The user has not allowed access to Cloud service information */
@CordovaProperty()
ERR_CLOUD_SERVICE_PERMISSION_DENIED: number;
/** Error: The device could not connect to the network. */
@CordovaProperty()
ERR_CLOUD_SERVICE_NETWORK_CONNECTION_FAILED: number;
/** Error: The user has revoked permission to use this cloud service. */
@CordovaProperty()
ERR_CLOUD_SERVICE_REVOKED: number;
/** Error: The user has not yet acknowledged Apple's privacy policy */
@CordovaProperty()
ERR_PRIVACY_ACKNOWLEDGEMENT_REQUIRED: number;
/** Error: The app is attempting to use a property for which it does not have the required entitlement. */
@CordovaProperty()
ERR_UNAUTHORIZED_REQUEST_DATA: number;
/** Error: The offer identifier is invalid. */
@CordovaProperty()
ERR_INVALID_OFFER_IDENTIFIER: number;
/** Error: The price you specified in App Store Connect is no longer valid. */
@CordovaProperty()
ERR_INVALID_OFFER_PRICE: number;
/** Error: The signature in a payment discount is not valid. */
@CordovaProperty()
ERR_INVALID_SIGNATURE: number;
/** Error: Parameters are missing in a payment discount. */
@CordovaProperty()
ERR_MISSING_OFFER_PARAMS: number;
@CordovaProperty()
REGISTERED: string;
@@ -885,25 +783,12 @@ export class InAppPurchase2 extends AwesomeCordovaNativePlugin {
}
/**
* Register error handler.
* Register error handler
*
* Can also be called with an error code as the first argument to only listen to a specific error code.
*
* @param onErrorOrErrorCode {Function | number} function to call on error, or an error code to filter on
* @param [onError] {Function} function to call on error, when the first argument is an error code
* @param onError {Function} function to call on error
*/
@Cordova({ sync: true })
error(onErrorOrErrorCode: Function | number, onError?: (err: IAPError) => void): void {}
/**
* Return all products member of a given subscription group.
*
* @param groupId
*/
@Cordova({ sync: true })
getGroup(groupId: string): IAPProduct[] {
return;
}
error(onError: Function): void {}
/**
* Add or register a product