From cc1bb196afc11d1760a6bc12a25dc029167364f7 Mon Sep 17 00:00:00 2001 From: Anush-Shand <127097095+Anush-Shand@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:58:45 +0530 Subject: [PATCH] feat(clevertap): support clevertap-cordova 4.2.0 (#4938) * feat(clevertap): add CleverTap plugin * style(clevertap): cleanup stray lint error * refactor * feat(clevertap): update for latest CleverTap Cordova plugin * chore: Update Repo from Ionic Native Repo * fix: Code Changes for parity SDK-155 * fix: Indentation fixes for SDK-155 * fix: Code Repo fix while updating fork branch * fix: Remove unnecessary adder .scripts Folder * fix: Remove unwanted added folder .circleci * fix: Remove unwanted added File .npmrc * fix: Revert .Github Folder Changes to as per Ionic-Native master * fix: Update changes as per ionic-native master * fix: Code Repo fix while updating fork branch fix: Remove unnecessary adder .scripts Folder fix: Remove unwanted added folder .circleci fix: Remove unwanted added File .npmrc fix: Revert .Github Folder Changes to as per Ionic-Native master fix: Update changes as per ionic-native master * fix(CleverTap): Fix for missing methods issue #3491 * refactor(profile): remove setProfile methods for fb and google * refactor(dynamic variables): remove Product A/B Testing (Dynamic Variables) code * fix(product config): add key param to product config getters * feat(identity): add a new public method getCleverTapID and deprecate existing CleverTapID methods * feat(profile): add public methods to increment/decrement values set via User properties * feat(profile): add public methods to increment/decrement values set via User properties * feat(inapp): add public methods for suspending/discarding & resuming InApp Notifications * feat(inbox): add new api for iOS to delete bulk inbox messages for given message ids * refactor(xiaomi-push): add region as an extra mandatory parameter to setPushXiaomiToken * Update index.ts to support cordova 2.7.0 * Update index.ts * feat(clevertap): support clevertap-cordova 2.7.2 * feat(clevertap): support clevertap-cordova 2.7.2 * feat(clevertap): support clevertap-cordova 2.7.2 * task(SDK-3757) - Add support for cordova v3.0.0 - Adds 2 new APIs = clearInAppResources() and fetchInApps() * task(SDK-3757) - Add support for cordova v3.2.0 - Removes xiaomi related APIs * task(SDK-4148) - Add support for cordova v3.3.0 - Custom Templates - File Variables * task(SDK-4386) - Add support for cordova v3.4.0 - Multi Triggers - Deprecates older APIs * task(SDK-4625) - Support clevertap-cordova 4.0.0 * task(SDK-4625) - Removes baidu and huawei APIs * task(SDK-5073) - Support cordova v4.2.0 --------- Co-authored-by: Peter Wilkniss Co-authored-by: Daniel Sogl Co-authored-by: Darshan Pania Co-authored-by: Surya Co-authored-by: SuryaClevertap <63039490+SuryaClevertap@users.noreply.github.com> Co-authored-by: Piyush Kukadiya Co-authored-by: piyush-kukadiya <61137760+piyush-kukadiya@users.noreply.github.com> Co-authored-by: AishwaryaNanna <97506871+AishwaryaNanna@users.noreply.github.com> --- .../plugins/clevertap/index.ts | 53 ++++++++++++------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/src/@awesome-cordova-plugins/plugins/clevertap/index.ts b/src/@awesome-cordova-plugins/plugins/clevertap/index.ts index f2a26e8b9..1497aff21 100644 --- a/src/@awesome-cordova-plugins/plugins/clevertap/index.ts +++ b/src/@awesome-cordova-plugins/plugins/clevertap/index.ts @@ -62,14 +62,37 @@ export class CleverTap extends AwesomeCordovaNativePlugin { return; } - /** - * Enables tracking opt out for the currently active user. - * - * @param optOut {boolean} - * @returns {Promise} - */ +/** +* 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): Promise { + setOptOut(optOut: boolean, allowSystemEvents?: boolean): Promise { return; } @@ -131,24 +154,14 @@ export class CleverTap extends AwesomeCordovaNativePlugin { } /** - * Sets the device's Baidu push token + * Sets the devices push token for providers other than FCM * * @param token {string} + * @param pushType {object} - with the following keys "type", "prefKey", "className", "messagingSDKClassName"; * @returns {Promise} */ @Cordova() - setPushBaiduToken(token: string): Promise { - return; - } - - /** - * Sets the device's Huawei push token - * - * @param token {string} - * @returns {Promise} - */ - @Cordova() - setPushHuaweiToken(token: string): Promise { + registerPushToken(token: string, pushType: any): Promise { return; }