@mparticle/web-intercom-kit 2.0.0-rc.2 → 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.
- package/dist/IntercomEventForwarder.common.js +206 -165
- package/package.json +39 -25
|
@@ -36,220 +36,261 @@ var isobject$1 = getCjsExportFromNamespace(isobject);
|
|
|
36
36
|
// See the License for the specific language governing permissions and
|
|
37
37
|
// limitations under the License.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var name = 'IntercomEventForwarder',
|
|
42
|
-
moduleId = 18,
|
|
43
|
-
MessageType = {
|
|
44
|
-
SessionStart: 1,
|
|
45
|
-
SessionEnd : 2,
|
|
46
|
-
PageView : 3,
|
|
47
|
-
PageEvent : 4,
|
|
48
|
-
CrashReport : 5,
|
|
49
|
-
OptOut : 6,
|
|
50
|
-
Commerce : 16
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
function createObject(key, value) {
|
|
54
|
-
var obj = {};
|
|
55
|
-
obj[key] = value;
|
|
56
|
-
|
|
57
|
-
return obj;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var constructor = function () {
|
|
61
|
-
var self = this,
|
|
62
|
-
isInitialized = false,
|
|
63
|
-
forwarderSettings = null,
|
|
64
|
-
reportingService = null;
|
|
65
39
|
|
|
66
40
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
41
|
+
var name = 'IntercomEventForwarder',
|
|
42
|
+
moduleId = 18,
|
|
43
|
+
MessageType = {
|
|
44
|
+
SessionStart: 1,
|
|
45
|
+
SessionEnd: 2,
|
|
46
|
+
PageView: 3,
|
|
47
|
+
PageEvent: 4,
|
|
48
|
+
CrashReport: 5,
|
|
49
|
+
OptOut: 6,
|
|
50
|
+
Commerce: 16,
|
|
51
|
+
};
|
|
73
52
|
|
|
74
|
-
|
|
53
|
+
function createObject(key, value) {
|
|
54
|
+
var obj = {};
|
|
55
|
+
obj[key] = value;
|
|
75
56
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
|
|
79
|
-
}
|
|
57
|
+
return obj;
|
|
58
|
+
}
|
|
80
59
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
60
|
+
var constructor = function() {
|
|
61
|
+
var self = this,
|
|
62
|
+
isInitialized = false,
|
|
63
|
+
forwarderSettings = null,
|
|
64
|
+
reportingService = null;
|
|
65
|
+
|
|
66
|
+
self.name = name;
|
|
67
|
+
|
|
68
|
+
function initForwarder(settings, service, testMode) {
|
|
69
|
+
forwarderSettings = settings;
|
|
70
|
+
reportingService = service;
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
if (!testMode) {
|
|
74
|
+
(function() {
|
|
75
|
+
var w = window;
|
|
76
|
+
var ic = w.Intercom;
|
|
77
|
+
if (typeof ic === 'function') {
|
|
78
|
+
ic('reattach_activator');
|
|
79
|
+
ic('update');
|
|
80
|
+
} else {
|
|
81
|
+
var d = document;
|
|
82
|
+
var i = function() {
|
|
83
|
+
i.c(arguments);
|
|
84
|
+
};
|
|
85
|
+
i.q = [];
|
|
86
|
+
i.c = function(args) {
|
|
87
|
+
i.q.push(args);
|
|
88
|
+
};
|
|
89
|
+
w.Intercom = i;
|
|
90
|
+
function l() {
|
|
91
|
+
var s = d.createElement('script');
|
|
92
|
+
s.type = 'text/javascript';
|
|
93
|
+
s.async = true;
|
|
94
|
+
s.src =
|
|
95
|
+
'https://widget.intercom.io/widget/{app_id}';
|
|
96
|
+
var x = d.getElementsByTagName('script')[0];
|
|
97
|
+
x.parentNode.insertBefore(s, x);
|
|
98
|
+
}
|
|
99
|
+
if (w.attachEvent) {
|
|
100
|
+
w.attachEvent('onload', l);
|
|
101
|
+
} else {
|
|
102
|
+
w.addEventListener('load', l, false);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
})();
|
|
87
106
|
}
|
|
88
|
-
}
|
|
89
107
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
bootIntercom();
|
|
109
|
+
isInitialized = true;
|
|
110
|
+
return 'Successfully initialized: ' + name;
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return "Can't initialize forwarder: " + name + ': ' + e;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
95
115
|
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
function bootIntercom() {
|
|
117
|
+
var appid = forwarderSettings.appid;
|
|
118
|
+
if (!appid) {
|
|
119
|
+
return "Can't boot forwarder: " + name + ', appid is not defined';
|
|
120
|
+
}
|
|
98
121
|
|
|
99
|
-
|
|
122
|
+
var obj = createObject('app_id', appid),
|
|
123
|
+
widgetId = forwarderSettings.widgetid || '#IntercomDefaultWidget';
|
|
100
124
|
|
|
125
|
+
obj.widget = createObject('activator', widgetId);
|
|
101
126
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return 'Can\'t initialize forwarder: ' + name + ': ' + e;
|
|
107
|
-
}
|
|
108
|
-
return 'Successfully booted: ' + name;
|
|
127
|
+
try {
|
|
128
|
+
window.Intercom('boot', obj);
|
|
129
|
+
} catch (e) {
|
|
130
|
+
return "Can't initialize forwarder: " + name + ': ' + e;
|
|
109
131
|
}
|
|
132
|
+
return 'Successfully booted: ' + name;
|
|
133
|
+
}
|
|
110
134
|
|
|
135
|
+
function processEvent(event) {
|
|
136
|
+
var reportEvent = false;
|
|
111
137
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (!isInitialized) {
|
|
116
|
-
return 'Can\'t send to forwarder: ' + name + ', not initialized';
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
try {
|
|
120
|
-
if (event.EventDataType == MessageType.PageEvent ||
|
|
121
|
-
event.EventDataType == MessageType.PageView) {
|
|
138
|
+
if (!isInitialized) {
|
|
139
|
+
return "Can't send to forwarder: " + name + ', not initialized';
|
|
140
|
+
}
|
|
122
141
|
|
|
123
|
-
|
|
124
|
-
|
|
142
|
+
try {
|
|
143
|
+
if (
|
|
144
|
+
event.EventDataType == MessageType.PageEvent ||
|
|
145
|
+
event.EventDataType == MessageType.PageView
|
|
146
|
+
) {
|
|
147
|
+
reportEvent = true;
|
|
148
|
+
logEvent(event);
|
|
125
149
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
150
|
+
if (reportingService) {
|
|
151
|
+
reportingService(self, event);
|
|
129
152
|
}
|
|
130
|
-
return 'Successfully sent to forwarder: ' + name;
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
return 'Can\'t send to forwarder: ' + name + ' ' + e;
|
|
134
153
|
}
|
|
154
|
+
return 'Successfully sent to forwarder: ' + name;
|
|
155
|
+
} catch (e) {
|
|
156
|
+
return "Can't send to forwarder: " + name + ' ' + e;
|
|
135
157
|
}
|
|
158
|
+
}
|
|
136
159
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
160
|
+
function logEvent(event) {
|
|
161
|
+
if (!isInitialized) {
|
|
162
|
+
return (
|
|
163
|
+
"Can't log event on forwarder: " + name + ', not initialized'
|
|
164
|
+
);
|
|
165
|
+
}
|
|
141
166
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
167
|
+
if (!event.EventName) {
|
|
168
|
+
return "Can't log event on forwarder: " + name + ', no event name';
|
|
169
|
+
}
|
|
145
170
|
|
|
146
|
-
|
|
171
|
+
event.EventAttributes = event.EventAttributes || {};
|
|
147
172
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return 'Successfully logged event from forwarder: ' + name;
|
|
173
|
+
try {
|
|
174
|
+
window.Intercom(
|
|
175
|
+
'trackEvent',
|
|
176
|
+
event.EventName,
|
|
177
|
+
event.EventAttributes
|
|
178
|
+
);
|
|
179
|
+
} catch (e) {
|
|
180
|
+
return "Can't log event on forwarder: " + name + ': ' + e;
|
|
157
181
|
}
|
|
182
|
+
return 'Successfully logged event from forwarder: ' + name;
|
|
183
|
+
}
|
|
158
184
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
185
|
+
function setUserAttribute(key, value) {
|
|
186
|
+
if (!isInitialized) {
|
|
187
|
+
return (
|
|
188
|
+
"Can't set user identity on forwarder: " +
|
|
189
|
+
name +
|
|
190
|
+
', not initialized'
|
|
191
|
+
);
|
|
192
|
+
}
|
|
163
193
|
|
|
164
|
-
|
|
194
|
+
var attr = createObject(key, value);
|
|
165
195
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return 'Can\'t set user attribute on forwarder: ' + name + ': ' + e;
|
|
171
|
-
}
|
|
172
|
-
return 'Successfully called update on forwarder: ' + name;
|
|
196
|
+
try {
|
|
197
|
+
window.Intercom('update', attr);
|
|
198
|
+
} catch (e) {
|
|
199
|
+
return "Can't set user attribute on forwarder: " + name + ': ' + e;
|
|
173
200
|
}
|
|
201
|
+
return 'Successfully called update on forwarder: ' + name;
|
|
202
|
+
}
|
|
174
203
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
204
|
+
function setUserIdentity(id, type) {
|
|
205
|
+
if (!isInitialized) {
|
|
206
|
+
return (
|
|
207
|
+
"Can't call setUserIdentity on forwarder: " +
|
|
208
|
+
name +
|
|
209
|
+
', not initialized'
|
|
210
|
+
);
|
|
211
|
+
}
|
|
180
212
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
213
|
+
if (!id) {
|
|
214
|
+
return (
|
|
215
|
+
"Can't call setUserIdentity on forwarder: " +
|
|
216
|
+
name +
|
|
217
|
+
', without id or email'
|
|
218
|
+
);
|
|
219
|
+
}
|
|
184
220
|
|
|
185
|
-
|
|
221
|
+
var key = '';
|
|
186
222
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
223
|
+
if (window.mParticle.IdentityType.CustomerId === type) {
|
|
224
|
+
key = 'user_id';
|
|
225
|
+
} else if (window.mParticle.IdentityType.Email === type) {
|
|
226
|
+
key = 'email';
|
|
227
|
+
} else {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
196
230
|
|
|
197
|
-
|
|
231
|
+
var obj = createObject(key, id);
|
|
198
232
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return 'Can\'t call identify on forwarder: ' + name + ': ' + e;
|
|
204
|
-
}
|
|
205
|
-
return 'Successfully called update on forwarder: ' + name;
|
|
233
|
+
try {
|
|
234
|
+
window.Intercom('update', obj);
|
|
235
|
+
} catch (e) {
|
|
236
|
+
return "Can't call identify on forwarder: " + name + ': ' + e;
|
|
206
237
|
}
|
|
238
|
+
return 'Successfully called update on forwarder: ' + name;
|
|
239
|
+
}
|
|
207
240
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
241
|
+
this.init = initForwarder;
|
|
242
|
+
this.process = processEvent;
|
|
243
|
+
this.setUserAttribute = setUserAttribute;
|
|
244
|
+
this.setUserIdentity = setUserIdentity;
|
|
245
|
+
};
|
|
213
246
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
247
|
+
function getId() {
|
|
248
|
+
return moduleId;
|
|
249
|
+
}
|
|
217
250
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
251
|
+
function register(config) {
|
|
252
|
+
if (!config) {
|
|
253
|
+
console.log(
|
|
254
|
+
'You must pass a config object to register the kit ' + name
|
|
255
|
+
);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
223
258
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
259
|
+
if (!isobject$1(config)) {
|
|
260
|
+
console.log(
|
|
261
|
+
"'config' must be an object. You passed in a " + typeof config
|
|
262
|
+
);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
228
265
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
window.console.log('Successfully registered ' + name + ' to your mParticle configuration');
|
|
266
|
+
if (isobject$1(config.kits)) {
|
|
267
|
+
config.kits[name] = {
|
|
268
|
+
constructor: constructor,
|
|
269
|
+
};
|
|
270
|
+
} else {
|
|
271
|
+
config.kits = {};
|
|
272
|
+
config.kits[name] = {
|
|
273
|
+
constructor: constructor,
|
|
274
|
+
};
|
|
240
275
|
}
|
|
276
|
+
console.log(
|
|
277
|
+
'Successfully registered ' + name + ' to your mParticle configuration'
|
|
278
|
+
);
|
|
279
|
+
}
|
|
241
280
|
|
|
281
|
+
if (typeof window !== 'undefined') {
|
|
242
282
|
if (window && window.mParticle && window.mParticle.addForwarder) {
|
|
243
283
|
window.mParticle.addForwarder({
|
|
244
284
|
name: name,
|
|
245
285
|
constructor: constructor,
|
|
246
|
-
getId: getId
|
|
286
|
+
getId: getId,
|
|
247
287
|
});
|
|
248
288
|
}
|
|
289
|
+
}
|
|
249
290
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
291
|
+
var IntercomEventForwarder = {
|
|
292
|
+
register: register,
|
|
293
|
+
};
|
|
253
294
|
var IntercomEventForwarder_1 = IntercomEventForwarder.register;
|
|
254
295
|
|
|
255
296
|
exports.default = IntercomEventForwarder;
|
package/package.json
CHANGED
|
@@ -1,27 +1,41 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
"name": "@mparticle/web-intercom-kit",
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"author": "mParticle Developers <developers@mparticle.com> (https://www.mparticle.com)",
|
|
5
|
+
"description": "mParticle integration sdk for Intercom",
|
|
6
|
+
"main": "dist/IntercomEventForwarder.common.js",
|
|
7
|
+
"browser": "dist/IntercomEventForwarder.common.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/IntercomEventForwarder.common.js"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/mParticle/mparticle-web-sdk",
|
|
14
|
+
"directory": "kits/intercom"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "rollup --config rollup.config.js",
|
|
18
|
+
"watch": "rollup --config rollup.config.js -w",
|
|
19
|
+
"test": "node test/boilerplate/test-karma.js"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"chai": "^4.2.0",
|
|
23
|
+
"karma": "^5.1.0",
|
|
24
|
+
"karma-chai": "^0.1.0",
|
|
25
|
+
"karma-chrome-launcher": "^3.1.0",
|
|
26
|
+
"karma-firefox-launcher": "^1.3.0",
|
|
27
|
+
"karma-mocha": "^2.0.1",
|
|
28
|
+
"mocha": "^2.5.3",
|
|
29
|
+
"rollup": "^1.13.1",
|
|
30
|
+
"rollup-plugin-commonjs": "^10.0.0",
|
|
31
|
+
"rollup-plugin-node-resolve": "^5.0.1",
|
|
32
|
+
"shelljs": "^0.8.4",
|
|
33
|
+
"should": "^7.1.0",
|
|
34
|
+
"watchify": "^3.11.1"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"isobject": "^4.0.0",
|
|
38
|
+
"@mparticle/web-sdk": "^3.0.0"
|
|
39
|
+
},
|
|
40
|
+
"license": "Apache-2.0"
|
|
27
41
|
}
|