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

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 +28 -10
  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 +20 -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 +290 -48
  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 +29 -10
  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 +20 -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 +279 -47
  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 +29 -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/src/common/storage-helper.d.ts +47 -0
  68. package/lib/typescript/{common → src/common}/utils.d.ts +7 -0
  69. package/lib/typescript/{eedl → src/eedl}/eedl.d.ts +43 -1
  70. package/lib/typescript/{index.d.ts → src/index.d.ts} +39 -5
  71. package/lib/typescript/{models → src/models}/mp-client-sdk.d.ts +7 -0
  72. package/lib/typescript/src/processors/visit-id.processor.d.ts +23 -0
  73. package/package.json +26 -37
  74. package/src/common/app-types.ts +32 -10
  75. package/src/common/constants.ts +0 -6
  76. package/src/common/data-store.ts +8 -30
  77. package/src/common/deeplink-helper.ts +181 -0
  78. package/src/common/device-info-helper.ts +190 -0
  79. package/src/common/event-bus.ts +39 -0
  80. package/src/common/network-service.ts +154 -21
  81. package/src/common/reporter.ts +31 -10
  82. package/src/common/storage-helper.ts +266 -0
  83. package/src/common/utils.ts +20 -2
  84. package/src/eedl/eedl.ts +225 -51
  85. package/src/index.tsx +332 -67
  86. package/src/models/mp-client-sdk.ts +8 -0
  87. package/src/processors/data-element.processor.ts +85 -7
  88. package/src/processors/visit-id.processor.ts +92 -22
  89. package/lib/commonjs/processors/trans-function.processor.js +0 -73
  90. package/lib/commonjs/processors/trans-function.processor.js.map +0 -1
  91. package/lib/module/processors/trans-function.processor.js +0 -66
  92. package/lib/module/processors/trans-function.processor.js.map +0 -1
  93. package/lib/typescript/common/event-bus.d.ts +0 -6
  94. package/lib/typescript/common/network-service.d.ts +0 -8
  95. package/lib/typescript/processors/trans-function.processor.d.ts +0 -12
  96. package/lib/typescript/processors/visit-id.processor.d.ts +0 -9
  97. package/src/processors/trans-function.processor.ts +0 -85
  98. /package/lib/typescript/{common → src/common}/logger.d.ts +0 -0
  99. /package/lib/typescript/{common → src/common}/reporter.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
