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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/lib/commonjs/common/app-types.js.map +1 -1
  2. package/lib/commonjs/common/constants.js +5 -26
  3. package/lib/commonjs/common/constants.js.map +1 -1
  4. package/lib/commonjs/common/data-store.js +36 -117
  5. package/lib/commonjs/common/data-store.js.map +1 -1
  6. package/lib/commonjs/common/event-bus.js +3 -10
  7. package/lib/commonjs/common/event-bus.js.map +1 -1
  8. package/lib/commonjs/common/logger.js +9 -18
  9. package/lib/commonjs/common/logger.js.map +1 -1
  10. package/lib/commonjs/common/network-service.js +4 -21
  11. package/lib/commonjs/common/network-service.js.map +1 -1
  12. package/lib/commonjs/common/reporter.js +8 -31
  13. package/lib/commonjs/common/reporter.js.map +1 -1
  14. package/lib/commonjs/common/utils.js +64 -65
  15. package/lib/commonjs/common/utils.js.map +1 -1
  16. package/lib/commonjs/coverage/lcov-report/block-navigation.js +6 -19
  17. package/lib/commonjs/coverage/lcov-report/block-navigation.js.map +1 -1
  18. package/lib/commonjs/coverage/lcov-report/prettify.js +2 -182
  19. package/lib/commonjs/coverage/lcov-report/prettify.js.map +1 -1
  20. package/lib/commonjs/coverage/lcov-report/sorter.js +64 -94
  21. package/lib/commonjs/coverage/lcov-report/sorter.js.map +1 -1
  22. package/lib/commonjs/eedl/eedl.js +207 -84
  23. package/lib/commonjs/eedl/eedl.js.map +1 -1
  24. package/lib/commonjs/index.js +104 -95
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/models/geo-api-response.js +2 -0
  27. package/lib/commonjs/models/geo-api-response.js.map +1 -0
  28. package/lib/commonjs/models/mp-client-sdk.js +3 -11
  29. package/lib/commonjs/models/mp-client-sdk.js.map +1 -1
  30. package/lib/commonjs/processors/data-element.processor.js +85 -80
  31. package/lib/commonjs/processors/data-element.processor.js.map +1 -1
  32. package/lib/commonjs/processors/geo-location.processor.js +70 -0
  33. package/lib/commonjs/processors/geo-location.processor.js.map +1 -0
  34. package/lib/commonjs/processors/qc.processor.js +2 -25
  35. package/lib/commonjs/processors/qc.processor.js.map +1 -1
  36. package/lib/commonjs/processors/tag.processor.js +17 -86
  37. package/lib/commonjs/processors/tag.processor.js.map +1 -1
  38. package/lib/commonjs/processors/trans-function.processor.js +5 -23
  39. package/lib/commonjs/processors/trans-function.processor.js.map +1 -1
  40. package/lib/commonjs/processors/visit-id.processor.js +4 -50
  41. package/lib/commonjs/processors/visit-id.processor.js.map +1 -1
  42. package/lib/module/common/app-types.js.map +1 -1
  43. package/lib/module/common/constants.js +4 -22
  44. package/lib/module/common/constants.js.map +1 -1
  45. package/lib/module/common/data-store.js +35 -108
  46. package/lib/module/common/data-store.js.map +1 -1
  47. package/lib/module/common/event-bus.js +3 -6
  48. package/lib/module/common/event-bus.js.map +1 -1
  49. package/lib/module/common/logger.js +9 -16
  50. package/lib/module/common/logger.js.map +1 -1
  51. package/lib/module/common/network-service.js +4 -11
  52. package/lib/module/common/network-service.js.map +1 -1
  53. package/lib/module/common/reporter.js +8 -19
  54. package/lib/module/common/reporter.js.map +1 -1
  55. package/lib/module/common/utils.js +63 -56
  56. package/lib/module/common/utils.js.map +1 -1
  57. package/lib/module/coverage/lcov-report/block-navigation.js +6 -19
  58. package/lib/module/coverage/lcov-report/block-navigation.js.map +1 -1
  59. package/lib/module/coverage/lcov-report/prettify.js +2 -182
  60. package/lib/module/coverage/lcov-report/prettify.js.map +1 -1
  61. package/lib/module/coverage/lcov-report/sorter.js +64 -94
  62. package/lib/module/coverage/lcov-report/sorter.js.map +1 -1
  63. package/lib/module/eedl/eedl.js +206 -76
  64. package/lib/module/eedl/eedl.js.map +1 -1
  65. package/lib/module/index.js +102 -57
  66. package/lib/module/index.js.map +1 -1
  67. package/lib/module/models/geo-api-response.js +2 -0
  68. package/lib/module/models/geo-api-response.js.map +1 -0
  69. package/lib/module/models/mp-client-sdk.js +0 -5
  70. package/lib/module/models/mp-client-sdk.js.map +1 -1
  71. package/lib/module/processors/data-element.processor.js +82 -71
  72. package/lib/module/processors/data-element.processor.js.map +1 -1
  73. package/lib/module/processors/geo-location.processor.js +63 -0
  74. package/lib/module/processors/geo-location.processor.js.map +1 -0
  75. package/lib/module/processors/qc.processor.js +2 -11
  76. package/lib/module/processors/qc.processor.js.map +1 -1
  77. package/lib/module/processors/tag.processor.js +17 -57
  78. package/lib/module/processors/tag.processor.js.map +1 -1
  79. package/lib/module/processors/trans-function.processor.js +5 -12
  80. package/lib/module/processors/trans-function.processor.js.map +1 -1
  81. package/lib/module/processors/visit-id.processor.js +4 -27
  82. package/lib/module/processors/visit-id.processor.js.map +1 -1
  83. package/lib/typescript/common/app-types.d.ts +3 -0
  84. package/lib/typescript/common/constants.d.ts +1 -0
  85. package/lib/typescript/common/data-store.d.ts +8 -0
  86. package/lib/typescript/common/utils.d.ts +19 -0
  87. package/lib/typescript/eedl/eedl.d.ts +16 -5
  88. package/lib/typescript/index.d.ts +53 -0
  89. package/lib/typescript/models/geo-api-response.d.ts +12 -0
  90. package/lib/typescript/processors/data-element.processor.d.ts +10 -1
  91. package/lib/typescript/processors/geo-location.processor.d.ts +10 -0
  92. package/package.json +25 -15
  93. package/src/common/app-types.ts +3 -0
  94. package/src/common/constants.ts +2 -0
  95. package/src/common/data-store.ts +38 -0
  96. package/src/common/utils.ts +58 -0
  97. package/src/eedl/eedl.ts +241 -18
  98. package/src/index.tsx +98 -3
  99. package/src/models/geo-api-response.ts +13 -0
  100. package/src/processors/data-element.processor.ts +140 -70
  101. package/src/processors/geo-location.processor.ts +91 -0
