@magicpixel/rn-mp-client-sdk 1.13.0 → 1.13.21

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.
Files changed (104) hide show
  1. package/README.md +163 -14
  2. package/lib/commonjs/common/app-types.js.map +1 -1
  3. package/lib/commonjs/common/constants.js +11 -2
  4. package/lib/commonjs/common/constants.js.map +1 -1
  5. package/lib/commonjs/common/data-store.js +13 -30
  6. package/lib/commonjs/common/data-store.js.map +1 -1
  7. package/lib/commonjs/common/deeplink-helper.js +174 -0
  8. package/lib/commonjs/common/deeplink-helper.js.map +1 -0
  9. package/lib/commonjs/common/device-info-helper.js +168 -0
  10. package/lib/commonjs/common/device-info-helper.js.map +1 -0
  11. package/lib/commonjs/common/event-bus.js +39 -0
  12. package/lib/commonjs/common/event-bus.js.map +1 -1
  13. package/lib/commonjs/common/network-service.js +119 -15
  14. package/lib/commonjs/common/network-service.js.map +1 -1
  15. package/lib/commonjs/common/reporter.js +75 -14
  16. package/lib/commonjs/common/reporter.js.map +1 -1
  17. package/lib/commonjs/common/storage-helper.js +227 -0
  18. package/lib/commonjs/common/storage-helper.js.map +1 -0
  19. package/lib/commonjs/common/utils.js +62 -2
  20. package/lib/commonjs/common/utils.js.map +1 -1
  21. package/lib/commonjs/eedl/eedl.js +198 -44
  22. package/lib/commonjs/eedl/eedl.js.map +1 -1
  23. package/lib/commonjs/index.js +301 -54
  24. package/lib/commonjs/index.js.map +1 -1
  25. package/lib/commonjs/models/mp-client-sdk.js +17 -10
  26. package/lib/commonjs/models/mp-client-sdk.js.map +1 -1
  27. package/lib/commonjs/processors/data-element.processor.js +51 -7
  28. package/lib/commonjs/processors/data-element.processor.js.map +1 -1
  29. package/lib/commonjs/processors/visit-id.processor.js +78 -15
  30. package/lib/commonjs/processors/visit-id.processor.js.map +1 -1
  31. package/lib/module/common/app-types.js.map +1 -1
  32. package/lib/module/common/constants.js +11 -2
  33. package/lib/module/common/constants.js.map +1 -1
  34. package/lib/module/common/data-store.js +13 -30
  35. package/lib/module/common/data-store.js.map +1 -1
  36. package/lib/module/common/deeplink-helper.js +168 -0
  37. package/lib/module/common/deeplink-helper.js.map +1 -0
  38. package/lib/module/common/device-info-helper.js +161 -0
  39. package/lib/module/common/device-info-helper.js.map +1 -0
  40. package/lib/module/common/event-bus.js +39 -0
  41. package/lib/module/common/event-bus.js.map +1 -1
  42. package/lib/module/common/network-service.js +119 -15
  43. package/lib/module/common/network-service.js.map +1 -1
  44. package/lib/module/common/reporter.js +76 -14
  45. package/lib/module/common/reporter.js.map +1 -1
  46. package/lib/module/common/storage-helper.js +221 -0
  47. package/lib/module/common/storage-helper.js.map +1 -0
  48. package/lib/module/common/utils.js +63 -2
  49. package/lib/module/common/utils.js.map +1 -1
  50. package/lib/module/eedl/eedl.js +198 -44
  51. package/lib/module/eedl/eedl.js.map +1 -1
  52. package/lib/module/index.js +290 -53
  53. package/lib/module/index.js.map +1 -1
  54. package/lib/module/models/mp-client-sdk.js +16 -9
  55. package/lib/module/models/mp-client-sdk.js.map +1 -1
  56. package/lib/module/processors/data-element.processor.js +51 -7
  57. package/lib/module/processors/data-element.processor.js.map +1 -1
  58. package/lib/module/processors/visit-id.processor.js +78 -15
  59. package/lib/module/processors/visit-id.processor.js.map +1 -1
  60. package/lib/typescript/{common → src/common}/app-types.d.ts +30 -9
  61. package/lib/typescript/{common → src/common}/constants.d.ts +0 -1
  62. package/lib/typescript/{common → src/common}/data-store.d.ts +3 -8
  63. package/lib/typescript/src/common/deeplink-helper.d.ts +60 -0
  64. package/lib/typescript/src/common/device-info-helper.d.ts +54 -0
  65. package/lib/typescript/src/common/event-bus.d.ts +21 -0
  66. package/lib/typescript/src/common/network-service.d.ts +32 -0
  67. package/lib/typescript/{common → src/common}/reporter.d.ts +2 -1
  68. package/lib/typescript/src/common/storage-helper.d.ts +47 -0
  69. package/lib/typescript/{common → src/common}/utils.d.ts +25 -0
  70. package/lib/typescript/{eedl → src/eedl}/eedl.d.ts +43 -1
  71. package/lib/typescript/{index.d.ts → src/index.d.ts} +39 -5
  72. package/lib/typescript/{models → src/models}/mp-client-sdk.d.ts +7 -0
  73. package/lib/typescript/src/processors/visit-id.processor.d.ts +23 -0
  74. package/package.json +25 -36
  75. package/src/common/app-types.ts +33 -10
  76. package/src/common/constants.ts +0 -6
  77. package/src/common/data-store.ts +8 -30
  78. package/src/common/deeplink-helper.ts +181 -0
  79. package/src/common/device-info-helper.ts +190 -0
  80. package/src/common/event-bus.ts +39 -0
  81. package/src/common/network-service.ts +154 -21
  82. package/src/common/reporter.ts +97 -16
  83. package/src/common/storage-helper.ts +260 -0
  84. package/src/common/utils.ts +63 -2
  85. package/src/eedl/eedl.ts +225 -51
  86. package/src/index.tsx +346 -73
  87. package/src/models/mp-client-sdk.ts +8 -0
  88. package/src/processors/data-element.processor.ts +85 -7
  89. package/src/processors/visit-id.processor.ts +92 -22
  90. package/lib/commonjs/processors/trans-function.processor.js +0 -73
  91. package/lib/commonjs/processors/trans-function.processor.js.map +0 -1
  92. package/lib/module/processors/trans-function.processor.js +0 -66
  93. package/lib/module/processors/trans-function.processor.js.map +0 -1
  94. package/lib/typescript/common/event-bus.d.ts +0 -6
  95. package/lib/typescript/common/network-service.d.ts +0 -8
  96. package/lib/typescript/processors/trans-function.processor.d.ts +0 -12
  97. package/lib/typescript/processors/visit-id.processor.d.ts +0 -9
  98. package/src/processors/trans-function.processor.ts +0 -85
  99. /package/lib/typescript/{common → src/common}/logger.d.ts +0 -0
  100. /package/lib/typescript/{models → src/models}/geo-api-response.d.ts +0 -0
  101. /package/lib/typescript/{processors → src/processors}/data-element.processor.d.ts +0 -0
  102. /package/lib/typescript/{processors → src/processors}/geo-location.processor.d.ts +0 -0
  103. /package/lib/typescript/{processors → src/processors}/qc.processor.d.ts +0 -0
  104. /package/lib/typescript/{processors → src/processors}/tag.processor.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_logger","require","_dataStore","_constants","_reporter","_networkService","_utils","VisitIdProcessor","init","orgId","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","isFirstOpenAfterInstall","firstOpenFlag","DataStore","getDataFromStorage","Constants","KEY_FIRST_OPEN","storeData","err","Logger","logError","getFacebookFBP","fbp","KEY_FBP","Date","now","addCommonCookie","debugId","KEY_MP_DEBUG_ID","indexOf","undefined","Utils","getSimpleDebugId","setDebugId","incrementDepth","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","visitId","getUniqueID","visitCt","visitDepth","visitTs","visitVer","_visitInfo","setVisitInfo","visitInfoToString","Reporter","reportError","incrementVisitDepth","_visitorInfoData","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","mId","logDbg","NetworkService","fetchIdlInfo","getIdlUrl","setVisitorInfo","cookieValue","encodeURIComponent","JSON","stringify","dId","exports"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\n\nexport class VisitIdProcessor {\n static async init(orgId: string): Promise<void> {\n await this.initDebugId(orgId);\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo(false);\n }\n\n static async isFirstOpenAfterInstall(): Promise<boolean> {\n try {\n const firstOpenFlag = await DataStore.getDataFromStorage<string>(\n Constants.KEY_FIRST_OPEN\n );\n\n if (!firstOpenFlag) {\n await DataStore.storeData(Constants.KEY_FIRST_OPEN, 'No');\n return true;\n }\n } catch (err) {\n Logger.logError('Unable to determine first open after install flag', err);\n }\n return false;\n }\n\n static async getFacebookFBP(): Promise<string> {\n try {\n let fbp = await DataStore.getDataFromStorage<string>(Constants.KEY_FBP);\n\n if (!fbp) {\n fbp = `fb.1.${Date.now()}.${Date.now()}`;\n }\n\n await DataStore.storeData(Constants.KEY_FBP, fbp);\n\n DataStore.addCommonCookie('x-fbp', fbp);\n\n return fbp;\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n return '';\n }\n\n static async initDebugId(orgId: string): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n\n if (debugId && debugId.indexOf(orgId) !== 0) {\n // re-generate debug id if it is not of the simple variety\n debugId = undefined;\n }\n\n if (!debugId) {\n debugId = Utils.getSimpleDebugId(orgId);\n }\n\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(incrementDepth: boolean): Promise<void> {\n try {\n let visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, set up a new visit info object and return\n visitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 0,\n visitTs: Date.now(),\n visitVer: 1,\n };\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n if (incrementDepth) {\n visitInfo.visitDepth = (visitInfo?.visitDepth ?? 0) + 1;\n } else {\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 0;\n }\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n }\n\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(Constants.KEY_MP_IDL_VISIT_ID_INFO, visitInfo);\n DataStore.addCommonCookie('x-mp-vid', DataStore.visitInfoToString());\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n static async incrementVisitDepth(): Promise<void> {\n return this.setOrResetVisitInfo(true);\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n let visitorInfoData: VisitorInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (\n !visitorInfoData ||\n (visitorInfoData && visitorInfoData?.mId.indexOf('-') === -1)\n ) {\n Logger.logDbg('VisitorInfo not found. Refreshing from server');\n // get a new visit id and device id from server and store it in storage\n visitorInfoData = await NetworkService.fetchIdlInfo(\n DataStore.getIdlUrl()\n );\n }\n\n if (!visitorInfoData) {\n return;\n } else {\n DataStore.setVisitorInfo(visitorInfoData);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n visitorInfoData\n );\n\n const cookieValue = encodeURIComponent(JSON.stringify(visitorInfoData));\n DataStore.addCommonCookie('x-mplidl', cookieValue);\n DataStore.addCommonCookie('x-mpidl', cookieValue);\n DataStore.addCommonCookie('x-lmid', visitorInfoData.mId);\n DataStore.addCommonCookie('x-ldid', visitorInfoData.dId);\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_logger","require","_dataStore","_constants","_reporter","_networkService","_utils","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VisitIdProcessor","init","orgId","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","retryVisitorIdIfNeeded","visitorIdFetchFailed","Logger","logDbg","hasVisitorId","DataStore","getVisitorInfo","isFirstOpenAfterInstall","firstOpenFlag","getDataFromStorage","Constants","KEY_FIRST_OPEN","storeData","err","logError","getFacebookFBP","fbp","KEY_FBP","Date","now","addCommonCookie","debugId","KEY_MP_DEBUG_ID","indexOf","undefined","Utils","getSimpleDebugId","setDebugId","incrementDepth","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","visitId","getUniqueID","visitCt","visitDepth","visitTs","visitVer","_visitInfo","setVisitInfo","visitInfoToString","Reporter","reportError","incrementVisitDepth","getVisitInfo","catch","_visitorInfoData","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","mId","NetworkService","fetchIdlInfoWithRetry","getIdlUrl","setVisitorInfo","cookieValue","encodeURIComponent","JSON","stringify","dId","exports"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\n\nexport class VisitIdProcessor {\n // Track if visitor ID fetch failed so we can retry on page_load\n private static visitorIdFetchFailed = false;\n\n static async init(orgId: string): Promise<void> {\n await this.initDebugId(orgId);\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo(false);\n }\n\n /**\n * Check if visitor ID needs to be retried\n * Called on each page_load to retry if initial fetch failed\n */\n static async retryVisitorIdIfNeeded(): Promise<void> {\n if (!this.visitorIdFetchFailed) {\n return; // No retry needed\n }\n\n Logger.logDbg('Retrying visitor ID fetch on page_load...');\n await this.setOrResetVisitorId();\n }\n\n /**\n * Check if visitor ID is available\n */\n static hasVisitorId(): boolean {\n return !this.visitorIdFetchFailed && DataStore.getVisitorInfo() !== null;\n }\n\n static async isFirstOpenAfterInstall(): Promise<boolean> {\n try {\n const firstOpenFlag = await DataStore.getDataFromStorage<string>(\n Constants.KEY_FIRST_OPEN\n );\n\n if (!firstOpenFlag) {\n await DataStore.storeData(Constants.KEY_FIRST_OPEN, 'No');\n return true;\n }\n } catch (err) {\n Logger.logError('Unable to determine first open after install flag', err);\n }\n return false;\n }\n\n static async getFacebookFBP(): Promise<string> {\n try {\n let fbp = await DataStore.getDataFromStorage<string>(Constants.KEY_FBP);\n\n if (!fbp) {\n fbp = `fb.1.${Date.now()}.${Date.now()}`;\n }\n\n await DataStore.storeData(Constants.KEY_FBP, fbp);\n\n DataStore.addCommonCookie('x-fbp', fbp);\n\n return fbp;\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n return '';\n }\n\n static async initDebugId(orgId: string): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n\n if (debugId && debugId.indexOf(orgId) !== 0) {\n // re-generate debug id if it is not of the simple variety\n debugId = undefined;\n }\n\n if (!debugId) {\n debugId = Utils.getSimpleDebugId(orgId);\n }\n\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(incrementDepth: boolean): Promise<void> {\n try {\n let visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, set up a new visit info object and return\n // Initialize visitDepth to 0, will be incremented to 1 on first page_load\n visitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 0,\n visitTs: Date.now(),\n visitVer: 1,\n };\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n if (incrementDepth) {\n visitInfo.visitDepth = (visitInfo?.visitDepth ?? 0) + 1;\n } else {\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 0; // Reset to 0, will be incremented to 1 on first page_load of new session\n }\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n }\n\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(Constants.KEY_MP_IDL_VISIT_ID_INFO, visitInfo);\n DataStore.addCommonCookie('x-mp-vid', DataStore.visitInfoToString());\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n /**\n * Synchronously increment visit depth in memory, persist to storage in background\n * This prevents race conditions when multiple page_load events fire quickly\n */\n static incrementVisitDepth(): void {\n try {\n // Read from in-memory cache (synchronous)\n const visitInfo: VisitInfo = DataStore.getVisitInfo();\n\n if (!visitInfo) {\n Logger.logError('Visit info not initialized. Cannot increment depth.');\n return;\n }\n\n // Increment depth synchronously in memory\n visitInfo.visitDepth = (visitInfo.visitDepth ?? 0) + 1;\n visitInfo.visitTs = Date.now();\n\n // Update in-memory cache immediately (synchronous)\n DataStore.setVisitInfo(visitInfo);\n DataStore.addCommonCookie('x-mp-vid', DataStore.visitInfoToString());\n\n Logger.logDbg('Visit depth incremented to:', visitInfo.visitDepth);\n\n // Persist to AsyncStorage in background (fire and forget)\n DataStore.storeData(Constants.KEY_MP_IDL_VISIT_ID_INFO, visitInfo).catch(\n (err) => {\n Logger.logError('Error persisting visit depth to storage:', err);\n Reporter.reportError('incrementVisitDepth::persist', err);\n }\n );\n } catch (err) {\n Logger.logError('Error incrementing visit depth:', err);\n Reporter.reportError('incrementVisitDepth', err);\n }\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n let visitorInfoData: VisitorInfo | null =\n await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (\n !visitorInfoData ||\n (visitorInfoData && visitorInfoData?.mId.indexOf('-') === -1)\n ) {\n Logger.logDbg('VisitorInfo not found. Fetching from server with retry');\n // get a new visit id and device id from server and store it in storage\n // Use retry method for better reliability\n visitorInfoData = await NetworkService.fetchIdlInfoWithRetry(\n DataStore.getIdlUrl()\n );\n }\n\n if (!visitorInfoData) {\n // Mark as failed so we can retry on page_load\n this.visitorIdFetchFailed = true;\n Logger.logError(\n 'Failed to fetch visitor ID after retries. Will retry on next page_load.'\n );\n return;\n }\n\n // Success - clear the failure flag\n this.visitorIdFetchFailed = false;\n\n DataStore.setVisitorInfo(visitorInfoData);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n visitorInfoData\n );\n\n const cookieValue = encodeURIComponent(JSON.stringify(visitorInfoData));\n DataStore.addCommonCookie('x-mplidl', cookieValue);\n DataStore.addCommonCookie('x-mpidl', cookieValue);\n DataStore.addCommonCookie('x-lmid', visitorInfoData.mId);\n DataStore.addCommonCookie('x-ldid', visitorInfoData.dId);\n\n Logger.logDbg('Visitor ID set successfully:', visitorInfoData.mId);\n } catch (err) {\n Logger.logError('Error in setOrResetVisitorId:', err);\n this.visitorIdFetchFailed = true;\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["app-types.ts"],"sourcesContent":["import type { Logger } from './logger';\n\nexport interface MapLike<T = any> {\n [key: string]: T;\n}\n\nexport interface RunQueueModel {\n sseOnly: boolean;\n name: string;\n dcrName: string;\n eventId: string;\n dcrPayload?: Record<string, any>;\n}\n\nexport type TypedAny = Record<\n string,\n | string\n | number\n | boolean\n | string[]\n | boolean[]\n | number[]\n | Record<string, string | number | boolean | string[] | boolean[] | number[]>\n>;\n\nexport type EventProcessorFn = (payload: TypedAny) => void;\n\nexport interface AppCustomerInfo {\n first_name?: string;\n last_name?: string;\n email?: string;\n phone_number: number;\n country_code: number;\n city?: string;\n state?: string;\n country?: string;\n}\n\nexport interface AppPageLoad {\n page_name: string;\n is_entry?: number;\n deep_link_url?: string;\n app_version?: string;\n}\n\nexport interface DeJsvHelper {\n log: typeof Logger.logDbg;\n err: typeof Logger.logError;\n}\n\nexport interface QcInfoItem {\n nm: string;\n id: string;\n st: boolean;\n}\n\nexport interface TagInfoItem {\n id: string;\n nm: string;\n pr: string;\n prNm: string;\n status: boolean;\n qc: string | string[];\n}\n\nexport type ReplaceMode = 'kph' | 'rph';\n\nexport interface HydrateTagInfo {\n isInError: boolean;\n content: string | number | null;\n errCd: string; // error code\n errMsg: string; // any descriptive error message\n}\n\nexport interface ReportTagItem {\n st: 200 | 900 | 1000 | number; // what happened to this tag?\n t: string; // tag id\n p: string; // provider id\n tNm: string;\n req: any; // request payload\n}\n\nexport interface Report {\n envName: string; // environment name inside magic pixel\n envId: string; // environment id inside magic pixel\n pname?: string; // page name\n evt: string; // dcr event if that triggered this report\n evtId: string; // event id\n dt?: number; // device type (converted to int)\n ln?: number; // language (converted to int)\n bw?: number; // browser name (converted to int)\n dm?: string; // clean domain name\n items: ReportTagItem[]; // list of tag items fired on that page for that condition\n tagCt: number; // expected tag count on this page\n dws: 'j' | 'n'; // down stream configuration. java or node\n v: string; // client sdk version for this call\n}\n\nexport interface UrlInfo {\n tfUrl: string;\n errUrl: string;\n rptUrl: string;\n infoUrl: string;\n baseUrl: string;\n attrInfoUrl: string;\n idlUrl: string;\n geoUrl?: string;\n baseUrlV4?: string;\n baseUrlV6?: string;\n}\n\nexport interface VisitInfo {\n visitId: string;\n visitTs: number;\n visitCt: number;\n visitDepth: number;\n visitVer: number;\n}\n\nexport interface VisitorInfo {\n dId: string;\n mId: string;\n st: number;\n}\n\nexport interface SdkInitOptions {\n orgId: string;\n env: string;\n projectId: string;\n baseUrl: string;\n logLevel: string;\n\n device_type?: string;\n\n app_version?: string;\n os_version?: string;\n}\n\nexport interface MpDeviceInfo {\n package_name?: string; // app package name like com.company.starter\n short_version?: string;\n long_version?: string;\n os_version: string;\n device_model_name: string;\n locale?: string;\n timezone_abbreviation?: string;\n carrier?: string;\n screen_width?: number;\n screen_height?: number;\n screen_density?: number;\n cpu_cores?: number;\n ext_storage?: number;\n free_storage?: number;\n device_timezone?: string;\n}\n\nexport type EventBusCallback = (event: string, payload: any) => void;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["app-types.ts"],"sourcesContent":["import type { Logger } from './logger';\n\nexport interface MapLike<T = any> {\n [key: string]: T;\n}\n\nexport type TypedAny = Record<\n string,\n | string\n | number\n | boolean\n | string[]\n | boolean[]\n | number[]\n | Record<string, string | number | boolean | string[] | boolean[] | number[]>\n>;\n\nexport type EventProcessorFn = (payload: TypedAny) => void;\n\nexport interface AppCustomerInfo {\n first_name?: string;\n last_name?: string;\n email?: string;\n phone_number: number;\n country_code: number;\n city?: string;\n state?: string;\n country?: string;\n}\n\nexport interface AppPageLoad {\n page_name: string;\n page_url?: string;\n is_entry?: number;\n deep_link_url?: string;\n app_version?: string;\n}\n\nexport interface DeJsvHelper {\n log: typeof Logger.logDbg;\n err: typeof Logger.logError;\n}\n\nexport interface QcInfoItem {\n nm: string;\n id: string;\n st: boolean;\n}\n\nexport interface TagInfoItem {\n id: string;\n nm: string;\n pr: string;\n prNm: string;\n status: boolean;\n qc: string | string[];\n}\n\nexport type ReplaceMode = 'kph' | 'rph';\n\nexport interface HydrateTagInfo {\n isInError: boolean;\n content: string | number | null;\n errCd: string; // error code\n errMsg: string; // any descriptive error message\n}\n\nexport interface ReportTagItem {\n st: 200 | 900 | 1000 | number; // what happened to this tag?\n t: string; // tag id\n p: string; // provider id\n tNm: string;\n req: any; // request payload\n}\n\nexport interface Report {\n envName: string; // environment name inside magic pixel\n envId: string; // environment id inside magic pixel\n pname?: string; // page name\n evt: string; // dcr event if that triggered this report\n evtId: string; // event id\n dt?: number; // device type (converted to int)\n ln?: number; // language (converted to int)\n bw?: number; // browser name (converted to int)\n dm?: string; // clean domain name\n items: ReportTagItem[]; // list of tag items fired on that page for that condition\n tagCt: number; // expected tag count on this page\n dws: 'j' | 'n'; // down stream configuration. java or node\n v: string; // client sdk version for this call\n devPayload?: string; // base64 encoded developer payload\n}\n\nexport interface UrlInfo {\n tfUrl: string;\n errUrl: string;\n rptUrl: string;\n infoUrl: string;\n baseUrl: string;\n attrInfoUrl: string;\n idlUrl: string;\n geoUrl?: string;\n baseUrlV4?: string;\n baseUrlV6?: string;\n}\n\nexport interface VisitInfo {\n visitId: string;\n visitTs: number;\n visitCt: number;\n visitDepth: number;\n visitVer: number;\n}\n\nexport interface VisitorInfo {\n dId: string;\n mId: string;\n st: number;\n}\n\nexport interface SdkInitOptions {\n orgId: string;\n env: string;\n projectId: string;\n baseUrl: string;\n logLevel: string;\n\n /**\n * @deprecated device_type is now auto-detected and cannot be overridden\n * This field is ignored. The SDK uses Expo/react-native-device-info for reliable detection.\n */\n device_type?: string;\n\n /**\n * @deprecated app_version is now auto-detected and cannot be overridden\n * This field is ignored. The SDK will always use the actual app version from the device.\n */\n app_version?: string;\n\n /**\n * @deprecated os_version is now auto-detected and cannot be overridden\n * This field is ignored. The SDK will always use the actual OS version from the device.\n */\n os_version?: string;\n\n /**\n * Event deduplication window in milliseconds\n * If the same event (name + payload) fires within this window, it will be skipped\n * Purchase events are deduplicated by transaction_id regardless of other fields\n * Default: 5000ms (5 seconds)\n * Set to 0 to disable deduplication\n */\n eventDeduplicationWindowMs?: number;\n\n /**\n * Callback invoked when SDK initialization fails after all retries\n * Use this to handle initialization failures gracefully in your app\n * @param error The error that caused the failure\n */\n onInitFailure?: (error: Error) => void;\n}\n\nexport interface MpDeviceInfo {\n package_name?: string; // app package name like com.company.starter\n short_version?: string;\n long_version?: string;\n os_version?: string; // Will be auto-detected if not provided\n device_model_name?: string; // Will be auto-detected if not provided\n locale?: string;\n timezone_abbreviation?: string;\n carrier?: string;\n screen_width?: number;\n screen_height?: number;\n screen_density?: number;\n cpu_cores?: number;\n ext_storage?: number;\n free_storage?: number;\n device_timezone?: string;\n}\n\nexport type EventBusCallback = (event: string, payload: any) => void;\n"],"mappings":"","ignoreList":[]}
@@ -1,24 +1,33 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import { customAlphabet } from 'nanoid/non-secure';
5
4
  export class Constants {}
6
5
  _defineProperty(Constants, "PLACEHOLDER_REGEX", new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi));