@@ -3,23 +3,30 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ParamResourceValSrc = exports.ParamResourceHashType = exports.ParamResourceEncodingType = void 0;
7
- let ParamResourceEncodingType = exports.ParamResourceEncodingType = void 0;
8
- (function (ParamResourceEncodingType) {
6
+ exports.ParamResourceValSrc = exports.ParamResourceHashType = exports.ParamResourceEncodingType = exports.DeStorageDuration = void 0;
7
+ let DeStorageDuration = exports.DeStorageDuration = /*#__PURE__*/function (DeStorageDuration) {
8
+ DeStorageDuration["NONE"] = "NONE";
9
+ DeStorageDuration["EVENT"] = "EVENT";
10
+ DeStorageDuration["SESSION"] = "SESSION";
11
+ DeStorageDuration["VISITOR"] = "VISITOR";
12
+ return DeStorageDuration;
13
+ }({});
14
+ let ParamResourceEncodingType = exports.ParamResourceEncodingType = /*#__PURE__*/function (ParamResourceEncodingType) {
9
15
  ParamResourceEncodingType["URL_ENC"] = "URL_ENC";
10
16
  ParamResourceEncodingType["BASE64"] = "BASE64";
11
- })(ParamResourceEncodingType || (exports.ParamResourceEncodingType = ParamResourceEncodingType = {}));
12
- let ParamResourceHashType = exports.ParamResourceHashType = void 0;
13
- (function (ParamResourceHashType) {
17
+ return ParamResourceEncodingType;
18
+ }({});
19
+ let ParamResourceHashType = exports.ParamResourceHashType = /*#__PURE__*/function (ParamResourceHashType) {
14
20
  ParamResourceHashType["SHA256"] = "SHA256";
15
21
  ParamResourceHashType["SHA512"] = "SHA512";
16
- })(ParamResourceHashType || (exports.ParamResourceHashType = ParamResourceHashType = {}));
17
- let ParamResourceValSrc = exports.ParamResourceValSrc = void 0;
18
- (function (ParamResourceValSrc) {
22
+ return ParamResourceHashType;
23
+ }({});
24
+ let ParamResourceValSrc = exports.ParamResourceValSrc = /*#__PURE__*/function (ParamResourceValSrc) {
19
25
  ParamResourceValSrc["STATIC"] = "STATIC";
20
26
  ParamResourceValSrc["DE"] = "DE";
21
27
  ParamResourceValSrc["TRANS_FUNC"] = "TRANS_FUNC";
22
28
  ParamResourceValSrc["CHILDREN"] = "CHILDREN";
23
29
  ParamResourceValSrc["TG_JSON_PATH"] = "TG_JSON_PATH";
24
- })(ParamResourceValSrc || (exports.ParamResourceValSrc = ParamResourceValSrc = {}));
30
+ return ParamResourceValSrc;
31
+ }({});
25
32
  //# sourceMappingURL=mp-client-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ParamResourceEncodingType","exports","ParamResourceHashType","ParamResourceValSrc"],"sources":["mp-client-sdk.ts"],"sourcesContent":["import type { MapLike } from '../common/app-types';\n\nexport interface ClientSdkDeItem {\n nm: string;\n typ: string;\n key?: string;\n def?: any;\n cl?: boolean;\n lwcase?: boolean;\n fn?: (deHelper: any, input: any) => any;\n isAsync?: boolean;\n fnTOut?: number;\n}\n\nexport enum ParamResourceEncodingType {\n URL_ENC = 'URL_ENC',\n BASE64 = 'BASE64',\n}\n\nexport enum ParamResourceHashType {\n SHA256 = 'SHA256',\n SHA512 = 'SHA512',\n}\n\nexport enum ParamResourceValSrc {\n STATIC = 'STATIC',\n DE = 'DE',\n TRANS_FUNC = 'TRANS_FUNC',\n CHILDREN = 'CHILDREN',\n TG_JSON_PATH = 'TG_JSON_PATH',\n}\n\nexport interface SdkParamEncodingTransformer {\n nm: string;\n eTyp: 'URL_ENC' | 'BASE64';\n o?: number;\n}\n\nexport interface SdkParamHashingTransformer {\n nm: string;\n hTyp: ParamResourceHashType;\n o?: number;\n}\n\nexport interface SdkParamIgnoreEmptyTransformer {\n nm: string;\n igEmpty: boolean;\n o?: number; // order\n}\n\nexport type TFType = (\n | SdkParamHashingTransformer\n | SdkParamEncodingTransformer\n | SdkParamIgnoreEmptyTransformer\n)[];\n\nexport interface ClientSdkParamItem {\n id: string; // id\n nm: string; // name\n rqd?: boolean; // is mandatory\n tf?: TFType; // transformation array\n prLvl?: boolean; // is provider level attribute\n pId?: string; // parent id\n sv?: string; // static value\n de?: string; // data element id\n tfId?: string; // transformation function id\n children?: ClientSdkParamItem[];\n exclude_from_req_body?: boolean;\n fKey: string; // flat key\n val_src: string;\n}\n\nexport interface ClientSdkQcCondition {\n param: string; // param name\n i?: string[]; // include conditions\n e?: string[]; // exclude conditions\n i_ect: boolean; // is exact match for include\n i_cs?: boolean; // is case-sensitive for include\n e_ect?: boolean; // is exact match for exclude\n e_cs?: boolean; // is case-sensitive for exclude\n}\n\nexport interface ClientSdkPrItem {\n nm: string;\n url?: string; // base url\n typ: string; // js or img provider\n sTyp: string; // r or i sub type\n rParams?: MapLike<ClientSdkParamItem>; // parameters\n hrs?: MapLike<string>; // headers\n ext?: string; // sdk extras joined into a string\n src?: string; // src of the sdk\n sync?: boolean; // should be loaded sync or async\n pr: string; // whitelisted or black listed\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkTfnItem {\n nm: string; // name\n fn: (input: any) => any; // js function in case this is a jsv data element\n rParams: MapLike<ClientSdkParamItem>; // parameters\n}\n\nexport interface ClientSdkQcItem {\n nm: string;\n id: string;\n c: ClientSdkQcCondition[];\n}\n\nexport interface ClientSdkTagItem {\n nm: string; // name\n p: string; // provider id\n url: string; // tag url\n rParams?: MapLike<ClientSdkParamItem>;\n st: number; // start time - in epoch seconds\n ex: number; // expiry time - in epoch seconds\n qc: string[];\n img?: boolean; // is image tag\n wrk?: boolean; // is web worker compatible\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkSettingsItem {\n dbg: boolean; // debug_enabled\n err: boolean; // error_enabled\n c_dom: string; // default cookie domain\n v_dur: number; // visit duration\n c_url: string; // collector_url\n bare_c_url?: string; // bare collector url - transient variable\n wh_idl?: string[]; // list of whitelisted idl events\n wh_domains?: string[]; // list of white listed domains\n c_url_lkp?: MapLike<{ v: string; ig: boolean; ect: boolean }>; // collector url look up\n v_id: string; // vendor_id\n p_id: string; // project_id\n ev: string; // environment\n ev_id: string; // environment id\n dly: number; // trigger_delay\n sst: boolean; // should enable server side. this will be set to true if there is atleast one sever side tag defined\n idl: boolean; // should enable ID Link service. this will be set to true if the vendor has ID Link enabled\n c_typ?: string; // the type of CSP, example nonce.\n c_src?: string; // the source of CSP, example meta_tag for nonce type.\n c_key?: string; // the data for CSP.\n v: string; // core sdk version\n bld_dt: string; // sdk build date and time from MP - this is not for the core sdk\n p_view?: boolean; // should fire page info call or not to metrics\n dws_c_t: 'j' | 'n'; // client side down stream (j = java, n = node)\n dws_s_t: 'j' | 'n'; // server side down stream (j = java, n = node)\n}\n\nexport interface BaseResourceParamType {\n id: string; // id of param\n nm: string; // name\n o?: number; // order\n pId?: string; // parent id\n children?: BaseResourceParamType[];\n}\n\nexport interface MpClientSdk {\n langKey: string; // language data element id\n pcKey: string; // privacy compliance key\n cDomKey?: string; // collector domain tfn key\n domWListKey?: string; // domain white list tfn function\n d: MapLike<ClientSdkDeItem>; // data element map\n qc?: ClientSdkQcItem[]; // qualification criteria\n t?: MapLike<ClientSdkTagItem>; // tag map\n p?: MapLike<ClientSdkPrItem>; // provider map\n tfn?: MapLike<ClientSdkTfnItem>; // list of transformation functions\n s: ClientSdkSettingsItem; // settings data item\n dtmE: string[]; // list of dtm direct call events magic pixel should be interested in\n ctmE: string[]; // list of custom javascript event magic pixel should be interested in\n mpDlE: string[]; // list of MagicPixel data layer event magic pixel should be interested in\n sseDtmE: string[]; // list of server side dtm events that we should trigger sst tag\n sseCtmE: string[]; // list of custom window events that we should trigger sst tag\n sseMpDlE: string[]; // list of mp dl events that should trigger the sst tag\n}\n"],"mappings":";;;;;;IAcYA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;AAAA,WAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;AAAA,GAAzBA,yBAAyB,KAAAC,OAAA,CAAAD,yBAAA,GAAzBA,yBAAyB;AAAA,IAKzBE,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA;AAAA,WAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;AAAA,GAArBA,qBAAqB,KAAAD,OAAA,CAAAC,qBAAA,GAArBA,qBAAqB;AAAA,IAKrBC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA;AAAA,WAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;AAAA,GAAnBA,mBAAmB,KAAAF,OAAA,CAAAE,mBAAA,GAAnBA,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["DeStorageDuration","exports","ParamResourceEncodingType","ParamResourceHashType","ParamResourceValSrc"],"sources":["mp-client-sdk.ts"],"sourcesContent":["import type { MapLike } from '../common/app-types';\n\nexport interface ClientSdkDeItem {\n nm: string;\n typ: string;\n key?: string;\n def?: any;\n cl?: boolean;\n lwcase?: boolean;\n fn?: (deHelper: any, input: any) => any;\n isAsync?: boolean;\n fnTOut?: number;\n stDur?: DeStorageDuration; // storage duration\n}\n\nexport enum DeStorageDuration {\n NONE = 'NONE',\n EVENT = 'EVENT',\n SESSION = 'SESSION',\n VISITOR = 'VISITOR',\n}\n\nexport enum ParamResourceEncodingType {\n URL_ENC = 'URL_ENC',\n BASE64 = 'BASE64',\n}\n\nexport enum ParamResourceHashType {\n SHA256 = 'SHA256',\n SHA512 = 'SHA512',\n}\n\nexport enum ParamResourceValSrc {\n STATIC = 'STATIC',\n DE = 'DE',\n TRANS_FUNC = 'TRANS_FUNC',\n CHILDREN = 'CHILDREN',\n TG_JSON_PATH = 'TG_JSON_PATH',\n}\n\nexport interface SdkParamEncodingTransformer {\n nm: string;\n eTyp: 'URL_ENC' | 'BASE64';\n o?: number;\n}\n\nexport interface SdkParamHashingTransformer {\n nm: string;\n hTyp: ParamResourceHashType;\n o?: number;\n}\n\nexport interface SdkParamIgnoreEmptyTransformer {\n nm: string;\n igEmpty: boolean;\n o?: number; // order\n}\n\nexport type TFType = (\n | SdkParamHashingTransformer\n | SdkParamEncodingTransformer\n | SdkParamIgnoreEmptyTransformer\n)[];\n\nexport interface ClientSdkParamItem {\n id: string; // id\n nm: string; // name\n rqd?: boolean; // is mandatory\n tf?: TFType; // transformation array\n prLvl?: boolean; // is provider level attribute\n pId?: string; // parent id\n sv?: string; // static value\n de?: string; // data element id\n tfId?: string; // transformation function id\n children?: ClientSdkParamItem[];\n exclude_from_req_body?: boolean;\n fKey: string; // flat key\n val_src: string;\n}\n\nexport interface ClientSdkQcCondition {\n param: string; // param name\n i?: string[]; // include conditions\n e?: string[]; // exclude conditions\n i_ect: boolean; // is exact match for include\n i_cs?: boolean; // is case-sensitive for include\n e_ect?: boolean; // is exact match for exclude\n e_cs?: boolean; // is case-sensitive for exclude\n}\n\nexport interface ClientSdkPrItem {\n nm: string;\n url?: string; // base url\n typ: string; // js or img provider\n sTyp: string; // r or i sub type\n rParams?: MapLike<ClientSdkParamItem>; // parameters\n hrs?: MapLike<string>; // headers\n ext?: string; // sdk extras joined into a string\n src?: string; // src of the sdk\n sync?: boolean; // should be loaded sync or async\n pr: string; // whitelisted or black listed\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkTfnItem {\n nm: string; // name\n fn: (input: any) => any; // js function in case this is a jsv data element\n rParams: MapLike<ClientSdkParamItem>; // parameters\n}\n\nexport interface ClientSdkQcItem {\n nm: string;\n id: string;\n c: ClientSdkQcCondition[];\n}\n\nexport interface ClientSdkTagItem {\n nm: string; // name\n p: string; // provider id\n url: string; // tag url\n rParams?: MapLike<ClientSdkParamItem>;\n st: number; // start time - in epoch seconds\n ex: number; // expiry time - in epoch seconds\n qc: string[];\n img?: boolean; // is image tag\n wrk?: boolean; // is web worker compatible\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkSettingsItem {\n dbg: boolean; // debug_enabled\n err: boolean; // error_enabled\n c_dom: string; // default cookie domain\n v_dur: number; // visit duration\n c_url: string; // collector_url\n bare_c_url?: string; // bare collector url - transient variable\n wh_idl?: string[]; // list of whitelisted idl events\n wh_domains?: string[]; // list of white listed domains\n c_url_lkp?: MapLike<{ v: string; ig: boolean; ect: boolean }>; // collector url look up\n v_id: string; // vendor_id\n p_id: string; // project_id\n ev: string; // environment\n ev_id: string; // environment id\n dly: number; // trigger_delay\n sst: boolean; // should enable server side. this will be set to true if there is atleast one sever side tag defined\n idl: boolean; // should enable ID Link service. this will be set to true if the vendor has ID Link enabled\n c_typ?: string; // the type of CSP, example nonce.\n c_src?: string; // the source of CSP, example meta_tag for nonce type.\n c_key?: string; // the data for CSP.\n v: string; // core sdk version\n bld_dt: string; // sdk build date and time from MP - this is not for the core sdk\n p_view?: boolean; // should fire page info call or not to metrics\n dws_c_t: 'j' | 'n'; // client side down stream (j = java, n = node)\n dws_s_t: 'j' | 'n'; // server side down stream (j = java, n = node)\n}\n\nexport interface BaseResourceParamType {\n id: string; // id of param\n nm: string; // name\n o?: number; // order\n pId?: string; // parent id\n children?: BaseResourceParamType[];\n}\n\nexport interface MpClientSdk {\n langKey: string; // language data element id\n pcKey: string; // privacy compliance key\n cDomKey?: string; // collector domain tfn key\n domWListKey?: string; // domain white list tfn function\n d: MapLike<ClientSdkDeItem>; // data element map\n qc?: ClientSdkQcItem[]; // qualification criteria\n t?: MapLike<ClientSdkTagItem>; // tag map\n p?: MapLike<ClientSdkPrItem>; // provider map\n tfn?: MapLike<ClientSdkTfnItem>; // list of transformation functions\n s: ClientSdkSettingsItem; // settings data item\n dtmE: string[]; // list of dtm direct call events magic pixel should be interested in\n ctmE: string[]; // list of custom javascript event magic pixel should be interested in\n mpDlE: string[]; // list of MagicPixel data layer event magic pixel should be interested in\n sseDtmE: string[]; // list of server side dtm events that we should trigger sst tag\n sseCtmE: string[]; // list of custom window events that we should trigger sst tag\n sseMpDlE: string[]; // list of mp dl events that should trigger the sst tag\n}\n"],"mappings":";;;;;;IAeYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAOjBE,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAAA,IAKzBC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAAA,IAKrBC,mBAAmB,GAAAH,OAAA,CAAAG,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
