@magicpixel/rn-mp-client-sdk 0.12.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 +9 -18
- 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 +104 -95
- 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 +9 -16
- 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 +102 -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 +3 -0
- package/lib/typescript/common/constants.d.ts +1 -0
- package/lib/typescript/common/data-store.d.ts +8 -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 +3 -0
- package/src/common/constants.ts +2 -0
- package/src/common/data-store.ts +38 -0
- 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 +98 -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
package/lib/commonjs/index.js
CHANGED
|
@@ -4,119 +4,99 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MagicPixelEventBus = exports.MagicPixel = void 0;
|
|
7
|
-
|
|
8
7
|
var _eedl = require("./eedl/eedl");
|
|
9
|
-
|
|
10
8
|
var _dataStore = require("./common/data-store");
|
|
11
|
-
|
|
12
9
|
var _logger = require("./common/logger");
|
|
13
|
-
|
|
14
10
|
var _reporter = require("./common/reporter");
|
|
15
|
-
|
|
16
11
|
var _dataElement = require("./processors/data-element.processor");
|
|
17
|
-
|
|
18
12
|
var _tag = require("./processors/tag.processor");
|
|
19
|
-
|
|
20
13
|
var _utils = require("./common/utils");
|
|
21
|
-
|
|
22
14
|
var _qc = require("./processors/qc.processor");
|
|
23
|
-
|
|
24
15
|
var _networkService = require("./common/network-service");
|
|
25
|
-
|
|
26
16
|
var _eventBus = require("./common/event-bus");
|
|
27
|
-
|
|
28
17
|
var _visitId = require("./processors/visit-id.processor");
|
|
29
|
-
|
|
30
|
-
function _defineProperty(
|
|
31
|
-
|
|
18
|
+
var _geoLocation = require("./processors/geo-location.processor");
|
|
19
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
21
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
32
22
|
const DL_INIT_EVENT = 'page_load';
|
|
33
|
-
|
|
34
23
|
class MagicPixelImpl {
|
|
35
24
|
static async init(options) {
|
|
36
25
|
var _options$device_type;
|
|
37
|
-
|
|
38
26
|
_logger.Logger.setLogLevel(options.logLevel ?? 'none');
|
|
39
|
-
|
|
40
27
|
await _networkService.NetworkService.refreshClientSdkJson(options);
|
|
41
|
-
|
|
42
28
|
if (!_dataStore.DataStore.isDataStoreReady()) {
|
|
43
29
|
throw new Error('MagicPixel SDK is not ready. No tags will be processed');
|
|
44
30
|
}
|
|
45
|
-
|
|
46
31
|
if (options && options.device_type && ((_options$device_type = options.device_type) === null || _options$device_type === void 0 ? void 0 : _options$device_type.trim().length) > 0) {
|
|
47
32
|
_dataStore.DataStore.overrideDeviceType(options.device_type);
|
|
48
33
|
}
|
|
49
|
-
|
|
50
34
|
this.setAppVersion(options.app_version);
|
|
51
35
|
await _visitId.VisitIdProcessor.init(options === null || options === void 0 ? void 0 : options.orgId);
|
|
52
36
|
const fbp = await _visitId.VisitIdProcessor.getFacebookFBP();
|
|
53
|
-
|
|
54
37
|
if (fbp) {
|
|
55
38
|
_logger.Logger.logDbg('Setting facebook client id', fbp);
|
|
56
|
-
|
|
57
39
|
this.setFacebookClientId(fbp);
|
|
58
40
|
} else {
|
|
59
41
|
_logger.Logger.logDbg('No facebook client id found. not setting');
|
|
60
42
|
}
|
|
61
43
|
|
|
44
|
+
// Initialize EEDL with any global event listeners
|
|
45
|
+
await this.dl.init({});
|
|
46
|
+
|
|
47
|
+
// Make geo location API call after initialization
|
|
48
|
+
try {
|
|
49
|
+
await _geoLocation.GeoLocationProcessor.makeGeoLocationApiCall();
|
|
50
|
+
} catch (err) {
|
|
51
|
+
_logger.Logger.logError('Error making geo location API call:', err);
|
|
52
|
+
}
|
|
62
53
|
MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {
|
|
63
54
|
_logger.Logger.logDbg('mpDlEvent:: ', evtName, JSON.stringify(payload));
|
|
64
|
-
|
|
65
55
|
const eventName = payload.eventName;
|
|
66
56
|
const eventDataModel = payload.model ?? {};
|
|
67
57
|
const eventId = eventDataModel['ev._id'];
|
|
68
|
-
|
|
69
58
|
_logger.Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);
|
|
70
|
-
|
|
71
59
|
if (_dataStore.DataStore.shouldExecuteTMForEvent(eventName)) {
|
|
72
60
|
// if this is something the tag manager is interested in - fire tag manager
|
|
73
61
|
_dataStore.DataStore.enQueueTMFire(false, `custom_event_${eventName}`, eventName, eventId, eventDataModel);
|
|
74
|
-
|
|
75
62
|
await this.checkAndFireTM();
|
|
76
63
|
}
|
|
77
64
|
});
|
|
78
65
|
const isFirstOpen = await _visitId.VisitIdProcessor.isFirstOpenAfterInstall();
|
|
79
|
-
|
|
80
66
|
if (isFirstOpen) {
|
|
81
67
|
_logger.Logger.logDbg('First open event fired');
|
|
82
|
-
|
|
83
68
|
this.recordEvent('app_first_open', {});
|
|
84
69
|
}
|
|
85
|
-
|
|
86
70
|
this.ready();
|
|
87
71
|
}
|
|
88
|
-
|
|
89
72
|
static recordEvent(eventName, payload) {
|
|
90
73
|
if (this.customerInfo) {
|
|
91
|
-
const newPayload = {
|
|
74
|
+
const newPayload = {
|
|
75
|
+
...payload,
|
|
92
76
|
...this.customerInfo,
|
|
93
77
|
...(this.customerIdentifiers ?? {})
|
|
94
78
|
};
|
|
95
79
|
this.dl.pushEvent(eventName, newPayload);
|
|
96
80
|
} else {
|
|
97
|
-
const newPayload = {
|
|
81
|
+
const newPayload = {
|
|
82
|
+
...payload,
|
|
98
83
|
...(this.customerIdentifiers ?? {})
|
|
99
84
|
};
|
|
100
85
|
this.dl.pushEvent(eventName, newPayload);
|
|
101
86
|
}
|
|
102
87
|
}
|
|
103
|
-
|
|
104
88
|
static ready() {
|
|
105
89
|
this.dl.ready();
|
|
106
90
|
}
|
|
107
|
-
|
|
108
91
|
static getDebugId() {
|
|
109
92
|
return _dataStore.DataStore.getDebugId();
|
|
110
93
|
}
|
|
111
|
-
|
|
112
94
|
static async checkAndFireTM() {
|
|
113
95
|
try {
|
|
114
96
|
if (!_dataStore.DataStore.isTagManagerProcessing()) {
|
|
115
97
|
const item = _dataStore.DataStore.deQueueTMFire();
|
|
116
|
-
|
|
117
98
|
if (item) {
|
|
118
99
|
_logger.Logger.logDbg('Executing TM For: ', item.name, ', Event:: ', item.dcrName, ', Event id:: ', item.eventId, 'Payload:: ', item.dcrPayload);
|
|
119
|
-
|
|
120
100
|
await this.runTM(item.sseOnly, item.name, item.dcrName, item.eventId, item.dcrPayload);
|
|
121
101
|
}
|
|
122
102
|
} else {
|
|
@@ -124,68 +104,51 @@ class MagicPixelImpl {
|
|
|
124
104
|
}
|
|
125
105
|
} catch (err) {
|
|
126
106
|
_logger.Logger.logError('Error check and process tm', err);
|
|
127
|
-
|
|
128
107
|
_reporter.Reporter.reportError('m:checkAndFireTM', err);
|
|
129
108
|
}
|
|
130
109
|
}
|
|
131
|
-
|
|
132
110
|
static async runTM(sseOnly, triggerName, evtName, evtId, eventData) {
|
|
133
111
|
try {
|
|
134
|
-
_logger.Logger.logDbg('Running:: ', sseOnly, triggerName, evtName, evtId, eventData);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
_dataStore.DataStore.setTagManagerProcessing(true); // process all the data elements and cache them for this run
|
|
112
|
+
_logger.Logger.logDbg('Running:: ', sseOnly, triggerName, evtName, evtId, eventData);
|
|
138
113
|
|
|
114
|
+
// set tag manager in process status
|
|
115
|
+
_dataStore.DataStore.setTagManagerProcessing(true);
|
|
139
116
|
|
|
117
|
+
// process all the data elements and cache them for this run
|
|
140
118
|
await _dataElement.DataElementProcessor.processDataElements(_dataStore.DataStore.getSdkDataElements(), eventData);
|
|
141
|
-
|
|
142
119
|
const sdk = _dataStore.DataStore.getClientSdk();
|
|
143
|
-
|
|
144
120
|
const pcKey = _dataStore.DataStore.getSdkPcKey();
|
|
145
|
-
|
|
146
121
|
if (pcKey) {
|
|
147
122
|
const pcVal = _dataStore.DataStore.getDataElementValue(pcKey);
|
|
148
|
-
|
|
149
123
|
if (typeof pcVal !== 'undefined' && pcVal === true) {
|
|
150
124
|
_logger.Logger.logDbg('Set: PR Comp: ', true);
|
|
151
|
-
|
|
152
125
|
_dataStore.DataStore.setPrivacyCompliance(true);
|
|
153
126
|
} else {
|
|
154
127
|
_logger.Logger.logDbg('Set: PR Comp: ', false);
|
|
155
|
-
|
|
156
128
|
_dataStore.DataStore.setPrivacyCompliance(false);
|
|
157
129
|
}
|
|
158
130
|
} else {
|
|
159
131
|
_logger.Logger.logDbg('Set: PR Comp: ', false);
|
|
160
|
-
|
|
161
132
|
_dataStore.DataStore.setPrivacyCompliance(true);
|
|
162
133
|
}
|
|
163
|
-
|
|
164
134
|
if (_dataStore.DataStore.getSdkPageLangKey()) {
|
|
165
135
|
_dataStore.DataStore.setDataElement('page_lang_key', _dataStore.DataStore.getSdkPageLangKey());
|
|
166
|
-
|
|
167
136
|
_dataStore.DataStore.setPageLang(_dataStore.DataStore.getDataElementValue('page_lang_key'));
|
|
168
137
|
} else {
|
|
169
138
|
_dataStore.DataStore.setDataElement('page_lang_key', null);
|
|
170
|
-
}
|
|
171
|
-
|
|
139
|
+
}
|
|
172
140
|
|
|
141
|
+
//set page_browser default data element with page_os because backend expects this
|
|
173
142
|
_dataStore.DataStore.setDataElement('page_browser', _dataStore.DataStore.getOperatingSystem().toLowerCase());
|
|
174
|
-
|
|
175
143
|
_reporter.Reporter.initReporter(sdk.s.ev, sdk.s.ev_id, _dataStore.DataStore.getDeviceType(), _dataStore.DataStore.getPageLang(), _dataStore.DataStore.getDeviceOs(), _dataStore.DataStore.getPageName(), evtName, evtId, _dataStore.DataStore.getClientDownStream(), _dataStore.DataStore.getCoreVersion(), []);
|
|
176
|
-
|
|
177
144
|
const validQCList = _qc.QcProcessor.processQc(_dataStore.DataStore.getSdkQC(), evtName, evtId);
|
|
178
|
-
|
|
179
145
|
if ((validQCList === null || validQCList === void 0 ? void 0 : validQCList.length) > 0) {
|
|
180
146
|
_logger.Logger.logDbg('Found Valid QCs to process', _dataStore.DataStore.getValidQcInfo());
|
|
181
|
-
|
|
182
147
|
_tag.TagProcessor.processTags(evtName, evtId).then(() => {
|
|
183
148
|
this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);
|
|
184
149
|
}).catch(err => {
|
|
185
150
|
_logger.Logger.logError('Error processing tag lists.', err);
|
|
186
|
-
|
|
187
151
|
_reporter.Reporter.reportError('i::processTags', err);
|
|
188
|
-
|
|
189
152
|
this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);
|
|
190
153
|
});
|
|
191
154
|
} else {
|
|
@@ -193,11 +156,9 @@ class MagicPixelImpl {
|
|
|
193
156
|
}
|
|
194
157
|
} catch (runTMErr) {
|
|
195
158
|
_logger.Logger.logError('Error in runTM', runTMErr);
|
|
196
|
-
|
|
197
159
|
_reporter.Reporter.reportError('m::runTM', runTMErr);
|
|
198
160
|
}
|
|
199
161
|
}
|
|
200
|
-
|
|
201
162
|
static _fireTM(envName, envId, evtName, evtId) {
|
|
202
163
|
// increment visit_depth if event name is page_load because that's the only way we can track page views in an app for now
|
|
203
164
|
if (evtName === DL_INIT_EVENT) {
|
|
@@ -208,16 +169,13 @@ class MagicPixelImpl {
|
|
|
208
169
|
this._fireTMPrivate(envName, envId, evtName, evtId);
|
|
209
170
|
}
|
|
210
171
|
}
|
|
211
|
-
|
|
212
172
|
static _fireTMPrivate(envName, envId, evtName, evtId) {
|
|
213
173
|
if (_dataStore.DataStore.hasOneSSTTag() && _dataStore.DataStore.shouldFireSstForEvent(evtName)) {
|
|
214
174
|
_reporter.Reporter.postSST(_dataStore.DataStore.getDataElements(), envName, envId, _dataStore.DataStore.getSSTDownStream(), evtName, evtId).catch(err => {
|
|
215
175
|
_reporter.Reporter.reportError('l::postSST', err);
|
|
216
176
|
});
|
|
217
177
|
}
|
|
218
|
-
|
|
219
178
|
_dataStore.DataStore.setTagManagerProcessing(false);
|
|
220
|
-
|
|
221
179
|
_utils.Utils.sleep(250).then(async () => {
|
|
222
180
|
try {
|
|
223
181
|
await this.checkAndFireTM();
|
|
@@ -226,89 +184,140 @@ class MagicPixelImpl {
|
|
|
226
184
|
}
|
|
227
185
|
});
|
|
228
186
|
}
|
|
229
|
-
|
|
230
187
|
static setCustomerInfo(customerInfo) {
|
|
231
188
|
this.customerInfo = customerInfo;
|
|
232
189
|
this.recordEvent('idl_attribution_link', customerInfo);
|
|
233
190
|
}
|
|
234
|
-
|
|
235
191
|
static setFirebaseAppInstanceId(instanceId) {
|
|
236
192
|
this.customerIdentifiers.firebase_instance_id = instanceId;
|
|
237
193
|
}
|
|
238
|
-
|
|
239
194
|
static setDeepLinkUrl(deepLinkUrl) {
|
|
240
195
|
this.deepLinkUrl = deepLinkUrl;
|
|
241
196
|
}
|
|
242
|
-
|
|
243
197
|
static setDeviceInfo(deviceInfo) {
|
|
244
198
|
_dataStore.DataStore.setDeviceInfo(deviceInfo);
|
|
245
199
|
}
|
|
246
|
-
|
|
247
200
|
static setFacebookClientId(fbp) {
|
|
248
201
|
this.customerIdentifiers.fbp = fbp;
|
|
249
202
|
}
|
|
250
|
-
|
|
251
203
|
static setAppVersion(appVersion) {
|
|
252
204
|
var _appVersion$trim;
|
|
253
|
-
|
|
254
205
|
if (appVersion && (appVersion === null || appVersion === void 0 ? void 0 : (_appVersion$trim = appVersion.trim()) === null || _appVersion$trim === void 0 ? void 0 : _appVersion$trim.length) > 0) {
|
|
255
206
|
this.customerIdentifiers.app_version = appVersion;
|
|
256
207
|
}
|
|
257
208
|
}
|
|
258
|
-
|
|
259
209
|
static recordPageLoad(pageLoadInfo) {
|
|
260
210
|
pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;
|
|
261
211
|
|
|
262
|
-
|
|
212
|
+
// Use stored deepLinkUrl if it exists AND either:
|
|
213
|
+
// - deep_link_url wasn't provided in pageLoadInfo, OR
|
|
214
|
+
// - deep_link_url is empty/falsy (defensive programming for developer mistakes)
|
|
215
|
+
if (this.deepLinkUrl && !pageLoadInfo.deep_link_url) {
|
|
263
216
|
pageLoadInfo.deep_link_url = this.deepLinkUrl;
|
|
264
217
|
}
|
|
265
|
-
|
|
266
218
|
const deviceInfo = _dataStore.DataStore.getDeviceInfo();
|
|
267
|
-
|
|
268
219
|
if (this.customerInfo) {
|
|
269
|
-
const newPayload = {
|
|
220
|
+
const newPayload = {
|
|
221
|
+
...pageLoadInfo,
|
|
270
222
|
...this.customerInfo,
|
|
271
223
|
...(this.customerIdentifiers ?? {}),
|
|
272
224
|
..._utils.Utils.parseQueryParamsToObject(pageLoadInfo === null || pageLoadInfo === void 0 ? void 0 : pageLoadInfo.deep_link_url)
|
|
273
225
|
};
|
|
274
|
-
|
|
275
226
|
if (deviceInfo) {
|
|
276
227
|
newPayload.device_info = deviceInfo;
|
|
277
228
|
}
|
|
278
|
-
|
|
279
229
|
this.dl.pushEvent('page_load', newPayload);
|
|
280
230
|
} else {
|
|
281
|
-
const newPayload = {
|
|
231
|
+
const newPayload = {
|
|
232
|
+
...pageLoadInfo,
|
|
282
233
|
...(this.customerIdentifiers ?? {}),
|
|
283
234
|
..._utils.Utils.parseQueryParamsToObject(pageLoadInfo === null || pageLoadInfo === void 0 ? void 0 : pageLoadInfo.deep_link_url)
|
|
284
235
|
};
|
|
285
|
-
|
|
286
236
|
if (deviceInfo) {
|
|
287
237
|
newPayload.device_info = deviceInfo;
|
|
288
238
|
}
|
|
289
|
-
|
|
290
239
|
this.dl.pushEvent('page_load', newPayload);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
|
|
240
|
+
}
|
|
241
|
+
// only set for first page load event and remove after that
|
|
294
242
|
this.deepLinkUrl = undefined;
|
|
295
243
|
this.firstAppLaunch = false;
|
|
296
244
|
}
|
|
297
245
|
|
|
298
|
-
|
|
246
|
+
/**
|
|
247
|
+
* Set user information for tracking
|
|
248
|
+
* @param userInfo User information object
|
|
249
|
+
*/
|
|
250
|
+
static setUserInfo(userInfo) {
|
|
251
|
+
this.dl.pushEvent('user_info', userInfo);
|
|
252
|
+
}
|
|
299
253
|
|
|
300
|
-
|
|
254
|
+
/**
|
|
255
|
+
* Persist custom data to storage
|
|
256
|
+
* @param key Storage key
|
|
257
|
+
* @param value Value to store
|
|
258
|
+
*/
|
|
259
|
+
static persistData(key, value) {
|
|
260
|
+
this.dl.pushEvent('persist', {
|
|
261
|
+
key,
|
|
262
|
+
value
|
|
263
|
+
});
|
|
264
|
+
}
|
|
301
265
|
|
|
302
|
-
|
|
266
|
+
/**
|
|
267
|
+
* Clear specific persisted data
|
|
268
|
+
* @param keys Array of keys to clear
|
|
269
|
+
*/
|
|
270
|
+
static clearPersistedData(keys) {
|
|
271
|
+
this.dl.pushEvent('clear', keys);
|
|
272
|
+
}
|
|
303
273
|
|
|
304
|
-
|
|
274
|
+
/**
|
|
275
|
+
* Set data layer variables
|
|
276
|
+
* @param data Data to set in the data layer
|
|
277
|
+
*/
|
|
278
|
+
static setDataLayer(data) {
|
|
279
|
+
this.dl.pushEvent('set', data);
|
|
280
|
+
}
|
|
305
281
|
|
|
306
|
-
|
|
282
|
+
/**
|
|
283
|
+
* Register a custom event processor
|
|
284
|
+
* @param eventType Event type to listen for
|
|
285
|
+
* @param processor Function to process the event
|
|
286
|
+
*/
|
|
287
|
+
static registerEventProcessor(eventType, processor) {
|
|
288
|
+
this.dl.registerProcessor(eventType, processor);
|
|
289
|
+
}
|
|
307
290
|
|
|
308
|
-
|
|
291
|
+
/**
|
|
292
|
+
* Get current data layer state
|
|
293
|
+
* @returns Current data layer object
|
|
294
|
+
*/
|
|
295
|
+
static getDataLayer() {
|
|
296
|
+
return this.dl.getDl();
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Get event state tracker
|
|
301
|
+
* @returns Array of all tracked events
|
|
302
|
+
*/
|
|
303
|
+
static getEventState() {
|
|
304
|
+
return this.dl.getState();
|
|
305
|
+
}
|
|
309
306
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
307
|
+
/**
|
|
308
|
+
* Check if a specific event has happened
|
|
309
|
+
* @param eventName Event name to check
|
|
310
|
+
* @returns True if event has occurred
|
|
311
|
+
*/
|
|
312
|
+
static hasEventHappened(eventName) {
|
|
313
|
+
return this.dl.hasEventHappened(eventName);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
_defineProperty(MagicPixelImpl, "dl", new _eedl.MpDataLayerHelper('mpDlEvent', 'manual', DL_INIT_EVENT, '_mpRnDataLayer'));
|
|
317
|
+
_defineProperty(MagicPixelImpl, "customerInfo", void 0);
|
|
318
|
+
_defineProperty(MagicPixelImpl, "customerIdentifiers", {});
|
|
319
|
+
_defineProperty(MagicPixelImpl, "deepLinkUrl", undefined);
|
|
320
|
+
_defineProperty(MagicPixelImpl, "firstAppLaunch", true);
|
|
321
|
+
const MagicPixelEventBus = exports.MagicPixelEventBus = _eventBus.EventBus;
|
|
322
|
+
const MagicPixel = exports.MagicPixel = MagicPixelImpl;
|
|
314
323
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DL_INIT_EVENT","MagicPixelImpl","init","options","Logger","setLogLevel","logLevel","NetworkService","refreshClientSdkJson","DataStore","isDataStoreReady","Error","device_type","trim","length","overrideDeviceType","setAppVersion","app_version","VisitIdProcessor","orgId","fbp","getFacebookFBP","logDbg","setFacebookClientId","MagicPixelEventBus","on","evtName","payload","JSON","stringify","eventName","eventDataModel","model","eventId","shouldExecuteTMForEvent","enQueueTMFire","checkAndFireTM","isFirstOpen","isFirstOpenAfterInstall","recordEvent","ready","customerInfo","newPayload","customerIdentifiers","dl","pushEvent","getDebugId","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","err","logError","Reporter","reportError","triggerName","evtId","eventData","setTagManagerProcessing","DataElementProcessor","processDataElements","getSdkDataElements","sdk","getClientSdk","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","QcProcessor","processQc","getSdkQC","getValidQcInfo","TagProcessor","processTags","then","_fireTM","catch","runTMErr","envName","envId","incrementVisitDepth","finally","_fireTMPrivate","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","Utils","sleep","setCustomerInfo","setFirebaseAppInstanceId","instanceId","firebase_instance_id","setDeepLinkUrl","deepLinkUrl","setDeviceInfo","deviceInfo","appVersion","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","deep_link_url","getDeviceInfo","parseQueryParamsToObject","device_info","undefined","MpDataLayerHelper","EventBus","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n MpDeviceInfo,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\n\nconst DL_INIT_EVENT = 'page_load';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper = new MpDataLayerHelper(\n 'mpDlEvent',\n 'manual',\n DL_INIT_EVENT\n );\n private static customerInfo: AppCustomerInfo;\n private static customerIdentifiers: MapLike = {};\n\n private static deepLinkUrl: string | undefined = undefined;\n\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n Logger.setLogLevel(options.logLevel ?? 'none');\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n if (\n options &&\n options.device_type &&\n options.device_type?.trim().length > 0\n ) {\n DataStore.overrideDeviceType(options.device_type);\n }\n\n this.setAppVersion(options.app_version);\n\n await VisitIdProcessor.init(options?.orgId);\n\n const fbp = await VisitIdProcessor.getFacebookFBP();\n if (fbp) {\n Logger.logDbg('Setting facebook client id', fbp);\n this.setFacebookClientId(fbp);\n } else {\n Logger.logDbg('No facebook client id found. not setting');\n }\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n Logger.logDbg('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (DataStore.shouldExecuteTMForEvent(eventName)) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n\n const isFirstOpen = await VisitIdProcessor.isFirstOpenAfterInstall();\n if (isFirstOpen) {\n Logger.logDbg('First open event fired');\n this.recordEvent('app_first_open', {});\n }\n\n this.ready();\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n const newPayload: MapLike = {\n ...payload,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static getDebugId(): string {\n return DataStore.getDebugId();\n }\n\n private static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n private static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n } else {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n private static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n // increment visit_depth if event name is page_load because that's the only way we can track page views in an app for now\n if (evtName === DL_INIT_EVENT) {\n VisitIdProcessor.incrementVisitDepth().finally(() => {\n this._fireTMPrivate(envName, envId, evtName, evtId);\n });\n } else {\n this._fireTMPrivate(envName, envId, evtName, evtId);\n }\n }\n\n private static _fireTMPrivate(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err: any) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n this.recordEvent('idl_attribution_link', customerInfo);\n }\n\n static setFirebaseAppInstanceId(instanceId: string): void {\n this.customerIdentifiers.firebase_instance_id = instanceId;\n }\n\n static setDeepLinkUrl(deepLinkUrl: string): void {\n this.deepLinkUrl = deepLinkUrl;\n }\n\n static setDeviceInfo(deviceInfo: MpDeviceInfo): void {\n DataStore.setDeviceInfo(deviceInfo);\n }\n\n static setFacebookClientId(fbp: string): void {\n this.customerIdentifiers.fbp = fbp;\n }\n\n private static setAppVersion(appVersion?: string): void {\n if (appVersion && appVersion?.trim()?.length > 0) {\n this.customerIdentifiers.app_version = appVersion;\n }\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n\n if (this.deepLinkUrl) {\n pageLoadInfo.deep_link_url = this.deepLinkUrl;\n }\n\n const deviceInfo = DataStore.getDeviceInfo();\n\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n ...Utils.parseQueryParamsToObject(pageLoadInfo?.deep_link_url),\n };\n\n if (deviceInfo) {\n newPayload.device_info = deviceInfo;\n }\n\n this.dl.pushEvent('page_load', newPayload);\n } else {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...(this.customerIdentifiers ?? {}),\n ...Utils.parseQueryParamsToObject(pageLoadInfo?.deep_link_url),\n };\n\n if (deviceInfo) {\n newPayload.device_info = deviceInfo;\n }\n\n this.dl.pushEvent('page_load', newPayload);\n }\n // only set for first page load event and remove after that\n this.deepLinkUrl = undefined;\n this.firstAppLaunch = false;\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_eedl","require","_dataStore","_logger","_reporter","_dataElement","_tag","_utils","_qc","_networkService","_eventBus","_visitId","_geoLocation","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DL_INIT_EVENT","MagicPixelImpl","init","options","_options$device_type","Logger","setLogLevel","logLevel","NetworkService","refreshClientSdkJson","DataStore","isDataStoreReady","Error","device_type","trim","length","overrideDeviceType","setAppVersion","app_version","VisitIdProcessor","orgId","fbp","getFacebookFBP","logDbg","setFacebookClientId","dl","GeoLocationProcessor","makeGeoLocationApiCall","err","logError","MagicPixelEventBus","on","evtName","payload","JSON","stringify","eventName","eventDataModel","model","eventId","shouldExecuteTMForEvent","enQueueTMFire","checkAndFireTM","isFirstOpen","isFirstOpenAfterInstall","recordEvent","ready","customerInfo","newPayload","customerIdentifiers","pushEvent","getDebugId","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","Reporter","reportError","triggerName","evtId","eventData","setTagManagerProcessing","DataElementProcessor","processDataElements","getSdkDataElements","sdk","getClientSdk","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","QcProcessor","processQc","getSdkQC","getValidQcInfo","TagProcessor","processTags","then","_fireTM","catch","runTMErr","envName","envId","incrementVisitDepth","finally","_fireTMPrivate","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","Utils","sleep","setCustomerInfo","setFirebaseAppInstanceId","instanceId","firebase_instance_id","setDeepLinkUrl","deepLinkUrl","setDeviceInfo","deviceInfo","appVersion","_appVersion$trim","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","deep_link_url","getDeviceInfo","parseQueryParamsToObject","device_info","undefined","setUserInfo","userInfo","persistData","key","clearPersistedData","keys","setDataLayer","data","registerEventProcessor","eventType","processor","registerProcessor","getDataLayer","getDl","getEventState","getState","hasEventHappened","MpDataLayerHelper","exports","EventBus","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n MpDeviceInfo,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\nimport { GeoLocationProcessor } from './processors/geo-location.processor';\n\nconst DL_INIT_EVENT = 'page_load';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper = new MpDataLayerHelper(\n 'mpDlEvent',\n 'manual',\n DL_INIT_EVENT,\n '_mpRnDataLayer'\n );\n private static customerInfo: AppCustomerInfo;\n private static customerIdentifiers: MapLike = {};\n\n private static deepLinkUrl: string | undefined = undefined;\n\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n Logger.setLogLevel(options.logLevel ?? 'none');\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n if (\n options &&\n options.device_type &&\n options.device_type?.trim().length > 0\n ) {\n DataStore.overrideDeviceType(options.device_type);\n }\n\n this.setAppVersion(options.app_version);\n\n await VisitIdProcessor.init(options?.orgId);\n\n const fbp = await VisitIdProcessor.getFacebookFBP();\n if (fbp) {\n Logger.logDbg('Setting facebook client id', fbp);\n this.setFacebookClientId(fbp);\n } else {\n Logger.logDbg('No facebook client id found. not setting');\n }\n\n // Initialize EEDL with any global event listeners\n await this.dl.init({});\n\n // Make geo location API call after initialization\n try {\n await GeoLocationProcessor.makeGeoLocationApiCall();\n } catch (err) {\n Logger.logError('Error making geo location API call:', err);\n }\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n Logger.logDbg('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (DataStore.shouldExecuteTMForEvent(eventName)) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n\n const isFirstOpen = await VisitIdProcessor.isFirstOpenAfterInstall();\n if (isFirstOpen) {\n Logger.logDbg('First open event fired');\n this.recordEvent('app_first_open', {});\n }\n\n this.ready();\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n const newPayload: MapLike = {\n ...payload,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static getDebugId(): string {\n return DataStore.getDebugId();\n }\n\n private static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n private static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n } else {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n private static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n // increment visit_depth if event name is page_load because that's the only way we can track page views in an app for now\n if (evtName === DL_INIT_EVENT) {\n VisitIdProcessor.incrementVisitDepth().finally(() => {\n this._fireTMPrivate(envName, envId, evtName, evtId);\n });\n } else {\n this._fireTMPrivate(envName, envId, evtName, evtId);\n }\n }\n\n private static _fireTMPrivate(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n this.recordEvent('idl_attribution_link', customerInfo);\n }\n\n static setFirebaseAppInstanceId(instanceId: string): void {\n this.customerIdentifiers.firebase_instance_id = instanceId;\n }\n\n static setDeepLinkUrl(deepLinkUrl: string): void {\n this.deepLinkUrl = deepLinkUrl;\n }\n\n static setDeviceInfo(deviceInfo: MpDeviceInfo): void {\n DataStore.setDeviceInfo(deviceInfo);\n }\n\n static setFacebookClientId(fbp: string): void {\n this.customerIdentifiers.fbp = fbp;\n }\n\n private static setAppVersion(appVersion?: string): void {\n if (appVersion && appVersion?.trim()?.length > 0) {\n this.customerIdentifiers.app_version = appVersion;\n }\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n\n // Use stored deepLinkUrl if it exists AND either:\n // - deep_link_url wasn't provided in pageLoadInfo, OR\n // - deep_link_url is empty/falsy (defensive programming for developer mistakes)\n if (this.deepLinkUrl && !pageLoadInfo.deep_link_url) {\n pageLoadInfo.deep_link_url = this.deepLinkUrl;\n }\n\n const deviceInfo = DataStore.getDeviceInfo();\n\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n ...Utils.parseQueryParamsToObject(pageLoadInfo?.deep_link_url),\n };\n\n if (deviceInfo) {\n newPayload.device_info = deviceInfo;\n }\n\n this.dl.pushEvent('page_load', newPayload);\n } else {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...(this.customerIdentifiers ?? {}),\n ...Utils.parseQueryParamsToObject(pageLoadInfo?.deep_link_url),\n };\n\n if (deviceInfo) {\n newPayload.device_info = deviceInfo;\n }\n\n this.dl.pushEvent('page_load', newPayload);\n }\n // only set for first page load event and remove after that\n this.deepLinkUrl = undefined;\n this.firstAppLaunch = false;\n }\n\n /**\n * Set user information for tracking\n * @param userInfo User information object\n */\n static setUserInfo(userInfo: {\n pid?: string;\n email?: string;\n phone?: string;\n country?: string;\n city?: string;\n state?: string;\n fName?: string;\n lName?: string;\n zip?: string;\n }): void {\n this.dl.pushEvent('user_info', userInfo);\n }\n\n /**\n * Persist custom data to storage\n * @param key Storage key\n * @param value Value to store\n */\n static persistData(key: string, value: any): void {\n this.dl.pushEvent('persist', { key, value });\n }\n\n /**\n * Clear specific persisted data\n * @param keys Array of keys to clear\n */\n static clearPersistedData(keys: string[]): void {\n this.dl.pushEvent('clear', keys);\n }\n\n /**\n * Set data layer variables\n * @param data Data to set in the data layer\n */\n static setDataLayer(data: MapLike): void {\n this.dl.pushEvent('set', data);\n }\n\n /**\n * Register a custom event processor\n * @param eventType Event type to listen for\n * @param processor Function to process the event\n */\n static registerEventProcessor(\n eventType: string,\n processor: (payload: any) => void\n ): void {\n this.dl.registerProcessor(eventType, processor);\n }\n\n /**\n * Get current data layer state\n * @returns Current data layer object\n */\n static getDataLayer(): MapLike {\n return this.dl.getDl();\n }\n\n /**\n * Get event state tracker\n * @returns Array of all tracked events\n */\n static getEventState(): any[] {\n return this.dl.getState();\n }\n\n /**\n * Check if a specific event has happened\n * @param eventName Event name to check\n * @returns True if event has occurred\n */\n static hasEventHappened(eventName: string): boolean {\n return this.dl.hasEventHappened(eventName);\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAQA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,GAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;AAA2E,SAAAY,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAE3E,MAAMgB,aAAa,GAAG,WAAW;AAEjC,MAAMC,cAAc,CAAC;EAcnB,aAAaC,IAAIA,CAACC,OAAuB,EAAiB;IAAA,IAAAC,oBAAA;IACxDC,cAAM,CAACC,WAAW,CAACH,OAAO,CAACI,QAAQ,IAAI,MAAM,CAAC;IAC9C,MAAMC,8BAAc,CAACC,oBAAoB,CAACN,OAAO,CAAC;IAElD,IAAI,CAACO,oBAAS,CAACC,gBAAgB,CAAC,CAAC,EAAE;MACjC,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IAEA,IACET,OAAO,IACPA,OAAO,CAACU,WAAW,IACnB,EAAAT,oBAAA,GAAAD,OAAO,CAACU,WAAW,cAAAT,oBAAA,uBAAnBA,oBAAA,CAAqBU,IAAI,CAAC,CAAC,CAACC,MAAM,IAAG,CAAC,EACtC;MACAL,oBAAS,CAACM,kBAAkB,CAACb,OAAO,CAACU,WAAW,CAAC;IACnD;IAEA,IAAI,CAACI,aAAa,CAACd,OAAO,CAACe,WAAW,CAAC;IAEvC,MAAMC,yBAAgB,CAACjB,IAAI,CAACC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiB,KAAK,CAAC;IAE3C,MAAMC,GAAG,GAAG,MAAMF,yBAAgB,CAACG,cAAc,CAAC,CAAC;IACnD,IAAID,GAAG,EAAE;MACPhB,cAAM,CAACkB,MAAM,CAAC,4BAA4B,EAAEF,GAAG,CAAC;MAChD,IAAI,CAACG,mBAAmB,CAACH,GAAG,CAAC;IAC/B,CAAC,MAAM;MACLhB,cAAM,CAACkB,MAAM,CAAC,0CAA0C,CAAC;IAC3D;;IAEA;IACA,MAAM,IAAI,CAACE,EAAE,CAACvB,IAAI,CAAC,CAAC,CAAC,CAAC;;IAEtB;IACA,IAAI;MACF,MAAMwB,iCAAoB,CAACC,sBAAsB,CAAC,CAAC;IACrD,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZvB,cAAM,CAACwB,QAAQ,CAAC,qCAAqC,EAAED,GAAG,CAAC;IAC7D;IAEAE,kBAAkB,CAACC,EAAE,CAAC,WAAW,EAAE,OAAOC,OAAO,EAAEC,OAAO,KAAK;MAC7D5B,cAAM,CAACkB,MAAM,CAAC,cAAc,EAAES,OAAO,EAAEE,IAAI,CAACC,SAAS,CAACF,OAAO,CAAC,CAAC;MAC/D,MAAMG,SAAiB,GAAGH,OAAO,CAACG,SAAS;MAC3C,MAAMC,cAAuB,GAAGJ,OAAO,CAACK,KAAK,IAAI,CAAC,CAAC;MACnD,MAAMC,OAAO,GAAGF,cAAc,CAAC,QAAQ,CAAC;MAExChC,cAAM,CAACkB,MAAM,CAAC,mBAAmB,EAAEa,SAAS,EAAE,YAAY,EAAEG,OAAO,CAAC;MAEpE,IAAI7B,oBAAS,CAAC8B,uBAAuB,CAACJ,SAAS,CAAC,EAAE;QAChD;QACA1B,oBAAS,CAAC+B,aAAa,CACrB,KAAK,EACL,gBAAgBL,SAAS,EAAE,EAC3BA,SAAS,EACTG,OAAO,EACPF,cACF,CAAC;QACD,MAAM,IAAI,CAACK,cAAc,CAAC,CAAC;MAC7B;IACF,CAAC,CAAC;IAEF,MAAMC,WAAW,GAAG,MAAMxB,yBAAgB,CAACyB,uBAAuB,CAAC,CAAC;IACpE,IAAID,WAAW,EAAE;MACftC,cAAM,CAACkB,MAAM,CAAC,wBAAwB,CAAC;MACvC,IAAI,CAACsB,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACxC;IAEA,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EAEA,OAAOD,WAAWA,CAACT,SAAiB,EAAEH,OAAgB,EAAQ;IAC5D,IAAI,IAAI,CAACc,YAAY,EAAE;MACrB,MAAMC,UAAmB,GAAG;QAC1B,GAAGf,OAAO;QACV,GAAG,IAAI,CAACc,YAAY;QACpB,IAAI,IAAI,CAACE,mBAAmB,IAAI,CAAC,CAAC;MACpC,CAAC;MACD,IAAI,CAACxB,EAAE,CAACyB,SAAS,CAACd,SAAS,EAAEY,UAAU,CAAC;IAC1C,CAAC,MAAM;MACL,MAAMA,UAAmB,GAAG;QAC1B,GAAGf,OAAO;QACV,IAAI,IAAI,CAACgB,mBAAmB,IAAI,CAAC,CAAC;MACpC,CAAC;MACD,IAAI,CAACxB,EAAE,CAACyB,SAAS,CAACd,SAAS,EAAEY,UAAU,CAAC;IAC1C;EACF;EAEA,OAAOF,KAAKA,CAAA,EAAS;IACnB,IAAI,CAACrB,EAAE,CAACqB,KAAK,CAAC,CAAC;EACjB;EAEA,OAAOK,UAAUA,CAAA,EAAW;IAC1B,OAAOzC,oBAAS,CAACyC,UAAU,CAAC,CAAC;EAC/B;EAEA,aAAqBT,cAAcA,CAAA,EAAkB;IACnD,IAAI;MACF,IAAI,CAAChC,oBAAS,CAAC0C,sBAAsB,CAAC,CAAC,EAAE;QACvC,MAAMC,IAAI,GAAG3C,oBAAS,CAAC4C,aAAa,CAAC,CAAC;QACtC,IAAID,IAAI,EAAE;UACRhD,cAAM,CAACkB,MAAM,CACX,oBAAoB,EACpB8B,IAAI,CAACE,IAAI,EACT,YAAY,EACZF,IAAI,CAACG,OAAO,EACZ,eAAe,EACfH,IAAI,CAACd,OAAO,EACZ,YAAY,EACZc,IAAI,CAACI,UACP,CAAC;UACD,MAAM,IAAI,CAACC,KAAK,CACdL,IAAI,CAACM,OAAO,EACZN,IAAI,CAACE,IAAI,EACTF,IAAI,CAACG,OAAO,EACZH,IAAI,CAACd,OAAO,EACZc,IAAI,CAACI,UACP,CAAC;QACH;MACF,CAAC,MAAM;QACLpD,cAAM,CAACkB,MAAM,CACX,6EACF,CAAC;MACH;IACF,CAAC,CAAC,OAAOK,GAAG,EAAE;MACZvB,cAAM,CAACwB,QAAQ,CAAC,4BAA4B,EAAED,GAAG,CAAC;MAClDgC,kBAAQ,CAACC,WAAW,CAAC,kBAAkB,EAAEjC,GAAG,CAAC;IAC/C;EACF;EAEA,aAAqB8B,KAAKA,CACxBC,OAAgB,EAChBG,WAAmB,EACnB9B,OAAe,EACf+B,KAAa,EACbC,SAA+B,EAChB;IACf,IAAI;MACF3D,cAAM,CAACkB,MAAM,CACX,YAAY,EACZoC,OAAO,EACPG,WAAW,EACX9B,OAAO,EACP+B,KAAK,EACLC,SACF,CAAC;;MAED;MACAtD,oBAAS,CAACuD,uBAAuB,CAAC,IAAI,CAAC;;MAEvC;MACA,MAAMC,iCAAoB,CAACC,mBAAmB,CAC5CzD,oBAAS,CAAC0D,kBAAkB,CAAC,CAAC,EAC9BJ,SACF,CAAC;MAED,MAAMK,GAAG,GAAG3D,oBAAS,CAAC4D,YAAY,CAAC,CAAC;MAEpC,MAAMC,KAAK,GAAG7D,oBAAS,CAAC8D,WAAW,CAAC,CAAC;MACrC,IAAID,KAAK,EAAE;QACT,MAAME,KAAK,GAAG/D,oBAAS,CAACgE,mBAAmB,CAACH,KAAK,CAAC;QAClD,IAAI,OAAOE,KAAK,KAAK,WAAW,IAAIA,KAAK,KAAK,IAAI,EAAE;UAClDpE,cAAM,CAACkB,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC;UACrCb,oBAAS,CAACiE,oBAAoB,CAAC,IAAI,CAAC;QACtC,CAAC,MAAM;UACLtE,cAAM,CAACkB,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC;UACtCb,oBAAS,CAACiE,oBAAoB,CAAC,KAAK,CAAC;QACvC;MACF,CAAC,MAAM;QACLtE,cAAM,CAACkB,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC;QACtCb,oBAAS,CAACiE,oBAAoB,CAAC,IAAI,CAAC;MACtC;MAEA,IAAIjE,oBAAS,CAACkE,iBAAiB,CAAC,CAAC,EAAE;QACjClE,oBAAS,CAACmE,cAAc,CACtB,eAAe,EACfnE,oBAAS,CAACkE,iBAAiB,CAAC,CAC9B,CAAC;QACDlE,oBAAS,CAACoE,WAAW,CACnBpE,oBAAS,CAACgE,mBAAmB,CAAC,eAAe,CAC/C,CAAC;MACH,CAAC,MAAM;QACLhE,oBAAS,CAACmE,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC;MACjD;;MAEA;MACAnE,oBAAS,CAACmE,cAAc,CACtB,cAAc,EACdnE,oBAAS,CAACqE,kBAAkB,CAAC,CAAC,CAACC,WAAW,CAAC,CAC7C,CAAC;MAEDpB,kBAAQ,CAACqB,YAAY,CACnBZ,GAAG,CAACa,CAAC,CAACC,EAAE,EACRd,GAAG,CAACa,CAAC,CAACE,KAAK,EACX1E,oBAAS,CAAC2E,aAAa,CAAC,CAAC,EACzB3E,oBAAS,CAAC4E,WAAW,CAAC,CAAC,EACvB5E,oBAAS,CAAC6E,WAAW,CAAC,CAAC,EACvB7E,oBAAS,CAAC8E,WAAW,CAAC,CAAC,EACvBxD,OAAO,EACP+B,KAAK,EACLrD,oBAAS,CAAC+E,mBAAmB,CAAC,CAAC,EAC/B/E,oBAAS,CAACgF,cAAc,CAAC,CAAC,EAC1B,EACF,CAAC;MAED,MAAMC,WAAW,GAAGC,eAAW,CAACC,SAAS,CACvCnF,oBAAS,CAACoF,QAAQ,CAAC,CAAC,EACpB9D,OAAO,EACP+B,KACF,CAAC;MAED,IAAI,CAAA4B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE5E,MAAM,IAAG,CAAC,EAAE;QAC3BV,cAAM,CAACkB,MAAM,CAAC,4BAA4B,EAAEb,oBAAS,CAACqF,cAAc,CAAC,CAAC,CAAC;QAEvEC,iBAAY,CAACC,WAAW,CAACjE,OAAO,EAAE+B,KAAK,CAAC,CACrCmC,IAAI,CAAC,MAAM;UACV,IAAI,CAACC,OAAO,CAAC9B,GAAG,CAACa,CAAC,CAACC,EAAE,EAAEd,GAAG,CAACa,CAAC,CAACE,KAAK,EAAEpD,OAAO,EAAE+B,KAAK,CAAC;QACrD,CAAC,CAAC,CACDqC,KAAK,CAAExE,GAAG,IAAK;UACdvB,cAAM,CAACwB,QAAQ,CAAC,6BAA6B,EAAED,GAAG,CAAC;UACnDgC,kBAAQ,CAACC,WAAW,CAAC,gBAAgB,EAAEjC,GAAG,CAAC;UAC3C,IAAI,CAACuE,OAAO,CAAC9B,GAAG,CAACa,CAAC,CAACC,EAAE,EAAEd,GAAG,CAACa,CAAC,CAACE,KAAK,EAAEpD,OAAO,EAAE+B,KAAK,CAAC;QACrD,CAAC,CAAC;MACN,CAAC,MAAM;QACL,IAAI,CAACoC,OAAO,CAAC9B,GAAG,CAACa,CAAC,CAACC,EAAE,EAAEd,GAAG,CAACa,CAAC,CAACE,KAAK,EAAEpD,OAAO,EAAE+B,KAAK,CAAC;MACrD;IACF,CAAC,CAAC,OAAOsC,QAAQ,EAAE;MACjBhG,cAAM,CAACwB,QAAQ,CAAC,gBAAgB,EAAEwE,QAAQ,CAAC;MAC3CzC,kBAAQ,CAACC,WAAW,CAAC,UAAU,EAAEwC,QAAQ,CAAC;IAC5C;EACF;EAEA,OAAeF,OAAOA,CACpBG,OAAe,EACfC,KAAa,EACbvE,OAAe,EACf+B,KAAa,EACP;IACN;IACA,IAAI/B,OAAO,KAAKhC,aAAa,EAAE;MAC7BmB,yBAAgB,CAACqF,mBAAmB,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;QACnD,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAEC,KAAK,EAAEvE,OAAO,EAAE+B,KAAK,CAAC;MACrD,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAI,CAAC2C,cAAc,CAACJ,OAAO,EAAEC,KAAK,EAAEvE,OAAO,EAAE+B,KAAK,CAAC;IACrD;EACF;EAEA,OAAe2C,cAAcA,CAC3BJ,OAAe,EACfC,KAAa,EACbvE,OAAe,EACf+B,KAAa,EACP;IACN,IAAIrD,oBAAS,CAACiG,YAAY,CAAC,CAAC,IAAIjG,oBAAS,CAACkG,qBAAqB,CAAC5E,OAAO,CAAC,EAAE;MACxE4B,kBAAQ,CAACiD,OAAO,CACdnG,oBAAS,CAACoG,eAAe,CAAC,CAAC,EAC3BR,OAAO,EACPC,KAAK,EACL7F,oBAAS,CAACqG,gBAAgB,CAAC,CAAC,EAC5B/E,OAAO,EACP+B,KACF,CAAC,CAACqC,KAAK,CAAExE,GAAG,IAAK;QACfgC,kBAAQ,CAACC,WAAW,CAAC,YAAY,EAAEjC,GAAG,CAAC;MACzC,CAAC,CAAC;IACJ;IAEAlB,oBAAS,CAACuD,uBAAuB,CAAC,KAAK,CAAC;IACxC+C,YAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAACf,IAAI,CAAC,YAAY;MAChC,IAAI;QACF,MAAM,IAAI,CAACxD,cAAc,CAAC,CAAC;MAC7B,CAAC,CAAC,OAAOd,GAAG,EAAE;QACZgC,kBAAQ,CAACC,WAAW,CAAC,UAAU,EAAEjC,GAAG,CAAC;MACvC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOsF,eAAeA,CAACnE,YAA6B,EAAQ;IAC1D,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACF,WAAW,CAAC,sBAAsB,EAAEE,YAAY,CAAC;EACxD;EAEA,OAAOoE,wBAAwBA,CAACC,UAAkB,EAAQ;IACxD,IAAI,CAACnE,mBAAmB,CAACoE,oBAAoB,GAAGD,UAAU;EAC5D;EAEA,OAAOE,cAAcA,CAACC,WAAmB,EAAQ;IAC/C,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEA,OAAOC,aAAaA,CAACC,UAAwB,EAAQ;IACnD/G,oBAAS,CAAC8G,aAAa,CAACC,UAAU,CAAC;EACrC;EAEA,OAAOjG,mBAAmBA,CAACH,GAAW,EAAQ;IAC5C,IAAI,CAAC4B,mBAAmB,CAAC5B,GAAG,GAAGA,GAAG;EACpC;EAEA,OAAeJ,aAAaA,CAACyG,UAAmB,EAAQ;IAAA,IAAAC,gBAAA;IACtD,IAAID,UAAU,IAAI,CAAAA,UAAU,aAAVA,UAAU,wBAAAC,gBAAA,GAAVD,UAAU,CAAE5G,IAAI,CAAC,CAAC,cAAA6G,gBAAA,uBAAlBA,gBAAA,CAAoB5G,MAAM,IAAG,CAAC,EAAE;MAChD,IAAI,CAACkC,mBAAmB,CAAC/B,WAAW,GAAGwG,UAAU;IACnD;EACF;EAEA,OAAOE,cAAcA,CAACC,YAAyB,EAAQ;IACrDA,YAAY,CAACC,QAAQ,GAAG,IAAI,CAACC,cAAc,GAAG,CAAC,GAAG,CAAC;;IAEnD;IACA;IACA;IACA,IAAI,IAAI,CAACR,WAAW,IAAI,CAACM,YAAY,CAACG,aAAa,EAAE;MACnDH,YAAY,CAACG,aAAa,GAAG,IAAI,CAACT,WAAW;IAC/C;IAEA,MAAME,UAAU,GAAG/G,oBAAS,CAACuH,aAAa,CAAC,CAAC;IAE5C,IAAI,IAAI,CAAClF,YAAY,EAAE;MACrB,MAAMC,UAAmB,GAAG;QAC1B,GAAG6E,YAAY;QACf,GAAG,IAAI,CAAC9E,YAAY;QACpB,IAAI,IAAI,CAACE,mBAAmB,IAAI,CAAC,CAAC,CAAC;QACnC,GAAG+D,YAAK,CAACkB,wBAAwB,CAACL,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,aAAa;MAC/D,CAAC;MAED,IAAIP,UAAU,EAAE;QACdzE,UAAU,CAACmF,WAAW,GAAGV,UAAU;MACrC;MAEA,IAAI,CAAChG,EAAE,CAACyB,SAAS,CAAC,WAAW,EAAEF,UAAU,CAAC;IAC5C,CAAC,MAAM;MACL,MAAMA,UAAmB,GAAG;QAC1B,GAAG6E,YAAY;QACf,IAAI,IAAI,CAAC5E,mBAAmB,IAAI,CAAC,CAAC,CAAC;QACnC,GAAG+D,YAAK,CAACkB,wBAAwB,CAACL,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,aAAa;MAC/D,CAAC;MAED,IAAIP,UAAU,EAAE;QACdzE,UAAU,CAACmF,WAAW,GAAGV,UAAU;MACrC;MAEA,IAAI,CAAChG,EAAE,CAACyB,SAAS,CAAC,WAAW,EAAEF,UAAU,CAAC;IAC5C;IACA;IACA,IAAI,CAACuE,WAAW,GAAGa,SAAS;IAC5B,IAAI,CAACL,cAAc,GAAG,KAAK;EAC7B;;EAEA;AACF;AACA;AACA;EACE,OAAOM,WAAWA,CAACC,QAUlB,EAAQ;IACP,IAAI,CAAC7G,EAAE,CAACyB,SAAS,CAAC,WAAW,EAAEoF,QAAQ,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,WAAWA,CAACC,GAAW,EAAEpJ,KAAU,EAAQ;IAChD,IAAI,CAACqC,EAAE,CAACyB,SAAS,CAAC,SAAS,EAAE;MAAEsF,GAAG;MAAEpJ;IAAM,CAAC,CAAC;EAC9C;;EAEA;AACF;AACA;AACA;EACE,OAAOqJ,kBAAkBA,CAACC,IAAc,EAAQ;IAC9C,IAAI,CAACjH,EAAE,CAACyB,SAAS,CAAC,OAAO,EAAEwF,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;AACA;EACE,OAAOC,YAAYA,CAACC,IAAa,EAAQ;IACvC,IAAI,CAACnH,EAAE,CAACyB,SAAS,CAAC,KAAK,EAAE0F,IAAI,CAAC;EAChC;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,sBAAsBA,CAC3BC,SAAiB,EACjBC,SAAiC,EAC3B;IACN,IAAI,CAACtH,EAAE,CAACuH,iBAAiB,CAACF,SAAS,EAAEC,SAAS,CAAC;EACjD;;EAEA;AACF;AACA;AACA;EACE,OAAOE,YAAYA,CAAA,EAAY;IAC7B,OAAO,IAAI,CAACxH,EAAE,CAACyH,KAAK,CAAC,CAAC;EACxB;;EAEA;AACF;AACA;AACA;EACE,OAAOC,aAAaA,CAAA,EAAU;IAC5B,OAAO,IAAI,CAAC1H,EAAE,CAAC2H,QAAQ,CAAC,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,gBAAgBA,CAACjH,SAAiB,EAAW;IAClD,OAAO,IAAI,CAACX,EAAE,CAAC4H,gBAAgB,CAACjH,SAAS,CAAC;EAC5C;AACF;AAACvD,eAAA,CArbKoB,cAAc,QACqB,IAAIqJ,uBAAiB,CAC1D,WAAW,EACX,QAAQ,EACRtJ,aAAa,EACb,gBACF,CAAC;AAAAnB,eAAA,CANGoB,cAAc;AAAApB,eAAA,CAAdoB,cAAc,yBAQ4B,CAAC,CAAC;AAAApB,eAAA,CAR5CoB,cAAc,iBAU+BmI,SAAS;AAAAvJ,eAAA,CAVtDoB,cAAc,oBAYc,IAAI;AA2a/B,MAAM6B,kBAAkB,GAAAyH,OAAA,CAAAzH,kBAAA,GAAG0H,kBAAQ;AACnC,MAAMC,UAAU,GAAAF,OAAA,CAAAE,UAAA,GAAGxJ,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["geo-api-response.ts"],"sourcesContent":["export interface GeoResponse {\n ip: string;\n city: string;\n country: string;\n region: string;\n loc: string;\n postal: string;\n}\n\nexport interface GeoApiResponse {\n status: 'OK' | 'KO';\n info: GeoResponse;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -4,25 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ParamResourceValSrc = exports.ParamResourceHashType = exports.ParamResourceEncodingType = void 0;
|
|
7
|
-
let ParamResourceEncodingType;
|
|
8
|
-
exports.ParamResourceEncodingType = ParamResourceEncodingType;
|
|
9
|
-
|
|
7
|
+
let ParamResourceEncodingType = exports.ParamResourceEncodingType = void 0;
|
|
10
8
|
(function (ParamResourceEncodingType) {
|
|
11
9
|
ParamResourceEncodingType["URL_ENC"] = "URL_ENC";
|
|
12
10
|
ParamResourceEncodingType["BASE64"] = "BASE64";
|
|
13
11
|
})(ParamResourceEncodingType || (exports.ParamResourceEncodingType = ParamResourceEncodingType = {}));
|
|
14
|
-
|
|
15
|
-
let ParamResourceHashType;
|
|
16
|
-
exports.ParamResourceHashType = ParamResourceHashType;
|
|
17
|
-
|
|
12
|
+
let ParamResourceHashType = exports.ParamResourceHashType = void 0;
|
|
18
13
|
(function (ParamResourceHashType) {
|
|
19
14
|
ParamResourceHashType["SHA256"] = "SHA256";
|
|
20
15
|
ParamResourceHashType["SHA512"] = "SHA512";
|
|
21
16
|
})(ParamResourceHashType || (exports.ParamResourceHashType = ParamResourceHashType = {}));
|
|
22
|
-
|
|
23
|
-
let ParamResourceValSrc;
|
|
24
|
-
exports.ParamResourceValSrc = ParamResourceValSrc;
|
|
25
|
-
|
|
17
|
+
let ParamResourceValSrc = exports.ParamResourceValSrc = void 0;
|
|
26
18
|
(function (ParamResourceValSrc) {
|
|
27
19
|
ParamResourceValSrc["STATIC"] = "STATIC";
|
|
28
20
|
ParamResourceValSrc["DE"] = "DE";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ParamResourceEncodingType","ParamResourceHashType","ParamResourceValSrc"],"sources":["mp-client-sdk.ts"],"sourcesContent":["import type { MapLike } from '../common/app-types';\n\nexport interface ClientSdkDeItem {\n nm: string;\n typ: string;\n key?: string;\n def?: any;\n cl?: boolean;\n lwcase?: boolean;\n fn?: (deHelper: any, input: any) => any;\n isAsync?: boolean;\n fnTOut?: number;\n}\n\nexport enum ParamResourceEncodingType {\n URL_ENC = 'URL_ENC',\n BASE64 = 'BASE64',\n}\n\nexport enum ParamResourceHashType {\n SHA256 = 'SHA256',\n SHA512 = 'SHA512',\n}\n\nexport enum ParamResourceValSrc {\n STATIC = 'STATIC',\n DE = 'DE',\n TRANS_FUNC = 'TRANS_FUNC',\n CHILDREN = 'CHILDREN',\n TG_JSON_PATH = 'TG_JSON_PATH',\n}\n\nexport interface SdkParamEncodingTransformer {\n nm: string;\n eTyp: 'URL_ENC' | 'BASE64';\n o?: number;\n}\n\nexport interface SdkParamHashingTransformer {\n nm: string;\n hTyp: ParamResourceHashType;\n o?: number;\n}\n\nexport interface SdkParamIgnoreEmptyTransformer {\n nm: string;\n igEmpty: boolean;\n o?: number; // order\n}\n\nexport type TFType = (\n | SdkParamHashingTransformer\n | SdkParamEncodingTransformer\n | SdkParamIgnoreEmptyTransformer\n)[];\n\nexport interface ClientSdkParamItem {\n id: string; // id\n nm: string; // name\n rqd?: boolean; // is mandatory\n tf?: TFType; // transformation array\n prLvl?: boolean; // is provider level attribute\n pId?: string; // parent id\n sv?: string; // static value\n de?: string; // data element id\n tfId?: string; // transformation function id\n children?: ClientSdkParamItem[];\n exclude_from_req_body?: boolean;\n fKey: string; // flat key\n val_src: string;\n}\n\nexport interface ClientSdkQcCondition {\n param: string; // param name\n i?: string[]; // include conditions\n e?: string[]; // exclude conditions\n i_ect: boolean; // is exact match for include\n i_cs?: boolean; // is case-sensitive for include\n e_ect?: boolean; // is exact match for exclude\n e_cs?: boolean; // is case-sensitive for exclude\n}\n\nexport interface ClientSdkPrItem {\n nm: string;\n url?: string; // base url\n typ: string; // js or img provider\n sTyp: string; // r or i sub type\n rParams?: MapLike<ClientSdkParamItem>; // parameters\n hrs?: MapLike<string>; // headers\n ext?: string; // sdk extras joined into a string\n src?: string; // src of the sdk\n sync?: boolean; // should be loaded sync or async\n pr: string; // whitelisted or black listed\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkTfnItem {\n nm: string; // name\n fn: (input: any) => any; // js function in case this is a jsv data element\n rParams: MapLike<ClientSdkParamItem>; // parameters\n}\n\nexport interface ClientSdkQcItem {\n nm: string;\n id: string;\n c: ClientSdkQcCondition[];\n}\n\nexport interface ClientSdkTagItem {\n nm: string; // name\n p: string; // provider id\n url: string; // tag url\n rParams?: MapLike<ClientSdkParamItem>;\n st: number; // start time - in epoch seconds\n ex: number; // expiry time - in epoch seconds\n qc: string[];\n img?: boolean; // is image tag\n wrk?: boolean; // is web worker compatible\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkSettingsItem {\n dbg: boolean; // debug_enabled\n err: boolean; // error_enabled\n c_dom: string; // default cookie domain\n v_dur: number; // visit duration\n c_url: string; // collector_url\n bare_c_url?: string; // bare collector url - transient variable\n wh_idl?: string[]; // list of whitelisted idl events\n wh_domains?: string[]; // list of white listed domains\n c_url_lkp?: MapLike<{ v: string; ig: boolean; ect: boolean }>; // collector url look up\n v_id: string; // vendor_id\n p_id: string; // project_id\n ev: string; // environment\n ev_id: string; // environment id\n dly: number; // trigger_delay\n sst: boolean; // should enable server side. this will be set to true if there is atleast one sever side tag defined\n idl: boolean; // should enable ID Link service. this will be set to true if the vendor has ID Link enabled\n c_typ?: string; // the type of CSP, example nonce.\n c_src?: string; // the source of CSP, example meta_tag for nonce type.\n c_key?: string; // the data for CSP.\n v: string; // core sdk version\n bld_dt: string; // sdk build date and time from MP - this is not for the core sdk\n p_view?: boolean; // should fire page info call or not to metrics\n dws_c_t: 'j' | 'n'; // client side down stream (j = java, n = node)\n dws_s_t: 'j' | 'n'; // server side down stream (j = java, n = node)\n}\n\nexport interface BaseResourceParamType {\n id: string; // id of param\n nm: string; // name\n o?: number; // order\n pId?: string; // parent id\n children?: BaseResourceParamType[];\n}\n\nexport interface MpClientSdk {\n langKey: string; // language data element id\n pcKey: string; // privacy compliance key\n cDomKey?: string; // collector domain tfn key\n domWListKey?: string; // domain white list tfn function\n d: MapLike<ClientSdkDeItem>; // data element map\n qc?: ClientSdkQcItem[]; // qualification criteria\n t?: MapLike<ClientSdkTagItem>; // tag map\n p?: MapLike<ClientSdkPrItem>; // provider map\n tfn?: MapLike<ClientSdkTfnItem>; // list of transformation functions\n s: ClientSdkSettingsItem; // settings data item\n dtmE: string[]; // list of dtm direct call events magic pixel should be interested in\n ctmE: string[]; // list of custom javascript event magic pixel should be interested in\n mpDlE: string[]; // list of MagicPixel data layer event magic pixel should be interested in\n sseDtmE: string[]; // list of server side dtm events that we should trigger sst tag\n sseCtmE: string[]; // list of custom window events that we should trigger sst tag\n sseMpDlE: string[]; // list of mp dl events that should trigger the sst tag\n}\n"],"mappings":";;;;;;IAcYA,
|
|
1
|
+
{"version":3,"names":["ParamResourceEncodingType","exports","ParamResourceHashType","ParamResourceValSrc"],"sources":["mp-client-sdk.ts"],"sourcesContent":["import type { MapLike } from '../common/app-types';\n\nexport interface ClientSdkDeItem {\n nm: string;\n typ: string;\n key?: string;\n def?: any;\n cl?: boolean;\n lwcase?: boolean;\n fn?: (deHelper: any, input: any) => any;\n isAsync?: boolean;\n fnTOut?: number;\n}\n\nexport enum ParamResourceEncodingType {\n URL_ENC = 'URL_ENC',\n BASE64 = 'BASE64',\n}\n\nexport enum ParamResourceHashType {\n SHA256 = 'SHA256',\n SHA512 = 'SHA512',\n}\n\nexport enum ParamResourceValSrc {\n STATIC = 'STATIC',\n DE = 'DE',\n TRANS_FUNC = 'TRANS_FUNC',\n CHILDREN = 'CHILDREN',\n TG_JSON_PATH = 'TG_JSON_PATH',\n}\n\nexport interface SdkParamEncodingTransformer {\n nm: string;\n eTyp: 'URL_ENC' | 'BASE64';\n o?: number;\n}\n\nexport interface SdkParamHashingTransformer {\n nm: string;\n hTyp: ParamResourceHashType;\n o?: number;\n}\n\nexport interface SdkParamIgnoreEmptyTransformer {\n nm: string;\n igEmpty: boolean;\n o?: number; // order\n}\n\nexport type TFType = (\n | SdkParamHashingTransformer\n | SdkParamEncodingTransformer\n | SdkParamIgnoreEmptyTransformer\n)[];\n\nexport interface ClientSdkParamItem {\n id: string; // id\n nm: string; // name\n rqd?: boolean; // is mandatory\n tf?: TFType; // transformation array\n prLvl?: boolean; // is provider level attribute\n pId?: string; // parent id\n sv?: string; // static value\n de?: string; // data element id\n tfId?: string; // transformation function id\n children?: ClientSdkParamItem[];\n exclude_from_req_body?: boolean;\n fKey: string; // flat key\n val_src: string;\n}\n\nexport interface ClientSdkQcCondition {\n param: string; // param name\n i?: string[]; // include conditions\n e?: string[]; // exclude conditions\n i_ect: boolean; // is exact match for include\n i_cs?: boolean; // is case-sensitive for include\n e_ect?: boolean; // is exact match for exclude\n e_cs?: boolean; // is case-sensitive for exclude\n}\n\nexport interface ClientSdkPrItem {\n nm: string;\n url?: string; // base url\n typ: string; // js or img provider\n sTyp: string; // r or i sub type\n rParams?: MapLike<ClientSdkParamItem>; // parameters\n hrs?: MapLike<string>; // headers\n ext?: string; // sdk extras joined into a string\n src?: string; // src of the sdk\n sync?: boolean; // should be loaded sync or async\n pr: string; // whitelisted or black listed\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkTfnItem {\n nm: string; // name\n fn: (input: any) => any; // js function in case this is a jsv data element\n rParams: MapLike<ClientSdkParamItem>; // parameters\n}\n\nexport interface ClientSdkQcItem {\n nm: string;\n id: string;\n c: ClientSdkQcCondition[];\n}\n\nexport interface ClientSdkTagItem {\n nm: string; // name\n p: string; // provider id\n url: string; // tag url\n rParams?: MapLike<ClientSdkParamItem>;\n st: number; // start time - in epoch seconds\n ex: number; // expiry time - in epoch seconds\n qc: string[];\n img?: boolean; // is image tag\n wrk?: boolean; // is web worker compatible\n chld?: boolean; // has at least one parameter whose val_src is CHILDREN\n}\n\nexport interface ClientSdkSettingsItem {\n dbg: boolean; // debug_enabled\n err: boolean; // error_enabled\n c_dom: string; // default cookie domain\n v_dur: number; // visit duration\n c_url: string; // collector_url\n bare_c_url?: string; // bare collector url - transient variable\n wh_idl?: string[]; // list of whitelisted idl events\n wh_domains?: string[]; // list of white listed domains\n c_url_lkp?: MapLike<{ v: string; ig: boolean; ect: boolean }>; // collector url look up\n v_id: string; // vendor_id\n p_id: string; // project_id\n ev: string; // environment\n ev_id: string; // environment id\n dly: number; // trigger_delay\n sst: boolean; // should enable server side. this will be set to true if there is atleast one sever side tag defined\n idl: boolean; // should enable ID Link service. this will be set to true if the vendor has ID Link enabled\n c_typ?: string; // the type of CSP, example nonce.\n c_src?: string; // the source of CSP, example meta_tag for nonce type.\n c_key?: string; // the data for CSP.\n v: string; // core sdk version\n bld_dt: string; // sdk build date and time from MP - this is not for the core sdk\n p_view?: boolean; // should fire page info call or not to metrics\n dws_c_t: 'j' | 'n'; // client side down stream (j = java, n = node)\n dws_s_t: 'j' | 'n'; // server side down stream (j = java, n = node)\n}\n\nexport interface BaseResourceParamType {\n id: string; // id of param\n nm: string; // name\n o?: number; // order\n pId?: string; // parent id\n children?: BaseResourceParamType[];\n}\n\nexport interface MpClientSdk {\n langKey: string; // language data element id\n pcKey: string; // privacy compliance key\n cDomKey?: string; // collector domain tfn key\n domWListKey?: string; // domain white list tfn function\n d: MapLike<ClientSdkDeItem>; // data element map\n qc?: ClientSdkQcItem[]; // qualification criteria\n t?: MapLike<ClientSdkTagItem>; // tag map\n p?: MapLike<ClientSdkPrItem>; // provider map\n tfn?: MapLike<ClientSdkTfnItem>; // list of transformation functions\n s: ClientSdkSettingsItem; // settings data item\n dtmE: string[]; // list of dtm direct call events magic pixel should be interested in\n ctmE: string[]; // list of custom javascript event magic pixel should be interested in\n mpDlE: string[]; // list of MagicPixel data layer event magic pixel should be interested in\n sseDtmE: string[]; // list of server side dtm events that we should trigger sst tag\n sseCtmE: string[]; // list of custom window events that we should trigger sst tag\n sseMpDlE: string[]; // list of mp dl events that should trigger the sst tag\n}\n"],"mappings":";;;;;;IAcYA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;AAAA,WAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;AAAA,GAAzBA,yBAAyB,KAAAC,OAAA,CAAAD,yBAAA,GAAzBA,yBAAyB;AAAA,IAKzBE,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA;AAAA,WAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;AAAA,GAArBA,qBAAqB,KAAAD,OAAA,CAAAC,qBAAA,GAArBA,qBAAqB;AAAA,IAKrBC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA;AAAA,WAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;AAAA,GAAnBA,mBAAmB,KAAAF,OAAA,CAAAE,mBAAA,GAAnBA,mBAAmB","ignoreList":[]}
|