@magicpixel/rn-mp-client-sdk 0.11.0 → 1.12.1
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.
- package/lib/commonjs/common/app-types.js.map +1 -1
- package/lib/commonjs/common/constants.js +5 -26
- package/lib/commonjs/common/constants.js.map +1 -1
- package/lib/commonjs/common/data-store.js +36 -117
- package/lib/commonjs/common/data-store.js.map +1 -1
- package/lib/commonjs/common/event-bus.js +3 -10
- package/lib/commonjs/common/event-bus.js.map +1 -1
- package/lib/commonjs/common/logger.js +22 -14
- package/lib/commonjs/common/logger.js.map +1 -1
- package/lib/commonjs/common/network-service.js +6 -21
- package/lib/commonjs/common/network-service.js.map +1 -1
- package/lib/commonjs/common/reporter.js +8 -31
- package/lib/commonjs/common/reporter.js.map +1 -1
- package/lib/commonjs/common/utils.js +64 -65
- package/lib/commonjs/common/utils.js.map +1 -1
- package/lib/commonjs/coverage/lcov-report/block-navigation.js +6 -19
- package/lib/commonjs/coverage/lcov-report/block-navigation.js.map +1 -1
- package/lib/commonjs/coverage/lcov-report/prettify.js +2 -182
- package/lib/commonjs/coverage/lcov-report/prettify.js.map +1 -1
- package/lib/commonjs/coverage/lcov-report/sorter.js +64 -94
- package/lib/commonjs/coverage/lcov-report/sorter.js.map +1 -1
- package/lib/commonjs/eedl/eedl.js +207 -84
- package/lib/commonjs/eedl/eedl.js.map +1 -1
- package/lib/commonjs/index.js +105 -94
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/geo-api-response.js +2 -0
- package/lib/commonjs/models/geo-api-response.js.map +1 -0
- package/lib/commonjs/models/mp-client-sdk.js +3 -11
- package/lib/commonjs/models/mp-client-sdk.js.map +1 -1
- package/lib/commonjs/processors/data-element.processor.js +85 -80
- package/lib/commonjs/processors/data-element.processor.js.map +1 -1
- package/lib/commonjs/processors/geo-location.processor.js +70 -0
- package/lib/commonjs/processors/geo-location.processor.js.map +1 -0
- package/lib/commonjs/processors/qc.processor.js +2 -25
- package/lib/commonjs/processors/qc.processor.js.map +1 -1
- package/lib/commonjs/processors/tag.processor.js +17 -86
- package/lib/commonjs/processors/tag.processor.js.map +1 -1
- package/lib/commonjs/processors/trans-function.processor.js +5 -23
- package/lib/commonjs/processors/trans-function.processor.js.map +1 -1
- package/lib/commonjs/processors/visit-id.processor.js +4 -50
- package/lib/commonjs/processors/visit-id.processor.js.map +1 -1
- package/lib/module/common/app-types.js.map +1 -1
- package/lib/module/common/constants.js +4 -22
- package/lib/module/common/constants.js.map +1 -1
- package/lib/module/common/data-store.js +35 -108
- package/lib/module/common/data-store.js.map +1 -1
- package/lib/module/common/event-bus.js +3 -6
- package/lib/module/common/event-bus.js.map +1 -1
- package/lib/module/common/logger.js +22 -12
- package/lib/module/common/logger.js.map +1 -1
- package/lib/module/common/network-service.js +6 -11
- package/lib/module/common/network-service.js.map +1 -1
- package/lib/module/common/reporter.js +8 -19
- package/lib/module/common/reporter.js.map +1 -1
- package/lib/module/common/utils.js +63 -56
- package/lib/module/common/utils.js.map +1 -1
- package/lib/module/coverage/lcov-report/block-navigation.js +6 -19
- package/lib/module/coverage/lcov-report/block-navigation.js.map +1 -1
- package/lib/module/coverage/lcov-report/prettify.js +2 -182
- package/lib/module/coverage/lcov-report/prettify.js.map +1 -1
- package/lib/module/coverage/lcov-report/sorter.js +64 -94
- package/lib/module/coverage/lcov-report/sorter.js.map +1 -1
- package/lib/module/eedl/eedl.js +206 -76
- package/lib/module/eedl/eedl.js.map +1 -1
- package/lib/module/index.js +103 -57
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/geo-api-response.js +2 -0
- package/lib/module/models/geo-api-response.js.map +1 -0
- package/lib/module/models/mp-client-sdk.js +0 -5
- package/lib/module/models/mp-client-sdk.js.map +1 -1
- package/lib/module/processors/data-element.processor.js +82 -71
- package/lib/module/processors/data-element.processor.js.map +1 -1
- package/lib/module/processors/geo-location.processor.js +63 -0
- package/lib/module/processors/geo-location.processor.js.map +1 -0
- package/lib/module/processors/qc.processor.js +2 -11
- package/lib/module/processors/qc.processor.js.map +1 -1
- package/lib/module/processors/tag.processor.js +17 -57
- package/lib/module/processors/tag.processor.js.map +1 -1
- package/lib/module/processors/trans-function.processor.js +5 -12
- package/lib/module/processors/trans-function.processor.js.map +1 -1
- package/lib/module/processors/visit-id.processor.js +4 -27
- package/lib/module/processors/visit-id.processor.js.map +1 -1
- package/lib/typescript/common/app-types.d.ts +4 -0
- package/lib/typescript/common/constants.d.ts +1 -0
- package/lib/typescript/common/data-store.d.ts +8 -0
- package/lib/typescript/common/logger.d.ts +5 -0
- package/lib/typescript/common/utils.d.ts +19 -0
- package/lib/typescript/eedl/eedl.d.ts +16 -5
- package/lib/typescript/index.d.ts +53 -0
- package/lib/typescript/models/geo-api-response.d.ts +12 -0
- package/lib/typescript/processors/data-element.processor.d.ts +10 -1
- package/lib/typescript/processors/geo-location.processor.d.ts +10 -0
- package/package.json +25 -10
- package/src/common/app-types.ts +4 -0
- package/src/common/constants.ts +2 -0
- package/src/common/data-store.ts +38 -0
- package/src/common/logger.ts +19 -3
- package/src/common/network-service.ts +2 -0
- package/src/common/utils.ts +58 -0
- package/src/eedl/eedl.ts +241 -18
- package/src/index.tsx +99 -3
- package/src/models/geo-api-response.ts +13 -0
- package/src/processors/data-element.processor.ts +140 -70
- 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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
}
|
|
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":"
|
|
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":"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","ignoreList":[]}
|