From 70e904ebb7c64248af08fa50019fcc644ad5ee96 Mon Sep 17 00:00:00 2001 From: Daniel Sogl Date: Mon, 27 Jul 2026 22:29:42 +0200 Subject: [PATCH] feat(tealium): add missing v2.5.0 APIs and remote command params (#5195) Add gatherTrackData, handleDeepLink, resetVisitorId, clearStoredVisitorIds, setVisitorIdListener, extend addRemoteCommand with path/url, add RemoteCommand interface, and add missing TealiumConfig fields (overrideCollectProfile, remoteCommands, sessionCountingEnabled, batchingEnabled). --- .../plugins/tealium/index.ts | 85 ++++++++++++++++++- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/src/@awesome-cordova-plugins/plugins/tealium/index.ts b/src/@awesome-cordova-plugins/plugins/tealium/index.ts index 4fec7ebf6..0a8a14130 100644 --- a/src/@awesome-cordova-plugins/plugins/tealium/index.ts +++ b/src/@awesome-cordova-plugins/plugins/tealium/index.ts @@ -41,7 +41,10 @@ export interface TealiumDispatch { export class TealiumView implements TealiumDispatch { public type = 'view'; - constructor(public viewName: string, public dataLayer: Map) {} + constructor( + public viewName: string, + public dataLayer: Map + ) {} toJson() { const dictionary: any = {}; dictionary['type'] = this.type; @@ -57,7 +60,10 @@ export class TealiumView implements TealiumDispatch { export class TealiumEvent implements TealiumDispatch { public type = 'event'; - constructor(public eventName: string, public dataLayer: Map) {} + constructor( + public eventName: string, + public dataLayer: Map + ) {} toJson() { const dictionary: any = {}; dictionary['type'] = this.type; @@ -72,7 +78,21 @@ export class TealiumEvent implements TealiumDispatch { } export class ConsentExpiry { - constructor(public time: number, public unit: TimeUnit) {} + constructor( + public time: number, + public unit: TimeUnit + ) {} +} + +export interface RemoteCommand { + /** The ID used to invoke the remote command */ + id: string; + /** Path to a local JSON file mapping, relative to the app bundle */ + path?: string; + /** URL to a remote JSON file mapping */ + url?: string; + /** Callback invoked when the remote command is triggered */ + callback?: Function; } export enum TimeUnit { @@ -130,6 +150,7 @@ export interface TealiumConfig { memoryReportingEnabled?: boolean; overrideCollectURL?: string; overrideCollectBatchURL?: string; + overrideCollectProfile?: string; overrideCollectDomain?: string; overrideLibrarySettingsURL?: string; overrideTagManagementURL?: string; @@ -143,6 +164,12 @@ export interface TealiumConfig { useRemoteLibrarySettings?: boolean; visitorServiceEnabled?: boolean; visitorServiceRefreshInterval?: string; + /** Remote commands to register automatically on initialize */ + remoteCommands?: RemoteCommand[]; + /** Whether session counting is enabled */ + sessionCountingEnabled?: boolean; + /** Whether dispatch batching is enabled */ + batchingEnabled?: boolean; } /** @@ -251,6 +278,16 @@ export class Tealium extends AwesomeCordovaNativePlugin { return; } + /** + * Gathers the current track data (data layer merged with library data) without dispatching a track call + * @param callback + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + gatherTrackData(callback?: Function): Promise { + return; + } + /** * Retrieves the user's consent status * @param callback @@ -310,6 +347,16 @@ export class Tealium extends AwesomeCordovaNativePlugin { return; } + /** + * Passes a deep link URI to the Tealium library for tracking + * @param uri The deep link URI + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + handleDeepLink(uri: string): Promise { + return; + } + /** * Retrieves the Tealium Visitor ID * @param callback @@ -320,6 +367,24 @@ export class Tealium extends AwesomeCordovaNativePlugin { return; } + /** + * Resets the Tealium Visitor ID, generating a new one + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + resetVisitorId(): Promise { + return; + } + + /** + * Clears all previously-stored visitor IDs + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + clearStoredVisitorIds(): Promise { + return; + } + /** * Sets a listener to be called when the AudienceStream visitor profile is updated * @param callback @@ -330,6 +395,16 @@ export class Tealium extends AwesomeCordovaNativePlugin { return; } + /** + * Sets a listener to be called when the Visitor ID changes + * @param callback + * @return {Promise} Returns a promise that resolves when something happens + */ + @Cordova() + setVisitorIdListener(callback?: Function): Promise { + return; + } + /** * Sets a listener to be called when the consent has expired * @param callback @@ -344,10 +419,12 @@ export class Tealium extends AwesomeCordovaNativePlugin { * Adds a remote command for later execution * @param id The ID used to invoke the remote command * @param callback + * @param path Path to a local JSON file mapping, relative to the app bundle + * @param url URL to a remote JSON file mapping * @return {Promise} Returns a promise that resolves when something happens */ @Cordova() - addRemoteCommand(id: string, callback?: Function): Promise { + addRemoteCommand(id: string, callback?: Function, path?: string, url?: string): Promise { return; }