@@ -7,8 +7,10 @@ exports.DataElementProcessor = void 0;
7
7
  exports.processDataElements = processDataElements;
8
8
  exports.processOneDataElement = processOneDataElement;
9
9
  var _utils = require("../common/utils");
10
+ var _mpClientSdk = require("../models/mp-client-sdk");
10
11
  var _dataStore = require("../common/data-store");
11
12
  var _logger = require("../common/logger");
13
+ var _storageHelper = require("../common/storage-helper");
12
14
  /**
13
15
  * Process data element of type url parameter
14
16
  * @param de
@@ -17,6 +19,12 @@ var _logger = require("../common/logger");
17
19
  // Note: JSV (JavaScript functions) are not supported in React Native
18
20
  // This timeout function is kept for potential future use
19
21
 
22
+ /**
23
+ * Check if a value is defined (not null, undefined, or empty string)
24
+ */
25
+ function isDefined(value) {
26
+ return value !== null && value !== undefined && value !== '';
27
+ }
20
28
  const dElemProcessors = {
21
29
  mpdl: (helper, elem, eventData) => {
22
30
  return processMpDl(helper, elem, eventData);
@@ -55,16 +63,18 @@ const dElemProcessors = {
55
63
  },
56
64
  mp_visit_depth: (_helper, _elem, _eventData) => {
57
65
  var _DataStore$getVisitIn2;
58
- return ((_DataStore$getVisitIn2 = _dataStore.DataStore.getVisitInfo()) === null || _DataStore$getVisitIn2 === void 0 ? void 0 : _DataStore$getVisitIn2.visitDepth) ?? 0;
66
+ // Visit depth should start at 1 (first page), not 0
67
+ // Return at least 1 to ensure first page view shows depth = 1
68
+ const depth = ((_DataStore$getVisitIn2 = _dataStore.DataStore.getVisitInfo()) === null || _DataStore$getVisitIn2 === void 0 ? void 0 : _DataStore$getVisitIn2.visitDepth) ?? 0;
69
+ return Math.max(1, depth);
59
70
  },
60
71
  /* Browser/Platform data elements */
61
72
  pg_browser: (_helper, _elem, _eventData) => {
62
73
  return _dataStore.DataStore.getDeviceOs(); // Using device OS as browser equivalent
63
74
  },
64
- /* User status data element - TODO: Implement getMpUserStatus in DataStore */
75
+ /* User status data element - 1 = new visitor (first visit), 0 = returning visitor */
65
76
  mp_new_vis: (_helper, _elem, _eventData) => {
66
- // TODO: Implement user status functionality
67
- return '1'; // Default to new visitor
77
+ return _dataStore.DataStore.getMpUserStatus();
68
78
  },
69
79
  pg_random: (_helper, _elem, _eventData) => {
70
80
  return _utils.Utils.getUniqueID();
@@ -98,6 +108,27 @@ const dElemProcessors = {
98
108
  pg_mp_dl_evt_name: (_helper, _elem, _eventData) => {
99
109
  _elem.key = 'ev._eventName';
100
110
  return processMpDl(_helper, _elem, _eventData);
111
+ },
112
+ pg_hash: (_helper, _elem, _eventData) => {
113
+ return '';
114
+ },
115
+ pg_title: (_helper, _elem, _eventData) => {
116
+ return '';
117
+ },
118
+ pg_params: (_helper, _elem, _eventData) => {
119
+ return '';
120
+ },
121
+ pg_domain: (_helper, _elem, _eventData) => {
122
+ return '';
123
+ },
124
+ pg_srch: (_helper, _elem, _eventData) => {
125
+ return '';
126
+ },
127
+ pg_referrer: (_helper, _elem, _eventData) => {
128
+ return '';
129
+ },
130
+ pg_url: (_helper, _elem, _eventData) => {
131
+ return '';
101
132
  }
102
133
  // Note: JSV (JavaScript functions) processor removed - not supported in React Native
103
134
  };
@@ -143,11 +174,24 @@ async function processOneDataElement(_sdkDataElements, deItem, deHelper, eventDa
143
174
  try {
144
175
  if (dElemProcessors[deItem.typ]) {
145
176
  _logger.Logger.logDbg('Processing data element: ', deItem.nm);
146
- const deValue = await dElemProcessors[deItem.typ](deHelper, deItem, eventData);
177
+ let deValue = await dElemProcessors[deItem.typ](deHelper, deItem, eventData);
178
+
179
+ // Default storage duration to EVENT if not defined
180
+ if (!deItem.stDur) {
181
+ deItem.stDur = _mpClientSdk.DeStorageDuration.EVENT;
182
+ }
147
183
 
148
- // TODO: Implement storage duration functionality for React Native
149
- // For now, we'll just return the value without persistence
184
+ // If data element has persistence enabled, store the value
185
+ _storageHelper.StorageHelper.deStorageDurationSet(deItem.key, deValue, deItem.stDur);
150
186
 
187
+ // If value is not defined, try to retrieve from storage
188
+ // This allows values like gclid to persist across page loads
189
+ if (!isDefined(deValue)) {
190
+ const storedValue = _storageHelper.StorageHelper.deStorageDurationGet(deItem.key, deItem.def, deItem.stDur);
191
+ if (isDefined(storedValue)) {
192
+ deValue = storedValue;
193
+ }
194
+ }
151
195
  return deValue;
152
196
  } else {
153
197
  _logger.Logger.logError('No processor found for de typ: ', deItem.typ);
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_dataStore","_logger","dElemProcessors","mpdl","helper","elem","eventData","processMpDl","pg_os","_helper","_elem","_eventData","DataStore","getOperatingSystem","visit_id","getVisitId","pg_dtype","getDeviceType","mp_geo_pcode","_DataStore$getGeoInfo","getGeoInfo","postal","undefined","mp_geo_country","_DataStore$getGeoInfo2","country","mp_geo_region","_DataStore$getGeoInfo3","region","mp_geo_city","_DataStore$getGeoInfo4","city","mp_visit_count","_DataStore$getVisitIn","getVisitInfo","visitCt","mp_visit_depth","_DataStore$getVisitIn2","visitDepth","pg_browser","getDeviceOs","mp_new_vis","pg_random","Utils","getUniqueID","pg_empty_val","mp_dvc_id","getDeviceId","mp_vis_id","getMpId","mp_org_id","getOrgId","mp_c_sdk_v","getCoreVersion","mp_c_sdk_env","getMpEnv","pg_mp_dl_evt_id","key","pg_mp_dl_evt_ts","pg_mp_dl_evt_name","generalCleanAndEscape","de","val","fn","cl","_val","trim","indexOf","replace","lwcase","_val2","toLowerCase","err","Logger","logError","def","processOneDataElement","_sdkDataElements","deItem","deHelper","_optDeKeys","typ","logDbg","nm","deValue","processDataElements","sdkDataElements","optDeKeys","getDataElements","deKeys","length","Object","keys","getDataElementHelpers","setDataElements","DataElementProcessor","exports"],"sources":["data-element.processor.ts"],"sourcesContent":["/**\n * Process data element of type url parameter\n * @param de\n */\nimport { Utils } from '../common/utils';\nimport type { DeJsvHelper, MapLike } from '../common/app-types';\nimport type { ClientSdkDeItem } from '../models/mp-client-sdk';\nimport { DataStore } from '../common/data-store';\nimport { Logger } from '../common/logger';\n\n// Note: JSV (JavaScript functions) are not supported in React Native\n// This timeout function is kept for potential future use\n\nconst dElemProcessors: MapLike<\n (\n helper: DeJsvHelper,\n elem: ClientSdkDeItem,\n eventData?: Record<string, any>\n ) => any\n> = {\n mpdl: (\n helper: DeJsvHelper,\n elem: ClientSdkDeItem,\n eventData?: Record<string, any>\n ): any => {\n return processMpDl(helper, elem, eventData);\n },\n pg_os: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n // already browser is in lower case, so no need to do it again\n return DataStore.getOperatingSystem();\n },\n visit_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getVisitId();\n },\n pg_dtype: (_helper: DeJsvHelper, _elem: ClientSdkDeItem): any => {\n return DataStore.getDeviceType();\n },\n /* Geo location data elements */\n mp_geo_pcode: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.postal ?? undefined;\n },\n mp_geo_country: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.country ?? undefined;\n },\n\n mp_geo_region: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.region ?? undefined;\n },\n mp_geo_city: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.city ?? undefined;\n },\n /* Visit info data elements */\n mp_visit_count: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getVisitInfo()?.visitCt ?? 0;\n },\n mp_visit_depth: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getVisitInfo()?.visitDepth ?? 0;\n },\n /* Browser/Platform data elements */\n pg_browser: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getDeviceOs(); // Using device OS as browser equivalent\n },\n /* User status data element - TODO: Implement getMpUserStatus in DataStore */\n mp_new_vis: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n // TODO: Implement user status functionality\n return '1'; // Default to new visitor\n },\n pg_random: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return Utils.getUniqueID();\n },\n pg_empty_val: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n mp_dvc_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getDeviceId();\n },\n mp_vis_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getMpId();\n },\n mp_org_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getOrgId();\n },\n mp_c_sdk_v: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getCoreVersion();\n },\n mp_c_sdk_env: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getMpEnv();\n },\n pg_mp_dl_evt_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._id';\n return processMpDl(_helper, _elem, _eventData);\n },\n pg_mp_dl_evt_ts: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._tsMs';\n return processMpDl(_helper, _elem, _eventData);\n },\n pg_mp_dl_evt_name: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._eventName';\n return processMpDl(_helper, _elem, _eventData);\n },\n // Note: JSV (JavaScript functions) processor removed - not supported in React Native\n};\n\nfunction generalCleanAndEscape(\n helper: DeJsvHelper,\n de: ClientSdkDeItem,\n val: any\n): string {\n if (typeof de.fn === 'function') {\n val = de.fn(helper, val);\n return val;\n } else {\n if (typeof val === 'string') {\n // clean\n if (de.cl) {\n val = val?.trim();\n // see if it has a single quote or double quote, if so, escape it\n if (val.indexOf(`'`) > -1) {\n val = val.replace(/'/g, '');\n }\n\n if (val.indexOf(`\"`) > -1) {\n val = val.replace(/\"/g, '');\n }\n }\n if (de.lwcase) {\n val = val?.toLowerCase();\n }\n }\n return val;\n }\n}\n\nfunction processMpDl(\n helper: DeJsvHelper,\n de: ClientSdkDeItem,\n eventData?: Record<string, any>\n): any {\n try {\n if (de.key) {\n if (eventData && typeof eventData[de.key] !== 'undefined') {\n return generalCleanAndEscape(helper, de, eventData[de.key]);\n }\n }\n } catch (err) {\n Logger.logError('Error processing mp dl variable: ', err);\n }\n return generalCleanAndEscape(helper, de, de.def);\n}\n\nexport async function processOneDataElement(\n _sdkDataElements: MapLike<ClientSdkDeItem>,\n deItem: ClientSdkDeItem,\n deHelper: any,\n eventData?: Record<string, any>,\n _optDeKeys?: string[]\n): Promise<any> {\n try {\n if (dElemProcessors[deItem.typ]) {\n Logger.logDbg('Processing data element: ', deItem.nm);\n const deValue = await dElemProcessors[deItem.typ](\n deHelper,\n deItem,\n eventData\n );\n\n // TODO: Implement storage duration functionality for React Native\n // For now, we'll just return the value without persistence\n\n return deValue;\n } else {\n Logger.logError('No processor found for de typ: ', deItem.typ);\n }\n } catch (err) {\n Logger.logError(\n 'Error processing data element: ',\n deItem.key,\n ' with error: ',\n err\n );\n }\n\n return deItem.def;\n}\n\n/**\n * Process all the data elements at once, or if a set of keys are specified, processes only\n * those keys and updates the dataElements object in DataStore\n * @param sdkDataElements\n * @param eventData\n * @param optDeKeys\n */\nexport async function processDataElements(\n sdkDataElements: MapLike<ClientSdkDeItem>,\n eventData?: Record<string, any>,\n optDeKeys?: string[]\n): Promise<MapLike<any>> {\n const de = DataStore.getDataElements();\n const deKeys =\n optDeKeys && optDeKeys.length > 0\n ? optDeKeys\n : Object.keys(sdkDataElements);\n\n try {\n const deHelper = DataStore.getDataElementHelpers();\n for (const key of deKeys) {\n de[key] = await processOneDataElement(\n sdkDataElements,\n sdkDataElements[key],\n deHelper,\n eventData,\n optDeKeys\n );\n }\n } catch (err) {\n Logger.logError('Error processing data elements: ', err);\n }\n\n DataStore.setDataElements(de);\n Logger.logDbg('Data Elements: ', de);\n return de;\n}\n\nexport class DataElementProcessor {\n /**\n * Process all the data elements at once, or if a set of keys are specified, processes only\n * those keys and updates the dataElements object in DataStore\n * @param sdkDataElements\n * @param eventData\n * @param optDeKeys\n */\n static async processDataElements(\n sdkDataElements: MapLike<ClientSdkDeItem>,\n eventData?: Record<string, any>,\n optDeKeys?: string[]\n ): Promise<MapLike<any>> {\n return processDataElements(sdkDataElements, eventData, optDeKeys);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_mpClientSdk","_dataStore","_logger","_storageHelper","isDefined","value","undefined","dElemProcessors","mpdl","helper","elem","eventData","processMpDl","pg_os","_helper","_elem","_eventData","DataStore","getOperatingSystem","visit_id","getVisitId","pg_dtype","getDeviceType","mp_geo_pcode","_DataStore$getGeoInfo","getGeoInfo","postal","mp_geo_country","_DataStore$getGeoInfo2","country","mp_geo_region","_DataStore$getGeoInfo3","region","mp_geo_city","_DataStore$getGeoInfo4","city","mp_visit_count","_DataStore$getVisitIn","getVisitInfo","visitCt","mp_visit_depth","_DataStore$getVisitIn2","depth","visitDepth","Math","max","pg_browser","getDeviceOs","mp_new_vis","getMpUserStatus","pg_random","Utils","getUniqueID","pg_empty_val","mp_dvc_id","getDeviceId","mp_vis_id","getMpId","mp_org_id","getOrgId","mp_c_sdk_v","getCoreVersion","mp_c_sdk_env","getMpEnv","pg_mp_dl_evt_id","key","pg_mp_dl_evt_ts","pg_mp_dl_evt_name","pg_hash","pg_title","pg_params","pg_domain","pg_srch","pg_referrer","pg_url","generalCleanAndEscape","de","val","fn","cl","_val","trim","indexOf","replace","lwcase","_val2","toLowerCase","err","Logger","logError","def","processOneDataElement","_sdkDataElements","deItem","deHelper","_optDeKeys","typ","logDbg","nm","deValue","stDur","DeStorageDuration","EVENT","StorageHelper","deStorageDurationSet","storedValue","deStorageDurationGet","processDataElements","sdkDataElements","optDeKeys","getDataElements","deKeys","length","Object","keys","getDataElementHelpers","setDataElements","DataElementProcessor","exports"],"sources":["data-element.processor.ts"],"sourcesContent":["/**\n * Process data element of type url parameter\n * @param de\n */\nimport { Utils } from '../common/utils';\nimport type { DeJsvHelper, MapLike } from '../common/app-types';\nimport { DeStorageDuration } from '../models/mp-client-sdk';\nimport type { ClientSdkDeItem } from '../models/mp-client-sdk';\nimport { DataStore } from '../common/data-store';\nimport { Logger } from '../common/logger';\nimport { StorageHelper } from '../common/storage-helper';\n\n// Note: JSV (JavaScript functions) are not supported in React Native\n// This timeout function is kept for potential future use\n\n/**\n * Check if a value is defined (not null, undefined, or empty string)\n */\nfunction isDefined(value: any): boolean {\n return value !== null && value !== undefined && value !== '';\n}\n\nconst dElemProcessors: MapLike<\n (\n helper: DeJsvHelper,\n elem: ClientSdkDeItem,\n eventData?: Record<string, any>\n ) => any\n> = {\n mpdl: (\n helper: DeJsvHelper,\n elem: ClientSdkDeItem,\n eventData?: Record<string, any>\n ): any => {\n return processMpDl(helper, elem, eventData);\n },\n pg_os: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n // already browser is in lower case, so no need to do it again\n return DataStore.getOperatingSystem();\n },\n visit_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getVisitId();\n },\n pg_dtype: (_helper: DeJsvHelper, _elem: ClientSdkDeItem): any => {\n return DataStore.getDeviceType();\n },\n /* Geo location data elements */\n mp_geo_pcode: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.postal ?? undefined;\n },\n mp_geo_country: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.country ?? undefined;\n },\n\n mp_geo_region: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.region ?? undefined;\n },\n mp_geo_city: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getGeoInfo()?.city ?? undefined;\n },\n /* Visit info data elements */\n mp_visit_count: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getVisitInfo()?.visitCt ?? 0;\n },\n mp_visit_depth: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n // Visit depth should start at 1 (first page), not 0\n // Return at least 1 to ensure first page view shows depth = 1\n const depth = DataStore.getVisitInfo()?.visitDepth ?? 0;\n return Math.max(1, depth);\n },\n /* Browser/Platform data elements */\n pg_browser: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getDeviceOs(); // Using device OS as browser equivalent\n },\n /* User status data element - 1 = new visitor (first visit), 0 = returning visitor */\n mp_new_vis: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getMpUserStatus();\n },\n pg_random: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return Utils.getUniqueID();\n },\n pg_empty_val: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n mp_dvc_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getDeviceId();\n },\n mp_vis_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getMpId();\n },\n mp_org_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getOrgId();\n },\n mp_c_sdk_v: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getCoreVersion();\n },\n mp_c_sdk_env: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return DataStore.getMpEnv();\n },\n pg_mp_dl_evt_id: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._id';\n return processMpDl(_helper, _elem, _eventData);\n },\n pg_mp_dl_evt_ts: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._tsMs';\n return processMpDl(_helper, _elem, _eventData);\n },\n pg_mp_dl_evt_name: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n _elem.key = 'ev._eventName';\n return processMpDl(_helper, _elem, _eventData);\n },\n pg_hash: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_title: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_params: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_domain: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_srch: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_referrer: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n pg_url: (\n _helper: DeJsvHelper,\n _elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): any => {\n return '';\n },\n // Note: JSV (JavaScript functions) processor removed - not supported in React Native\n};\n\nfunction generalCleanAndEscape(\n helper: DeJsvHelper,\n de: ClientSdkDeItem,\n val: any\n): string {\n if (typeof de.fn === 'function') {\n val = de.fn(helper, val);\n return val;\n } else {\n if (typeof val === 'string') {\n // clean\n if (de.cl) {\n val = val?.trim();\n // see if it has a single quote or double quote, if so, escape it\n if (val.indexOf(`'`) > -1) {\n val = val.replace(/'/g, '');\n }\n\n if (val.indexOf(`\"`) > -1) {\n val = val.replace(/\"/g, '');\n }\n }\n if (de.lwcase) {\n val = val?.toLowerCase();\n }\n }\n return val;\n }\n}\n\nfunction processMpDl(\n helper: DeJsvHelper,\n de: ClientSdkDeItem,\n eventData?: Record<string, any>\n): any {\n try {\n if (de.key) {\n if (eventData && typeof eventData[de.key] !== 'undefined') {\n return generalCleanAndEscape(helper, de, eventData[de.key]);\n }\n }\n } catch (err) {\n Logger.logError('Error processing mp dl variable: ', err);\n }\n return generalCleanAndEscape(helper, de, de.def);\n}\n\nexport async function processOneDataElement(\n _sdkDataElements: MapLike<ClientSdkDeItem>,\n deItem: ClientSdkDeItem,\n deHelper: any,\n eventData?: Record<string, any>,\n _optDeKeys?: string[]\n): Promise<any> {\n try {\n if (dElemProcessors[deItem.typ]) {\n Logger.logDbg('Processing data element: ', deItem.nm);\n let deValue = await dElemProcessors[deItem.typ](\n deHelper,\n deItem,\n eventData\n );\n\n // Default storage duration to EVENT if not defined\n if (!deItem.stDur) {\n deItem.stDur = DeStorageDuration.EVENT;\n }\n\n // If data element has persistence enabled, store the value\n StorageHelper.deStorageDurationSet(deItem.key, deValue, deItem.stDur);\n\n // If value is not defined, try to retrieve from storage\n // This allows values like gclid to persist across page loads\n if (!isDefined(deValue)) {\n const storedValue = StorageHelper.deStorageDurationGet(\n deItem.key,\n deItem.def,\n deItem.stDur\n );\n if (isDefined(storedValue)) {\n deValue = storedValue;\n }\n }\n\n return deValue;\n } else {\n Logger.logError('No processor found for de typ: ', deItem.typ);\n }\n } catch (err) {\n Logger.logError(\n 'Error processing data element: ',\n deItem.key,\n ' with error: ',\n err\n );\n }\n\n return deItem.def;\n}\n\n/**\n * Process all the data elements at once, or if a set of keys are specified, processes only\n * those keys and updates the dataElements object in DataStore\n * @param sdkDataElements\n * @param eventData\n * @param optDeKeys\n */\nexport async function processDataElements(\n sdkDataElements: MapLike<ClientSdkDeItem>,\n eventData?: Record<string, any>,\n optDeKeys?: string[]\n): Promise<MapLike<any>> {\n const de = DataStore.getDataElements();\n const deKeys =\n optDeKeys && optDeKeys.length > 0\n ? optDeKeys\n : Object.keys(sdkDataElements);\n\n try {\n const deHelper = DataStore.getDataElementHelpers();\n for (const key of deKeys) {\n de[key] = await processOneDataElement(\n sdkDataElements,\n sdkDataElements[key],\n deHelper,\n eventData,\n optDeKeys\n );\n }\n } catch (err) {\n Logger.logError('Error processing data elements: ', err);\n }\n\n DataStore.setDataElements(de);\n Logger.logDbg('Data Elements: ', de);\n return de;\n}\n\nexport class DataElementProcessor {\n /**\n * Process all the data elements at once, or if a set of keys are specified, processes only\n * those keys and updates the dataElements object in DataStore\n * @param sdkDataElements\n * @param eventData\n * @param optDeKeys\n */\n static async processDataElements(\n sdkDataElements: MapLike<ClientSdkDeItem>,\n eventData?: Record<string, any>,\n optDeKeys?: string[]\n ): Promise<MapLike<any>> {\n return processDataElements(sdkDataElements, eventData, optDeKeys);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,34 @@ var _constants = require("../common/constants");
10
10
  var _reporter = require("../common/reporter");
11
11
  var _networkService = require("../common/network-service");
12
12
  var _utils = require("../common/utils");
13
+ 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; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
15
+ 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); }
13
16
  class VisitIdProcessor {
14
17
  static async init(orgId) {
15
18
  await this.initDebugId(orgId);
16
19
  await this.setOrResetVisitorId();
17
20
  await this.setOrResetVisitInfo(false);
18
21
  }
22
+
23
+ /**
24
+ * Check if visitor ID needs to be retried
25
+ * Called on each page_load to retry if initial fetch failed
26
+ */
27
+ static async retryVisitorIdIfNeeded() {
28
+ if (!this.visitorIdFetchFailed) {
29
+ return; // No retry needed
30
+ }
31
+ _logger.Logger.logDbg('Retrying visitor ID fetch on page_load...');
32
+ await this.setOrResetVisitorId();
33
+ }
34
+
35
+ /**
36
+ * Check if visitor ID is available
37
+ */
38
+ static hasVisitorId() {
39
+ return !this.visitorIdFetchFailed && _dataStore.DataStore.getVisitorInfo() !== null;
40
+ }
19
41
  static async isFirstOpenAfterInstall() {
20
42
  try {
21
43
  const firstOpenFlag = await _dataStore.DataStore.getDataFromStorage(_constants.Constants.KEY_FIRST_OPEN);
@@ -63,6 +85,7 @@ class VisitIdProcessor {
63
85
  let visitInfo = await _dataStore.DataStore.getDataFromStorage(_constants.Constants.KEY_MP_IDL_VISIT_ID_INFO);
64
86
  if (!visitInfo) {
65
87
  // may be first time visit, set up a new visit info object and return
88
+ // Initialize visitDepth to 0, will be incremented to 1 on first page_load
66
89
  visitInfo = {
67
90
  visitId: _utils.Utils.getUniqueID(),
68
91
  visitCt: 1,
@@ -78,7 +101,7 @@ class VisitIdProcessor {
78
101
  visitInfo.visitDepth = (((_visitInfo = visitInfo) === null || _visitInfo === void 0 ? void 0 : _visitInfo.visitDepth) ?? 0) + 1;
79
102
  } else {
80
103
  visitInfo.visitCt = visitInfo.visitCt + 1;
81
- visitInfo.visitDepth = 0;
104
+ visitInfo.visitDepth = 0; // Reset to 0, will be incremented to 1 on first page_load of new session
82
105
  }
83
106
  visitInfo.visitTs = Date.now();
84
107
  visitInfo.visitVer = 1;
@@ -92,36 +115,76 @@ class VisitIdProcessor {
92
115
  _reporter.Reporter.reportError('setOrResetVisitInfo', err);
93
116
  }
94
117
  }
95
- static async incrementVisitDepth() {
96
- return this.setOrResetVisitInfo(true);
118
+
119
+ /**
120
+ * Synchronously increment visit depth in memory, persist to storage in background
121
+ * This prevents race conditions when multiple page_load events fire quickly
122
+ */
123
+ static incrementVisitDepth() {
124
+ try {
125
+ // Read from in-memory cache (synchronous)
126
+ const visitInfo = _dataStore.DataStore.getVisitInfo();
127
+ if (!visitInfo) {
128
+ _logger.Logger.logError('Visit info not initialized. Cannot increment depth.');
129
+ return;
130
+ }
131
+
132
+ // Increment depth synchronously in memory
133
+ visitInfo.visitDepth = (visitInfo.visitDepth ?? 0) + 1;
134
+ visitInfo.visitTs = Date.now();
135
+
136
+ // Update in-memory cache immediately (synchronous)
137
+ _dataStore.DataStore.setVisitInfo(visitInfo);
138
+ _dataStore.DataStore.addCommonCookie('x-mp-vid', _dataStore.DataStore.visitInfoToString());
139
+ _logger.Logger.logDbg('Visit depth incremented to:', visitInfo.visitDepth);
140
+
141
+ // Persist to AsyncStorage in background (fire and forget)
142
+ _dataStore.DataStore.storeData(_constants.Constants.KEY_MP_IDL_VISIT_ID_INFO, visitInfo).catch(err => {
143
+ _logger.Logger.logError('Error persisting visit depth to storage:', err);
144
+ _reporter.Reporter.reportError('incrementVisitDepth::persist', err);
145
+ });
146
+ } catch (err) {
147
+ _logger.Logger.logError('Error incrementing visit depth:', err);
148
+ _reporter.Reporter.reportError('incrementVisitDepth', err);
149
+ }
97
150
  }
98
151
  static async setOrResetVisitorId() {
99
152
  try {
100
153
  var _visitorInfoData;
101
154
  let visitorInfoData = await _dataStore.DataStore.getDataFromStorage(_constants.Constants.KEY_MP_IDL_VISITOR_ID_INFO);
102
155
  if (!visitorInfoData || visitorInfoData && ((_visitorInfoData = visitorInfoData) === null || _visitorInfoData === void 0 ? void 0 : _visitorInfoData.mId.indexOf('-')) === -1) {
103
- _logger.Logger.logDbg('VisitorInfo not found. Refreshing from server');
156
+ _logger.Logger.logDbg('VisitorInfo not found. Fetching from server with retry');
104
157
  // get a new visit id and device id from server and store it in storage
105
- visitorInfoData = await _networkService.NetworkService.fetchIdlInfo(_dataStore.DataStore.getIdlUrl());
158
+ // Use retry method for better reliability
159
+ visitorInfoData = await _networkService.NetworkService.fetchIdlInfoWithRetry(_dataStore.DataStore.getIdlUrl());
106
160
  }
107
161
  if (!visitorInfoData) {
162
+ // Mark as failed so we can retry on page_load
163
+ this.visitorIdFetchFailed = true;
164
+ _logger.Logger.logError('Failed to fetch visitor ID after retries. Will retry on next page_load.');
108
165
  return;
109
- } else {
110
- _dataStore.DataStore.setVisitorInfo(visitorInfoData);
111
- // store to db as well
112
- await _dataStore.DataStore.storeData(_constants.Constants.KEY_MP_IDL_VISITOR_ID_INFO, visitorInfoData);
113
- const cookieValue = encodeURIComponent(JSON.stringify(visitorInfoData));
114
- _dataStore.DataStore.addCommonCookie('x-mplidl', cookieValue);
115
- _dataStore.DataStore.addCommonCookie('x-mpidl', cookieValue);
116
- _dataStore.DataStore.addCommonCookie('x-lmid', visitorInfoData.mId);
117
- _dataStore.DataStore.addCommonCookie('x-ldid', visitorInfoData.dId);
118
166
  }
167
+
168
+ // Success - clear the failure flag
169
+ this.visitorIdFetchFailed = false;
170
+ _dataStore.DataStore.setVisitorInfo(visitorInfoData);
171
+ // store to db as well
172
+ await _dataStore.DataStore.storeData(_constants.Constants.KEY_MP_IDL_VISITOR_ID_INFO, visitorInfoData);
173
+ const cookieValue = encodeURIComponent(JSON.stringify(visitorInfoData));
174
+ _dataStore.DataStore.addCommonCookie('x-mplidl', cookieValue);
175
+ _dataStore.DataStore.addCommonCookie('x-mpidl', cookieValue);
176
+ _dataStore.DataStore.addCommonCookie('x-lmid', visitorInfoData.mId);
177
+ _dataStore.DataStore.addCommonCookie('x-ldid', visitorInfoData.dId);
178
+ _logger.Logger.logDbg('Visitor ID set successfully:', visitorInfoData.mId);
119
179
  } catch (err) {
120
- _logger.Logger.logError(err);
180
+ _logger.Logger.logError('Error in setOrResetVisitorId:', err);
181
+ this.visitorIdFetchFailed = true;
121
182
  _dataStore.DataStore.setVisitorInfo(null);
122
183
  _reporter.Reporter.reportError('setOrResetVisitorId', err);
123
184
  }
124
185
  }
125
186
  }
126
187
  exports.VisitIdProcessor = VisitIdProcessor;
188
+ // Track if visitor ID fetch failed so we can retry on page_load
189
+ _defineProperty(VisitIdProcessor, "visitorIdFetchFailed", false);
127
190
  //# sourceMappingURL=visit-id.processor.js.map
@@ -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}\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":[]}