@@ -4,26 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.DataElementProcessor = void 0;
7
-
7
+ exports.processDataElements = processDataElements;
8
+ exports.processOneDataElement = processOneDataElement;
8
9
  var _utils = require("../common/utils");
9
-
10
10
  var _dataStore = require("../common/data-store");
11
-
12
11
  var _logger = require("../common/logger");
13
-
14
12
  /**
15
13
  * Process data element of type url parameter
16
14
  * @param de
17
15
  */
18
- const deJsvTimeOutPromise = function () {
19
- let ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2000;
20
- return new Promise((_resolve, reject) => {
21
- const id = setTimeout(() => {
22
- clearTimeout(id);
23
- reject('Timed out in ' + ms + 'ms.');
24
- }, ms);
25
- });
26
- };
16
+
17
+ // Note: JSV (JavaScript functions) are not supported in React Native
18
+ // This timeout function is kept for potential future use
27
19
 
28
20
  const dElemProcessors = {
29
21
  mpdl: (helper, elem, eventData) => {
@@ -39,6 +31,41 @@ const dElemProcessors = {
39
31
  pg_dtype: (_helper, _elem) => {
40
32
  return _dataStore.DataStore.getDeviceType();
41
33
  },
34
+ /* Geo location data elements */
35
+ mp_geo_pcode: (_helper, _elem, _eventData) => {
36
+ var _DataStore$getGeoInfo;
37
+ return ((_DataStore$getGeoInfo = _dataStore.DataStore.getGeoInfo()) === null || _DataStore$getGeoInfo === void 0 ? void 0 : _DataStore$getGeoInfo.postal) ?? undefined;
38
+ },
39
+ mp_geo_country: (_helper, _elem, _eventData) => {
40
+ var _DataStore$getGeoInfo2;
41
+ return ((_DataStore$getGeoInfo2 = _dataStore.DataStore.getGeoInfo()) === null || _DataStore$getGeoInfo2 === void 0 ? void 0 : _DataStore$getGeoInfo2.country) ?? undefined;
42
+ },
43
+ mp_geo_region: (_helper, _elem, _eventData) => {
44
+ var _DataStore$getGeoInfo3;
45
+ return ((_DataStore$getGeoInfo3 = _dataStore.DataStore.getGeoInfo()) === null || _DataStore$getGeoInfo3 === void 0 ? void 0 : _DataStore$getGeoInfo3.region) ?? undefined;
46
+ },
47
+ mp_geo_city: (_helper, _elem, _eventData) => {
48
+ var _DataStore$getGeoInfo4;
49
+ return ((_DataStore$getGeoInfo4 = _dataStore.DataStore.getGeoInfo()) === null || _DataStore$getGeoInfo4 === void 0 ? void 0 : _DataStore$getGeoInfo4.city) ?? undefined;
50
+ },
51
+ /* Visit info data elements */
52
+ mp_visit_count: (_helper, _elem, _eventData) => {
53
+ var _DataStore$getVisitIn;
54
+ return ((_DataStore$getVisitIn = _dataStore.DataStore.getVisitInfo()) === null || _DataStore$getVisitIn === void 0 ? void 0 : _DataStore$getVisitIn.visitCt) ?? 0;
55
+ },
56
+ mp_visit_depth: (_helper, _elem, _eventData) => {
57
+ var _DataStore$getVisitIn2;
58
+ return ((_DataStore$getVisitIn2 = _dataStore.DataStore.getVisitInfo()) === null || _DataStore$getVisitIn2 === void 0 ? void 0 : _DataStore$getVisitIn2.visitDepth) ?? 0;
59
+ },
60
+ /* Browser/Platform data elements */
61
+ pg_browser: (_helper, _elem, _eventData) => {
62
+ return _dataStore.DataStore.getDeviceOs(); // Using device OS as browser equivalent
63
+ },
64
+ /* User status data element - TODO: Implement getMpUserStatus in DataStore */
65
+ mp_new_vis: (_helper, _elem, _eventData) => {
66
+ // TODO: Implement user status functionality
67
+ return '1'; // Default to new visitor
68
+ },
42
69
  pg_random: (_helper, _elem, _eventData) => {
43
70
  return _utils.Utils.getUniqueID();
44
71
  },
@@ -71,26 +98,9 @@ const dElemProcessors = {
71
98
  pg_mp_dl_evt_name: (_helper, _elem, _eventData) => {
72
99
  _elem.key = 'ev._eventName';
73
100
  return processMpDl(_helper, _elem, _eventData);
74
- },
75
- jsv: async (helper, elem, _eventData) => {
76
- try {
77
- if (elem.fn) {
78
- if (!elem.isAsync) {
79
- return await elem.fn(helper, undefined);
80
- } else {
81
- return await Promise.race([elem.fn(helper, undefined), deJsvTimeOutPromise(elem.fnTOut || undefined)]);
82
- }
83
- } else {
84
- return elem.def || undefined;
85
- }
86
- } catch (err) {
87
- _logger.Logger.logError(err);
88
-
89
- return elem.def || undefined;
90
- }
91
101
  }
102
+ // Note: JSV (JavaScript functions) processor removed - not supported in React Native
92
103
  };
93
-
94
104
  function generalCleanAndEscape(helper, de, val) {
95
105
  if (typeof de.fn === 'function') {
96
106
  val = de.fn(helper, val);
@@ -100,29 +110,23 @@ function generalCleanAndEscape(helper, de, val) {
100
110
  // clean
101
111
  if (de.cl) {
102
112
  var _val;
103
-
104
- val = (_val = val) === null || _val === void 0 ? void 0 : _val.trim(); // see if it has a single quote or double quote, if so, escape it
105
-
113
+ val = (_val = val) === null || _val === void 0 ? void 0 : _val.trim();
114
+ // see if it has a single quote or double quote, if so, escape it
106
115
  if (val.indexOf(`'`) > -1) {
107
116
  val = val.replace(/'/g, '');
108
117
  }
109
-
110
118
  if (val.indexOf(`"`) > -1) {
111
119
  val = val.replace(/"/g, '');
112
120
  }
113
121
  }
114
-
115
122
  if (de.lwcase) {
116
123
  var _val2;
117
-
118
124
  val = (_val2 = val) === null || _val2 === void 0 ? void 0 : _val2.toLowerCase();
119
125
  }
120
126
  }
121
-
122
127
  return val;
123
128
  }
124
129
  }
125
-
126
130
  function processMpDl(helper, de, eventData) {
127
131
  try {
128
132
  if (de.key) {
@@ -133,59 +137,60 @@ function processMpDl(helper, de, eventData) {
133
137
  } catch (err) {
134
138
  _logger.Logger.logError('Error processing mp dl variable: ', err);
135
139
  }
136
-
137
140
  return generalCleanAndEscape(helper, de, de.def);
138
141
  }
142
+ async function processOneDataElement(_sdkDataElements, deItem, deHelper, eventData, _optDeKeys) {
143
+ try {
144
+ if (dElemProcessors[deItem.typ]) {
145
+ _logger.Logger.logDbg('Processing data element: ', deItem.nm);
146
+ const deValue = await dElemProcessors[deItem.typ](deHelper, deItem, eventData);
147
+
148
+ // TODO: Implement storage duration functionality for React Native
149
+ // For now, we'll just return the value without persistence
150
+
151
+ return deValue;
152
+ } else {
153
+ _logger.Logger.logError('No processor found for de typ: ', deItem.typ);
154
+ }
155
+ } catch (err) {
156
+ _logger.Logger.logError('Error processing data element: ', deItem.key, ' with error: ', err);
157
+ }
158
+ return deItem.def;
159
+ }
139
160
 
161
+ /**
162
+ * Process all the data elements at once, or if a set of keys are specified, processes only
163
+ * those keys and updates the dataElements object in DataStore
164
+ * @param sdkDataElements
165
+ * @param eventData
166
+ * @param optDeKeys
167
+ */
168
+ async function processDataElements(sdkDataElements, eventData, optDeKeys) {
169
+ const de = _dataStore.DataStore.getDataElements();
170
+ const deKeys = optDeKeys && optDeKeys.length > 0 ? optDeKeys : Object.keys(sdkDataElements);
171
+ try {
172
+ const deHelper = _dataStore.DataStore.getDataElementHelpers();
173
+ for (const key of deKeys) {
174
+ de[key] = await processOneDataElement(sdkDataElements, sdkDataElements[key], deHelper, eventData, optDeKeys);
175
+ }
176
+ } catch (err) {
177
+ _logger.Logger.logError('Error processing data elements: ', err);
178
+ }
179
+ _dataStore.DataStore.setDataElements(de);
180
+ _logger.Logger.logDbg('Data Elements: ', de);
181
+ return de;
182
+ }
140
183
  class DataElementProcessor {
141
184
  /**
142
185
  * Process all the data elements at once, or if a set of keys are specified, processes only
143
- * those keys and updates the dataElements object in global-fns file
186
+ * those keys and updates the dataElements object in DataStore
144
187
  * @param sdkDataElements
145
188
  * @param eventData
146
189
  * @param optDeKeys
147
190
  */
148
191
  static async processDataElements(sdkDataElements, eventData, optDeKeys) {
149
- const de = _dataStore.DataStore.getDataElements();
150
-
151
- const deKeys = optDeKeys && optDeKeys.length > 0 ? optDeKeys : Object.keys(sdkDataElements);
152
-
153
- try {
154
- const deHelper = _dataStore.DataStore.getDataElementHelpers();
155
-
156
- for (const key of deKeys) {
157
- try {
158
- const deItem = sdkDataElements[key];
159
-
160
- if (deItem) {
161
- const invokeItem = dElemProcessors[deItem.typ];
162
-
163
- if (dElemProcessors[deItem.typ]) {
164
- _logger.Logger.logDbg('Processing data element: ', deItem.nm);
165
-
166
- if (invokeItem) {
167
- de[key] = await invokeItem(deHelper, deItem, eventData);
168
- }
169
- } else {
170
- _logger.Logger.logError('No processor found for de typ: ', deItem.typ);
171
- }
172
- }
173
- } catch (err) {
174
- _logger.Logger.logError('Error processing data element: ', key, ' with error: ', err);
175
- }
176
- }
177
- } catch (err) {
178
- _logger.Logger.logError('Error processing data elements: ', err);
179
- }
180
-
181
- _dataStore.DataStore.setDataElements(de);
182
-
183
- _logger.Logger.logDbg('Data Elements: ', de);
184
-
185
- return de;
192
+ return processDataElements(sdkDataElements, eventData, optDeKeys);
186
193
  }
187
-
188
194
  }
189
-
190
195
  exports.DataElementProcessor = DataElementProcessor;
191
196
  //# sourceMappingURL=data-element.processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["deJsvTimeOutPromise","ms","Promise","_resolve","reject","id","setTimeout","clearTimeout","dElemProcessors","mpdl","helper","elem","eventData","processMpDl","pg_os","_helper","_elem","_eventData","DataStore","getOperatingSystem","visit_id","getVisitId","pg_dtype","getDeviceType","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","jsv","fn","isAsync","undefined","race","fnTOut","def","err","Logger","logError","generalCleanAndEscape","de","val","cl","trim","indexOf","replace","lwcase","toLowerCase","DataElementProcessor","processDataElements","sdkDataElements","optDeKeys","getDataElements","deKeys","length","Object","keys","deHelper","getDataElementHelpers","deItem","invokeItem","typ","logDbg","nm","setDataElements"],"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\nconst deJsvTimeOutPromise = (ms = 2000): Promise<any> => {\n return new Promise((_resolve, reject) => {\n const id = setTimeout(() => {\n clearTimeout(id);\n reject('Timed out in ' + ms + 'ms.');\n }, ms);\n });\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 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 jsv: async (\n helper: DeJsvHelper,\n elem: ClientSdkDeItem,\n _eventData?: Record<string, any>\n ): Promise<any> => {\n try {\n if (elem.fn) {\n if (!elem.isAsync) {\n return await elem.fn(helper, undefined);\n } else {\n return await Promise.race([\n elem.fn(helper, undefined),\n deJsvTimeOutPromise(elem.fnTOut || undefined),\n ]);\n }\n } else {\n return elem.def || undefined;\n }\n } catch (err) {\n Logger.logError(err);\n return elem.def || undefined;\n }\n },\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 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 global-fns file\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 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 try {\n const deItem = sdkDataElements[key];\n if (deItem) {\n const invokeItem = dElemProcessors[deItem.typ];\n if (dElemProcessors[deItem.typ]) {\n Logger.logDbg('Processing data element: ', deItem.nm);\n if (invokeItem) {\n de[key] = await invokeItem(deHelper, deItem, eventData);\n }\n } else {\n Logger.logError('No processor found for de typ: ', deItem.typ);\n }\n }\n } catch (err) {\n Logger.logError(\n 'Error processing data element: ',\n key,\n ' with error: ',\n err\n );\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}\n"],"mappings":"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"}
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":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GeoLocationProcessor = void 0;
7
+ var _dataStore = require("../common/data-store");
8
+ var _utils = require("../common/utils");
9
+ var _logger = require("../common/logger");
10
+ var _constants = require("../common/constants");
11
+ class GeoLocationProcessor {
12
+ /**
13
+ * Always going to make the call if it's enabled in the sdk, because visit info cookie is passed on to the
14
+ * collector, and it's easier to make changes on the collector end when to make the
15
+ * ip info call or return with an updated cookie expiry
16
+ */
17
+ static shouldMakeGeoLocationCall() {
18
+ return _dataStore.DataStore.isGeoLocationEnabledInSdk();
19
+ }
20
+ static async makeGeoLocationApiCall() {
21
+ try {
22
+ if (!this.shouldMakeGeoLocationCall()) {
23
+ return null;
24
+ }
25
+ let geoResponse;
26
+ const urlInfo = _dataStore.DataStore.getUrlInfo();
27
+
28
+ // In React Native, we'll get the visit ID from AsyncStorage instead of cookies
29
+ const visitId = await _utils.Utils.getValueFromAsyncStorage(_constants.MP_VISIT_ID_COOKIE, '');
30
+ const urlSuffix = `?vid=${visitId}`;
31
+
32
+ // For React Native, we'll try IPv6 first, then fallback to IPv4
33
+ if (urlInfo.baseUrlV6 && (await _utils.Utils.getValueFromAsyncStorage('_mp_ipv6', 'false')) !== 'n') {
34
+ try {
35
+ geoResponse = await _utils.Utils.getHttp(`${urlInfo.baseUrlV6}${urlInfo.geoUrl}/n/${_utils.Utils.getUniqueID()}${urlSuffix}`);
36
+ await _utils.Utils.setValueToAsyncStorage('_mp_ipv6', 'y');
37
+ } catch (err) {
38
+ _logger.Logger.logDbg('Error posting to ipv6. Posting to ipv4');
39
+ await _utils.Utils.setValueToAsyncStorage('_mp_ipv6', 'n');
40
+ geoResponse = await _utils.Utils.getHttp(`${urlInfo.baseUrlV4}${urlInfo.geoUrl}/n/${_utils.Utils.getUniqueID()}${urlSuffix}`);
41
+ }
42
+ } else {
43
+ // since the async storage said ipv6 failed, we will not try it again. post to ipv4 directly for this session
44
+ geoResponse = await _utils.Utils.getHttp(`${urlInfo.baseUrlV4}${urlInfo.geoUrl}/n/${_utils.Utils.getUniqueID()}${urlSuffix}`);
45
+ }
46
+ if (!geoResponse) {
47
+ _logger.Logger.logError('Geo API returned empty response');
48
+ return null;
49
+ }
50
+ if (geoResponse.status === 'KO') {
51
+ _logger.Logger.logError('Geo API returned error status');
52
+ return null;
53
+ }
54
+ if (geoResponse.status === 'OK' && geoResponse.info) {
55
+ // Success scenario
56
+ _dataStore.DataStore.setGeoInfo(geoResponse.info);
57
+ _logger.Logger.logDbg('Geo location info retrieved successfully:', geoResponse.info);
58
+ return geoResponse.info;
59
+ } else {
60
+ _logger.Logger.logError('Geo API returned invalid response format');
61
+ return null;
62
+ }
63
+ } catch (err) {
64
+ _logger.Logger.logError('Error fetching geo info:', err);
65
+ }
66
+ return null;
67
+ }
68
+ }
69
+ exports.GeoLocationProcessor = GeoLocationProcessor;
70
+ //# sourceMappingURL=geo-location.processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_dataStore","require","_utils","_logger","_constants","GeoLocationProcessor","shouldMakeGeoLocationCall","DataStore","isGeoLocationEnabledInSdk","makeGeoLocationApiCall","geoResponse","urlInfo","getUrlInfo","visitId","Utils","getValueFromAsyncStorage","MP_VISIT_ID_COOKIE","urlSuffix","baseUrlV6","getHttp","geoUrl","getUniqueID","setValueToAsyncStorage","err","Logger","logDbg","baseUrlV4","logError","status","info","setGeoInfo","exports"],"sources":["geo-location.processor.ts"],"sourcesContent":["import { DataStore } from '../common/data-store';\nimport { Utils } from '../common/utils';\nimport type { GeoApiResponse, GeoResponse } from '../models/geo-api-response';\nimport { Logger } from '../common/logger';\nimport { MP_VISIT_ID_COOKIE } from '../common/constants';\n\nexport class GeoLocationProcessor {\n /**\n * Always going to make the call if it's enabled in the sdk, because visit info cookie is passed on to the\n * collector, and it's easier to make changes on the collector end when to make the\n * ip info call or return with an updated cookie expiry\n */\n public static shouldMakeGeoLocationCall(): boolean {\n return DataStore.isGeoLocationEnabledInSdk();\n }\n\n public static async makeGeoLocationApiCall(): Promise<GeoResponse | null> {\n try {\n if (!this.shouldMakeGeoLocationCall()) {\n return null;\n }\n\n let geoResponse: GeoApiResponse;\n const urlInfo = DataStore.getUrlInfo();\n\n // In React Native, we'll get the visit ID from AsyncStorage instead of cookies\n const visitId = await Utils.getValueFromAsyncStorage(\n MP_VISIT_ID_COOKIE,\n ''\n );\n const urlSuffix = `?vid=${visitId}`;\n\n // For React Native, we'll try IPv6 first, then fallback to IPv4\n if (\n urlInfo.baseUrlV6 &&\n (await Utils.getValueFromAsyncStorage('_mp_ipv6', 'false')) !== 'n'\n ) {\n try {\n geoResponse = await Utils.getHttp<GeoApiResponse>(\n `${urlInfo.baseUrlV6}${\n urlInfo.geoUrl\n }/n/${Utils.getUniqueID()}${urlSuffix}`\n );\n await Utils.setValueToAsyncStorage('_mp_ipv6', 'y');\n } catch (err) {\n Logger.logDbg('Error posting to ipv6. Posting to ipv4');\n await Utils.setValueToAsyncStorage('_mp_ipv6', 'n');\n geoResponse = await Utils.getHttp<GeoApiResponse>(\n `${urlInfo.baseUrlV4}${\n urlInfo.geoUrl\n }/n/${Utils.getUniqueID()}${urlSuffix}`\n );\n }\n } else {\n // since the async storage said ipv6 failed, we will not try it again. post to ipv4 directly for this session\n geoResponse = await Utils.getHttp<GeoApiResponse>(\n `${urlInfo.baseUrlV4}${\n urlInfo.geoUrl\n }/n/${Utils.getUniqueID()}${urlSuffix}`\n );\n }\n\n if (!geoResponse) {\n Logger.logError('Geo API returned empty response');\n return null;\n }\n\n if (geoResponse.status === 'KO') {\n Logger.logError('Geo API returned error status');\n return null;\n }\n\n if (geoResponse.status === 'OK' && geoResponse.info) {\n // Success scenario\n DataStore.setGeoInfo(geoResponse.info);\n Logger.logDbg(\n 'Geo location info retrieved successfully:',\n geoResponse.info\n );\n return geoResponse.info;\n } else {\n Logger.logError('Geo API returned invalid response format');\n return null;\n }\n } catch (err) {\n Logger.logError('Error fetching geo info:', err);\n }\n\n return null;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEO,MAAMI,oBAAoB,CAAC;EAChC;AACF;AACA;AACA;AACA;EACE,OAAcC,yBAAyBA,CAAA,EAAY;IACjD,OAAOC,oBAAS,CAACC,yBAAyB,CAAC,CAAC;EAC9C;EAEA,aAAoBC,sBAAsBA,CAAA,EAAgC;IACxE,IAAI;MACF,IAAI,CAAC,IAAI,CAACH,yBAAyB,CAAC,CAAC,EAAE;QACrC,OAAO,IAAI;MACb;MAEA,IAAII,WAA2B;MAC/B,MAAMC,OAAO,GAAGJ,oBAAS,CAACK,UAAU,CAAC,CAAC;;MAEtC;MACA,MAAMC,OAAO,GAAG,MAAMC,YAAK,CAACC,wBAAwB,CAClDC,6BAAkB,EAClB,EACF,CAAC;MACD,MAAMC,SAAS,GAAG,QAAQJ,OAAO,EAAE;;MAEnC;MACA,IACEF,OAAO,CAACO,SAAS,IACjB,CAAC,MAAMJ,YAAK,CAACC,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,GAAG,EACnE;QACA,IAAI;UACFL,WAAW,GAAG,MAAMI,YAAK,CAACK,OAAO,CAC/B,GAAGR,OAAO,CAACO,SAAS,GAClBP,OAAO,CAACS,MAAM,MACVN,YAAK,CAACO,WAAW,CAAC,CAAC,GAAGJ,SAAS,EACvC,CAAC;UACD,MAAMH,YAAK,CAACQ,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC;QACrD,CAAC,CAAC,OAAOC,GAAG,EAAE;UACZC,cAAM,CAACC,MAAM,CAAC,wCAAwC,CAAC;UACvD,MAAMX,YAAK,CAACQ,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC;UACnDZ,WAAW,GAAG,MAAMI,YAAK,CAACK,OAAO,CAC/B,GAAGR,OAAO,CAACe,SAAS,GAClBf,OAAO,CAACS,MAAM,MACVN,YAAK,CAACO,WAAW,CAAC,CAAC,GAAGJ,SAAS,EACvC,CAAC;QACH;MACF,CAAC,MAAM;QACL;QACAP,WAAW,GAAG,MAAMI,YAAK,CAACK,OAAO,CAC/B,GAAGR,OAAO,CAACe,SAAS,GAClBf,OAAO,CAACS,MAAM,MACVN,YAAK,CAACO,WAAW,CAAC,CAAC,GAAGJ,SAAS,EACvC,CAAC;MACH;MAEA,IAAI,CAACP,WAAW,EAAE;QAChBc,cAAM,CAACG,QAAQ,CAAC,iCAAiC,CAAC;QAClD,OAAO,IAAI;MACb;MAEA,IAAIjB,WAAW,CAACkB,MAAM,KAAK,IAAI,EAAE;QAC/BJ,cAAM,CAACG,QAAQ,CAAC,+BAA+B,CAAC;QAChD,OAAO,IAAI;MACb;MAEA,IAAIjB,WAAW,CAACkB,MAAM,KAAK,IAAI,IAAIlB,WAAW,CAACmB,IAAI,EAAE;QACnD;QACAtB,oBAAS,CAACuB,UAAU,CAACpB,WAAW,CAACmB,IAAI,CAAC;QACtCL,cAAM,CAACC,MAAM,CACX,2CAA2C,EAC3Cf,WAAW,CAACmB,IACd,CAAC;QACD,OAAOnB,WAAW,CAACmB,IAAI;MACzB,CAAC,MAAM;QACLL,cAAM,CAACG,QAAQ,CAAC,0CAA0C,CAAC;QAC3D,OAAO,IAAI;MACb;IACF,CAAC,CAAC,OAAOJ,GAAG,EAAE;MACZC,cAAM,CAACG,QAAQ,CAAC,0BAA0B,EAAEJ,GAAG,CAAC;IAClD;IAEA,OAAO,IAAI;EACb;AACF;AAACQ,OAAA,CAAA1B,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -4,33 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.QcProcessor = void 0;
7
-
8
7
  var _dataStore = require("../common/data-store");
9
-
10
8
  var _logger = require("../common/logger");
11
-
12
9
  var _utils = require("../common/utils");
13
-
14
10
  var _constants = require("../common/constants");
15
-
16
11
  var _reporter = require("../common/reporter");
17
-
18
12
  class QcProcessor {
19
13
  static processQc(sdkQc, eventName, evtId) {
20
14
  const validQcList = [];
21
15
  const validQcInfo = [];
22
-
23
16
  try {
24
17
  _logger.Logger.logDbg('Processing qc lists for eventId:: ', evtId);
25
-
26
18
  for (const qc of sdkQc) {
27
19
  let notMatching = true;
28
-
29
20
  _logger.Logger.logDbg('Processing QC: ', qc.nm);
30
-
31
21
  for (const qcCondition of qc.c) {
32
22
  let deVal;
33
-
34
23
  if (qcCondition.param === _constants.Constants.CUST_EVT || qcCondition.param === _constants.Constants.MP_DL_EVT) {
35
24
  if (!eventName) {
36
25
  // this qc has an event condition but no eventName was supplied. so it is not going to match
@@ -42,30 +31,25 @@ class QcProcessor {
42
31
  } else {
43
32
  deVal = _dataStore.DataStore.getDataElementValue(qcCondition.param);
44
33
  }
45
-
46
34
  if (typeof deVal === 'undefined' || deVal === null || deVal === '') {
47
35
  _logger.Logger.logDbg('DE ', qcCondition.param, 'was used, but has no value. QC will not qualify');
48
-
49
36
  notMatching = true;
50
37
  continue;
51
- } // check exclude conditions first
52
-
38
+ }
53
39
 
40
+ // check exclude conditions first
54
41
  if (qcCondition.e && qcCondition.e.length > 0) {
55
42
  if (_utils.Utils.isMatch(deVal.toString(), qcCondition.e, !qcCondition.e_cs, qcCondition.e_ect)) {
56
43
  _logger.Logger.logDbg('QC:Exc: ', qcCondition.param, ' did not qualify. QC: ', qc.nm);
57
-
58
44
  notMatching = true;
59
45
  continue;
60
46
  } else {
61
47
  notMatching = false;
62
48
  }
63
49
  }
64
-
65
50
  if (qcCondition.i && qcCondition.i.length > 0) {
66
51
  if (!_utils.Utils.isMatch(deVal.toString(), qcCondition.i, !qcCondition.i_cs, qcCondition.i_ect)) {
67
52
  _logger.Logger.logDbg('QC:Inc: ', qcCondition.param, ' did not qualify. QC: ', qc.nm);
68
-
69
53
  notMatching = true;
70
54
  break;
71
55
  } else {
@@ -76,7 +60,6 @@ class QcProcessor {
76
60
  notMatching = false;
77
61
  }
78
62
  }
79
-
80
63
  if (!notMatching) {
81
64
  validQcList.push(qc.id);
82
65
  validQcInfo.push({
@@ -94,18 +77,12 @@ class QcProcessor {
94
77
  }
95
78
  } catch (err) {
96
79
  _logger.Logger.logDbg('Error processing qc criteria: ', err);
97
-
98
80
  _reporter.Reporter.reportError('m:processQC', err);
99
81
  }
100
-
101
82
  _logger.Logger.logDbg('QC Status: ', validQcInfo);
102
-
103
83
  _dataStore.DataStore.setValidQc(validQcList, validQcInfo);
104
-
105
84
  return validQcList;
106
85
  }
107
-
108
86
  }
109
-
110
87
  exports.QcProcessor = QcProcessor;
111
88
  //# sourceMappingURL=qc.processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["QcProcessor","processQc","sdkQc","eventName","evtId","validQcList","validQcInfo","Logger","logDbg","qc","notMatching","nm","qcCondition","c","deVal","param","Constants","CUST_EVT","MP_DL_EVT","DataStore","getDataElementValue","e","length","Utils","isMatch","toString","e_cs","e_ect","i","i_cs","i_ect","push","id","st","err","Reporter","reportError","setValidQc"],"sources":["qc.processor.ts"],"sourcesContent":["import { DataStore } from '../common/data-store';\nimport { Logger } from '../common/logger';\nimport { Utils } from '../common/utils';\nimport type { ClientSdkQcItem } from '../models/mp-client-sdk';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\n\nexport class QcProcessor {\n static processQc(\n sdkQc: ClientSdkQcItem[],\n eventName: string,\n evtId: string\n ): string[] {\n const validQcList: string[] = [];\n const validQcInfo: Array<{ nm: string; id: string; st: boolean }> = [];\n try {\n Logger.logDbg('Processing qc lists for eventId:: ', evtId);\n for (const qc of sdkQc) {\n let notMatching = true;\n Logger.logDbg('Processing QC: ', qc.nm);\n\n for (const qcCondition of qc.c) {\n let deVal: string | number | boolean;\n\n if (\n qcCondition.param === Constants.CUST_EVT ||\n qcCondition.param === Constants.MP_DL_EVT\n ) {\n if (!eventName) {\n // this qc has an event condition but no eventName was supplied. so it is not going to match\n notMatching = true;\n break;\n } else {\n deVal = eventName;\n }\n } else {\n deVal = DataStore.getDataElementValue(qcCondition.param);\n }\n\n if (typeof deVal === 'undefined' || deVal === null || deVal === '') {\n Logger.logDbg(\n 'DE ',\n qcCondition.param,\n 'was used, but has no value. QC will not qualify'\n );\n notMatching = true;\n continue;\n }\n\n // check exclude conditions first\n if (qcCondition.e && qcCondition.e.length > 0) {\n if (\n Utils.isMatch(\n deVal.toString(),\n qcCondition.e,\n !qcCondition.e_cs,\n qcCondition.e_ect\n )\n ) {\n Logger.logDbg(\n 'QC:Exc: ',\n qcCondition.param,\n ' did not qualify. QC: ',\n qc.nm\n );\n notMatching = true;\n continue;\n } else {\n notMatching = false;\n }\n }\n\n if (qcCondition.i && qcCondition.i.length > 0) {\n if (\n !Utils.isMatch(\n deVal.toString(),\n qcCondition.i,\n !qcCondition.i_cs,\n qcCondition.i_ect\n )\n ) {\n Logger.logDbg(\n 'QC:Inc: ',\n qcCondition.param,\n ' did not qualify. QC: ',\n qc.nm\n );\n notMatching = true;\n break;\n } else {\n notMatching = false;\n }\n } else {\n // if there is no qc, auto include\n notMatching = false;\n }\n }\n\n if (!notMatching) {\n validQcList.push(qc.id);\n validQcInfo.push({ id: qc.id, nm: qc.nm, st: true });\n } else {\n validQcInfo.push({ id: qc.id, nm: qc.nm, st: false });\n }\n }\n } catch (err) {\n Logger.logDbg('Error processing qc criteria: ', err);\n Reporter.reportError('m:processQC', err);\n }\n\n Logger.logDbg('QC Status: ', validQcInfo);\n DataStore.setValidQc(validQcList, validQcInfo);\n return validQcList;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dataStore","require","_logger","_utils","_constants","_reporter","QcProcessor","processQc","sdkQc","eventName","evtId","validQcList","validQcInfo","Logger","logDbg","qc","notMatching","nm","qcCondition","c","deVal","param","Constants","CUST_EVT","MP_DL_EVT","DataStore","getDataElementValue","e","length","Utils","isMatch","toString","e_cs","e_ect","i","i_cs","i_ect","push","id","st","err","Reporter","reportError","setValidQc","exports"],"sources":["qc.processor.ts"],"sourcesContent":["import { DataStore } from '../common/data-store';\nimport { Logger } from '../common/logger';\nimport { Utils } from '../common/utils';\nimport type { ClientSdkQcItem } from '../models/mp-client-sdk';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\n\nexport class QcProcessor {\n static processQc(\n sdkQc: ClientSdkQcItem[],\n eventName: string,\n evtId: string\n ): string[] {\n const validQcList: string[] = [];\n const validQcInfo: Array<{ nm: string; id: string; st: boolean }> = [];\n try {\n Logger.logDbg('Processing qc lists for eventId:: ', evtId);\n for (const qc of sdkQc) {\n let notMatching = true;\n Logger.logDbg('Processing QC: ', qc.nm);\n\n for (const qcCondition of qc.c) {\n let deVal: string | number | boolean;\n\n if (\n qcCondition.param === Constants.CUST_EVT ||\n qcCondition.param === Constants.MP_DL_EVT\n ) {\n if (!eventName) {\n // this qc has an event condition but no eventName was supplied. so it is not going to match\n notMatching = true;\n break;\n } else {\n deVal = eventName;\n }\n } else {\n deVal = DataStore.getDataElementValue(qcCondition.param);\n }\n\n if (typeof deVal === 'undefined' || deVal === null || deVal === '') {\n Logger.logDbg(\n 'DE ',\n qcCondition.param,\n 'was used, but has no value. QC will not qualify'\n );\n notMatching = true;\n continue;\n }\n\n // check exclude conditions first\n if (qcCondition.e && qcCondition.e.length > 0) {\n if (\n Utils.isMatch(\n deVal.toString(),\n qcCondition.e,\n !qcCondition.e_cs,\n qcCondition.e_ect\n )\n ) {\n Logger.logDbg(\n 'QC:Exc: ',\n qcCondition.param,\n ' did not qualify. QC: ',\n qc.nm\n );\n notMatching = true;\n continue;\n } else {\n notMatching = false;\n }\n }\n\n if (qcCondition.i && qcCondition.i.length > 0) {\n if (\n !Utils.isMatch(\n deVal.toString(),\n qcCondition.i,\n !qcCondition.i_cs,\n qcCondition.i_ect\n )\n ) {\n Logger.logDbg(\n 'QC:Inc: ',\n qcCondition.param,\n ' did not qualify. QC: ',\n qc.nm\n );\n notMatching = true;\n break;\n } else {\n notMatching = false;\n }\n } else {\n // if there is no qc, auto include\n notMatching = false;\n }\n }\n\n if (!notMatching) {\n validQcList.push(qc.id);\n validQcInfo.push({ id: qc.id, nm: qc.nm, st: true });\n } else {\n validQcInfo.push({ id: qc.id, nm: qc.nm, st: false });\n }\n }\n } catch (err) {\n Logger.logDbg('Error processing qc criteria: ', err);\n Reporter.reportError('m:processQC', err);\n }\n\n Logger.logDbg('QC Status: ', validQcInfo);\n DataStore.setValidQc(validQcList, validQcInfo);\n return validQcList;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEO,MAAMK,WAAW,CAAC;EACvB,OAAOC,SAASA,CACdC,KAAwB,EACxBC,SAAiB,EACjBC,KAAa,EACH;IACV,MAAMC,WAAqB,GAAG,EAAE;IAChC,MAAMC,WAA2D,GAAG,EAAE;IACtE,IAAI;MACFC,cAAM,CAACC,MAAM,CAAC,oCAAoC,EAAEJ,KAAK,CAAC;MAC1D,KAAK,MAAMK,EAAE,IAAIP,KAAK,EAAE;QACtB,IAAIQ,WAAW,GAAG,IAAI;QACtBH,cAAM,CAACC,MAAM,CAAC,iBAAiB,EAAEC,EAAE,CAACE,EAAE,CAAC;QAEvC,KAAK,MAAMC,WAAW,IAAIH,EAAE,CAACI,CAAC,EAAE;UAC9B,IAAIC,KAAgC;UAEpC,IACEF,WAAW,CAACG,KAAK,KAAKC,oBAAS,CAACC,QAAQ,IACxCL,WAAW,CAACG,KAAK,KAAKC,oBAAS,CAACE,SAAS,EACzC;YACA,IAAI,CAACf,SAAS,EAAE;cACd;cACAO,WAAW,GAAG,IAAI;cAClB;YACF,CAAC,MAAM;cACLI,KAAK,GAAGX,SAAS;YACnB;UACF,CAAC,MAAM;YACLW,KAAK,GAAGK,oBAAS,CAACC,mBAAmB,CAACR,WAAW,CAACG,KAAK,CAAC;UAC1D;UAEA,IAAI,OAAOD,KAAK,KAAK,WAAW,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;YAClEP,cAAM,CAACC,MAAM,CACX,KAAK,EACLI,WAAW,CAACG,KAAK,EACjB,iDACF,CAAC;YACDL,WAAW,GAAG,IAAI;YAClB;UACF;;UAEA;UACA,IAAIE,WAAW,CAACS,CAAC,IAAIT,WAAW,CAACS,CAAC,CAACC,MAAM,GAAG,CAAC,EAAE;YAC7C,IACEC,YAAK,CAACC,OAAO,CACXV,KAAK,CAACW,QAAQ,CAAC,CAAC,EAChBb,WAAW,CAACS,CAAC,EACb,CAACT,WAAW,CAACc,IAAI,EACjBd,WAAW,CAACe,KACd,CAAC,EACD;cACApB,cAAM,CAACC,MAAM,CACX,UAAU,EACVI,WAAW,CAACG,KAAK,EACjB,wBAAwB,EACxBN,EAAE,CAACE,EACL,CAAC;cACDD,WAAW,GAAG,IAAI;cAClB;YACF,CAAC,MAAM;cACLA,WAAW,GAAG,KAAK;YACrB;UACF;UAEA,IAAIE,WAAW,CAACgB,CAAC,IAAIhB,WAAW,CAACgB,CAAC,CAACN,MAAM,GAAG,CAAC,EAAE;YAC7C,IACE,CAACC,YAAK,CAACC,OAAO,CACZV,KAAK,CAACW,QAAQ,CAAC,CAAC,EAChBb,WAAW,CAACgB,CAAC,EACb,CAAChB,WAAW,CAACiB,IAAI,EACjBjB,WAAW,CAACkB,KACd,CAAC,EACD;cACAvB,cAAM,CAACC,MAAM,CACX,UAAU,EACVI,WAAW,CAACG,KAAK,EACjB,wBAAwB,EACxBN,EAAE,CAACE,EACL,CAAC;cACDD,WAAW,GAAG,IAAI;cAClB;YACF,CAAC,MAAM;cACLA,WAAW,GAAG,KAAK;YACrB;UACF,CAAC,MAAM;YACL;YACAA,WAAW,GAAG,KAAK;UACrB;QACF;QAEA,IAAI,CAACA,WAAW,EAAE;UAChBL,WAAW,CAAC0B,IAAI,CAACtB,EAAE,CAACuB,EAAE,CAAC;UACvB1B,WAAW,CAACyB,IAAI,CAAC;YAAEC,EAAE,EAAEvB,EAAE,CAACuB,EAAE;YAAErB,EAAE,EAAEF,EAAE,CAACE,EAAE;YAAEsB,EAAE,EAAE;UAAK,CAAC,CAAC;QACtD,CAAC,MAAM;UACL3B,WAAW,CAACyB,IAAI,CAAC;YAAEC,EAAE,EAAEvB,EAAE,CAACuB,EAAE;YAAErB,EAAE,EAAEF,EAAE,CAACE,EAAE;YAAEsB,EAAE,EAAE;UAAM,CAAC,CAAC;QACvD;MACF;IACF,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ3B,cAAM,CAACC,MAAM,CAAC,gCAAgC,EAAE0B,GAAG,CAAC;MACpDC,kBAAQ,CAACC,WAAW,CAAC,aAAa,EAAEF,GAAG,CAAC;IAC1C;IAEA3B,cAAM,CAACC,MAAM,CAAC,aAAa,EAAEF,WAAW,CAAC;IACzCa,oBAAS,CAACkB,UAAU,CAAChC,WAAW,EAAEC,WAAW,CAAC;IAC9C,OAAOD,WAAW;EACpB;AACF;AAACiC,OAAA,CAAAtC,WAAA,GAAAA,WAAA","ignoreList":[]}