@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,52 +4,47 @@ import { Reporter } from './reporter';
|
|
|
4
4
|
export class NetworkService {
|
|
5
5
|
static async fetchIdlInfo(url) {
|
|
6
6
|
const response = await NetworkService.sendNetworkRequest('get', url);
|
|
7
|
-
|
|
8
7
|
if (response) {
|
|
9
8
|
return response.json();
|
|
10
9
|
} else {
|
|
11
10
|
return null;
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
|
-
|
|
15
13
|
static async refreshClientSdkJson(sdkInitOptions) {
|
|
16
14
|
try {
|
|
17
15
|
const response = await this.sendNetworkRequest('get', `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${sdkInitOptions.env === 'staging' ? '-staging' : ''}.json`);
|
|
18
|
-
|
|
19
16
|
if (response) {
|
|
20
17
|
const sdkJson = await response.json();
|
|
21
|
-
Logger.logDbg('Client Sdk:: ', sdkJson);
|
|
22
|
-
|
|
18
|
+
Logger.logDbg('Client Sdk:: ', sdkJson);
|
|
19
|
+
// sdkJson.s.c_url = 'http://localhost:3003';
|
|
23
20
|
await DataStore.init(sdkJson);
|
|
24
21
|
}
|
|
25
22
|
} catch (err) {
|
|
26
|
-
Reporter.reportError('refreshClientSdk', err);
|
|
23
|
+
Reporter.reportError('refreshClientSdk', err);
|
|
24
|
+
// throw new Error('Unable to fetch MagicPixel SDK at this time.');
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
|
-
|
|
30
27
|
static sendPostRequest(url, body) {
|
|
31
28
|
this.sendNetworkRequest('post', url, body).catch(err => {
|
|
32
29
|
Logger.logError(err);
|
|
33
30
|
});
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
static sendGetRequest(url) {
|
|
37
33
|
this.sendNetworkRequest('get', url).catch(err => {
|
|
38
34
|
Logger.logError(err);
|
|
39
35
|
});
|
|
40
36
|
}
|
|
41
|
-
|
|
42
37
|
static async sendNetworkRequest(method, url, body) {
|
|
43
38
|
try {
|
|
44
39
|
Logger.logDbg(`Sending ${method} request to ${url} with body ${JSON.stringify(body)}`);
|
|
45
40
|
Logger.logDbg(`Common Cookies: ${JSON.stringify(DataStore.getCommonCookies() ?? {})}`);
|
|
46
|
-
|
|
47
41
|
if (method === 'get') {
|
|
48
42
|
return await fetch(url, {
|
|
49
43
|
method: 'GET',
|
|
50
44
|
headers: {
|
|
51
45
|
'Content-Type': 'text/plain',
|
|
52
46
|
'cache-control': 'no-store',
|
|
47
|
+
'user-agent': 'sajith/123',
|
|
53
48
|
// 'x-dbg': 'trace',
|
|
54
49
|
...DataStore.getCommonCookies()
|
|
55
50
|
}
|
|
@@ -60,6 +55,7 @@ export class NetworkService {
|
|
|
60
55
|
headers: {
|
|
61
56
|
'Content-Type': 'text/plain',
|
|
62
57
|
'cache-control': 'no-store',
|
|
58
|
+
'user-agent': 'sajith/123',
|
|
63
59
|
// 'x-dbg': 'trace',
|
|
64
60
|
...DataStore.getCommonCookies()
|
|
65
61
|
},
|
|
@@ -73,6 +69,5 @@ export class NetworkService {
|
|
|
73
69
|
return null;
|
|
74
70
|
}
|
|
75
71
|
}
|
|
76
|
-
|
|
77
72
|
}
|
|
78
73
|
//# sourceMappingURL=network-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Logger","DataStore","Reporter","NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","sdkJson","logDbg","init","err","reportError","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","getCommonCookies","fetch","headers","Error"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3003';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n // throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n Logger.logDbg(\n `Common Cookies: ${JSON.stringify(DataStore.getCommonCookies() ?? {})}`\n );\n if (method === 'get') {\n return await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n // 'x-dbg': 'trace',\n ...DataStore.getCommonCookies(),\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n // 'x-dbg': 'trace',\n ...DataStore.getCommonCookies(),\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["Logger","DataStore","Reporter","NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","sdkJson","logDbg","init","err","reportError","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","getCommonCookies","fetch","headers","Error"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3003';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n // throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n Logger.logDbg(\n `Common Cookies: ${JSON.stringify(DataStore.getCommonCookies() ?? {})}`\n );\n if (method === 'get') {\n return await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n 'user-agent': 'sajith/123',\n // 'x-dbg': 'trace',\n ...DataStore.getCommonCookies(),\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n 'user-agent': 'sajith/123',\n // 'x-dbg': 'trace',\n ...DataStore.getCommonCookies(),\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
3
4
|
import { Logger } from './logger';
|
|
4
5
|
import { DataStore } from './data-store';
|
|
5
6
|
import { Utils } from './utils';
|
|
6
7
|
import { NetworkService } from './network-service';
|
|
7
8
|
export class Reporter {
|
|
8
|
-
static initReporter(envName, envId, deviceType, language, deviceOs,
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
static initReporter(envName, envId, deviceType, language, deviceOs,
|
|
10
|
+
// device os is being used as a browser proxy
|
|
11
|
+
pageName, evtName, evtId, clientTagsDownStream, clientSdkVersion, initialItems = []) {
|
|
11
12
|
this.reportMap[evtId] = {
|
|
12
13
|
envName,
|
|
13
14
|
envId,
|
|
@@ -24,30 +25,23 @@ export class Reporter {
|
|
|
24
25
|
tagCt: 0
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
|
|
28
28
|
static setExpectedTagCount(ct, evtId) {
|
|
29
29
|
const reportParent = this.reportMap[evtId];
|
|
30
|
-
|
|
31
30
|
if (reportParent) {
|
|
32
31
|
reportParent.tagCt = ct;
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
|
-
|
|
36
34
|
static reportItem(item, evtId) {
|
|
37
35
|
const reportParent = this.reportMap[evtId];
|
|
38
|
-
|
|
39
36
|
if (reportParent) {
|
|
40
37
|
var _reportParent$items, _reportParent$items2;
|
|
41
|
-
|
|
42
38
|
reportParent.items.push(item);
|
|
43
|
-
|
|
44
39
|
if ((reportParent === null || reportParent === void 0 ? void 0 : (_reportParent$items = reportParent.items) === null || _reportParent$items === void 0 ? void 0 : _reportParent$items.length) === (reportParent === null || reportParent === void 0 ? void 0 : reportParent.tagCt) && (reportParent === null || reportParent === void 0 ? void 0 : (_reportParent$items2 = reportParent.items) === null || _reportParent$items2 === void 0 ? void 0 : _reportParent$items2.length) > 0) {
|
|
45
40
|
Logger.logDbg('Hit expected tag count. Reporting');
|
|
46
41
|
this.publishReport(evtId);
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
44
|
}
|
|
50
|
-
|
|
51
45
|
static publishReport(evtId) {
|
|
52
46
|
const data = this.reportMap[evtId] || {};
|
|
53
47
|
const postUrl = `${DataStore.getUrlInfo().rptUrl}/${data.dws ?? 'n'}/${Utils.getUniqueID()}`;
|
|
@@ -55,7 +49,6 @@ export class Reporter {
|
|
|
55
49
|
data.debugId = DataStore.getDebugId();
|
|
56
50
|
NetworkService.sendPostRequest(postUrl, data);
|
|
57
51
|
}
|
|
58
|
-
|
|
59
52
|
static reportError(methodMetaData, err) {
|
|
60
53
|
Logger.logDbg('Reporting...', methodMetaData, err);
|
|
61
54
|
const data = {
|
|
@@ -65,7 +58,6 @@ export class Reporter {
|
|
|
65
58
|
};
|
|
66
59
|
NetworkService.sendPostRequest(`${DataStore.getErrorReportUrl()}/${Utils.getUniqueID()}`, data);
|
|
67
60
|
}
|
|
68
|
-
|
|
69
61
|
static async postSST(data, envName, envId, serverTagDownStream, eventName, evtId) {
|
|
70
62
|
data.env = envName;
|
|
71
63
|
data.envId = envId;
|
|
@@ -73,16 +65,13 @@ export class Reporter {
|
|
|
73
65
|
data.dws = serverTagDownStream;
|
|
74
66
|
data.debugId = DataStore.getDebugId();
|
|
75
67
|
data.dm = 'n/a';
|
|
76
|
-
data.v = DataStore.getCoreVersion();
|
|
77
|
-
|
|
68
|
+
data.v = DataStore.getCoreVersion();
|
|
69
|
+
// return postHttp(`${getUrlInfo().tfUrl}/${getUniqueID()}`, 'POST', data);
|
|
78
70
|
NetworkService.sendPostRequest(`${DataStore.getSSTUrl()}/${data.dws ?? 'n'}/${evtId}`, data);
|
|
79
71
|
}
|
|
80
|
-
|
|
81
72
|
static postAttrInfo(payload) {
|
|
82
73
|
return NetworkService.sendPostRequest(DataStore.getAttrInfoUrl(), payload);
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
}
|
|
86
|
-
|
|
87
76
|
_defineProperty(Reporter, "reportMap", {});
|
|
88
77
|
//# sourceMappingURL=reporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Logger","DataStore","Utils","NetworkService","Reporter","initReporter","envName","envId","deviceType","language","deviceOs","pageName","evtName","evtId","clientTagsDownStream","clientSdkVersion","initialItems","reportMap","pname","evt","bw","bwToNum","dt","dtToNum","ln","langToNum","dm","items","dws","v","tagCt","setExpectedTagCount","ct","reportParent","reportItem","item","push","length","logDbg","publishReport","data","postUrl","getUrlInfo","rptUrl","getUniqueID","debugId","getDebugId","sendPostRequest","reportError","methodMetaData","err","message","stack","undefined","version","getSdkVersion","getErrorReportUrl","postSST","serverTagDownStream","eventName","env","getCoreVersion","getSSTUrl","postAttrInfo","payload","getAttrInfoUrl"],"sources":["reporter.ts"],"sourcesContent":["import type { MapLike, Report, ReportTagItem } from './app-types';\nimport { Logger } from './logger';\nimport { DataStore } from './data-store';\nimport { Utils } from './utils';\nimport { NetworkService } from './network-service';\n\nexport class Reporter {\n static reportMap: MapLike<Report> = {};\n\n static initReporter(\n envName: string,\n envId: string,\n deviceType: string,\n language: string,\n deviceOs: string, // device os is being used as a browser proxy\n pageName: string,\n evtName: string,\n evtId: string,\n clientTagsDownStream: 'j' | 'n',\n clientSdkVersion: string,\n initialItems: ReportTagItem[] = []\n ): void {\n this.reportMap[evtId] = {\n envName,\n envId,\n pname: pageName || 'none',\n evt: evtName,\n evtId: evtId,\n bw: Utils.bwToNum(deviceOs),\n dt: Utils.dtToNum(deviceType),\n ln: Utils.langToNum(language),\n dm: 'na',\n items: initialItems || [],\n dws: clientTagsDownStream,\n v: clientSdkVersion,\n tagCt: 0,\n };\n }\n\n static setExpectedTagCount(ct: number, evtId: string): void {\n const reportParent = this.reportMap[evtId];\n if (reportParent) {\n reportParent.tagCt = ct;\n }\n }\n\n static reportItem(item: ReportTagItem, evtId: string): void {\n const reportParent = this.reportMap[evtId];\n if (reportParent) {\n reportParent.items.push(item);\n if (\n reportParent?.items?.length === reportParent?.tagCt &&\n reportParent?.items?.length > 0\n ) {\n Logger.logDbg('Hit expected tag count. Reporting');\n this.publishReport(evtId);\n }\n }\n }\n\n static publishReport(evtId: string): void {\n const data = (this.reportMap[evtId] || {}) as MapLike;\n const postUrl = `${DataStore.getUrlInfo().rptUrl}/${\n data.dws ?? 'n'\n }/${Utils.getUniqueID()}`;\n Logger.logDbg('Posting Info: ', postUrl);\n data.debugId = DataStore.getDebugId();\n NetworkService.sendPostRequest(postUrl, data);\n }\n\n static reportError(methodMetaData: string, err: any): void {\n Logger.logDbg('Reporting...', methodMetaData, err);\n const data = {\n message: err?.message,\n stack: err?.stack || undefined,\n version: DataStore.getSdkVersion(),\n };\n\n NetworkService.sendPostRequest(\n `${DataStore.getErrorReportUrl()}/${Utils.getUniqueID()}`,\n data\n );\n }\n\n static async postSST(\n data: MapLike,\n envName: string,\n envId: string,\n serverTagDownStream: 'j' | 'n',\n eventName: string,\n evtId: string\n ): Promise<void> {\n data.env = envName;\n data.envId = envId;\n data.evtName = eventName;\n data.dws = serverTagDownStream;\n data.debugId = DataStore.getDebugId();\n data.dm = 'n/a';\n data.v = DataStore.getCoreVersion();\n // return postHttp(`${getUrlInfo().tfUrl}/${getUniqueID()}`, 'POST', data);\n NetworkService.sendPostRequest(\n `${DataStore.getSSTUrl()}/${data.dws ?? 'n'}/${evtId}`,\n data\n );\n }\n\n static postAttrInfo(payload: MapLike): void {\n return NetworkService.sendPostRequest(DataStore.getAttrInfoUrl(), payload);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Logger","DataStore","Utils","NetworkService","Reporter","initReporter","envName","envId","deviceType","language","deviceOs","pageName","evtName","evtId","clientTagsDownStream","clientSdkVersion","initialItems","reportMap","pname","evt","bw","bwToNum","dt","dtToNum","ln","langToNum","dm","items","dws","v","tagCt","setExpectedTagCount","ct","reportParent","reportItem","item","_reportParent$items","_reportParent$items2","push","length","logDbg","publishReport","data","postUrl","getUrlInfo","rptUrl","getUniqueID","debugId","getDebugId","sendPostRequest","reportError","methodMetaData","err","message","stack","undefined","version","getSdkVersion","getErrorReportUrl","postSST","serverTagDownStream","eventName","env","getCoreVersion","getSSTUrl","postAttrInfo","payload","getAttrInfoUrl","_defineProperty"],"sources":["reporter.ts"],"sourcesContent":["import type { MapLike, Report, ReportTagItem } from './app-types';\nimport { Logger } from './logger';\nimport { DataStore } from './data-store';\nimport { Utils } from './utils';\nimport { NetworkService } from './network-service';\n\nexport class Reporter {\n static reportMap: MapLike<Report> = {};\n\n static initReporter(\n envName: string,\n envId: string,\n deviceType: string,\n language: string,\n deviceOs: string, // device os is being used as a browser proxy\n pageName: string,\n evtName: string,\n evtId: string,\n clientTagsDownStream: 'j' | 'n',\n clientSdkVersion: string,\n initialItems: ReportTagItem[] = []\n ): void {\n this.reportMap[evtId] = {\n envName,\n envId,\n pname: pageName || 'none',\n evt: evtName,\n evtId: evtId,\n bw: Utils.bwToNum(deviceOs),\n dt: Utils.dtToNum(deviceType),\n ln: Utils.langToNum(language),\n dm: 'na',\n items: initialItems || [],\n dws: clientTagsDownStream,\n v: clientSdkVersion,\n tagCt: 0,\n };\n }\n\n static setExpectedTagCount(ct: number, evtId: string): void {\n const reportParent = this.reportMap[evtId];\n if (reportParent) {\n reportParent.tagCt = ct;\n }\n }\n\n static reportItem(item: ReportTagItem, evtId: string): void {\n const reportParent = this.reportMap[evtId];\n if (reportParent) {\n reportParent.items.push(item);\n if (\n reportParent?.items?.length === reportParent?.tagCt &&\n reportParent?.items?.length > 0\n ) {\n Logger.logDbg('Hit expected tag count. Reporting');\n this.publishReport(evtId);\n }\n }\n }\n\n static publishReport(evtId: string): void {\n const data = (this.reportMap[evtId] || {}) as MapLike;\n const postUrl = `${DataStore.getUrlInfo().rptUrl}/${\n data.dws ?? 'n'\n }/${Utils.getUniqueID()}`;\n Logger.logDbg('Posting Info: ', postUrl);\n data.debugId = DataStore.getDebugId();\n NetworkService.sendPostRequest(postUrl, data);\n }\n\n static reportError(methodMetaData: string, err: any): void {\n Logger.logDbg('Reporting...', methodMetaData, err);\n const data = {\n message: err?.message,\n stack: err?.stack || undefined,\n version: DataStore.getSdkVersion(),\n };\n\n NetworkService.sendPostRequest(\n `${DataStore.getErrorReportUrl()}/${Utils.getUniqueID()}`,\n data\n );\n }\n\n static async postSST(\n data: MapLike,\n envName: string,\n envId: string,\n serverTagDownStream: 'j' | 'n',\n eventName: string,\n evtId: string\n ): Promise<void> {\n data.env = envName;\n data.envId = envId;\n data.evtName = eventName;\n data.dws = serverTagDownStream;\n data.debugId = DataStore.getDebugId();\n data.dm = 'n/a';\n data.v = DataStore.getCoreVersion();\n // return postHttp(`${getUrlInfo().tfUrl}/${getUniqueID()}`, 'POST', data);\n NetworkService.sendPostRequest(\n `${DataStore.getSSTUrl()}/${data.dws ?? 'n'}/${evtId}`,\n data\n );\n }\n\n static postAttrInfo(payload: MapLike): void {\n return NetworkService.sendPostRequest(DataStore.getAttrInfoUrl(), payload);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,22 +4,19 @@ import { flatten, unflatten } from 'flat';
|
|
|
4
4
|
import { EventBus } from './event-bus';
|
|
5
5
|
import { Dimensions } from 'react-native';
|
|
6
6
|
import { URL } from 'react-native-url-polyfill';
|
|
7
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
7
8
|
export class Utils {
|
|
8
9
|
static triggerEvent(eventName, payload) {
|
|
9
10
|
EventBus.triggerEvent(eventName, payload);
|
|
10
11
|
}
|
|
11
|
-
|
|
12
12
|
static calculateMsp(dim, limit) {
|
|
13
13
|
return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;
|
|
14
14
|
}
|
|
15
|
-
|
|
16
15
|
static _makeUniqueStringArray(input) {
|
|
17
16
|
return [...new Set(input)];
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
static parseQueryParamsToObject(url) {
|
|
21
19
|
const op = {};
|
|
22
|
-
|
|
23
20
|
try {
|
|
24
21
|
if (url && (url === null || url === void 0 ? void 0 : url.trim().length) > 0) {
|
|
25
22
|
const urlObject = new URL(url);
|
|
@@ -31,63 +28,51 @@ export class Utils {
|
|
|
31
28
|
// TODO: Report error
|
|
32
29
|
Logger.logError('Unable to parse query params', err);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
return op;
|
|
36
32
|
}
|
|
37
|
-
|
|
38
33
|
static isTablet() {
|
|
39
34
|
const dim = Dimensions.get('screen');
|
|
40
35
|
return dim.scale < 2 && this.calculateMsp(dim, 1000) || dim.scale >= 2 && this.calculateMsp(dim, 1900);
|
|
41
36
|
}
|
|
42
|
-
|
|
43
|
-
static sleep() {
|
|
44
|
-
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
|
|
37
|
+
static sleep(delay = 1000) {
|
|
45
38
|
return new Promise(resolve => {
|
|
46
39
|
setTimeout(() => {
|
|
47
40
|
return resolve();
|
|
48
41
|
}, delay);
|
|
49
42
|
});
|
|
50
43
|
}
|
|
44
|
+
|
|
51
45
|
/**
|
|
52
46
|
* deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};
|
|
53
47
|
* @param deviceType
|
|
54
48
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
49
|
static dtToNum(deviceType) {
|
|
58
50
|
switch (deviceType) {
|
|
59
51
|
case 'desktop':
|
|
60
52
|
return 1;
|
|
61
|
-
|
|
62
53
|
case 'mobile':
|
|
63
54
|
return 2;
|
|
64
|
-
|
|
65
55
|
case 'tablet':
|
|
66
56
|
return 3;
|
|
67
|
-
|
|
68
57
|
default:
|
|
69
58
|
return 4;
|
|
70
59
|
}
|
|
71
60
|
}
|
|
61
|
+
|
|
72
62
|
/**
|
|
73
63
|
* static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};
|
|
74
64
|
* @param browser
|
|
75
65
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
66
|
static bwToNum(browser) {
|
|
79
67
|
switch (browser) {
|
|
80
68
|
case 'ios':
|
|
81
69
|
return 101;
|
|
82
|
-
|
|
83
70
|
case 'android':
|
|
84
71
|
return 102;
|
|
85
|
-
|
|
86
72
|
default:
|
|
87
73
|
return 7;
|
|
88
74
|
}
|
|
89
75
|
}
|
|
90
|
-
|
|
91
76
|
static langToNum(language) {
|
|
92
77
|
if (language === 'en') {
|
|
93
78
|
return 1;
|
|
@@ -97,16 +82,10 @@ export class Utils {
|
|
|
97
82
|
return 3;
|
|
98
83
|
}
|
|
99
84
|
}
|
|
100
|
-
|
|
101
|
-
static mergeMaps(input) {
|
|
85
|
+
static mergeMaps(input, ...toMerge) {
|
|
102
86
|
if (!input) {
|
|
103
87
|
input = {};
|
|
104
88
|
}
|
|
105
|
-
|
|
106
|
-
for (var _len = arguments.length, toMerge = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
107
|
-
toMerge[_key - 1] = arguments[_key];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
89
|
for (const mapObject of toMerge) {
|
|
111
90
|
if (mapObject) {
|
|
112
91
|
Object.keys(mapObject).forEach(key => {
|
|
@@ -114,25 +93,21 @@ export class Utils {
|
|
|
114
93
|
});
|
|
115
94
|
}
|
|
116
95
|
}
|
|
117
|
-
|
|
118
96
|
return input;
|
|
119
97
|
}
|
|
120
|
-
|
|
121
98
|
static applyTransformationResourceParam(paramValue, tf) {
|
|
122
99
|
if (!tf || tf.length === 0) {
|
|
123
100
|
return paramValue;
|
|
124
101
|
}
|
|
125
|
-
|
|
126
102
|
if (typeof paramValue === 'undefined') {
|
|
127
103
|
return paramValue;
|
|
128
|
-
}
|
|
129
|
-
|
|
104
|
+
}
|
|
130
105
|
|
|
106
|
+
// transformers here are expected to be ordered when we get it from the server after build
|
|
131
107
|
for (let tfItem of tf) {
|
|
132
108
|
if (tfItem.nm === 'enc') {
|
|
133
109
|
// only url encode is implemented now
|
|
134
110
|
tfItem = tfItem;
|
|
135
|
-
|
|
136
111
|
if (tfItem.eTyp === 'URL_ENC') {
|
|
137
112
|
paramValue = encodeURIComponent(paramValue);
|
|
138
113
|
} else if (tfItem.eTyp === 'BASE64') {
|
|
@@ -140,9 +115,9 @@ export class Utils {
|
|
|
140
115
|
}
|
|
141
116
|
}
|
|
142
117
|
}
|
|
143
|
-
|
|
144
118
|
return paramValue;
|
|
145
119
|
}
|
|
120
|
+
|
|
146
121
|
/**
|
|
147
122
|
* Verifies if the given 'toTest' string exists in any of the input array of strings.
|
|
148
123
|
* By default, this method does a case sensitive match unless specified by the ignoreCase param.
|
|
@@ -151,18 +126,13 @@ export class Utils {
|
|
|
151
126
|
* @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.
|
|
152
127
|
* @param fullMatch
|
|
153
128
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
129
|
static isMatch(toTest, inputs, ignoreCase, fullMatch) {
|
|
157
130
|
if (!toTest) {
|
|
158
131
|
return false;
|
|
159
132
|
}
|
|
160
|
-
|
|
161
133
|
let isMatched = false;
|
|
162
|
-
|
|
163
134
|
for (let i = 0; i < inputs.length; i += 1) {
|
|
164
135
|
const _val = inputs[i];
|
|
165
|
-
|
|
166
136
|
if (_val) {
|
|
167
137
|
if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {
|
|
168
138
|
isMatched = true;
|
|
@@ -170,14 +140,11 @@ export class Utils {
|
|
|
170
140
|
}
|
|
171
141
|
}
|
|
172
142
|
}
|
|
173
|
-
|
|
174
143
|
return isMatched;
|
|
175
144
|
}
|
|
176
|
-
|
|
177
145
|
static regExpEscape(input) {
|
|
178
146
|
return input.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
179
147
|
}
|
|
180
|
-
|
|
181
148
|
static convertToRegex(input, ignoreCase, fullMatch) {
|
|
182
149
|
if (fullMatch) {
|
|
183
150
|
return new RegExp('^' + input.split(/\*+/).map(this.regExpEscape).join('.*') + '$', ignoreCase ? 'i' : '');
|
|
@@ -185,7 +152,6 @@ export class Utils {
|
|
|
185
152
|
return new RegExp(input.split(/\*+/).map(this.regExpEscape).join('.*'), ignoreCase ? 'i' : '');
|
|
186
153
|
}
|
|
187
154
|
}
|
|
188
|
-
|
|
189
155
|
static safeExecute(fn, payload) {
|
|
190
156
|
try {
|
|
191
157
|
return fn(payload);
|
|
@@ -193,27 +159,74 @@ export class Utils {
|
|
|
193
159
|
Logger.logError('Error executing function: ', err);
|
|
194
160
|
}
|
|
195
161
|
}
|
|
196
|
-
|
|
197
162
|
static getUniqueID() {
|
|
198
163
|
return Constants.LARGE_RANDOM_POOL();
|
|
199
164
|
}
|
|
200
165
|
|
|
166
|
+
/**
|
|
167
|
+
* Make HTTP GET request - React Native implementation
|
|
168
|
+
* @param url URL to fetch
|
|
169
|
+
* @returns Promise with response data
|
|
170
|
+
*/
|
|
171
|
+
static async getHttp(url) {
|
|
172
|
+
try {
|
|
173
|
+
const response = await fetch(url, {
|
|
174
|
+
method: 'GET',
|
|
175
|
+
headers: {
|
|
176
|
+
'Content-Type': 'application/json'
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
if (!response.ok) {
|
|
180
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
181
|
+
}
|
|
182
|
+
return await response.json();
|
|
183
|
+
} catch (error) {
|
|
184
|
+
Logger.logError('HTTP GET request failed:', error);
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Get value from AsyncStorage (React Native equivalent of sessionStorage)
|
|
191
|
+
* @param key Storage key
|
|
192
|
+
* @param defaultValue Default value if key not found
|
|
193
|
+
* @returns Promise with stored value or default
|
|
194
|
+
*/
|
|
195
|
+
static async getValueFromAsyncStorage(key, defaultValue) {
|
|
196
|
+
try {
|
|
197
|
+
const value = await AsyncStorage.getItem(key);
|
|
198
|
+
return value ? JSON.parse(value) : defaultValue;
|
|
199
|
+
} catch (error) {
|
|
200
|
+
Logger.logError('Error getting value from AsyncStorage:', error);
|
|
201
|
+
return defaultValue;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Set value to AsyncStorage (React Native equivalent of sessionStorage)
|
|
207
|
+
* @param key Storage key
|
|
208
|
+
* @param value Value to store
|
|
209
|
+
*/
|
|
210
|
+
static async setValueToAsyncStorage(key, value) {
|
|
211
|
+
try {
|
|
212
|
+
await AsyncStorage.setItem(key, JSON.stringify(value));
|
|
213
|
+
} catch (error) {
|
|
214
|
+
Logger.logError('Error setting value to AsyncStorage:', error);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
201
217
|
static getSimpleDebugId(prefix) {
|
|
202
218
|
return `${prefix ?? ''}${this.randomNumber(100000000, 99999999999)}`;
|
|
203
219
|
}
|
|
204
|
-
|
|
205
220
|
static randomNumber(min, max) {
|
|
206
221
|
return Math.ceil(Math.random() * (max - min) + min);
|
|
207
222
|
}
|
|
208
|
-
|
|
209
223
|
static unFlattenResourceParams(input) {
|
|
210
224
|
if (!input || input.length === 0) {
|
|
211
225
|
return {};
|
|
212
226
|
}
|
|
213
|
-
|
|
214
227
|
const transformMap = {};
|
|
215
|
-
const op = {};
|
|
216
|
-
|
|
228
|
+
const op = {};
|
|
229
|
+
// convert input into a map for quick search O(1)
|
|
217
230
|
for (const item of input) {
|
|
218
231
|
if (item.pId) {
|
|
219
232
|
if (!transformMap[item.pId]) {
|
|
@@ -226,9 +239,9 @@ export class Utils {
|
|
|
226
239
|
item.children = [];
|
|
227
240
|
transformMap[item.id] = item;
|
|
228
241
|
}
|
|
229
|
-
}
|
|
230
|
-
|
|
242
|
+
}
|
|
231
243
|
|
|
244
|
+
// sort children according to child_order inside children if they have any children
|
|
232
245
|
for (const item of Object.values(transformMap)) {
|
|
233
246
|
if (item.children && item.children.length > 0) {
|
|
234
247
|
item.children = item.children.sort(Constants.sortAscending);
|
|
@@ -237,31 +250,25 @@ export class Utils {
|
|
|
237
250
|
op[item.nm] = item;
|
|
238
251
|
}
|
|
239
252
|
}
|
|
240
|
-
|
|
241
253
|
return op;
|
|
242
254
|
}
|
|
243
|
-
|
|
244
255
|
static unFlattenObject(obj) {
|
|
245
256
|
if (!obj) {
|
|
246
257
|
return {};
|
|
247
258
|
}
|
|
248
|
-
|
|
249
259
|
return unflatten(obj, {
|
|
250
260
|
object: false,
|
|
251
261
|
delimiter: '.'
|
|
252
262
|
});
|
|
253
263
|
}
|
|
254
|
-
|
|
255
264
|
static flattenObject(obj) {
|
|
256
265
|
if (!obj) {
|
|
257
266
|
return {};
|
|
258
267
|
}
|
|
259
|
-
|
|
260
268
|
return flatten(obj, {
|
|
261
269
|
maxDepth: 5,
|
|
262
270
|
safe: true
|
|
263
271
|
});
|
|
264
272
|
}
|
|
265
|
-
|
|
266
273
|
}
|
|
267
274
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Constants","Logger","flatten","unflatten","EventBus","Dimensions","URL","Utils","triggerEvent","eventName","payload","calculateMsp","dim","limit","scale","width","height","_makeUniqueStringArray","input","Set","parseQueryParamsToObject","url","op","trim","length","urlObject","searchParams","forEach","value","name","err","logError","isTablet","get","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","toMerge","mapObject","Object","keys","key","applyTransformationResourceParam","paramValue","tf","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","getUniqueID","LARGE_RANDOM_POOL","getSimpleDebugId","prefix","randomNumber","min","max","Math","ceil","random","unFlattenResourceParams","transformMap","item","pId","children","id","push","values","sort","sortAscending","unFlattenObject","obj","object","delimiter","flattenObject","maxDepth","safe"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { flatten, unflatten } from 'flat';\nimport { EventBus } from './event-bus';\nimport { Dimensions, ScaledSize } from 'react-native';\nimport { URL } from 'react-native-url-polyfill';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static calculateMsp(dim: ScaledSize, limit: number): boolean {\n return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;\n }\n\n static _makeUniqueStringArray(input: string[]): string[] {\n return [...new Set(input)];\n }\n\n static parseQueryParamsToObject(url?: string): Record<string, any> {\n const op: Record<string, any> = {};\n try {\n if (url && url?.trim().length > 0) {\n const urlObject = new URL(url);\n urlObject.searchParams.forEach((value, name) => {\n op[name] = value;\n });\n }\n } catch (err) {\n // TODO: Report error\n Logger.logError('Unable to parse query params', err);\n }\n return op;\n }\n\n static isTablet(): boolean {\n const dim = Dimensions.get('screen');\n return (\n (dim.scale < 2 && this.calculateMsp(dim, 1000)) ||\n (dim.scale >= 2 && this.calculateMsp(dim, 1900))\n );\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n static getSimpleDebugId(prefix?: string): string {\n return `${prefix ?? ''}${this.randomNumber(100000000, 99999999999)}`;\n }\n\n static randomNumber(min: number, max: number): number {\n return Math.ceil(Math.random() * (max - min) + min);\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unFlattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return unflatten(obj, { object: false, delimiter: '.' });\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return flatten(obj, { maxDepth: 5, safe: true });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Constants","Logger","flatten","unflatten","EventBus","Dimensions","URL","AsyncStorage","Utils","triggerEvent","eventName","payload","calculateMsp","dim","limit","scale","width","height","_makeUniqueStringArray","input","Set","parseQueryParamsToObject","url","op","trim","length","urlObject","searchParams","forEach","value","name","err","logError","isTablet","get","sleep","delay","Promise","resolve","setTimeout","dtToNum","deviceType","bwToNum","browser","langToNum","language","mergeMaps","toMerge","mapObject","Object","keys","key","applyTransformationResourceParam","paramValue","tf","tfItem","nm","eTyp","encodeURIComponent","Buffer","from","toString","isMatch","toTest","inputs","ignoreCase","fullMatch","isMatched","i","_val","convertToRegex","test","regExpEscape","replace","RegExp","split","map","join","safeExecute","fn","getUniqueID","LARGE_RANDOM_POOL","getHttp","response","fetch","method","headers","ok","Error","status","json","error","getValueFromAsyncStorage","defaultValue","getItem","JSON","parse","setValueToAsyncStorage","setItem","stringify","getSimpleDebugId","prefix","randomNumber","min","max","Math","ceil","random","unFlattenResourceParams","transformMap","item","pId","children","id","push","values","sort","sortAscending","unFlattenObject","obj","object","delimiter","flattenObject","maxDepth","safe"],"sources":["utils.ts"],"sourcesContent":["import { Constants } from './constants';\nimport { Logger } from './logger';\nimport type {\n BaseResourceParamType,\n SdkParamEncodingTransformer,\n TFType,\n} from '../models/mp-client-sdk';\nimport type { MapLike } from './app-types';\nimport { flatten, unflatten } from 'flat';\nimport { EventBus } from './event-bus';\nimport { Dimensions, ScaledSize } from 'react-native';\nimport { URL } from 'react-native-url-polyfill';\nimport AsyncStorage from '@react-native-async-storage/async-storage';\n\nexport class Utils {\n static triggerEvent(eventName: string, payload: any): void {\n EventBus.triggerEvent(eventName, payload);\n }\n\n static calculateMsp(dim: ScaledSize, limit: number): boolean {\n return dim.scale * dim.width >= limit || dim.scale * dim.height >= limit;\n }\n\n static _makeUniqueStringArray(input: string[]): string[] {\n return [...new Set(input)];\n }\n\n static parseQueryParamsToObject(url?: string): Record<string, any> {\n const op: Record<string, any> = {};\n try {\n if (url && url?.trim().length > 0) {\n const urlObject = new URL(url);\n urlObject.searchParams.forEach((value, name) => {\n op[name] = value;\n });\n }\n } catch (err) {\n // TODO: Report error\n Logger.logError('Unable to parse query params', err);\n }\n return op;\n }\n\n static isTablet(): boolean {\n const dim = Dimensions.get('screen');\n return (\n (dim.scale < 2 && this.calculateMsp(dim, 1000)) ||\n (dim.scale >= 2 && this.calculateMsp(dim, 1900))\n );\n }\n\n static sleep(delay = 1000): Promise<void> {\n return new Promise((resolve: (val?: any) => void) => {\n setTimeout(() => {\n return resolve();\n }, delay);\n });\n }\n\n /**\n * deviceTypesMappings = {'1':'Desktop Web','2':'Mobile Web','3':'Tablet','4':'Other'};\n * @param deviceType\n */\n static dtToNum(deviceType: string): number {\n switch (deviceType) {\n case 'desktop':\n return 1;\n case 'mobile':\n return 2;\n case 'tablet':\n return 3;\n default:\n return 4;\n }\n }\n\n /**\n * static browserToOsMappings = {'101': 'ios','102': 'android', '7': 'Other'};\n * @param browser\n */\n static bwToNum(browser: string): number {\n switch (browser) {\n case 'ios':\n return 101;\n case 'android':\n return 102;\n default:\n return 7;\n }\n }\n\n static langToNum(language: string): number {\n if (language === 'en') {\n return 1;\n } else if (language === 'es') {\n return 2;\n } else {\n return 3;\n }\n }\n\n static mergeMaps<T>(\n input: MapLike<T>,\n ...toMerge: Array<MapLike<T>>\n ): MapLike<T> {\n if (!input) {\n input = {} as MapLike<T>;\n }\n for (const mapObject of toMerge) {\n if (mapObject) {\n Object.keys(mapObject).forEach((key: string) => {\n input[key] = mapObject[key];\n });\n }\n }\n return input;\n }\n\n static applyTransformationResourceParam(\n paramValue: string,\n tf: TFType | undefined\n ): any {\n if (!tf || tf.length === 0) {\n return paramValue;\n }\n\n if (typeof paramValue === 'undefined') {\n return paramValue;\n }\n\n // transformers here are expected to be ordered when we get it from the server after build\n for (let tfItem of tf) {\n if (tfItem.nm === 'enc') {\n // only url encode is implemented now\n tfItem = tfItem as SdkParamEncodingTransformer;\n if (tfItem.eTyp === 'URL_ENC') {\n paramValue = encodeURIComponent(paramValue);\n } else if (tfItem.eTyp === 'BASE64') {\n paramValue = Buffer.from(paramValue).toString('base64');\n }\n }\n }\n\n return paramValue;\n }\n\n /**\n * Verifies if the given 'toTest' string exists in any of the input array of strings.\n * By default, this method does a case sensitive match unless specified by the ignoreCase param.\n * @param toTest\n * @param inputs\n * @param ignoreCase - pass a value of 'true' to perform case-insensitive matching.\n * @param fullMatch\n */\n static isMatch(\n toTest: string,\n inputs: string[],\n ignoreCase: boolean,\n fullMatch: boolean\n ): boolean {\n if (!toTest) {\n return false;\n }\n let isMatched = false;\n for (let i = 0; i < inputs.length; i += 1) {\n const _val = inputs[i];\n if (_val) {\n if (this.convertToRegex(_val, ignoreCase, fullMatch).test(toTest)) {\n isMatched = true;\n break;\n }\n }\n }\n return isMatched;\n }\n\n static regExpEscape(input: string): string {\n return input.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n }\n\n static convertToRegex(\n input: string,\n ignoreCase: boolean,\n fullMatch: boolean\n ): RegExp {\n if (fullMatch) {\n return new RegExp(\n '^' + input.split(/\\*+/).map(this.regExpEscape).join('.*') + '$',\n ignoreCase ? 'i' : ''\n );\n } else {\n return new RegExp(\n input.split(/\\*+/).map(this.regExpEscape).join('.*'),\n ignoreCase ? 'i' : ''\n );\n }\n }\n\n static safeExecute(fn: (payload: any) => any, payload: any): any {\n try {\n return fn(payload);\n } catch (err) {\n Logger.logError('Error executing function: ', err);\n }\n }\n\n static getUniqueID(): string {\n return Constants.LARGE_RANDOM_POOL();\n }\n\n /**\n * Make HTTP GET request - React Native implementation\n * @param url URL to fetch\n * @returns Promise with response data\n */\n static async getHttp<T>(url: string): Promise<T> {\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n return await response.json();\n } catch (error) {\n Logger.logError('HTTP GET request failed:', error);\n throw error;\n }\n }\n\n /**\n * Get value from AsyncStorage (React Native equivalent of sessionStorage)\n * @param key Storage key\n * @param defaultValue Default value if key not found\n * @returns Promise with stored value or default\n */\n static async getValueFromAsyncStorage<T>(\n key: string,\n defaultValue: T\n ): Promise<T> {\n try {\n const value = await AsyncStorage.getItem(key);\n return value ? JSON.parse(value) : defaultValue;\n } catch (error) {\n Logger.logError('Error getting value from AsyncStorage:', error);\n return defaultValue;\n }\n }\n\n /**\n * Set value to AsyncStorage (React Native equivalent of sessionStorage)\n * @param key Storage key\n * @param value Value to store\n */\n static async setValueToAsyncStorage(key: string, value: any): Promise<void> {\n try {\n await AsyncStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n Logger.logError('Error setting value to AsyncStorage:', error);\n }\n }\n\n static getSimpleDebugId(prefix?: string): string {\n return `${prefix ?? ''}${this.randomNumber(100000000, 99999999999)}`;\n }\n\n static randomNumber(min: number, max: number): number {\n return Math.ceil(Math.random() * (max - min) + min);\n }\n\n static unFlattenResourceParams<T extends BaseResourceParamType>(\n input: T[]\n ): MapLike<T> {\n if (!input || input.length === 0) {\n return {};\n }\n\n const transformMap: MapLike<T> = {};\n const op: MapLike<T> = {};\n // convert input into a map for quick search O(1)\n for (const item of input) {\n if (item.pId) {\n if (!transformMap[item.pId]) {\n item.children = [];\n transformMap[item.id] = item;\n } else {\n transformMap[item.pId].children.push(item);\n }\n } else {\n item.children = [];\n transformMap[item.id] = item;\n }\n }\n\n // sort children according to child_order inside children if they have any children\n for (const item of Object.values(transformMap)) {\n if (item.children && item.children.length > 0) {\n item.children = item.children.sort(Constants.sortAscending);\n op[item.nm] = item;\n } else {\n op[item.nm] = item;\n }\n }\n\n return op;\n }\n\n static unFlattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return unflatten(obj, { object: false, delimiter: '.' });\n }\n\n static flattenObject(obj: any): Record<string, any> {\n if (!obj) {\n return {};\n }\n return flatten(obj, { maxDepth: 5, safe: true });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|