type ExternalAttributionSource = | 'Adjust' | 'Airbridge' | 'AppsFlyer' | 'Kochava' | 'Singular' | 'Tenjin'; export interface ExternalAttribution { source: ExternalAttributionSource; value: Record; } export class ExternalAttributions { static adjust(data: Record): ExternalAttribution { return { source: 'Adjust', value: data, }; } static airbridge(data: Record): ExternalAttribution { return { source: 'Airbridge', value: data, }; } static appsflyer(data: Record): ExternalAttribution { return { source: 'AppsFlyer', value: data.data, }; } static kochava(data: Record): ExternalAttribution { return { source: 'Kochava', value: data.raw, }; } static singular(data: Map): ExternalAttribution { return { source: 'Singular', value: Object.fromEntries(data), }; } static tenjin(data: Record): ExternalAttribution { return { source: 'Tenjin', value: data, }; } }