@magicpixel/rn-mp-client-sdk 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ var _logger = require("./logger");
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
- var _expoDevice = require("expo-device");
14
+ var _utils = require("./utils");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -28,14 +28,10 @@ class DataStore {
28
28
  this.devicePlatform = _reactNative.Platform.OS.toLowerCase();
29
29
  }
30
30
 
31
- const dType = await (0, _expoDevice.getDeviceTypeAsync)();
32
-
33
- if (dType === _expoDevice.DeviceType.PHONE) {
34
- this.deviceType = 'mobile';
35
- } else if (dType === _expoDevice.DeviceType.TABLET) {
31
+ if (_utils.Utils.isTablet()) {
36
32
  this.deviceType = 'tablet';
37
33
  } else {
38
- this.deviceType = 'unknown';
34
+ this.deviceType = 'mobile';
39
35
  }
40
36
 
41
37
  this.resetCollectorUrl(clientSdk.s.c_url, clientSdk.s.ev, clientSdk.s.v_id, clientSdk.s.p_id);
@@ -1 +1 @@
1
- {"version":3,"names":["DataStore","init","clientSdk","setMpEnv","s","ev","Platform","OS","devicePlatform","toLowerCase","dType","getDeviceTypeAsync","DeviceType","PHONE","deviceType","TABLET","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","enQueueTMFire","sseOnly","name","dcrName","eventId","dcrPayload","runQueue","push","isDataStoreReady","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setSdkInitOptions","options","deQueueTMFire","length","pop","isTagManagerProcessing","isProcessing","setTagManagerProcessing","status","getSdkDataElements","d","getSdkQC","qc","hasOneSSTTag","sst","getSSTDownStream","dws_s_t","getClientDownStream","dws_c_t","getClientSdk","getSSTUrl","getAttrInfoUrl","setVisitInfo","visitInfo","visitInfoToString","visitVer","visitId","visitTs","visitCt","visitDepth","undefined","setVisitorInfo","visitorInfo","getDebugId","debugId","getErrorReportUrl","getIdlUrl","getSdkVersion","setDebugId","dbgId","shouldFireSstForEvent","eventName","sseMpDlE","indexOf","getUrlInfo","getSdkTags","t","getSdkProviders","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","storeData","key","value","AsyncStorage","setItem","JSON","stringify","getDataFromStorage","getItem","parse","getDataElements","dataElements","setDataElements","de","getPageLang","pageLang","getDeviceOs","getDataElementHelpers","log","Logger","logDbg","err","logError","getPageName","getDataElementValue","param","setPageLang","lang","getSdkPageLangKey","langKey","setDataElement","setValidQc","qcList","qcInfo","validQcList","validQcInfoList","getValidQcList","getValidQcInfo","setTransFunctions","elements","transFunctions","getTransFunctions","getOperatingSystem","getVisitId","getDeviceType","getDeviceId","dId","getMpId","mId","getVisitorInfoAsString","getOrgId","getCoreVersion","v","getMpEnv","mpEnvShort","shortEnv"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n QcInfoItem,\n RunQueueModel,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport { Logger } from './logger';\nimport type {\n ClientSdkDeItem,\n ClientSdkPrItem,\n ClientSdkQcItem,\n ClientSdkTagItem,\n MpClientSdk,\n} from '../models/mp-client-sdk';\nimport { Platform } from 'react-native';\nimport { DeviceType, getDeviceTypeAsync } from 'expo-device';\n\nexport class DataStore {\n private static isDataStoreInitialized = false;\n private static dataElements: MapLike = {};\n private static validQcList: string[];\n private static validQcInfoList: Array<QcInfoItem> = [];\n private static transFunctions: MapLike = {};\n private static prStatus = true;\n private static clientSdk: MpClientSdk;\n private static urls: UrlInfo;\n private static debugId: string;\n private static visitorInfo: VisitorInfo;\n private static visitInfo: VisitInfo;\n private static pageLang = 'en';\n private static mpEnvShort: 'stg' | 'prd';\n private static devicePlatform = 'unknown';\n private static deviceType = 'mobile';\n private static runQueue: RunQueueModel[] = [];\n private static isProcessing = false;\n private static sdkInitOptions: SdkInitOptions;\n\n static async init(clientSdk: MpClientSdk): Promise<void> {\n this.clientSdk = clientSdk;\n this.setMpEnv(clientSdk?.s?.ev === 'staging' ? 'stg' : 'prd');\n if (typeof Platform !== 'undefined' && typeof Platform.OS !== 'undefined') {\n this.devicePlatform = Platform.OS.toLowerCase();\n }\n\n const dType = await getDeviceTypeAsync();\n if (dType === DeviceType.PHONE) {\n this.deviceType = 'mobile';\n } else if (dType === DeviceType.TABLET) {\n this.deviceType = 'tablet';\n } else {\n this.deviceType = 'unknown';\n }\n\n this.resetCollectorUrl(\n clientSdk.s.c_url,\n clientSdk.s.ev,\n clientSdk.s.v_id,\n clientSdk.s.p_id\n );\n this.isDataStoreInitialized = true;\n }\n\n static resetCollectorUrl(\n baseCollectorUrl: string,\n sdkEnv: string,\n vendorId: string,\n projectId: string\n ): boolean {\n const tagsBaseUrl = `${baseCollectorUrl}/${\n sdkEnv === 'staging' ? 's' : 'p'\n }/${vendorId}/${projectId}`;\n this.urls = {\n tfUrl: tagsBaseUrl + '/sst',\n errUrl: tagsBaseUrl + '/err',\n rptUrl: tagsBaseUrl + '/report',\n infoUrl: tagsBaseUrl + '/info',\n baseUrl: baseCollectorUrl,\n attrInfoUrl: baseCollectorUrl + `/idl/${vendorId}/attrInfo`,\n idlUrl:\n baseCollectorUrl +\n `/idl/${vendorId}/idl${sdkEnv === 'staging' ? '-staging' : ''}`,\n };\n return true;\n }\n\n static enQueueTMFire(\n sseOnly: boolean,\n name: string,\n dcrName: string,\n eventId: string,\n dcrPayload?: Record<string, any>\n ): void {\n this.runQueue.push({ sseOnly, name, dcrName, eventId, dcrPayload });\n }\n\n static isDataStoreReady(): boolean {\n return this.isDataStoreInitialized;\n }\n\n static getSdkPcKey(): string {\n return this.clientSdk.pcKey;\n }\n\n static getSdkInitOptions(): SdkInitOptions {\n return this.sdkInitOptions;\n }\n\n static setSdkInitOptions(options: SdkInitOptions): void {\n this.sdkInitOptions = options;\n }\n\n static deQueueTMFire(): RunQueueModel {\n return this.runQueue.length > 0 ? this.runQueue.pop() : null;\n }\n\n static isTagManagerProcessing(): boolean {\n return this.isProcessing;\n }\n\n static setTagManagerProcessing(status: boolean): void {\n this.isProcessing = status;\n }\n\n static getSdkDataElements(): MapLike<ClientSdkDeItem> {\n return this.clientSdk?.d || {};\n }\n\n static getSdkQC(): ClientSdkQcItem[] {\n return this.clientSdk?.qc || [];\n }\n\n static hasOneSSTTag(): boolean {\n return this.clientSdk.s.sst;\n }\n\n static getSSTDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_s_t;\n }\n\n static getClientDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_c_t;\n }\n\n static getClientSdk(): MpClientSdk {\n return this.clientSdk;\n }\n\n static getSSTUrl(): string {\n return this.urls.tfUrl;\n }\n\n static getAttrInfoUrl(): string {\n return this.urls.attrInfoUrl;\n }\n\n static setVisitInfo(visitInfo: VisitInfo): void {\n this.visitInfo = visitInfo;\n }\n\n static visitInfoToString(): string {\n return this.visitInfo\n ? `${this.visitInfo.visitVer}|${this.visitInfo.visitId}|${this.visitInfo.visitTs}|${this.visitInfo.visitCt}|${this.visitInfo.visitDepth}`\n : undefined;\n }\n\n static setVisitorInfo(visitorInfo: VisitorInfo): void {\n this.visitorInfo = visitorInfo;\n }\n\n static getDebugId(): string {\n return this.debugId;\n }\n\n static getErrorReportUrl(): string {\n return this.urls.errUrl;\n }\n\n static getIdlUrl(): string {\n return this.urls?.idlUrl;\n }\n\n static getSdkVersion(): string {\n // TODO: Fix this\n return 'na';\n }\n\n static setDebugId(dbgId: string): void {\n this.debugId = dbgId;\n }\n\n static shouldFireSstForEvent(eventName: string): boolean {\n return this.clientSdk?.sseMpDlE?.indexOf(eventName) > -1;\n }\n\n static getUrlInfo(): UrlInfo {\n return this.urls;\n }\n\n static getSdkTags(): MapLike<ClientSdkTagItem> {\n return this?.clientSdk?.t ?? {};\n }\n\n static getSdkProviders(): MapLike<ClientSdkPrItem> {\n return this?.clientSdk?.p ?? {};\n }\n\n static getPrivacyCompliance(): boolean {\n return this.prStatus;\n }\n\n static setPrivacyCompliance(status: boolean): void {\n this.prStatus = status;\n }\n\n static async storeData(key: string, value: any): Promise<void> {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n }\n\n static async getDataFromStorage<T>(key: string): Promise<T> {\n const value = await AsyncStorage.getItem(key);\n return value ? JSON.parse(value) : value;\n }\n\n static getDataElements(): MapLike {\n return this.dataElements;\n }\n\n static setDataElements(de: MapLike): void {\n this.dataElements = de;\n }\n\n static getPageLang(): string {\n return this.pageLang;\n }\n\n static getDeviceOs(): string {\n return this.devicePlatform;\n }\n\n static getDataElementHelpers(): DeJsvHelper {\n return {\n log: Logger.logDbg,\n err: Logger.logError,\n };\n }\n\n static getPageName(): string {\n return (this.getDataElementValue('page_name') as string) || 'none';\n }\n\n static getDataElementValue(param: string): string | boolean | number {\n return this.dataElements[param];\n }\n\n static setPageLang(lang: string): void {\n this.pageLang = lang || 'en';\n }\n\n static getSdkPageLangKey(): string {\n return this.clientSdk.langKey;\n }\n\n static setDataElement(key: string, value: any): void {\n this.dataElements[key] = value;\n }\n\n static setValidQc(qcList: string[], qcInfo: QcInfoItem[]): void {\n this.validQcList = qcList;\n this.validQcInfoList = qcInfo;\n }\n\n static getValidQcList(): string[] {\n return this.validQcList || [];\n }\n\n static getValidQcInfo(): QcInfoItem[] {\n return this.validQcInfoList || [];\n }\n\n static setTransFunctions(elements: MapLike): MapLike {\n this.transFunctions = elements;\n return this.transFunctions;\n }\n\n static getTransFunctions(): MapLike {\n return this.transFunctions;\n }\n\n static getOperatingSystem(): string {\n return this.devicePlatform;\n }\n\n static getVisitId(): string {\n return this.visitInfo?.visitId;\n }\n\n static getDeviceType(): string {\n return this.deviceType;\n }\n\n static getDeviceId(): string {\n return this.visitorInfo?.dId;\n }\n\n static getMpId(): string {\n return this.visitorInfo?.mId;\n }\n\n static getVisitorInfoAsString(): string | undefined {\n return this.visitorInfo ? JSON.stringify(this.visitorInfo) : undefined;\n }\n\n static getOrgId(): string {\n return this?.clientSdk?.s?.v_id;\n }\n\n static getCoreVersion(): string {\n return this?.clientSdk?.s?.v;\n }\n\n static getMpEnv(): 'stg' | 'prd' {\n return this.mpEnvShort;\n }\n\n static setMpEnv(shortEnv: 'stg' | 'prd'): void {\n this.mpEnvShort = shortEnv;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["DataStore","init","clientSdk","setMpEnv","s","ev","Platform","OS","devicePlatform","toLowerCase","Utils","isTablet","deviceType","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","enQueueTMFire","sseOnly","name","dcrName","eventId","dcrPayload","runQueue","push","isDataStoreReady","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setSdkInitOptions","options","deQueueTMFire","length","pop","isTagManagerProcessing","isProcessing","setTagManagerProcessing","status","getSdkDataElements","d","getSdkQC","qc","hasOneSSTTag","sst","getSSTDownStream","dws_s_t","getClientDownStream","dws_c_t","getClientSdk","getSSTUrl","getAttrInfoUrl","setVisitInfo","visitInfo","visitInfoToString","visitVer","visitId","visitTs","visitCt","visitDepth","undefined","setVisitorInfo","visitorInfo","getDebugId","debugId","getErrorReportUrl","getIdlUrl","getSdkVersion","setDebugId","dbgId","shouldFireSstForEvent","eventName","sseMpDlE","indexOf","getUrlInfo","getSdkTags","t","getSdkProviders","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","storeData","key","value","AsyncStorage","setItem","JSON","stringify","getDataFromStorage","getItem","parse","getDataElements","dataElements","setDataElements","de","getPageLang","pageLang","getDeviceOs","getDataElementHelpers","log","Logger","logDbg","err","logError","getPageName","getDataElementValue","param","setPageLang","lang","getSdkPageLangKey","langKey","setDataElement","setValidQc","qcList","qcInfo","validQcList","validQcInfoList","getValidQcList","getValidQcInfo","setTransFunctions","elements","transFunctions","getTransFunctions","getOperatingSystem","getVisitId","getDeviceType","getDeviceId","dId","getMpId","mId","getVisitorInfoAsString","getOrgId","getCoreVersion","v","getMpEnv","mpEnvShort","shortEnv"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n QcInfoItem,\n RunQueueModel,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport { Logger } from './logger';\nimport type {\n ClientSdkDeItem,\n ClientSdkPrItem,\n ClientSdkQcItem,\n ClientSdkTagItem,\n MpClientSdk,\n} from '../models/mp-client-sdk';\nimport { Platform } from 'react-native';\nimport { Utils } from './utils';\n\nexport class DataStore {\n private static isDataStoreInitialized = false;\n private static dataElements: MapLike = {};\n private static validQcList: string[];\n private static validQcInfoList: Array<QcInfoItem> = [];\n private static transFunctions: MapLike = {};\n private static prStatus = true;\n private static clientSdk: MpClientSdk;\n private static urls: UrlInfo;\n private static debugId: string;\n private static visitorInfo: VisitorInfo;\n private static visitInfo: VisitInfo;\n private static pageLang = 'en';\n private static mpEnvShort: 'stg' | 'prd';\n private static devicePlatform = 'unknown';\n private static deviceType = 'mobile';\n private static runQueue: RunQueueModel[] = [];\n private static isProcessing = false;\n private static sdkInitOptions: SdkInitOptions;\n\n static async init(clientSdk: MpClientSdk): Promise<void> {\n this.clientSdk = clientSdk;\n this.setMpEnv(clientSdk?.s?.ev === 'staging' ? 'stg' : 'prd');\n if (typeof Platform !== 'undefined' && typeof Platform.OS !== 'undefined') {\n this.devicePlatform = Platform.OS.toLowerCase();\n }\n\n if (Utils.isTablet()) {\n this.deviceType = 'tablet';\n } else {\n this.deviceType = 'mobile';\n }\n\n this.resetCollectorUrl(\n clientSdk.s.c_url,\n clientSdk.s.ev,\n clientSdk.s.v_id,\n clientSdk.s.p_id\n );\n this.isDataStoreInitialized = true;\n }\n\n static resetCollectorUrl(\n baseCollectorUrl: string,\n sdkEnv: string,\n vendorId: string,\n projectId: string\n ): boolean {\n const tagsBaseUrl = `${baseCollectorUrl}/${\n sdkEnv === 'staging' ? 's' : 'p'\n }/${vendorId}/${projectId}`;\n this.urls = {\n tfUrl: tagsBaseUrl + '/sst',\n errUrl: tagsBaseUrl + '/err',\n rptUrl: tagsBaseUrl + '/report',\n infoUrl: tagsBaseUrl + '/info',\n baseUrl: baseCollectorUrl,\n attrInfoUrl: baseCollectorUrl + `/idl/${vendorId}/attrInfo`,\n idlUrl:\n baseCollectorUrl +\n `/idl/${vendorId}/idl${sdkEnv === 'staging' ? '-staging' : ''}`,\n };\n return true;\n }\n\n static enQueueTMFire(\n sseOnly: boolean,\n name: string,\n dcrName: string,\n eventId: string,\n dcrPayload?: Record<string, any>\n ): void {\n this.runQueue.push({ sseOnly, name, dcrName, eventId, dcrPayload });\n }\n\n static isDataStoreReady(): boolean {\n return this.isDataStoreInitialized;\n }\n\n static getSdkPcKey(): string {\n return this.clientSdk.pcKey;\n }\n\n static getSdkInitOptions(): SdkInitOptions {\n return this.sdkInitOptions;\n }\n\n static setSdkInitOptions(options: SdkInitOptions): void {\n this.sdkInitOptions = options;\n }\n\n static deQueueTMFire(): RunQueueModel {\n return this.runQueue.length > 0 ? this.runQueue.pop() : null;\n }\n\n static isTagManagerProcessing(): boolean {\n return this.isProcessing;\n }\n\n static setTagManagerProcessing(status: boolean): void {\n this.isProcessing = status;\n }\n\n static getSdkDataElements(): MapLike<ClientSdkDeItem> {\n return this.clientSdk?.d || {};\n }\n\n static getSdkQC(): ClientSdkQcItem[] {\n return this.clientSdk?.qc || [];\n }\n\n static hasOneSSTTag(): boolean {\n return this.clientSdk.s.sst;\n }\n\n static getSSTDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_s_t;\n }\n\n static getClientDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_c_t;\n }\n\n static getClientSdk(): MpClientSdk {\n return this.clientSdk;\n }\n\n static getSSTUrl(): string {\n return this.urls.tfUrl;\n }\n\n static getAttrInfoUrl(): string {\n return this.urls.attrInfoUrl;\n }\n\n static setVisitInfo(visitInfo: VisitInfo): void {\n this.visitInfo = visitInfo;\n }\n\n static visitInfoToString(): string {\n return this.visitInfo\n ? `${this.visitInfo.visitVer}|${this.visitInfo.visitId}|${this.visitInfo.visitTs}|${this.visitInfo.visitCt}|${this.visitInfo.visitDepth}`\n : undefined;\n }\n\n static setVisitorInfo(visitorInfo: VisitorInfo): void {\n this.visitorInfo = visitorInfo;\n }\n\n static getDebugId(): string {\n return this.debugId;\n }\n\n static getErrorReportUrl(): string {\n return this.urls.errUrl;\n }\n\n static getIdlUrl(): string {\n return this.urls?.idlUrl;\n }\n\n static getSdkVersion(): string {\n // TODO: Fix this\n return 'na';\n }\n\n static setDebugId(dbgId: string): void {\n this.debugId = dbgId;\n }\n\n static shouldFireSstForEvent(eventName: string): boolean {\n return this.clientSdk?.sseMpDlE?.indexOf(eventName) > -1;\n }\n\n static getUrlInfo(): UrlInfo {\n return this.urls;\n }\n\n static getSdkTags(): MapLike<ClientSdkTagItem> {\n return this?.clientSdk?.t ?? {};\n }\n\n static getSdkProviders(): MapLike<ClientSdkPrItem> {\n return this?.clientSdk?.p ?? {};\n }\n\n static getPrivacyCompliance(): boolean {\n return this.prStatus;\n }\n\n static setPrivacyCompliance(status: boolean): void {\n this.prStatus = status;\n }\n\n static async storeData(key: string, value: any): Promise<void> {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n }\n\n static async getDataFromStorage<T>(key: string): Promise<T> {\n const value = await AsyncStorage.getItem(key);\n return value ? JSON.parse(value) : value;\n }\n\n static getDataElements(): MapLike {\n return this.dataElements;\n }\n\n static setDataElements(de: MapLike): void {\n this.dataElements = de;\n }\n\n static getPageLang(): string {\n return this.pageLang;\n }\n\n static getDeviceOs(): string {\n return this.devicePlatform;\n }\n\n static getDataElementHelpers(): DeJsvHelper {\n return {\n log: Logger.logDbg,\n err: Logger.logError,\n };\n }\n\n static getPageName(): string {\n return (this.getDataElementValue('page_name') as string) || 'none';\n }\n\n static getDataElementValue(param: string): string | boolean | number {\n return this.dataElements[param];\n }\n\n static setPageLang(lang: string): void {\n this.pageLang = lang || 'en';\n }\n\n static getSdkPageLangKey(): string {\n return this.clientSdk.langKey;\n }\n\n static setDataElement(key: string, value: any): void {\n this.dataElements[key] = value;\n }\n\n static setValidQc(qcList: string[], qcInfo: QcInfoItem[]): void {\n this.validQcList = qcList;\n this.validQcInfoList = qcInfo;\n }\n\n static getValidQcList(): string[] {\n return this.validQcList || [];\n }\n\n static getValidQcInfo(): QcInfoItem[] {\n return this.validQcInfoList || [];\n }\n\n static setTransFunctions(elements: MapLike): MapLike {\n this.transFunctions = elements;\n return this.transFunctions;\n }\n\n static getTransFunctions(): MapLike {\n return this.transFunctions;\n }\n\n static getOperatingSystem(): string {\n return this.devicePlatform;\n }\n\n static getVisitId(): string {\n return this.visitInfo?.visitId;\n }\n\n static getDeviceType(): string {\n return this.deviceType;\n }\n\n static getDeviceId(): string {\n return this.visitorInfo?.dId;\n }\n\n static getMpId(): string {\n return this.visitorInfo?.mId;\n }\n\n static getVisitorInfoAsString(): string | undefined {\n return this.visitorInfo ? JSON.stringify(this.visitorInfo) : undefined;\n }\n\n static getOrgId(): string {\n return this?.clientSdk?.s?.v_id;\n }\n\n static getCoreVersion(): string {\n return this?.clientSdk?.s?.v;\n }\n\n static getMpEnv(): 'stg' | 'prd' {\n return this.mpEnvShort;\n }\n\n static setMpEnv(shortEnv: 'stg' | 'prd'): void {\n this.mpEnvShort = shortEnv;\n }\n}\n"],"mappings":"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"}
@@ -13,11 +13,23 @@ var _flat = require("flat");
13
13
 
14
14
  var _eventBus = require("./event-bus");
15
15
 
16
+ var _reactNative = require("react-native");
17
+
16
18
  class Utils {
17
19
  static triggerEvent(eventName, payload) {
18
20
  _eventBus.EventBus.triggerEvent(eventName, payload);
19
21
  }
20
22
 
23
+ static calculateMsp(dim, limit) {
24
+ return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;
25
+ }
26
+
27
+ static isTablet() {
28
+ const dim = _reactNative.Dimensions.get('screen');
29
+
30
+ return dim.scale < 2 && this.calculateMsp(dim, 1000) || dim.scale >= 2 && this.calculateMsp(dim, 1900);
31
+ }
32
+
21
33
  static sleep() {
22
34
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
23
35
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"names":["Utils","triggerEvent","eventName","payload","EventBus","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","input","toMerge","mapObject","Object","keys","forEach","key","applyTransformationResourceParam","paramValue","tf","length","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","err","Logger","logError","getUniqueID","Constants","LARGE_RANDOM_POOL","unFlattenResourceParams","transformMap","op","item","pId","children","id","push","values","sort","sortAscending","unflattenObject","obj","unflatten","object","delimiter","e","flattenObject","flatten","maxDepth","safe","target","opts","transformKey","keyIdentity","output","step","prev","currentDepth","value","isarray","Array","isArray","type","prototype","call","isBuffer","isobject","newKey","constructor"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { unflatten } from 'flat';\nimport { EventBus } from './event-bus';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unflattenObject(obj: Record<string, any>): Record<string, any> {\n try {\n return unflatten(obj, { object: false, delimiter: '.' });\n } catch (e) {}\n return null;\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return this.flatten(obj, { maxDepth: 5, safe: true });\n }\n\n private static flatten(target: any, opts: any): any {\n opts = opts || {};\n\n const delimiter = opts.delimiter || '.';\n const maxDepth = opts.maxDepth;\n const transformKey = opts.transformKey || this.keyIdentity;\n const output: any = {};\n\n const step = (object: any, prev?: any, currentDepth?: any): any => {\n currentDepth = currentDepth || 1;\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const isarray = opts.safe && Array.isArray(value);\n const type = Object.prototype.toString.call(value);\n const isBuffer = this.isBuffer(value);\n\n const isobject =\n type === '[object Object]' || type === '[object Array]';\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key);\n\n if (\n !isarray &&\n !isBuffer &&\n isobject &&\n Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)\n ) {\n return step(value, newKey, currentDepth + 1);\n }\n\n output[newKey] = value;\n });\n };\n\n step(target);\n\n return output;\n }\n\n static keyIdentity(key: any): any {\n return key;\n }\n\n static isBuffer(obj: any): boolean {\n return (\n obj &&\n obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Utils","triggerEvent","eventName","payload","EventBus","calculateMsp","dim","limit","scale","width","height","isTablet","Dimensions","get","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","input","toMerge","mapObject","Object","keys","forEach","key","applyTransformationResourceParam","paramValue","tf","length","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","err","Logger","logError","getUniqueID","Constants","LARGE_RANDOM_POOL","unFlattenResourceParams","transformMap","op","item","pId","children","id","push","values","sort","sortAscending","unflattenObject","obj","unflatten","object","delimiter","e","flattenObject","flatten","maxDepth","safe","target","opts","transformKey","keyIdentity","output","step","prev","currentDepth","value","isarray","Array","isArray","type","prototype","call","isBuffer","isobject","newKey","constructor"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { unflatten } from 'flat';\nimport { EventBus } from './event-bus';\nimport { Dimensions, ScaledSize } from 'react-native';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static calculateMsp(dim: ScaledSize, limit: number): boolean {\n return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;\n }\n\n static isTablet(): boolean {\n const dim = Dimensions.get('screen');\n return (\n (dim.scale < 2 && this.calculateMsp(dim, 1000)) ||\n (dim.scale >= 2 && this.calculateMsp(dim, 1900))\n );\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unflattenObject(obj: Record<string, any>): Record<string, any> {\n try {\n return unflatten(obj, { object: false, delimiter: '.' });\n } catch (e) {}\n return null;\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return this.flatten(obj, { maxDepth: 5, safe: true });\n }\n\n private static flatten(target: any, opts: any): any {\n opts = opts || {};\n\n const delimiter = opts.delimiter || '.';\n const maxDepth = opts.maxDepth;\n const transformKey = opts.transformKey || this.keyIdentity;\n const output: any = {};\n\n const step = (object: any, prev?: any, currentDepth?: any): any => {\n currentDepth = currentDepth || 1;\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const isarray = opts.safe && Array.isArray(value);\n const type = Object.prototype.toString.call(value);\n const isBuffer = this.isBuffer(value);\n\n const isobject =\n type === '[object Object]' || type === '[object Array]';\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key);\n\n if (\n !isarray &&\n !isBuffer &&\n isobject &&\n Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)\n ) {\n return step(value, newKey, currentDepth + 1);\n }\n\n output[newKey] = value;\n });\n };\n\n step(target);\n\n return output;\n }\n\n static keyIdentity(key: any): any {\n return key;\n }\n\n static isBuffer(obj: any): boolean {\n return (\n obj &&\n obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n );\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
3
3
  import AsyncStorage from '@react-native-async-storage/async-storage';
4
4
  import { Logger } from './logger';
5
5
  import { Platform } from 'react-native';
6
- import { DeviceType, getDeviceTypeAsync } from 'expo-device';
6
+ import { Utils } from './utils';
7
7
  export class DataStore {
8
8
  static async init(clientSdk) {
9
9
  var _clientSdk$s;
@@ -15,14 +15,10 @@ export class DataStore {
15
15
  this.devicePlatform = Platform.OS.toLowerCase();
16
16
  }
17
17
 
18
- const dType = await getDeviceTypeAsync();
19
-
20
- if (dType === DeviceType.PHONE) {
21
- this.deviceType = 'mobile';
22
- } else if (dType === DeviceType.TABLET) {
18
+ if (Utils.isTablet()) {
23
19
  this.deviceType = 'tablet';
24
20
  } else {
25
- this.deviceType = 'unknown';
21
+ this.deviceType = 'mobile';
26
22
  }
27
23
 
28
24
  this.resetCollectorUrl(clientSdk.s.c_url, clientSdk.s.ev, clientSdk.s.v_id, clientSdk.s.p_id);
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","Logger","Platform","DeviceType","getDeviceTypeAsync","DataStore","init","clientSdk","setMpEnv","s","ev","OS","devicePlatform","toLowerCase","dType","PHONE","deviceType","TABLET","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","enQueueTMFire","sseOnly","name","dcrName","eventId","dcrPayload","runQueue","push","isDataStoreReady","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setSdkInitOptions","options","deQueueTMFire","length","pop","isTagManagerProcessing","isProcessing","setTagManagerProcessing","status","getSdkDataElements","d","getSdkQC","qc","hasOneSSTTag","sst","getSSTDownStream","dws_s_t","getClientDownStream","dws_c_t","getClientSdk","getSSTUrl","getAttrInfoUrl","setVisitInfo","visitInfo","visitInfoToString","visitVer","visitId","visitTs","visitCt","visitDepth","undefined","setVisitorInfo","visitorInfo","getDebugId","debugId","getErrorReportUrl","getIdlUrl","getSdkVersion","setDebugId","dbgId","shouldFireSstForEvent","eventName","sseMpDlE","indexOf","getUrlInfo","getSdkTags","t","getSdkProviders","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","storeData","key","value","setItem","JSON","stringify","getDataFromStorage","getItem","parse","getDataElements","dataElements","setDataElements","de","getPageLang","pageLang","getDeviceOs","getDataElementHelpers","log","logDbg","err","logError","getPageName","getDataElementValue","param","setPageLang","lang","getSdkPageLangKey","langKey","setDataElement","setValidQc","qcList","qcInfo","validQcList","validQcInfoList","getValidQcList","getValidQcInfo","setTransFunctions","elements","transFunctions","getTransFunctions","getOperatingSystem","getVisitId","getDeviceType","getDeviceId","dId","getMpId","mId","getVisitorInfoAsString","getOrgId","getCoreVersion","v","getMpEnv","mpEnvShort","shortEnv"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n QcInfoItem,\n RunQueueModel,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport { Logger } from './logger';\nimport type {\n ClientSdkDeItem,\n ClientSdkPrItem,\n ClientSdkQcItem,\n ClientSdkTagItem,\n MpClientSdk,\n} from '../models/mp-client-sdk';\nimport { Platform } from 'react-native';\nimport { DeviceType, getDeviceTypeAsync } from 'expo-device';\n\nexport class DataStore {\n private static isDataStoreInitialized = false;\n private static dataElements: MapLike = {};\n private static validQcList: string[];\n private static validQcInfoList: Array<QcInfoItem> = [];\n private static transFunctions: MapLike = {};\n private static prStatus = true;\n private static clientSdk: MpClientSdk;\n private static urls: UrlInfo;\n private static debugId: string;\n private static visitorInfo: VisitorInfo;\n private static visitInfo: VisitInfo;\n private static pageLang = 'en';\n private static mpEnvShort: 'stg' | 'prd';\n private static devicePlatform = 'unknown';\n private static deviceType = 'mobile';\n private static runQueue: RunQueueModel[] = [];\n private static isProcessing = false;\n private static sdkInitOptions: SdkInitOptions;\n\n static async init(clientSdk: MpClientSdk): Promise<void> {\n this.clientSdk = clientSdk;\n this.setMpEnv(clientSdk?.s?.ev === 'staging' ? 'stg' : 'prd');\n if (typeof Platform !== 'undefined' && typeof Platform.OS !== 'undefined') {\n this.devicePlatform = Platform.OS.toLowerCase();\n }\n\n const dType = await getDeviceTypeAsync();\n if (dType === DeviceType.PHONE) {\n this.deviceType = 'mobile';\n } else if (dType === DeviceType.TABLET) {\n this.deviceType = 'tablet';\n } else {\n this.deviceType = 'unknown';\n }\n\n this.resetCollectorUrl(\n clientSdk.s.c_url,\n clientSdk.s.ev,\n clientSdk.s.v_id,\n clientSdk.s.p_id\n );\n this.isDataStoreInitialized = true;\n }\n\n static resetCollectorUrl(\n baseCollectorUrl: string,\n sdkEnv: string,\n vendorId: string,\n projectId: string\n ): boolean {\n const tagsBaseUrl = `${baseCollectorUrl}/${\n sdkEnv === 'staging' ? 's' : 'p'\n }/${vendorId}/${projectId}`;\n this.urls = {\n tfUrl: tagsBaseUrl + '/sst',\n errUrl: tagsBaseUrl + '/err',\n rptUrl: tagsBaseUrl + '/report',\n infoUrl: tagsBaseUrl + '/info',\n baseUrl: baseCollectorUrl,\n attrInfoUrl: baseCollectorUrl + `/idl/${vendorId}/attrInfo`,\n idlUrl:\n baseCollectorUrl +\n `/idl/${vendorId}/idl${sdkEnv === 'staging' ? '-staging' : ''}`,\n };\n return true;\n }\n\n static enQueueTMFire(\n sseOnly: boolean,\n name: string,\n dcrName: string,\n eventId: string,\n dcrPayload?: Record<string, any>\n ): void {\n this.runQueue.push({ sseOnly, name, dcrName, eventId, dcrPayload });\n }\n\n static isDataStoreReady(): boolean {\n return this.isDataStoreInitialized;\n }\n\n static getSdkPcKey(): string {\n return this.clientSdk.pcKey;\n }\n\n static getSdkInitOptions(): SdkInitOptions {\n return this.sdkInitOptions;\n }\n\n static setSdkInitOptions(options: SdkInitOptions): void {\n this.sdkInitOptions = options;\n }\n\n static deQueueTMFire(): RunQueueModel {\n return this.runQueue.length > 0 ? this.runQueue.pop() : null;\n }\n\n static isTagManagerProcessing(): boolean {\n return this.isProcessing;\n }\n\n static setTagManagerProcessing(status: boolean): void {\n this.isProcessing = status;\n }\n\n static getSdkDataElements(): MapLike<ClientSdkDeItem> {\n return this.clientSdk?.d || {};\n }\n\n static getSdkQC(): ClientSdkQcItem[] {\n return this.clientSdk?.qc || [];\n }\n\n static hasOneSSTTag(): boolean {\n return this.clientSdk.s.sst;\n }\n\n static getSSTDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_s_t;\n }\n\n static getClientDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_c_t;\n }\n\n static getClientSdk(): MpClientSdk {\n return this.clientSdk;\n }\n\n static getSSTUrl(): string {\n return this.urls.tfUrl;\n }\n\n static getAttrInfoUrl(): string {\n return this.urls.attrInfoUrl;\n }\n\n static setVisitInfo(visitInfo: VisitInfo): void {\n this.visitInfo = visitInfo;\n }\n\n static visitInfoToString(): string {\n return this.visitInfo\n ? `${this.visitInfo.visitVer}|${this.visitInfo.visitId}|${this.visitInfo.visitTs}|${this.visitInfo.visitCt}|${this.visitInfo.visitDepth}`\n : undefined;\n }\n\n static setVisitorInfo(visitorInfo: VisitorInfo): void {\n this.visitorInfo = visitorInfo;\n }\n\n static getDebugId(): string {\n return this.debugId;\n }\n\n static getErrorReportUrl(): string {\n return this.urls.errUrl;\n }\n\n static getIdlUrl(): string {\n return this.urls?.idlUrl;\n }\n\n static getSdkVersion(): string {\n // TODO: Fix this\n return 'na';\n }\n\n static setDebugId(dbgId: string): void {\n this.debugId = dbgId;\n }\n\n static shouldFireSstForEvent(eventName: string): boolean {\n return this.clientSdk?.sseMpDlE?.indexOf(eventName) > -1;\n }\n\n static getUrlInfo(): UrlInfo {\n return this.urls;\n }\n\n static getSdkTags(): MapLike<ClientSdkTagItem> {\n return this?.clientSdk?.t ?? {};\n }\n\n static getSdkProviders(): MapLike<ClientSdkPrItem> {\n return this?.clientSdk?.p ?? {};\n }\n\n static getPrivacyCompliance(): boolean {\n return this.prStatus;\n }\n\n static setPrivacyCompliance(status: boolean): void {\n this.prStatus = status;\n }\n\n static async storeData(key: string, value: any): Promise<void> {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n }\n\n static async getDataFromStorage<T>(key: string): Promise<T> {\n const value = await AsyncStorage.getItem(key);\n return value ? JSON.parse(value) : value;\n }\n\n static getDataElements(): MapLike {\n return this.dataElements;\n }\n\n static setDataElements(de: MapLike): void {\n this.dataElements = de;\n }\n\n static getPageLang(): string {\n return this.pageLang;\n }\n\n static getDeviceOs(): string {\n return this.devicePlatform;\n }\n\n static getDataElementHelpers(): DeJsvHelper {\n return {\n log: Logger.logDbg,\n err: Logger.logError,\n };\n }\n\n static getPageName(): string {\n return (this.getDataElementValue('page_name') as string) || 'none';\n }\n\n static getDataElementValue(param: string): string | boolean | number {\n return this.dataElements[param];\n }\n\n static setPageLang(lang: string): void {\n this.pageLang = lang || 'en';\n }\n\n static getSdkPageLangKey(): string {\n return this.clientSdk.langKey;\n }\n\n static setDataElement(key: string, value: any): void {\n this.dataElements[key] = value;\n }\n\n static setValidQc(qcList: string[], qcInfo: QcInfoItem[]): void {\n this.validQcList = qcList;\n this.validQcInfoList = qcInfo;\n }\n\n static getValidQcList(): string[] {\n return this.validQcList || [];\n }\n\n static getValidQcInfo(): QcInfoItem[] {\n return this.validQcInfoList || [];\n }\n\n static setTransFunctions(elements: MapLike): MapLike {\n this.transFunctions = elements;\n return this.transFunctions;\n }\n\n static getTransFunctions(): MapLike {\n return this.transFunctions;\n }\n\n static getOperatingSystem(): string {\n return this.devicePlatform;\n }\n\n static getVisitId(): string {\n return this.visitInfo?.visitId;\n }\n\n static getDeviceType(): string {\n return this.deviceType;\n }\n\n static getDeviceId(): string {\n return this.visitorInfo?.dId;\n }\n\n static getMpId(): string {\n return this.visitorInfo?.mId;\n }\n\n static getVisitorInfoAsString(): string | undefined {\n return this.visitorInfo ? JSON.stringify(this.visitorInfo) : undefined;\n }\n\n static getOrgId(): string {\n return this?.clientSdk?.s?.v_id;\n }\n\n static getCoreVersion(): string {\n return this?.clientSdk?.s?.v;\n }\n\n static getMpEnv(): 'stg' | 'prd' {\n return this.mpEnvShort;\n }\n\n static setMpEnv(shortEnv: 'stg' | 'prd'): void {\n this.mpEnvShort = shortEnv;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["AsyncStorage","Logger","Platform","Utils","DataStore","init","clientSdk","setMpEnv","s","ev","OS","devicePlatform","toLowerCase","isTablet","deviceType","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","enQueueTMFire","sseOnly","name","dcrName","eventId","dcrPayload","runQueue","push","isDataStoreReady","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setSdkInitOptions","options","deQueueTMFire","length","pop","isTagManagerProcessing","isProcessing","setTagManagerProcessing","status","getSdkDataElements","d","getSdkQC","qc","hasOneSSTTag","sst","getSSTDownStream","dws_s_t","getClientDownStream","dws_c_t","getClientSdk","getSSTUrl","getAttrInfoUrl","setVisitInfo","visitInfo","visitInfoToString","visitVer","visitId","visitTs","visitCt","visitDepth","undefined","setVisitorInfo","visitorInfo","getDebugId","debugId","getErrorReportUrl","getIdlUrl","getSdkVersion","setDebugId","dbgId","shouldFireSstForEvent","eventName","sseMpDlE","indexOf","getUrlInfo","getSdkTags","t","getSdkProviders","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","storeData","key","value","setItem","JSON","stringify","getDataFromStorage","getItem","parse","getDataElements","dataElements","setDataElements","de","getPageLang","pageLang","getDeviceOs","getDataElementHelpers","log","logDbg","err","logError","getPageName","getDataElementValue","param","setPageLang","lang","getSdkPageLangKey","langKey","setDataElement","setValidQc","qcList","qcInfo","validQcList","validQcInfoList","getValidQcList","getValidQcInfo","setTransFunctions","elements","transFunctions","getTransFunctions","getOperatingSystem","getVisitId","getDeviceType","getDeviceId","dId","getMpId","mId","getVisitorInfoAsString","getOrgId","getCoreVersion","v","getMpEnv","mpEnvShort","shortEnv"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n QcInfoItem,\n RunQueueModel,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport { Logger } from './logger';\nimport type {\n ClientSdkDeItem,\n ClientSdkPrItem,\n ClientSdkQcItem,\n ClientSdkTagItem,\n MpClientSdk,\n} from '../models/mp-client-sdk';\nimport { Platform } from 'react-native';\nimport { Utils } from './utils';\n\nexport class DataStore {\n private static isDataStoreInitialized = false;\n private static dataElements: MapLike = {};\n private static validQcList: string[];\n private static validQcInfoList: Array<QcInfoItem> = [];\n private static transFunctions: MapLike = {};\n private static prStatus = true;\n private static clientSdk: MpClientSdk;\n private static urls: UrlInfo;\n private static debugId: string;\n private static visitorInfo: VisitorInfo;\n private static visitInfo: VisitInfo;\n private static pageLang = 'en';\n private static mpEnvShort: 'stg' | 'prd';\n private static devicePlatform = 'unknown';\n private static deviceType = 'mobile';\n private static runQueue: RunQueueModel[] = [];\n private static isProcessing = false;\n private static sdkInitOptions: SdkInitOptions;\n\n static async init(clientSdk: MpClientSdk): Promise<void> {\n this.clientSdk = clientSdk;\n this.setMpEnv(clientSdk?.s?.ev === 'staging' ? 'stg' : 'prd');\n if (typeof Platform !== 'undefined' && typeof Platform.OS !== 'undefined') {\n this.devicePlatform = Platform.OS.toLowerCase();\n }\n\n if (Utils.isTablet()) {\n this.deviceType = 'tablet';\n } else {\n this.deviceType = 'mobile';\n }\n\n this.resetCollectorUrl(\n clientSdk.s.c_url,\n clientSdk.s.ev,\n clientSdk.s.v_id,\n clientSdk.s.p_id\n );\n this.isDataStoreInitialized = true;\n }\n\n static resetCollectorUrl(\n baseCollectorUrl: string,\n sdkEnv: string,\n vendorId: string,\n projectId: string\n ): boolean {\n const tagsBaseUrl = `${baseCollectorUrl}/${\n sdkEnv === 'staging' ? 's' : 'p'\n }/${vendorId}/${projectId}`;\n this.urls = {\n tfUrl: tagsBaseUrl + '/sst',\n errUrl: tagsBaseUrl + '/err',\n rptUrl: tagsBaseUrl + '/report',\n infoUrl: tagsBaseUrl + '/info',\n baseUrl: baseCollectorUrl,\n attrInfoUrl: baseCollectorUrl + `/idl/${vendorId}/attrInfo`,\n idlUrl:\n baseCollectorUrl +\n `/idl/${vendorId}/idl${sdkEnv === 'staging' ? '-staging' : ''}`,\n };\n return true;\n }\n\n static enQueueTMFire(\n sseOnly: boolean,\n name: string,\n dcrName: string,\n eventId: string,\n dcrPayload?: Record<string, any>\n ): void {\n this.runQueue.push({ sseOnly, name, dcrName, eventId, dcrPayload });\n }\n\n static isDataStoreReady(): boolean {\n return this.isDataStoreInitialized;\n }\n\n static getSdkPcKey(): string {\n return this.clientSdk.pcKey;\n }\n\n static getSdkInitOptions(): SdkInitOptions {\n return this.sdkInitOptions;\n }\n\n static setSdkInitOptions(options: SdkInitOptions): void {\n this.sdkInitOptions = options;\n }\n\n static deQueueTMFire(): RunQueueModel {\n return this.runQueue.length > 0 ? this.runQueue.pop() : null;\n }\n\n static isTagManagerProcessing(): boolean {\n return this.isProcessing;\n }\n\n static setTagManagerProcessing(status: boolean): void {\n this.isProcessing = status;\n }\n\n static getSdkDataElements(): MapLike<ClientSdkDeItem> {\n return this.clientSdk?.d || {};\n }\n\n static getSdkQC(): ClientSdkQcItem[] {\n return this.clientSdk?.qc || [];\n }\n\n static hasOneSSTTag(): boolean {\n return this.clientSdk.s.sst;\n }\n\n static getSSTDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_s_t;\n }\n\n static getClientDownStream(): 'j' | 'n' {\n return this.clientSdk.s.dws_c_t;\n }\n\n static getClientSdk(): MpClientSdk {\n return this.clientSdk;\n }\n\n static getSSTUrl(): string {\n return this.urls.tfUrl;\n }\n\n static getAttrInfoUrl(): string {\n return this.urls.attrInfoUrl;\n }\n\n static setVisitInfo(visitInfo: VisitInfo): void {\n this.visitInfo = visitInfo;\n }\n\n static visitInfoToString(): string {\n return this.visitInfo\n ? `${this.visitInfo.visitVer}|${this.visitInfo.visitId}|${this.visitInfo.visitTs}|${this.visitInfo.visitCt}|${this.visitInfo.visitDepth}`\n : undefined;\n }\n\n static setVisitorInfo(visitorInfo: VisitorInfo): void {\n this.visitorInfo = visitorInfo;\n }\n\n static getDebugId(): string {\n return this.debugId;\n }\n\n static getErrorReportUrl(): string {\n return this.urls.errUrl;\n }\n\n static getIdlUrl(): string {\n return this.urls?.idlUrl;\n }\n\n static getSdkVersion(): string {\n // TODO: Fix this\n return 'na';\n }\n\n static setDebugId(dbgId: string): void {\n this.debugId = dbgId;\n }\n\n static shouldFireSstForEvent(eventName: string): boolean {\n return this.clientSdk?.sseMpDlE?.indexOf(eventName) > -1;\n }\n\n static getUrlInfo(): UrlInfo {\n return this.urls;\n }\n\n static getSdkTags(): MapLike<ClientSdkTagItem> {\n return this?.clientSdk?.t ?? {};\n }\n\n static getSdkProviders(): MapLike<ClientSdkPrItem> {\n return this?.clientSdk?.p ?? {};\n }\n\n static getPrivacyCompliance(): boolean {\n return this.prStatus;\n }\n\n static setPrivacyCompliance(status: boolean): void {\n this.prStatus = status;\n }\n\n static async storeData(key: string, value: any): Promise<void> {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n }\n\n static async getDataFromStorage<T>(key: string): Promise<T> {\n const value = await AsyncStorage.getItem(key);\n return value ? JSON.parse(value) : value;\n }\n\n static getDataElements(): MapLike {\n return this.dataElements;\n }\n\n static setDataElements(de: MapLike): void {\n this.dataElements = de;\n }\n\n static getPageLang(): string {\n return this.pageLang;\n }\n\n static getDeviceOs(): string {\n return this.devicePlatform;\n }\n\n static getDataElementHelpers(): DeJsvHelper {\n return {\n log: Logger.logDbg,\n err: Logger.logError,\n };\n }\n\n static getPageName(): string {\n return (this.getDataElementValue('page_name') as string) || 'none';\n }\n\n static getDataElementValue(param: string): string | boolean | number {\n return this.dataElements[param];\n }\n\n static setPageLang(lang: string): void {\n this.pageLang = lang || 'en';\n }\n\n static getSdkPageLangKey(): string {\n return this.clientSdk.langKey;\n }\n\n static setDataElement(key: string, value: any): void {\n this.dataElements[key] = value;\n }\n\n static setValidQc(qcList: string[], qcInfo: QcInfoItem[]): void {\n this.validQcList = qcList;\n this.validQcInfoList = qcInfo;\n }\n\n static getValidQcList(): string[] {\n return this.validQcList || [];\n }\n\n static getValidQcInfo(): QcInfoItem[] {\n return this.validQcInfoList || [];\n }\n\n static setTransFunctions(elements: MapLike): MapLike {\n this.transFunctions = elements;\n return this.transFunctions;\n }\n\n static getTransFunctions(): MapLike {\n return this.transFunctions;\n }\n\n static getOperatingSystem(): string {\n return this.devicePlatform;\n }\n\n static getVisitId(): string {\n return this.visitInfo?.visitId;\n }\n\n static getDeviceType(): string {\n return this.deviceType;\n }\n\n static getDeviceId(): string {\n return this.visitorInfo?.dId;\n }\n\n static getMpId(): string {\n return this.visitorInfo?.mId;\n }\n\n static getVisitorInfoAsString(): string | undefined {\n return this.visitorInfo ? JSON.stringify(this.visitorInfo) : undefined;\n }\n\n static getOrgId(): string {\n return this?.clientSdk?.s?.v_id;\n }\n\n static getCoreVersion(): string {\n return this?.clientSdk?.s?.v;\n }\n\n static getMpEnv(): 'stg' | 'prd' {\n return this.mpEnvShort;\n }\n\n static setMpEnv(shortEnv: 'stg' | 'prd'): void {\n this.mpEnvShort = shortEnv;\n }\n}\n"],"mappings":"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"}
@@ -2,11 +2,21 @@ import { Constants } from './constants';
2
2
  import { Logger } from './logger';
3
3
  import { unflatten } from 'flat';
4
4
  import { EventBus } from './event-bus';
5
+ import { Dimensions } from 'react-native';
5
6
  export class Utils {
6
7
  static triggerEvent(eventName, payload) {
7
8
  EventBus.triggerEvent(eventName, payload);
8
9
  }
9
10
 
11
+ static calculateMsp(dim, limit) {
12
+ return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;
13
+ }
14
+
15
+ static isTablet() {
16
+ const dim = Dimensions.get('screen');
17
+ return dim.scale < 2 && this.calculateMsp(dim, 1000) || dim.scale >= 2 && this.calculateMsp(dim, 1900);
18
+ }
19
+
10
20
  static sleep() {
11
21
  let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
12
22
  return new Promise(resolve => {
@@ -1 +1 @@
1
- {"version":3,"names":["Constants","Logger","unflatten","EventBus","Utils","triggerEvent","eventName","payload","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","input","toMerge","mapObject","Object","keys","forEach","key","applyTransformationResourceParam","paramValue","tf","length","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","err","logError","getUniqueID","LARGE_RANDOM_POOL","unFlattenResourceParams","transformMap","op","item","pId","children","id","push","values","sort","sortAscending","unflattenObject","obj","object","delimiter","e","flattenObject","flatten","maxDepth","safe","target","opts","transformKey","keyIdentity","output","step","prev","currentDepth","value","isarray","Array","isArray","type","prototype","call","isBuffer","isobject","newKey","constructor"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { unflatten } from 'flat';\nimport { EventBus } from './event-bus';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unflattenObject(obj: Record<string, any>): Record<string, any> {\n try {\n return unflatten(obj, { object: false, delimiter: '.' });\n } catch (e) {}\n return null;\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return this.flatten(obj, { maxDepth: 5, safe: true });\n }\n\n private static flatten(target: any, opts: any): any {\n opts = opts || {};\n\n const delimiter = opts.delimiter || '.';\n const maxDepth = opts.maxDepth;\n const transformKey = opts.transformKey || this.keyIdentity;\n const output: any = {};\n\n const step = (object: any, prev?: any, currentDepth?: any): any => {\n currentDepth = currentDepth || 1;\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const isarray = opts.safe && Array.isArray(value);\n const type = Object.prototype.toString.call(value);\n const isBuffer = this.isBuffer(value);\n\n const isobject =\n type === '[object Object]' || type === '[object Array]';\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key);\n\n if (\n !isarray &&\n !isBuffer &&\n isobject &&\n Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)\n ) {\n return step(value, newKey, currentDepth + 1);\n }\n\n output[newKey] = value;\n });\n };\n\n step(target);\n\n return output;\n }\n\n static keyIdentity(key: any): any {\n return key;\n }\n\n static isBuffer(obj: any): boolean {\n return (\n obj &&\n obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Constants","Logger","unflatten","EventBus","Dimensions","Utils","triggerEvent","eventName","payload","calculateMsp","dim","limit","scale","width","height","isTablet","get","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","input","toMerge","mapObject","Object","keys","forEach","key","applyTransformationResourceParam","paramValue","tf","length","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","err","logError","getUniqueID","LARGE_RANDOM_POOL","unFlattenResourceParams","transformMap","op","item","pId","children","id","push","values","sort","sortAscending","unflattenObject","obj","object","delimiter","e","flattenObject","flatten","maxDepth","safe","target","opts","transformKey","keyIdentity","output","step","prev","currentDepth","value","isarray","Array","isArray","type","prototype","call","isBuffer","isobject","newKey","constructor"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { unflatten } from 'flat';\nimport { EventBus } from './event-bus';\nimport { Dimensions, ScaledSize } from 'react-native';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static calculateMsp(dim: ScaledSize, limit: number): boolean {\n return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;\n }\n\n static isTablet(): boolean {\n const dim = Dimensions.get('screen');\n return (\n (dim.scale < 2 && this.calculateMsp(dim, 1000)) ||\n (dim.scale >= 2 && this.calculateMsp(dim, 1900))\n );\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unflattenObject(obj: Record<string, any>): Record<string, any> {\n try {\n return unflatten(obj, { object: false, delimiter: '.' });\n } catch (e) {}\n return null;\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return this.flatten(obj, { maxDepth: 5, safe: true });\n }\n\n private static flatten(target: any, opts: any): any {\n opts = opts || {};\n\n const delimiter = opts.delimiter || '.';\n const maxDepth = opts.maxDepth;\n const transformKey = opts.transformKey || this.keyIdentity;\n const output: any = {};\n\n const step = (object: any, prev?: any, currentDepth?: any): any => {\n currentDepth = currentDepth || 1;\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const isarray = opts.safe && Array.isArray(value);\n const type = Object.prototype.toString.call(value);\n const isBuffer = this.isBuffer(value);\n\n const isobject =\n type === '[object Object]' || type === '[object Array]';\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key);\n\n if (\n !isarray &&\n !isBuffer &&\n isobject &&\n Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)\n ) {\n return step(value, newKey, currentDepth + 1);\n }\n\n output[newKey] = value;\n });\n };\n\n step(target);\n\n return output;\n }\n\n static keyIdentity(key: any): any {\n return key;\n }\n\n static isBuffer(obj: any): boolean {\n return (\n obj &&\n obj.constructor &&\n typeof obj.constructor.isBuffer === 'function' &&\n obj.constructor.isBuffer(obj)\n );\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { BaseResourceParamType, TFType } from '../models/mp-client-sdk';
2
2
  import type { MapLike } from './app-types';
3
+ import { ScaledSize } from 'react-native';
3
4
  export declare class Utils {
4
5
  static triggerEvent(eventName: string, payload: any): void;
6
+ static calculateMsp(dim: ScaledSize, limit: number): boolean;
7
+ static isTablet(): boolean;
5
8
  static sleep(delay?: number): Promise<void>;
6
9
  /**
7
10
  * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicpixel/rn-mp-client-sdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "test",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -158,9 +158,6 @@
158
158
  },
159
159
  "dependencies": {
160
160
  "@react-native-async-storage/async-storage": "^1.17.10",
161
- "@react-native-firebase/analytics": "^15.6.0",
162
- "@react-native-firebase/app": "^15.6.0",
163
- "expo-device": "^4.3.0",
164
161
  "flat": "^5.0.2",
165
162
  "nanoid": "^4.0.0",
166
163
  "performant-array-to-tree": "^1.11.0",
@@ -18,7 +18,7 @@ import type {
18
18
  MpClientSdk,
19
19
  } from '../models/mp-client-sdk';
20
20
  import { Platform } from 'react-native';
21
- import { DeviceType, getDeviceTypeAsync } from 'expo-device';
21
+ import { Utils } from './utils';
22
22
 
23
23
  export class DataStore {
24
24
  private static isDataStoreInitialized = false;
@@ -47,13 +47,10 @@ export class DataStore {
47
47
  this.devicePlatform = Platform.OS.toLowerCase();
48
48
  }
49
49
 
50
- const dType = await getDeviceTypeAsync();
51
- if (dType === DeviceType.PHONE) {
52
- this.deviceType = 'mobile';
53
- } else if (dType === DeviceType.TABLET) {
50
+ if (Utils.isTablet()) {
54
51
  this.deviceType = 'tablet';
55
52
  } else {
56
- this.deviceType = 'unknown';
53
+ this.deviceType = 'mobile';
57
54
  }
58
55
 
59
56
  this.resetCollectorUrl(
@@ -8,12 +8,25 @@ import type {
8
8
  import type { MapLike } from './app-types';
9
9
  import { unflatten } from 'flat';
10
10
  import { EventBus } from './event-bus';
11
+ import { Dimensions, ScaledSize } from 'react-native';
11
12
 
12
13
  export class Utils {
13
14
  static triggerEvent(eventName: string, payload: any): void {
14
15
  EventBus.triggerEvent(eventName, payload);
15
16
  }
16
17
 
18
+ static calculateMsp(dim: ScaledSize, limit: number): boolean {
19
+ return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;
20
+ }
21
+
22
+ static isTablet(): boolean {
23
+ const dim = Dimensions.get('screen');
24
+ return (
25
+ (dim.scale < 2 && this.calculateMsp(dim, 1000)) ||
26
+ (dim.scale >= 2 && this.calculateMsp(dim, 1900))
27
+ );
28
+ }
29
+
17
30
  static sleep(delay = 1000): Promise<void> {
18
31
  return new Promise((resolve: (val?: any) => void) => {
19
32
  setTimeout(() => {