@mparticle/web-mixpanel-kit 2.1.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -46,7 +46,7 @@ var renderSnippet = function() {
|
|
|
46
46
|
/* eslint-enable */
|
|
47
47
|
|
|
48
48
|
// eslint-disable-next-line no-redeclare
|
|
49
|
-
var constructor = function
|
|
49
|
+
var constructor = function() {
|
|
50
50
|
var self = this,
|
|
51
51
|
isInitialized = false,
|
|
52
52
|
forwarderSettings = null,
|
|
@@ -64,13 +64,74 @@ var constructor = function () {
|
|
|
64
64
|
if (!testMode) {
|
|
65
65
|
renderSnippet();
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
// Build init options object
|
|
68
|
+
var initOptions = {
|
|
69
|
+
api_host: forwarderSettings.baseUrl,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Session Replay boolean settings
|
|
73
|
+
var boolSettings = [
|
|
74
|
+
{ key: 'recordHeatmapData', mappedKey: 'record_heatmap_data' },
|
|
75
|
+
{ key: 'autocapture', mappedKey: 'autocapture' },
|
|
76
|
+
{ key: 'recordCanvas', mappedKey: 'record_canvas' },
|
|
77
|
+
];
|
|
78
|
+
|
|
79
|
+
// Session Replay numeric settings
|
|
80
|
+
var numericSettings = [
|
|
69
81
|
{
|
|
70
|
-
|
|
82
|
+
key: 'recordSessionsPercent',
|
|
83
|
+
mappedKey: 'record_sessions_percent',
|
|
71
84
|
},
|
|
72
|
-
|
|
73
|
-
|
|
85
|
+
{
|
|
86
|
+
key: 'recordIdleTimeoutMs',
|
|
87
|
+
mappedKey: 'record_idle_timeout_ms',
|
|
88
|
+
},
|
|
89
|
+
{ key: 'recordMaxMs', mappedKey: 'record_max_ms' },
|
|
90
|
+
{ key: 'recordMinMs', mappedKey: 'record_min_ms' },
|
|
91
|
+
];
|
|
92
|
+
|
|
93
|
+
// Session Replay string settings
|
|
94
|
+
var stringSettings = [
|
|
95
|
+
{
|
|
96
|
+
key: 'recordMaskTextSelector',
|
|
97
|
+
mappedKey: 'record_mask_text_selector',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
key: 'recordBlockSelector',
|
|
101
|
+
mappedKey: 'record_block_selector',
|
|
102
|
+
},
|
|
103
|
+
{ key: 'recordBlockClass', mappedKey: 'record_block_class' },
|
|
104
|
+
{
|
|
105
|
+
key: 'recordMaskTextClass',
|
|
106
|
+
mappedKey: 'record_mask_text_class',
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
|
|
110
|
+
// Process boolean settings
|
|
111
|
+
boolSettings.forEach(function(setting) {
|
|
112
|
+
if (forwarderSettings[setting.key] != null) {
|
|
113
|
+
initOptions[setting.mappedKey] =
|
|
114
|
+
forwarderSettings[setting.key] === 'True';
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// Process numeric settings
|
|
119
|
+
numericSettings.forEach(function(setting) {
|
|
120
|
+
var numericValue = parseIntSafe(forwarderSettings[setting.key]);
|
|
121
|
+
if (numericValue !== undefined) {
|
|
122
|
+
initOptions[setting.mappedKey] = numericValue;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
// Process string settings
|
|
127
|
+
stringSettings.forEach(function(setting) {
|
|
128
|
+
if (forwarderSettings[setting.key]) {
|
|
129
|
+
initOptions[setting.mappedKey] =
|
|
130
|
+
forwarderSettings[setting.key];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
mixpanel.init(settings.token, initOptions, 'mparticle');
|
|
74
135
|
|
|
75
136
|
isInitialized = true;
|
|
76
137
|
|
|
@@ -92,9 +153,8 @@ var constructor = function () {
|
|
|
92
153
|
reportEvent = true;
|
|
93
154
|
logEvent(event);
|
|
94
155
|
} else if (event.EventDataType == MessageType.PageView) {
|
|
95
|
-
event.EventName = 'Viewed ' + event.EventName;
|
|
96
156
|
reportEvent = true;
|
|
97
|
-
|
|
157
|
+
logPageView(event);
|
|
98
158
|
} else if (
|
|
99
159
|
event.EventDataType == MessageType.Commerce &&
|
|
100
160
|
event.ProductAction &&
|
|
@@ -196,7 +256,7 @@ var constructor = function () {
|
|
|
196
256
|
// When mParticle identifies a user, because the user might
|
|
197
257
|
// actually be anonymous, we only want to send an
|
|
198
258
|
// identify request to Mixpanel if the user is
|
|
199
|
-
// actually known. If a user has any user identities, they are
|
|
259
|
+
// actually known. If a user has any user identities, they are
|
|
200
260
|
// considered to be "known" users.
|
|
201
261
|
var userIdentities = getUserIdentities(user);
|
|
202
262
|
|
|
@@ -299,6 +359,17 @@ var constructor = function () {
|
|
|
299
359
|
}
|
|
300
360
|
}
|
|
301
361
|
|
|
362
|
+
function logPageView(event) {
|
|
363
|
+
var eventName = 'Viewed ' + event.EventName;
|
|
364
|
+
event.EventAttributes = event.EventAttributes || {};
|
|
365
|
+
|
|
366
|
+
try {
|
|
367
|
+
mixpanel.mparticle.track(eventName, event.EventAttributes);
|
|
368
|
+
} catch (e) {
|
|
369
|
+
return 'Cannot log event on forwarder: ' + name + ': ' + e;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
302
373
|
function logEvent(event) {
|
|
303
374
|
event.EventAttributes = event.EventAttributes || {};
|
|
304
375
|
|
|
@@ -386,6 +457,11 @@ function isObject(val) {
|
|
|
386
457
|
);
|
|
387
458
|
}
|
|
388
459
|
|
|
460
|
+
function parseIntSafe(value) {
|
|
461
|
+
var n = parseInt(value, 10);
|
|
462
|
+
return isNaN(n) ? undefined : n;
|
|
463
|
+
}
|
|
464
|
+
|
|
389
465
|
if (typeof window !== 'undefined') {
|
|
390
466
|
if (window && window.mParticle && window.mParticle.addForwarder) {
|
|
391
467
|
window.mParticle.addForwarder({
|
package/package.json
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mparticle/web-mixpanel-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"author": "mParticle Developers <developers@mparticle.com> (https://www.mparticle.com)",
|
|
5
5
|
"description": "mParticle integration sdk for Mixpanel",
|
|
6
6
|
"browser": "dist/MixpanelEventForwarder.common.js",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist/MixpanelEventForwarder.common.js"
|
|
9
9
|
],
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public",
|
|
12
|
+
"provenance": true,
|
|
13
|
+
"registry": "https://registry.npmjs.org"
|
|
14
|
+
},
|
|
10
15
|
"main": "dist/MixpanelEventForwarder.common.js",
|
|
11
|
-
"repository":
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/mParticle/mparticle-web-sdk",
|
|
19
|
+
"directory": "kits/mixpanel/mixpanel-2"
|
|
20
|
+
},
|
|
12
21
|
"scripts": {
|
|
13
22
|
"build": "rollup --config rollup.config.js",
|
|
14
23
|
"build:test": "rollup --config rollup.test.config.js",
|
|
@@ -17,10 +26,12 @@
|
|
|
17
26
|
"test:debug": "npm run build && npm run build:test && DEBUG=true karma start test/karma.config.js"
|
|
18
27
|
},
|
|
19
28
|
"devDependencies": {
|
|
20
|
-
"@mparticle/web-sdk": "^
|
|
21
|
-
"@semantic-release/changelog": "^
|
|
22
|
-
"@semantic-release/exec": "^
|
|
23
|
-
"@semantic-release/git": "^
|
|
29
|
+
"@mparticle/web-sdk": "^3.0.0",
|
|
30
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
31
|
+
"@semantic-release/exec": "^6.0.3",
|
|
32
|
+
"@semantic-release/git": "^10.0.1",
|
|
33
|
+
"@semantic-release/npm": "^13.1.2",
|
|
34
|
+
"semantic-release": "^24.2.0",
|
|
24
35
|
"chai": "^4.2.0",
|
|
25
36
|
"eslint-config-prettier": "9.0.0",
|
|
26
37
|
"eslint-plugin-prettier": "5.0.1",
|
|
@@ -38,5 +49,6 @@
|
|
|
38
49
|
"should": "^7.1.0",
|
|
39
50
|
"watchify": "^3.11.1"
|
|
40
51
|
},
|
|
41
|
-
"license": "Apache-2.0"
|
|
52
|
+
"license": "Apache-2.0",
|
|
53
|
+
"homepage": "https://github.com/mParticle/mparticle-web-sdk/tree/main/kits/mixpanel/mixpanel-2#readme"
|
|
42
54
|
}
|