@mparticle/web-optimizely-kit 2.1.6 → 3.2.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.
@@ -8,11 +8,11 @@ var common = Common;
8
8
 
9
9
  var optimizelyXDefinedEvents = {
10
10
  pages: {},
11
- events: {}
11
+ events: {},
12
12
  };
13
13
 
14
14
  var optimizelyFsDefinedEvents = {
15
- events: {}
15
+ events: {},
16
16
  };
17
17
 
18
18
  var helpers = {
@@ -21,7 +21,7 @@ var helpers = {
21
21
  obj[item[keyField]] = item;
22
22
  return obj;
23
23
  }, {});
24
- return newObj;
24
+ return newObj;
25
25
  },
26
26
  loadScript: function(src, callback) {
27
27
  var script = document.createElement('script');
@@ -34,7 +34,7 @@ var helpers = {
34
34
  var identities = window.mParticle.Identity.getCurrentUser().getUserIdentities();
35
35
  var userIdentities = identities['userIdentities'];
36
36
  var userId;
37
- switch(userIdField) {
37
+ switch (userIdField) {
38
38
  // The server returns `customerId` as part of the `userIdField` setting
39
39
  // but the API for identity requies it to be cased as `customerid`
40
40
  case 'customerId':
@@ -81,24 +81,27 @@ function CommerceHandler(common) {
81
81
 
82
82
  CommerceHandler.prototype.logCommerceEvent = function(event) {
83
83
  var self = this;
84
-
84
+
85
85
  var expandedEcommerceEvents = mParticle.eCommerce.expandCommerceEvent(
86
86
  event
87
87
  );
88
88
 
89
89
  expandedEcommerceEvents.forEach(function(expandedEvent) {
90
- if (!self.common.useFullStack && optimizelyXDefinedEvents.events[expandedEvent.EventName]) {
91
-
90
+ if (
91
+ !self.common.useFullStack &&
92
+ optimizelyXDefinedEvents.events[expandedEvent.EventName]
93
+ ) {
92
94
  var optimizelyWebXEvent = {
93
95
  type: 'event',
94
96
  eventName: event.EventName,
95
- tags: {}
97
+ tags: {},
96
98
  };
97
99
  optimizelyWebXEvent.tags = expandedEvent.EventAttributes || {};
98
100
  if (
99
101
  event.EventCategory ===
100
102
  mParticle.CommerceEventType.ProductPurchase ||
101
- event.EventCategory === mParticle.CommerceEventType.ProductRefund
103
+ event.EventCategory ===
104
+ mParticle.CommerceEventType.ProductRefund
102
105
  ) {
103
106
  if (expandedEvent.EventName.indexOf('Total') > -1) {
104
107
  if (
@@ -153,7 +156,12 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
153
156
 
154
157
  // if optimizely full stack is being used
155
158
  if (self.common.useFullStack && window.optimizelyClientInstance) {
156
- if (optimizelyFsDefinedEvents.events[expandedEvent.EventName] || optimizelyFsDefinedEvents.events[event.CustomFlags['OptimizelyFullStack.EventName']]) {
159
+ if (
160
+ optimizelyFsDefinedEvents.events[expandedEvent.EventName] ||
161
+ optimizelyFsDefinedEvents.events[
162
+ event.CustomFlags['OptimizelyFullStack.EventName']
163
+ ]
164
+ ) {
157
165
  var eventKey = expandedEvent.EventName,
158
166
  userId,
159
167
  userAttributes = self.common.userAttributes,
@@ -168,7 +176,8 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
168
176
  if (
169
177
  event.EventCategory ===
170
178
  mParticle.CommerceEventType.ProductPurchase ||
171
- event.EventCategory === mParticle.CommerceEventType.ProductRefund
179
+ event.EventCategory ===
180
+ mParticle.CommerceEventType.ProductRefund
172
181
  ) {
173
182
  if (expandedEvent.EventName.indexOf('Total') > -1) {
174
183
  if (
@@ -176,7 +185,9 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
176
185
  event.CustomFlags['OptimizelyFullStack.EventName']
177
186
  ) {
178
187
  eventKey =
179
- event.CustomFlags['OptimizelyFullStack.EventName'];
188
+ event.CustomFlags[
189
+ 'OptimizelyFullStack.EventName'
190
+ ];
180
191
  } else {
181
192
  eventKey = expandedEvent.EventName;
182
193
  }
@@ -187,7 +198,8 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
187
198
  expandedEvent.EventAttributes['Total Amount']
188
199
  ) {
189
200
  eventTags.revenue =
190
- expandedEvent.EventAttributes['Total Amount'] * 100;
201
+ expandedEvent.EventAttributes['Total Amount'] *
202
+ 100;
191
203
  }
192
204
  // other individual product events should not have revenue tags
193
205
  // which are added via the expandCommerceEvent method above
@@ -197,7 +209,9 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
197
209
  event.CustomFlags['OptimizelyFullStack.EventName']
198
210
  ) {
199
211
  eventKey =
200
- event.CustomFlags['OptimizelyFullStack.EventName'];
212
+ event.CustomFlags[
213
+ 'OptimizelyFullStack.EventName'
214
+ ];
201
215
  }
202
216
  if (eventTags.revenue) {
203
217
  delete eventTags.revenue;
@@ -213,10 +227,14 @@ CommerceHandler.prototype.logCommerceEvent = function(event) {
213
227
  event.CustomFlags['OptimizelyFullStack.EventName'];
214
228
  }
215
229
  }
216
- window['optimizelyClientInstance'].track(eventKey, userId, userAttributes, eventTags);
230
+ window['optimizelyClientInstance'].track(
231
+ eventKey,
232
+ userId,
233
+ userAttributes,
234
+ eventTags
235
+ );
217
236
  }
218
237
  }
219
-
220
238
  });
221
239
  };
222
240
 
@@ -227,10 +245,13 @@ function EventHandler(common) {
227
245
  }
228
246
 
229
247
  EventHandler.prototype.logEvent = function(event) {
230
- if (!this.common.useFullStack && optimizelyXDefinedEvents.events[event.EventName]) {
248
+ if (
249
+ !this.common.useFullStack &&
250
+ optimizelyXDefinedEvents.events[event.EventName]
251
+ ) {
231
252
  var optimizelyWebXEvent = {
232
253
  type: 'event',
233
- eventName: event.EventName
254
+ eventName: event.EventName,
234
255
  };
235
256
 
236
257
  if (event.EventAttributes) {
@@ -238,13 +259,18 @@ EventHandler.prototype.logEvent = function(event) {
238
259
  }
239
260
 
240
261
  if (event.CustomFlags && event.CustomFlags['Optimizely.Value']) {
241
- optimizelyWebXEvent.tags.value = event.CustomFlags['Optimizely.Value'];
262
+ optimizelyWebXEvent.tags.value =
263
+ event.CustomFlags['Optimizely.Value'];
242
264
  }
243
265
  window['optimizely'].push(optimizelyWebXEvent);
244
266
  }
245
267
 
246
268
  // if optimizely full stack is being used
247
- if (this.common.useFullStack && window.optimizelyClientInstance && optimizelyFsDefinedEvents.events[event.EventName]) {
269
+ if (
270
+ this.common.useFullStack &&
271
+ window.optimizelyClientInstance &&
272
+ optimizelyFsDefinedEvents.events[event.EventName]
273
+ ) {
248
274
  var eventKey = event.EventName,
249
275
  userId,
250
276
  userAttributes = this.common.userAttributes,
@@ -258,21 +284,32 @@ EventHandler.prototype.logEvent = function(event) {
258
284
  eventTags = event.EventAttributes;
259
285
  }
260
286
 
261
- if (event.CustomFlags && event.CustomFlags['OptimizelyFullStack.Value']) {
287
+ if (
288
+ event.CustomFlags &&
289
+ event.CustomFlags['OptimizelyFullStack.Value']
290
+ ) {
262
291
  eventTags.value = event.CustomFlags['OptimizelyFullStack.Value'];
263
292
  }
264
293
 
265
- window['optimizelyClientInstance'].track(eventKey, userId, userAttributes, eventTags);
294
+ window['optimizelyClientInstance'].track(
295
+ eventKey,
296
+ userId,
297
+ userAttributes,
298
+ eventTags
299
+ );
266
300
  }
267
301
  };
268
302
 
269
303
  EventHandler.prototype.logPageView = function(event) {
270
304
  var self = this;
271
305
 
272
- if (!self.common.useFullStack && optimizelyXDefinedEvents.pages[event.EventName]) {
306
+ if (
307
+ !self.common.useFullStack &&
308
+ optimizelyXDefinedEvents.pages[event.EventName]
309
+ ) {
273
310
  var optimizelyWebXEvent = {
274
311
  type: 'page',
275
- pageName: event.EventName
312
+ pageName: event.EventName,
276
313
  };
277
314
 
278
315
  if (event.EventAttributes) {
@@ -340,14 +377,28 @@ IdentityHandler.prototype.onSetUserIdentity = function(
340
377
 
341
378
  var identityHandler = IdentityHandler;
342
379
 
343
- var optimizelyFsSdkUrl = 'https://unpkg.com/@optimizely/optimizely-sdk@3.5.0/dist/optimizely.browser.umd.min.js',
380
+ var optimizelyFsSdkUrl =
381
+ 'https://unpkg.com/@optimizely/optimizely-sdk@3.5.0/dist/optimizely.browser.umd.min.js',
344
382
  dataFilePrefix = 'https://cdn.optimizely.com/datafiles/',
345
383
  dataFileURLending = '.json/tag.js';
346
384
 
347
385
  var initialization = {
348
386
  name: 'Optimizely',
349
387
  moduleId: 54,
350
- initForwarder: function(settings, testMode, userAttributes, userIdentities, processEvent, eventQueue, isInitialized, common, appVersion, appName, customFlags, clientId) {
388
+ initForwarder: function(
389
+ settings,
390
+ testMode,
391
+ userAttributes,
392
+ userIdentities,
393
+ processEvent,
394
+ eventQueue,
395
+ isInitialized,
396
+ common,
397
+ appVersion,
398
+ appName,
399
+ customFlags,
400
+ clientId
401
+ ) {
351
402
  common.useFullStack = settings.useFullStack === 'True';
352
403
 
353
404
  if (!testMode) {
@@ -355,8 +406,14 @@ var initialization = {
355
406
  var optimizelyScript = document.createElement('script');
356
407
  optimizelyScript.type = 'text/javascript';
357
408
  optimizelyScript.async = true;
358
- optimizelyScript.src = 'https://cdn.optimizely.com/js/' + settings.projectId + '.js';
359
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(optimizelyScript);
409
+ optimizelyScript.src =
410
+ 'https://cdn.optimizely.com/js/' +
411
+ settings.projectId +
412
+ '.js';
413
+ (
414
+ document.getElementsByTagName('head')[0] ||
415
+ document.getElementsByTagName('body')[0]
416
+ ).appendChild(optimizelyScript);
360
417
  optimizelyScript.onload = function() {
361
418
 
362
419
  loadWebXEventsAndPages();
@@ -377,37 +434,38 @@ var initialization = {
377
434
  common.userAttributes = userAttributes;
378
435
  var errorHandler = function() {};
379
436
 
380
- if (customFlags && customFlags['OptimizelyFullStack.ErrorHandler']) {
381
- errorHandler = customFlags['OptimizelyFullStack.ErrorHandler'];
437
+ if (
438
+ customFlags &&
439
+ customFlags['OptimizelyFullStack.ErrorHandler']
440
+ ) {
441
+ errorHandler =
442
+ customFlags['OptimizelyFullStack.ErrorHandler'];
382
443
  }
383
444
 
384
445
  var instantiateFSClient = function() {
385
- window.optimizelyClientInstance = window.optimizelySdk.createInstance({
386
- datafile: window.optimizelyDatafile,
387
- errorHandler: {handleError: errorHandler}
388
- });
446
+ window.optimizelyClientInstance = window.optimizelySdk.createInstance(
447
+ {
448
+ datafile: window.optimizelyDatafile,
449
+ errorHandler: { handleError: errorHandler },
450
+ }
451
+ );
389
452
 
390
- window.optimizelyClientInstance.onReady().then(function(){
453
+ window.optimizelyClientInstance.onReady().then(function() {
391
454
  loadFullStackEvents();
392
- });
455
+ });
393
456
  };
394
457
 
395
- helpers_1.loadScript(optimizelyFsSdkUrl,
396
- function() {
397
- helpers_1.loadScript(
398
- dataFilePrefix +
399
- settings.projectId +
400
- dataFileURLending,
401
- instantiateFSClient
402
- );
403
- }
404
- );
405
-
458
+ helpers_1.loadScript(optimizelyFsSdkUrl, function() {
459
+ helpers_1.loadScript(
460
+ dataFilePrefix + settings.projectId + dataFileURLending,
461
+ instantiateFSClient
462
+ );
463
+ });
406
464
  } else {
407
465
  common.userIdField = settings.userIdField;
408
466
  common.userAttributes = userAttributes;
409
467
  loadFullStackEvents();
410
- }
468
+ }
411
469
  } else {
412
470
  if (!common.useFullStack) {
413
471
  loadWebXEventsAndPages();
@@ -418,7 +476,7 @@ var initialization = {
418
476
  loadFullStackEvents();
419
477
  }
420
478
  }
421
- }
479
+ },
422
480
  };
423
481
 
424
482
  function loadWebXEventsAndPages() {
@@ -444,11 +502,13 @@ function loadWebXEventsAndPages() {
444
502
 
445
503
  function loadFullStackEvents() {
446
504
  var fullStackData,
447
- fullStackEvents = {};
448
-
505
+ fullStackEvents = {};
449
506
 
450
507
  if (window.optimizelyDatafile) {
451
- fullStackData = helpers_1.arrayToObject(window.optimizelyDatafile.events, 'id');
508
+ fullStackData = helpers_1.arrayToObject(
509
+ window.optimizelyDatafile.events,
510
+ 'id'
511
+ );
452
512
 
453
513
  for (var event in fullStackData) {
454
514
  fullStackEvents[fullStackData[event].key] = 1;
@@ -461,12 +521,8 @@ function loadFullStackEvents() {
461
521
  var initialization_1 = initialization;
462
522
 
463
523
  var sessionHandler = {
464
- onSessionStart: function(event) {
465
-
466
- },
467
- onSessionEnd: function(event) {
468
-
469
- }
524
+ onSessionStart: function(event) {},
525
+ onSessionEnd: function(event) {},
470
526
  };
471
527
 
472
528
  var sessionHandler_1 = sessionHandler;
@@ -481,7 +537,7 @@ UserAttributeHandler.prototype.onRemoveUserAttribute = function(key) {
481
537
  attribute[key] = null;
482
538
  window['optimizely'].push({
483
539
  type: 'user',
484
- attributes: attribute
540
+ attributes: attribute,
485
541
  });
486
542
  }
487
543
  if (this.common.useFullStack && window.optimizelyClientInstance) {
@@ -496,13 +552,13 @@ UserAttributeHandler.prototype.onSetUserAttribute = function(key, value) {
496
552
  attribute[key] = value;
497
553
  window['optimizely'].push({
498
554
  type: 'user',
499
- attributes: attribute
555
+ attributes: attribute,
500
556
  });
501
557
  }
502
558
  if (this.common.useFullStack && window.optimizelyClientInstance) {
503
559
  var self = this;
504
560
  self.common.userAttributes[key] = value;
505
- }
561
+ }
506
562
  };
507
563
 
508
564
  var userAttributeHandler = UserAttributeHandler;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mparticle/web-optimizely-kit",
3
- "version": "2.1.6",
3
+ "version": "3.2.0",
4
4
  "author": "mParticle Developers <developers@mparticle.com> (https://www.mparticle.com)",
5
5
  "description": "mParticle integration sdk for Optimizely",
6
6
  "main": "dist/OptimizelyKit.common.js",
@@ -8,7 +8,11 @@
8
8
  "files": [
9
9
  "dist/OptimizelyKit.common.js"
10
10
  ],
11
- "repository": "https://github.com/mparticle-integrations/mparticle-javascript-integration-optimizely",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/mParticle/mparticle-web-sdk",
14
+ "directory": "kits/optimizely"
15
+ },
12
16
  "scripts": {
13
17
  "test": "npm run testKarma",
14
18
  "testKarma": "node test/boilerplate/test-karma.js",
@@ -37,7 +41,7 @@
37
41
  },
38
42
  "dependencies": {
39
43
  "isobject": "^4.0.0",
40
- "@mparticle/web-sdk": "^2.11.1"
44
+ "@mparticle/web-sdk": "^3.0.0"
41
45
  },
42
46
  "license": "Apache-2.0"
43
47
  }