Compare commits

..
Author SHA1 Message Date
Daniel Sogl 9639a447cf feat(branch-io): sync wrapper with branch-cordova-sdk v6.6.1 API
Add missing methods (enableTestMode, setLogging, getStandardEvents,
crossPlatformIds, lastAttributedTouchData, getBranchQRCode,
setDMAParamsForEEA, setConsumerProtectionAttributionLevel,
setSDKWaitTimeForThirdPartyAPIs, setAnonID, setODMInfo), fix
setRequestMetadata's signature (now requires key/val), and mark
methods removed upstream (setDebug, userCompletedAction, loadRewards,
redeemRewards, creditHistory, initSessionWithCallback) as
@deprecated.
2026-07-27 22:19:11 +02:00
2 changed files with 278 additions and 121 deletions
@@ -36,6 +36,40 @@ export interface BranchIoProperties {
[x: string]: any;
}
export interface BranchIoQRCodeSettings {
codeColor?: string;
backgroundColor?: string;
centerLogo?: string;
width?: number;
margin?: number;
imageFormat?: 'PNG' | 'JPEG';
[x: string]: any;
}
export interface BranchIoStandardEvents {
STANDARD_EVENT_ADD_TO_CART: string;
STANDARD_EVENT_ADD_TO_WISHLIST: string;
STANDARD_EVENT_VIEW_CART: string;
STANDARD_EVENT_INITIATE_PURCHASE: string;
STANDARD_EVENT_ADD_PAYMENT_INFO: string;
STANDARD_EVENT_PURCHASE: string;
STANDARD_EVENT_SEARCH: string;
STANDARD_EVENT_VIEW_ITEM: string;
STANDARD_EVENT_VIEW_ITEMS: string;
STANDARD_EVENT_RATE: string;
STANDARD_EVENT_SHARE: string;
STANDARD_EVENT_INITIATE_STREAM: string;
STANDARD_EVENT_COMPLETE_STREAM: string;
STANDARD_EVENT_COMPLETE_REGISTRATION: string;
STANDARD_EVENT_COMPLETE_TUTORIAL: string;
STANDARD_EVENT_ACHIEVE_LEVEL: string;
STANDARD_EVENT_UNLOCK_ACHIEVEMENT: string;
STANDARD_EVENT_INVITE: string;
STANDARD_EVENT_LOGIN: string;
STANDARD_EVENT_SUBSCRIBE: string;
STANDARD_EVENT_START_TRIAL: string;
}
export interface BranchUniversalObject {
generateShortUrl(analytics: BranchIoAnalytics, properties: BranchIoProperties): Promise<any>;
registerView(): Promise<any>;
@@ -63,6 +97,8 @@ export interface BranchUniversalObject {
* BranchIoPromise
* BranchIoAnalytics
* BranchIoProperties
* BranchIoQRCodeSettings
* BranchIoStandardEvents
* BranchUniversalObject
*/
@Plugin({
@@ -77,6 +113,7 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* for development and debugging only
*
* @deprecated since branch-cordova-sdk v6.1.0. Use setLogging instead.
* @param {boolean} enable Enable debug
* @returns {Promise<any>}
*/
@@ -85,6 +122,27 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
return;
}
/**
* Enables debug logging in the native layer. Must be called before initSession.
*
* @param {boolean} enable Enable logging
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
setLogging(enable: boolean): Promise<any> {
return;
}
/**
* Enables test mode. Must be called before initSession.
*
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
enableTestMode(): Promise<any> {
return;
}
/**
* Disable tracking
*
@@ -109,6 +167,7 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* Initializes Branch with callback
*
* @deprecated not present in branch-cordova-sdk (absent since at least v3.4.0, still absent in v6.6.1). Use initSession instead.
* @returns {Observable<any>}
*/
@Cordova({ observable: true })
@@ -119,10 +178,12 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* Set Request Metadata
*
* @param {string} key
* @param {string} val
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
setRequestMetadata(): Promise<any> {
setRequestMetadata(key: string, val: string): Promise<any> {
return;
}
@@ -157,6 +218,26 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
return;
}
/**
* Get the cross platform and developer identity data most recently set
*
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
crossPlatformIds(): Promise<any> {
return;
}
/**
* Get the last attributed touch data
*
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
lastAttributedTouchData(): Promise<any> {
return;
}
/**
* Set identy of user
*
@@ -181,6 +262,7 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* Registers a custom event
*
* @deprecated since branch-cordova-sdk v5.0.0. Use sendBranchEvent instead.
* @param {string} eventName
* @param {any} metaData
* @returns {Promise<any>}
@@ -215,6 +297,16 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
return;
}
/**
* Get the map of Branch standard event names
*
* @returns {Promise<BranchIoStandardEvents>}
*/
@Cordova({ otherPromise: true })
getStandardEvents(): Promise<BranchIoStandardEvents> {
return;
}
/**
* create a branchUniversalObj variable to reference with other Branch methods
*
@@ -226,9 +318,29 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
return;
}
/**
* Generate a Branch QR code as a base64 encoded image
*
* @param {BranchIoQRCodeSettings} qrCodeSettings
* @param {BranchUniversalObject} branchUniversalObject
* @param {BranchIoAnalytics} analytics
* @param {BranchIoProperties} properties
* @returns {Promise<string>}
*/
@Cordova({ otherPromise: true })
getBranchQRCode(
qrCodeSettings: BranchIoQRCodeSettings,
branchUniversalObject: BranchUniversalObject,
analytics: BranchIoAnalytics,
properties: BranchIoProperties
): Promise<string> {
return;
}
/**
* Load credits
*
* @deprecated since branch-cordova-sdk v5.0.0. Branch's Rewards/Credits feature was removed upstream.
* @param {any} bucket
* @returns {Promise<any>}
*/
@@ -240,6 +352,7 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* Redeem Rewards
*
* @deprecated since branch-cordova-sdk v5.0.0. Branch's Rewards/Credits feature was removed upstream.
* @param {string} value
* @param {any} bucket
* @returns {Promise<any>}
@@ -252,10 +365,73 @@ export class BranchIo extends AwesomeCordovaNativePlugin {
/**
* Show credit history
*
* @deprecated since branch-cordova-sdk v5.0.0. Branch's Rewards/Credits feature was removed upstream.
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
creditHistory(): Promise<any> {
return;
}
/**
* Sets Digital Markets Act (DMA) consent parameters for users in the European Economic Area
*
* @param {boolean} eeaRegion whether the user is in the EEA
* @param {boolean} adPersonalizationConsent whether the user has consented to ad personalization
* @param {boolean} adUserDataUsageConsent whether the user has consented to ad user data usage
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
setDMAParamsForEEA(
eeaRegion: boolean,
adPersonalizationConsent: boolean,
adUserDataUsageConsent: boolean
): Promise<any> {
return;
}
/**
* Sets the Consumer Protection Attribution (CPP) level
*
* @param {string} level one of 'FULL', 'REDUCED', 'MINIMAL', 'NONE'
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true })
setConsumerProtectionAttributionLevel(level: string): Promise<any> {
return;
}
/**
* Sets the SDK wait time, in seconds, for third party API responses (Google On Device Measurement). iOS only.
*
* @param {number} waitTime
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true, platforms: ['iOS'] })
setSDKWaitTimeForThirdPartyAPIs(waitTime: number): Promise<any> {
return;
}
/**
* Sets a custom Meta anonymous ID for the current user. iOS only.
*
* @param {string} anonID
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true, platforms: ['iOS'] })
setAnonID(anonID: string): Promise<any> {
return;
}
/**
* Passes Google On Device Measurement (ODM) event data and the app's first-open timestamp. iOS only.
*
* @param {string} odmInfo
* @param {number} firstOpenTimeStamp
* @returns {Promise<any>}
*/
@Cordova({ otherPromise: true, platforms: ['iOS'] })
setODMInfo(odmInfo: string, firstOpenTimeStamp: number): Promise<any> {
return;
}
}
@@ -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,9 +402,10 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
*/
@Cordova()
getUserEventLogHistory(): Promise<any> {
return;
return;
}
/**
* @deprecated - Use getUserEventLog() instead
* Get Event First Time
@@ -669,7 +670,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;
}
@@ -681,7 +682,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;
}
@@ -705,12 +706,9 @@ 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(dismissInAppIfVisible?: boolean): Promise<any> {
discardInAppNotifications(): Promise<any> {
return;
}
@@ -741,10 +739,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.
@@ -756,6 +754,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/*******************
* Session
******************/
@@ -1222,10 +1221,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.
@@ -1246,28 +1245,6 @@ 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>}
@@ -1287,6 +1264,7 @@ 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
@@ -1324,6 +1302,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/****************************
* Custom Templates methods
****************************/
@@ -1352,104 +1331,105 @@ 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;
@@ -1489,6 +1469,7 @@ export class CleverTap extends AwesomeCordovaNativePlugin {
return;
}
/*******************
* Developer Options
******************/