7
- _defineProperty(Constants, "LARGE_RANDOM_POOL", customAlphabet('1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 21));
8
6
  _defineProperty(Constants, "MP_DL_EVT", 'mp_dl_event');
9
7
  _defineProperty(Constants, "CUST_EVT", 'custom_event');
8
+ // Tag Report - Status Constants
10
9
  _defineProperty(Constants, "ST_OK", 200);
10
+ // tag fired successfully
11
11
  _defineProperty(Constants, "ST_VAL_FAIL", 400);
12
+ // tag validation failed - meaning one of the items marked as mandatory was found empty
12
13
  _defineProperty(Constants, "ST_ERR", 500);
14
+ // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down
13
15
  _defineProperty(Constants, "ST_DEP_FAIL", 1000);
16
+ // processing tag dependencies failed - may be missing parameters or attributes
14
17
  _defineProperty(Constants, "ST_PR_BL", 1002);
18
+ // provider is black listed in the data governance screen
15
19
  _defineProperty(Constants, "ST_PR_EXC", 1001);
20
+ // tag was found, but no provider was bundled. SDK build issue. Report with high importance
16
21
  _defineProperty(Constants, "PR_TYP_JS", 'js');
17
22
  _defineProperty(Constants, "PR_TYP_IMG", 'img');
18
23
  _defineProperty(Constants, "PR_TYP_APP", 'app');
19
24
  _defineProperty(Constants, "PR_S_TYP_R", 'r');
20
25
  _defineProperty(Constants, "sortAscending", (a, b) => a.o > b.o ? 1 : -1);
26
+ // this data structure is returned by the api and stored in this key
27
+ // {"dId":"VNiBG7JNfoGAyvqxhxMqd","mId":"JW0FRrCtAj9K7uyNmL1ht","st":0}
21
28
  _defineProperty(Constants, "KEY_MP_IDL_VISITOR_ID_INFO", 'mp_idl_visitor_info');
29
+ // visitor info data structure
30
+ // {"visitId": "123123sdfsf", "visitCt": 1, "visitDepth": 1, visitVer: 1}
22
31
  _defineProperty(Constants, "KEY_MP_IDL_VISIT_ID_INFO", 'mp_idl_visit_info');
23
32
  _defineProperty(Constants, "KEY_MP_DEBUG_ID", 'mp_debug_id');
24
33
  _defineProperty(Constants, "KEY_FBP", 'KEY_FBP');
@@ -1 +1 @@
1
- {"version":3,"names":["customAlphabet","Constants","_defineProperty","RegExp","a","b","o","MP_VISIT_ID_COOKIE"],"sources":["constants.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid/non-secure';\nimport type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static LARGE_RANDOM_POOL = customAlphabet(\n '1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 21\n );\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n static KEY_FBP = 'KEY_FBP';\n static KEY_FIRST_OPEN = 'KEY_FOPEN';\n}\n\nexport const MP_VISIT_ID_COOKIE = 'mp_visit_id';\n"],"mappings":";;;AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAGlD,OAAO,MAAMC,SAAS,CAAC;AAyCtBC,eAAA,CAzCYD,SAAS,uBACO,IAAIE,MAAM,CAAC,0BAA0B,CAAC;AAAAD,eAAA,CADtDD,SAAS,uBAGOD,cAAc,CACvC,gEAAgE,EAChE,EACF,CAAC;AAAAE,eAAA,CANUD,SAAS,eAQD,aAAa;AAAAC,eAAA,CARrBD,SAAS,cASF,cAAc;AAAAC,eAAA,CATrBD,SAAS,WAYL,GAAG;AAAAC,eAAA,CAZPD,SAAS,iBAaC,GAAG;AAAAC,eAAA,CAbbD,SAAS,YAcJ,GAAG;AAAAC,eAAA,CAdRD,SAAS,iBAeC,IAAI;AAAAC,eAAA,CAfdD,SAAS,cAgBF,IAAI;AAAAC,eAAA,CAhBXD,SAAS,eAiBD,IAAI;AAAAC,eAAA,CAjBZD,SAAS,eAmBD,IAAI;AAAAC,eAAA,CAnBZD,SAAS,gBAoBA,KAAK;AAAAC,eAAA,CApBdD,SAAS,gBAqBA,KAAK;AAAAC,eAAA,CArBdD,SAAS,gBAuBA,GAAG;AAAAC,eAAA,CAvBZD,SAAS,mBAyBG,CACrBG,CAAwB,EACxBC,CAAwB,KACZD,CAAC,CAACE,CAAC,GAAGD,CAAC,CAACC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE;AAAAJ,eAAA,CA5BtBD,SAAS,gCAgCgB,qBAAqB;AAAAC,eAAA,CAhC9CD,SAAS,8BAoCc,mBAAmB;AAAAC,eAAA,CApC1CD,SAAS,qBAsCK,aAAa;AAAAC,eAAA,CAtC3BD,SAAS,aAuCH,SAAS;AAAAC,eAAA,CAvCfD,SAAS,oBAwCI,WAAW;AAGrC,OAAO,MAAMM,kBAAkB,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["Constants","_defineProperty","RegExp","a","b","o","MP_VISIT_ID_COOKIE"],"sources":["constants.ts"],"sourcesContent":["import type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n static KEY_FBP = 'KEY_FBP';\n static KEY_FIRST_OPEN = 'KEY_FOPEN';\n}\n\nexport const MP_VISIT_ID_COOKIE = 'mp_visit_id';\n"],"mappings":";;;AAEA,OAAO,MAAMA,SAAS,CAAC;AAoCtBC,eAAA,CApCYD,SAAS,uBACO,IAAIE,MAAM,CAAC,0BAA0B,CAAC;AAAAD,eAAA,CADtDD,SAAS,eAGD,aAAa;AAAAC,eAAA,CAHrBD,SAAS,cAIF,cAAc;AAEhC;AAAAC,eAAA,CANWD,SAAS,WAOL,GAAG;AAAE;AAAAC,eAAA,CAPTD,SAAS,iBAQC,GAAG;AAAE;AAAAC,eAAA,CARfD,SAAS,YASJ,GAAG;AAAE;AAAAC,eAAA,CATVD,SAAS,iBAUC,IAAI;AAAE;AAAAC,eAAA,CAVhBD,SAAS,cAWF,IAAI;AAAE;AAAAC,eAAA,CAXbD,SAAS,eAYD,IAAI;AAAE;AAAAC,eAAA,CAZdD,SAAS,eAcD,IAAI;AAAAC,eAAA,CAdZD,SAAS,gBAeA,KAAK;AAAAC,eAAA,CAfdD,SAAS,gBAgBA,KAAK;AAAAC,eAAA,CAhBdD,SAAS,gBAkBA,GAAG;AAAAC,eAAA,CAlBZD,SAAS,mBAoBG,CACrBG,CAAwB,EACxBC,CAAwB,KACZD,CAAC,CAACE,CAAC,GAAGD,CAAC,CAACC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE;AAEjC;AACA;AAAAJ,eAAA,CA1BWD,SAAS,gCA2BgB,qBAAqB;AAEzD;AACA;AAAAC,eAAA,CA9BWD,SAAS,8BA+Bc,mBAAmB;AAAAC,eAAA,CA/B1CD,SAAS,qBAiCK,aAAa;AAAAC,eAAA,CAjC3BD,SAAS,aAkCH,SAAS;AAAAC,eAAA,CAlCfD,SAAS,oBAmCI,WAAW;AAGrC,OAAO,MAAMM,kBAAkB,GAAG,aAAa","ignoreList":[]}
@@ -5,12 +5,12 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
5
5
  import { Logger } from './logger';
6
6
  import { Platform } from 'react-native';
7
7
  import { Utils } from './utils';
8
- const CORE_VERSION = '0.8.6';
8
+ import { version as SDK_VERSION } from '../../package.json';
9
9
  export class DataStore {
10
10
  static async init(clientSdk) {
11
11
  var _clientSdk$s;
12
12
  this.clientSdk = clientSdk;
13
- this.setMpEnv((clientSdk === null || clientSdk === void 0 ? void 0 : (_clientSdk$s = clientSdk.s) === null || _clientSdk$s === void 0 ? void 0 : _clientSdk$s.ev) === 'staging' ? 'stg' : 'prd');
13
+ this.setMpEnv((clientSdk === null || clientSdk === void 0 || (_clientSdk$s = clientSdk.s) === null || _clientSdk$s === void 0 ? void 0 : _clientSdk$s.ev) === 'staging' ? 'stg' : 'prd');
14
14
  if (typeof Platform !== 'undefined' && typeof Platform.OS !== 'undefined') {
15
15
  this.devicePlatform = Platform.OS.toLowerCase();
16
16
  }
@@ -41,15 +41,6 @@ export class DataStore {
41
41
  };
42
42
  return true;
43
43
  }
44
- static enQueueTMFire(sseOnly, name, dcrName, eventId, dcrPayload) {
45
- this.runQueue.push({
46
- sseOnly,
47
- name,
48
- dcrName,
49
- eventId,
50
- dcrPayload
51
- });
52
- }
53
44
  static isDataStoreReady() {
54
45
  return this.isDataStoreInitialized;
55
46
  }
@@ -77,15 +68,6 @@ export class DataStore {
77
68
  static setSdkInitOptions(options) {
78
69
  this.sdkInitOptions = options;
79
70
  }
80
- static deQueueTMFire() {
81
- return this.runQueue.length > 0 ? this.runQueue.pop() : null;
82
- }
83
- static isTagManagerProcessing() {
84
- return this.isProcessing;
85
- }
86
- static setTagManagerProcessing(status) {
87
- this.isProcessing = status;
88
- }
89
71
  static getSdkDataElements() {
90
72
  var _this$clientSdk;
91
73
  return ((_this$clientSdk = this.clientSdk) === null || _this$clientSdk === void 0 ? void 0 : _this$clientSdk.d) || {};
@@ -121,6 +103,9 @@ export class DataStore {
121
103
  static setVisitorInfo(visitorInfo) {
122
104
  this.visitorInfo = visitorInfo;
123
105
  }
106
+ static getVisitorInfo() {
107
+ return this.visitorInfo;
108
+ }
124
109
  static getDebugId() {
125
110
  return this.debugId;
126
111
  }
@@ -138,8 +123,8 @@ export class DataStore {
138
123
  this.debugId = dbgId;
139
124
  }
140
125
  static shouldFireSstForEvent(eventName) {
141
- var _this$clientSdk3, _this$clientSdk3$sseM;
142
- return ((_this$clientSdk3 = this.clientSdk) === null || _this$clientSdk3 === void 0 ? void 0 : (_this$clientSdk3$sseM = _this$clientSdk3.sseMpDlE) === null || _this$clientSdk3$sseM === void 0 ? void 0 : _this$clientSdk3$sseM.indexOf(eventName)) > -1;
126
+ var _this$clientSdk3;
127
+ return ((_this$clientSdk3 = this.clientSdk) === null || _this$clientSdk3 === void 0 || (_this$clientSdk3 = _this$clientSdk3.sseMpDlE) === null || _this$clientSdk3 === void 0 ? void 0 : _this$clientSdk3.indexOf(eventName)) > -1;
143
128
  }
144
129
  static addCommonCookie(key, value) {
145
130
  this.commonCookies[key] = value;
@@ -152,11 +137,11 @@ export class DataStore {
152
137
  }
153
138
  static getSdkTags() {
154
139
  var _this$clientSdk4;
155
- return (this === null || this === void 0 ? void 0 : (_this$clientSdk4 = this.clientSdk) === null || _this$clientSdk4 === void 0 ? void 0 : _this$clientSdk4.t) ?? {};
140
+ return (this === null || this === void 0 || (_this$clientSdk4 = this.clientSdk) === null || _this$clientSdk4 === void 0 ? void 0 : _this$clientSdk4.t) ?? {};
156
141
  }
157
142
  static getSdkProviders() {
158
143
  var _this$clientSdk5;
159
- return (this === null || this === void 0 ? void 0 : (_this$clientSdk5 = this.clientSdk) === null || _this$clientSdk5 === void 0 ? void 0 : _this$clientSdk5.p) ?? {};
144
+ return (this === null || this === void 0 || (_this$clientSdk5 = this.clientSdk) === null || _this$clientSdk5 === void 0 ? void 0 : _this$clientSdk5.p) ?? {};
160
145
  }
161
146
  static getPrivacyCompliance() {
162
147
  return this.prStatus;
@@ -230,7 +215,7 @@ export class DataStore {
230
215
  }
231
216
  static overrideDeviceType(deviceType) {
232
217
  var _deviceType$trim;
233
- this.deviceType = deviceType === null || deviceType === void 0 ? void 0 : (_deviceType$trim = deviceType.trim()) === null || _deviceType$trim === void 0 ? void 0 : _deviceType$trim.toLowerCase();
218
+ this.deviceType = deviceType === null || deviceType === void 0 || (_deviceType$trim = deviceType.trim()) === null || _deviceType$trim === void 0 ? void 0 : _deviceType$trim.toLowerCase();
234
219
  }
235
220
  static getDeviceType() {
236
221
  return this.deviceType;
@@ -247,11 +232,11 @@ export class DataStore {
247
232
  return this.visitorInfo ? JSON.stringify(this.visitorInfo) : undefined;
248
233
  }
249
234
  static getOrgId() {
250
- var _this$clientSdk6, _this$clientSdk6$s;
251
- return this === null || this === void 0 ? void 0 : (_this$clientSdk6 = this.clientSdk) === null || _this$clientSdk6 === void 0 ? void 0 : (_this$clientSdk6$s = _this$clientSdk6.s) === null || _this$clientSdk6$s === void 0 ? void 0 : _this$clientSdk6$s.v_id;
235
+ var _this$clientSdk6;
236
+ return this === null || this === void 0 || (_this$clientSdk6 = this.clientSdk) === null || _this$clientSdk6 === void 0 || (_this$clientSdk6 = _this$clientSdk6.s) === null || _this$clientSdk6 === void 0 ? void 0 : _this$clientSdk6.v_id;
252
237
  }
253
238
  static getCoreVersion() {
254
- return CORE_VERSION;
239
+ return SDK_VERSION;
255
240
  }
256
241
  static getMpEnv() {
257
242
  return this.mpEnvShort;
@@ -302,8 +287,6 @@ _defineProperty(DataStore, "pageLang", 'en');
302
287
  _defineProperty(DataStore, "mpEnvShort", void 0);
303
288
  _defineProperty(DataStore, "devicePlatform", 'unknown');
304
289
  _defineProperty(DataStore, "deviceType", 'mobile');
305
- _defineProperty(DataStore, "runQueue", []);
306
- _defineProperty(DataStore, "isProcessing", false);
307
290
  _defineProperty(DataStore, "sdkInitOptions", void 0);
308
291
  _defineProperty(DataStore, "deviceInfo", void 0);
309
292
  _defineProperty(DataStore, "geoInfo", void 0);
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","Logger","Platform","Utils","CORE_VERSION","DataStore","init","clientSdk","_clientSdk$s","setMpEnv","s","ev","OS","devicePlatform","toLowerCase","isTablet","deviceType","interestedClientSideEvents","_makeUniqueStringArray","dtmE","ctmE","mpDlE","interestedServerSideEvents","sseDtmE","sseCtmE","sseMpDlE","interestedAllEvents","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","geoUrl","baseUrlV4","baseUrlV6","enQueueTMFire","sseOnly","name","dcrName","eventId","dcrPayload","runQueue","push","isDataStoreReady","shouldExecuteTMForEvent","eventName","indexOf","shouldExecuteSST","shouldExecuteClientSideTm","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setDeviceInfo","info","deviceInfo","getDeviceInfo","setSdkInitOptions","options","deQueueTMFire","length","pop","isTagManagerProcessing","isProcessing","setTagManagerProcessing","status","getSdkDataElements","_this$clientSdk","d","getSdkQC","_this$clientSdk2","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","_this$urls","getSdkVersion","v","setDebugId","dbgId","shouldFireSstForEvent","_this$clientSdk3","_this$clientSdk3$sseM","addCommonCookie","key","value","commonCookies","getCommonCookies","getUrlInfo","getSdkTags","_this$clientSdk4","t","getSdkProviders","_this$clientSdk5","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","storeData","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","_this$visitInfo","overrideDeviceType","_deviceType$trim","trim","getDeviceType","getDeviceId","_this$visitorInfo","dId","getMpId","_this$visitorInfo2","mId","getVisitorInfoAsString","getOrgId","_this$clientSdk6","_this$clientSdk6$s","getCoreVersion","getMpEnv","mpEnvShort","shortEnv","setGeoInfo","geoInfo","getGeoInfo","isGeoLocationEnabledInSdk","getVisitInfo","getBrowser","getMpUserStatus","_defineProperty"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n MpDeviceInfo,\n QcInfoItem,\n RunQueueModel,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport type { GeoResponse } from '../models/geo-api-response';\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\nconst CORE_VERSION = '0.8.6';\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 private static deviceInfo: MpDeviceInfo;\n private static geoInfo: GeoResponse;\n\n private static interestedClientSideEvents: string[] = [];\n private static interestedServerSideEvents: string[] = [];\n private static interestedAllEvents: string[] = [];\n\n private static commonCookies: Record<string, string> = {};\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.interestedClientSideEvents = Utils._makeUniqueStringArray([\n ...(clientSdk.dtmE ?? []),\n ...(clientSdk.ctmE ?? []),\n ...(clientSdk.mpDlE ?? []),\n ]);\n\n this.interestedServerSideEvents = Utils._makeUniqueStringArray([\n ...(clientSdk.sseDtmE ?? []),\n ...(clientSdk.sseCtmE ?? []),\n ...(clientSdk.sseMpDlE ?? []),\n ]);\n\n this.interestedAllEvents = Utils._makeUniqueStringArray([\n ...this.interestedClientSideEvents,\n ...this.interestedServerSideEvents,\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 geoUrl: '/geo',\n baseUrlV4: baseCollectorUrl,\n baseUrlV6: baseCollectorUrl, // For React Native, we'll use the same URL for both IPv4 and IPv6\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 shouldExecuteTMForEvent(eventName: string): boolean {\n return this.interestedAllEvents.indexOf(eventName) > -1;\n }\n\n static shouldExecuteSST(eventName: string): boolean {\n return this.interestedServerSideEvents.indexOf(eventName) > -1;\n }\n\n static shouldExecuteClientSideTm(eventName: string): boolean {\n return this.interestedClientSideEvents.indexOf(eventName) > -1;\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 setDeviceInfo(info: MpDeviceInfo): void {\n this.deviceInfo = info;\n }\n\n static getDeviceInfo(): MpDeviceInfo {\n return this.deviceInfo;\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 return this.clientSdk.s.v;\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 addCommonCookie(key: string, value: string): void {\n this.commonCookies[key] = value;\n }\n\n static getCommonCookies(): Record<string, string> {\n return this.commonCookies;\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 overrideDeviceType(deviceType: string): void {\n this.deviceType = deviceType?.trim()?.toLowerCase();\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 CORE_VERSION;\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 static setGeoInfo(geoInfo: GeoResponse): void {\n this.geoInfo = geoInfo;\n }\n\n static getGeoInfo(): GeoResponse | undefined {\n return this.geoInfo;\n }\n\n static isGeoLocationEnabledInSdk(): boolean {\n // TODO: Add geo location configuration to SDK settings\n // For now, return true to enable geo location by default\n return false;\n }\n\n static getVisitInfo(): VisitInfo | undefined {\n return this.visitInfo;\n }\n\n static getBrowser(): string {\n // In React Native, we return the platform as browser equivalent\n return this.devicePlatform;\n }\n\n static getMpUserStatus(): number {\n // Return user status based on visit count\n // 1 = new user (first visit), 0 = returning user\n const visitInfo = this.getVisitInfo();\n if (!visitInfo) {\n return 1; // Default to new user if no visit info\n }\n return visitInfo.visitCt === 1 ? 1 : 0;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AsyncStorage","Logger","Platform","Utils","version","SDK_VERSION","DataStore","init","clientSdk","_clientSdk$s","setMpEnv","s","ev","OS","devicePlatform","toLowerCase","isTablet","deviceType","interestedClientSideEvents","_makeUniqueStringArray","dtmE","ctmE","mpDlE","interestedServerSideEvents","sseDtmE","sseCtmE","sseMpDlE","interestedAllEvents","resetCollectorUrl","c_url","v_id","p_id","isDataStoreInitialized","baseCollectorUrl","sdkEnv","vendorId","projectId","tagsBaseUrl","urls","tfUrl","errUrl","rptUrl","infoUrl","baseUrl","attrInfoUrl","idlUrl","geoUrl","baseUrlV4","baseUrlV6","isDataStoreReady","shouldExecuteTMForEvent","eventName","indexOf","shouldExecuteSST","shouldExecuteClientSideTm","getSdkPcKey","pcKey","getSdkInitOptions","sdkInitOptions","setDeviceInfo","info","deviceInfo","getDeviceInfo","setSdkInitOptions","options","getSdkDataElements","_this$clientSdk","d","getSdkQC","_this$clientSdk2","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","getVisitorInfo","getDebugId","debugId","getErrorReportUrl","getIdlUrl","_this$urls","getSdkVersion","v","setDebugId","dbgId","shouldFireSstForEvent","_this$clientSdk3","addCommonCookie","key","value","commonCookies","getCommonCookies","getUrlInfo","getSdkTags","_this$clientSdk4","t","getSdkProviders","_this$clientSdk5","p","getPrivacyCompliance","prStatus","setPrivacyCompliance","status","storeData","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","_this$visitInfo","overrideDeviceType","_deviceType$trim","trim","getDeviceType","getDeviceId","_this$visitorInfo","dId","getMpId","_this$visitorInfo2","mId","getVisitorInfoAsString","getOrgId","_this$clientSdk6","getCoreVersion","getMpEnv","mpEnvShort","shortEnv","setGeoInfo","geoInfo","getGeoInfo","isGeoLocationEnabledInSdk","getVisitInfo","getBrowser","getMpUserStatus","_defineProperty"],"sources":["data-store.ts"],"sourcesContent":["import AsyncStorage from '@react-native-async-storage/async-storage';\nimport type {\n DeJsvHelper,\n MapLike,\n MpDeviceInfo,\n QcInfoItem,\n SdkInitOptions,\n UrlInfo,\n VisitInfo,\n VisitorInfo,\n} from './app-types';\nimport type { GeoResponse } from '../models/geo-api-response';\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';\nimport { version as SDK_VERSION } from '../../package.json';\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 | null;\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 sdkInitOptions: SdkInitOptions;\n private static deviceInfo: MpDeviceInfo;\n private static geoInfo: GeoResponse;\n\n private static interestedClientSideEvents: string[] = [];\n private static interestedServerSideEvents: string[] = [];\n private static interestedAllEvents: string[] = [];\n\n private static commonCookies: Record<string, string> = {};\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.interestedClientSideEvents = Utils._makeUniqueStringArray([\n ...(clientSdk.dtmE ?? []),\n ...(clientSdk.ctmE ?? []),\n ...(clientSdk.mpDlE ?? []),\n ]);\n\n this.interestedServerSideEvents = Utils._makeUniqueStringArray([\n ...(clientSdk.sseDtmE ?? []),\n ...(clientSdk.sseCtmE ?? []),\n ...(clientSdk.sseMpDlE ?? []),\n ]);\n\n this.interestedAllEvents = Utils._makeUniqueStringArray([\n ...this.interestedClientSideEvents,\n ...this.interestedServerSideEvents,\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 geoUrl: '/geo',\n baseUrlV4: baseCollectorUrl,\n baseUrlV6: baseCollectorUrl, // For React Native, we'll use the same URL for both IPv4 and IPv6\n };\n return true;\n }\n\n static isDataStoreReady(): boolean {\n return this.isDataStoreInitialized;\n }\n\n static shouldExecuteTMForEvent(eventName: string): boolean {\n return this.interestedAllEvents.indexOf(eventName) > -1;\n }\n\n static shouldExecuteSST(eventName: string): boolean {\n return this.interestedServerSideEvents.indexOf(eventName) > -1;\n }\n\n static shouldExecuteClientSideTm(eventName: string): boolean {\n return this.interestedClientSideEvents.indexOf(eventName) > -1;\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 setDeviceInfo(info: MpDeviceInfo): void {\n this.deviceInfo = info;\n }\n\n static getDeviceInfo(): MpDeviceInfo {\n return this.deviceInfo;\n }\n\n static setSdkInitOptions(options: SdkInitOptions): void {\n this.sdkInitOptions = options;\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 | null): void {\n this.visitorInfo = visitorInfo;\n }\n\n static getVisitorInfo(): VisitorInfo | null {\n return this.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 return this.clientSdk.s.v;\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 addCommonCookie(key: string, value: string): void {\n this.commonCookies[key] = value;\n }\n\n static getCommonCookies(): Record<string, string> {\n return this.commonCookies;\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 overrideDeviceType(deviceType: string): void {\n this.deviceType = deviceType?.trim()?.toLowerCase();\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 SDK_VERSION;\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 static setGeoInfo(geoInfo: GeoResponse): void {\n this.geoInfo = geoInfo;\n }\n\n static getGeoInfo(): GeoResponse | undefined {\n return this.geoInfo;\n }\n\n static isGeoLocationEnabledInSdk(): boolean {\n // TODO: Add geo location configuration to SDK settings\n // For now, return true to enable geo location by default\n return false;\n }\n\n static getVisitInfo(): VisitInfo | undefined {\n return this.visitInfo;\n }\n\n static getBrowser(): string {\n // In React Native, we return the platform as browser equivalent\n return this.devicePlatform;\n }\n\n static getMpUserStatus(): number {\n // Return user status based on visit count\n // 1 = new user (first visit), 0 = returning user\n const visitInfo = this.getVisitInfo();\n if (!visitInfo) {\n return 1; // Default to new user if no visit info\n }\n return visitInfo.visitCt === 1 ? 1 : 0;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
+ import { Linking } from 'react-native';
5
+ import { Logger } from './logger';
6
+ export let DeepLinkType = /*#__PURE__*/function (DeepLinkType) {
7
+ DeepLinkType["CUSTOM_SCHEME"] = "custom_scheme";
8
+ // myapp://
9
+ DeepLinkType["UNIVERSAL_LINK"] = "universal_link";
10
+ // https:// (iOS Universal Links)
11
+ DeepLinkType["APP_LINK"] = "app_link";
12
+ // https:// (Android App Links)
13
+ DeepLinkType["HTTP_LINK"] = "http_link"; // http://
14
+ return DeepLinkType;
15
+ }({});
16
+
17
+ /**
18
+ * Helper class to automatically detect and handle deeplinks
19
+ *
20
+ * Supports multiple link types:
21
+ * 1. Custom URL Schemes: myapp://product/123
22
+ * 2. Universal Links (iOS): https://my-site.com/product/123
23
+ * 3. App Links (Android): https://my-site.com/product/123
24
+ * 4. HTTP Links: http://my-site.com/product/123
25
+ *
26
+ * Common use cases:
27
+ * - Ad clicks (Facebook, Google, TikTok ads with http/https URLs)
28
+ * - Push notification deep links
29
+ * - Email marketing links
30
+ * - SMS campaign links
31
+ * - QR codes
32
+ */
33
+ export class DeepLinkHelper {
34
+ /**
35
+ * Determine the type of deeplink
36
+ * @param url The URL to analyze
37
+ * @returns The type of deeplink
38
+ */
39
+ static getLinkType(url) {
40
+ try {
41
+ if (url.startsWith('https://')) {
42
+ // Universal Links (iOS) and App Links (Android) both use HTTPS
43
+ return DeepLinkType.UNIVERSAL_LINK;
44
+ } else if (url.startsWith('http://')) {
45
+ return DeepLinkType.HTTP_LINK;
46
+ } else {
47
+ // Custom URL scheme (e.g., myapp://)
48
+ return DeepLinkType.CUSTOM_SCHEME;
49
+ }
50
+ } catch (error) {
51
+ Logger.logError('Error determining link type:', error);
52
+ return DeepLinkType.CUSTOM_SCHEME;
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Initialize deeplink detection
58
+ * - Checks if app was opened with initial URL (custom scheme, universal link, or HTTP link)
59
+ * - Sets up listener for deeplinks while app is running
60
+ * @param callback Optional callback to be notified when deeplink is detected
61
+ * @returns The initial URL if app was opened with deeplink, null otherwise
62
+ */
63
+ static async initialize(callback) {
64
+ try {
65
+ // Store callback if provided
66
+ if (callback) {
67
+ this.onDeepLinkCallback = callback;
68
+ }
69
+
70
+ // Check if app was opened with a deeplink
71
+ // This works for:
72
+ // - Custom schemes: myapp://product/123
73
+ // - Universal Links (iOS): https://my-site.com/product/123
74
+ // - App Links (Android): https://my-site.com/product/123
75
+ // - HTTP links: http://my-site.com/product/123
76
+ const initialUrl = await Linking.getInitialURL();
77
+ if (initialUrl) {
78
+ const linkType = this.getLinkType(initialUrl);
79
+ Logger.logDbg(`App opened with initial ${linkType}:`, initialUrl);
80
+ this.handleDeepLink(initialUrl);
81
+ }
82
+
83
+ // ALWAYS set up listener for deeplinks while app is running
84
+ // This ensures we can detect deeplinks even if app was opened with initial deeplink
85
+ this.setupListener();
86
+ return initialUrl;
87
+ } catch (error) {
88
+ Logger.logError('Error initializing deeplink detection:', error);
89
+ return null;
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Set up listener for deeplinks received while app is running
95
+ * Works for all link types: custom schemes, universal links, app links, HTTP links
96
+ */
97
+ static setupListener() {
98
+ // Remove existing listener if any
99
+ if (this.listener) {
100
+ this.listener.remove();
101
+ }
102
+
103
+ // Listen for deeplinks while app is running (e.g., user clicks link while app is open)
104
+ this.listener = Linking.addEventListener('url', event => {
105
+ const linkType = this.getLinkType(event.url);
106
+ Logger.logDbg(`Deeplink received (${linkType}):`, event.url);
107
+ this.handleDeepLink(event.url);
108
+ });
109
+ Logger.logDbg('Deeplink listener set up (supports custom schemes, universal/app links, HTTP links)');
110
+ }
111
+
112
+ /**
113
+ * Handle deeplink URL - notify callback if registered
114
+ * @param url The deeplink URL
115
+ */
116
+ static handleDeepLink(url) {
117
+ if (this.onDeepLinkCallback) {
118
+ const linkType = this.getLinkType(url);
119
+ this.onDeepLinkCallback(url, linkType);
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Remove deeplink listener and clear callback
125
+ */
126
+ static cleanup() {
127
+ if (this.listener) {
128
+ this.listener.remove();
129
+ this.listener = null;
130
+ }
131
+ this.onDeepLinkCallback = null;
132
+ Logger.logDbg('Deeplink listener and callback cleared');
133
+ }
134
+
135
+ /**
136
+ * Parse UTM parameters and other campaign data from URL
137
+ * @param url The deeplink URL
138
+ * @returns Object containing campaign parameters
139
+ */
140
+ static parseCampaignParams(url) {
141
+ try {
142
+ const urlObj = new URL(url);
143
+ const params = {};
144
+
145
+ // Common campaign parameters
146
+ const campaignParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'utm_id', 'gclid',
147
+ // Google Click ID
148
+ 'fbclid',
149
+ // Facebook Click ID
150
+ 'ttclid',
151
+ // TikTok Click ID
152
+ 'campaign_id', 'ad_id', 'adset_id', 'creative_id'];
153
+ campaignParams.forEach(param => {
154
+ const value = urlObj.searchParams.get(param);
155
+ if (value) {
156
+ params[param] = value;
157
+ }
158
+ });
159
+ return params;
160
+ } catch (error) {
161
+ Logger.logError('Error parsing campaign params from URL:', error);
162
+ return {};
163
+ }
164
+ }
165
+ }
166
+ _defineProperty(DeepLinkHelper, "listener", null);
167
+ _defineProperty(DeepLinkHelper, "onDeepLinkCallback", null);
168
+ //# sourceMappingURL=deeplink-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Linking","Logger","DeepLinkType","DeepLinkHelper","getLinkType","url","startsWith","UNIVERSAL_LINK","HTTP_LINK","CUSTOM_SCHEME","error","logError","initialize","callback","onDeepLinkCallback","initialUrl","getInitialURL","linkType","logDbg","handleDeepLink","setupListener","listener","remove","addEventListener","event","cleanup","parseCampaignParams","urlObj","URL","params","campaignParams","forEach","param","value","searchParams","get","_defineProperty"],"sources":["deeplink-helper.ts"],"sourcesContent":["import { Linking } from 'react-native';\nimport { Logger } from './logger';\n\nexport enum DeepLinkType {\n CUSTOM_SCHEME = 'custom_scheme', // myapp://\n UNIVERSAL_LINK = 'universal_link', // https:// (iOS Universal Links)\n APP_LINK = 'app_link', // https:// (Android App Links)\n HTTP_LINK = 'http_link', // http://\n}\n\n/**\n * Helper class to automatically detect and handle deeplinks\n *\n * Supports multiple link types:\n * 1. Custom URL Schemes: myapp://product/123\n * 2. Universal Links (iOS): https://my-site.com/product/123\n * 3. App Links (Android): https://my-site.com/product/123\n * 4. HTTP Links: http://my-site.com/product/123\n *\n * Common use cases:\n * - Ad clicks (Facebook, Google, TikTok ads with http/https URLs)\n * - Push notification deep links\n * - Email marketing links\n * - SMS campaign links\n * - QR codes\n */\nexport class DeepLinkHelper {\n private static listener: any = null;\n private static onDeepLinkCallback:\n | ((url: string, linkType: DeepLinkType) => void)\n | null = null;\n\n /**\n * Determine the type of deeplink\n * @param url The URL to analyze\n * @returns The type of deeplink\n */\n static getLinkType(url: string): DeepLinkType {\n try {\n if (url.startsWith('https://')) {\n // Universal Links (iOS) and App Links (Android) both use HTTPS\n return DeepLinkType.UNIVERSAL_LINK;\n } else if (url.startsWith('http://')) {\n return DeepLinkType.HTTP_LINK;\n } else {\n // Custom URL scheme (e.g., myapp://)\n return DeepLinkType.CUSTOM_SCHEME;\n }\n } catch (error) {\n Logger.logError('Error determining link type:', error);\n return DeepLinkType.CUSTOM_SCHEME;\n }\n }\n\n /**\n * Initialize deeplink detection\n * - Checks if app was opened with initial URL (custom scheme, universal link, or HTTP link)\n * - Sets up listener for deeplinks while app is running\n * @param callback Optional callback to be notified when deeplink is detected\n * @returns The initial URL if app was opened with deeplink, null otherwise\n */\n static async initialize(\n callback?: (url: string, linkType: DeepLinkType) => void\n ): Promise<string | null> {\n try {\n // Store callback if provided\n if (callback) {\n this.onDeepLinkCallback = callback;\n }\n\n // Check if app was opened with a deeplink\n // This works for:\n // - Custom schemes: myapp://product/123\n // - Universal Links (iOS): https://my-site.com/product/123\n // - App Links (Android): https://my-site.com/product/123\n // - HTTP links: http://my-site.com/product/123\n const initialUrl = await Linking.getInitialURL();\n\n if (initialUrl) {\n const linkType = this.getLinkType(initialUrl);\n Logger.logDbg(`App opened with initial ${linkType}:`, initialUrl);\n this.handleDeepLink(initialUrl);\n }\n\n // ALWAYS set up listener for deeplinks while app is running\n // This ensures we can detect deeplinks even if app was opened with initial deeplink\n this.setupListener();\n\n return initialUrl;\n } catch (error) {\n Logger.logError('Error initializing deeplink detection:', error);\n return null;\n }\n }\n\n /**\n * Set up listener for deeplinks received while app is running\n * Works for all link types: custom schemes, universal links, app links, HTTP links\n */\n private static setupListener(): void {\n // Remove existing listener if any\n if (this.listener) {\n this.listener.remove();\n }\n\n // Listen for deeplinks while app is running (e.g., user clicks link while app is open)\n this.listener = Linking.addEventListener('url', (event) => {\n const linkType = this.getLinkType(event.url);\n Logger.logDbg(`Deeplink received (${linkType}):`, event.url);\n this.handleDeepLink(event.url);\n });\n\n Logger.logDbg(\n 'Deeplink listener set up (supports custom schemes, universal/app links, HTTP links)'\n );\n }\n\n /**\n * Handle deeplink URL - notify callback if registered\n * @param url The deeplink URL\n */\n private static handleDeepLink(url: string): void {\n if (this.onDeepLinkCallback) {\n const linkType = this.getLinkType(url);\n this.onDeepLinkCallback(url, linkType);\n }\n }\n\n /**\n * Remove deeplink listener and clear callback\n */\n static cleanup(): void {\n if (this.listener) {\n this.listener.remove();\n this.listener = null;\n }\n this.onDeepLinkCallback = null;\n Logger.logDbg('Deeplink listener and callback cleared');\n }\n\n /**\n * Parse UTM parameters and other campaign data from URL\n * @param url The deeplink URL\n * @returns Object containing campaign parameters\n */\n static parseCampaignParams(url: string): Record<string, string> {\n try {\n const urlObj = new URL(url);\n const params: Record<string, string> = {};\n\n // Common campaign parameters\n const campaignParams = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_term',\n 'utm_content',\n 'utm_id',\n 'gclid', // Google Click ID\n 'fbclid', // Facebook Click ID\n 'ttclid', // TikTok Click ID\n 'campaign_id',\n 'ad_id',\n 'adset_id',\n 'creative_id',\n ];\n\n campaignParams.forEach((param) => {\n const value = urlObj.searchParams.get(param);\n if (value) {\n params[param] = value;\n }\n });\n\n return params;\n } catch (error) {\n Logger.logError('Error parsing campaign params from URL:', error);\n return {};\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}