@mparticle/web-sdk 2.12.9 → 2.14.2

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.
@@ -137,15 +137,22 @@ function mParticle() {
137
137
  this.endSession = function() {
138
138
  self.getInstance().endSession();
139
139
  };
140
- this.logBaseEvent = function(event) {
141
- self.getInstance().logBaseEvent(event);
142
- };
143
- this.logEvent = function(eventName, eventType, eventInfo, customFlags) {
140
+ this.logBaseEvent = function(event, eventOptions) {
141
+ self.getInstance().logBaseEvent(event, eventOptions);
142
+ };
143
+ this.logEvent = function(
144
+ eventName,
145
+ eventType,
146
+ eventInfo,
147
+ customFlags,
148
+ eventOptions
149
+ ) {
144
150
  self.getInstance().logEvent(
145
151
  eventName,
146
152
  eventType,
147
153
  eventInfo,
148
- customFlags
154
+ customFlags,
155
+ eventOptions
149
156
  );
150
157
  };
151
158
  this.logError = function(error, attrs) {
@@ -157,8 +164,13 @@ function mParticle() {
157
164
  this.logForm = function(selector, eventName, eventType, eventInfo) {
158
165
  self.getInstance().logForm(selector, eventName, eventType, eventInfo);
159
166
  };
160
- this.logPageView = function(eventName, attrs, customFlags) {
161
- self.getInstance().logPageView(eventName, attrs, customFlags);
167
+ this.logPageView = function(eventName, attrs, customFlags, eventOptions) {
168
+ self.getInstance().logPageView(
169
+ eventName,
170
+ attrs,
171
+ customFlags,
172
+ eventOptions
173
+ );
162
174
  };
163
175
  this.upload = function() {
164
176
  self.getInstance().upload();
@@ -248,14 +260,16 @@ function mParticle() {
248
260
  product,
249
261
  attrs,
250
262
  customFlags,
251
- transactionAttributes
263
+ transactionAttributes,
264
+ eventOptions
252
265
  ) {
253
266
  self.getInstance().eCommerce.logProductAction(
254
267
  productActionType,
255
268
  product,
256
269
  attrs,
257
270
  customFlags,
258
- transactionAttributes
271
+ transactionAttributes,
272
+ eventOptions
259
273
  );
260
274
  },
261
275
  logPurchase: function(
@@ -273,19 +287,27 @@ function mParticle() {
273
287
  customFlags
274
288
  );
275
289
  },
276
- logPromotion: function(type, promotion, attrs, customFlags) {
290
+ logPromotion: function(
291
+ type,
292
+ promotion,
293
+ attrs,
294
+ customFlags,
295
+ eventOptions
296
+ ) {
277
297
  self.getInstance().eCommerce.logPromotion(
278
298
  type,
279
299
  promotion,
280
300
  attrs,
281
- customFlags
301
+ customFlags,
302
+ eventOptions
282
303
  );
283
304
  },
284
- logImpression: function(impression, attrs, customFlags) {
305
+ logImpression: function(impression, attrs, customFlags, eventOptions) {
285
306
  self.getInstance().eCommerce.logImpression(
286
307
  impression,
287
308
  attrs,
288
- customFlags
309
+ customFlags,
310
+ eventOptions
289
311
  );
290
312
  },
291
313
  logRefund: function(
@@ -34,6 +34,7 @@ export interface SDKEvent {
34
34
  UserAttributeChanges?: SDKUserAttributeChangeData;
35
35
  CurrencyCode: string;
36
36
  DataPlan?: SDKDataPlan;
37
+ LaunchReferral?: string;
37
38
  }
38
39
 
39
40
  export interface SDKGeoLocation {
@@ -14,7 +14,6 @@ import {
14
14
  import * as EventsApi from '@mparticle/event-models';
15
15
  import Types from './types';
16
16
 
17
-
18
17
  export function convertEvents(
19
18
  mpid: string,
20
19
  sdkEvents: SDKEvent[],
@@ -436,6 +435,7 @@ export function convertAST(
436
435
  .applicationInitialized,
437
436
  is_first_run: sdkEvent.IsFirstRun,
438
437
  is_upgrade: false,
438
+ launch_referral: sdkEvent.LaunchReferral,
439
439
  };
440
440
  astEventData = Object.assign(astEventData, commonEventData);
441
441
  return {
@@ -159,6 +159,7 @@ export default function ServerModel(mpInstance) {
159
159
  this.createEventObject = function(event, user) {
160
160
  var uploadObject = {};
161
161
  var eventObject = {};
162
+
162
163
  var optOut =
163
164
  event.messageType === Types.MessageType.OptOut
164
165
  ? !mpInstance._Store.isEnabled
@@ -217,6 +218,7 @@ export default function ServerModel(mpInstance) {
217
218
 
218
219
  if (eventObject.EventDataType === MessageType.AppStateTransition) {
219
220
  eventObject.IsFirstRun = mpInstance._Store.isFirstRun;
221
+ eventObject.LaunchReferral = window.location.href || null;
220
222
  }
221
223
 
222
224
  eventObject.CurrencyCode = mpInstance._Store.currencyCode;
@@ -286,7 +288,7 @@ export default function ServerModel(mpInstance) {
286
288
  dto.fr = event.IsFirstRun;
287
289
  dto.iu = false;
288
290
  dto.at = ApplicationTransitionType.AppInit;
289
- dto.lr = window.location.href || null;
291
+ dto.lr = event.LaunchReferral;
290
292
  dto.attrs = null;
291
293
  }
292
294
 
package/CHANGELOG.md DELETED
@@ -1,535 +0,0 @@
1
- ## [2.12.9](https://github.com/mParticle/mparticle-web-sdk/compare/v2.12.8...v2.12.9) (2021-06-23)
2
-
3
-
4
- ### Bug Fixes
5
-
6
- * Update esm/common rollup.config to prevent regenerator runtime issue ([2ff362f](https://github.com/mParticle/mparticle-web-sdk/commit/2ff362f5243659cdefd4863609c1c93d5e76fc66))
7
-
8
- ## Releases
9
-
10
- --
11
-
12
- #### 2020-05-06
13
-
14
- - Any new workspaces with JS API Keys will now batch all web events in order to save bandwidth and improve site performance. To read more about web batching see here - https://docs.mparticle.com/developers/sdk/web/getting-started#upload-interval--batching. This does not require any updates to the SDK itself. No implementation changes are required. If you have a workspace created prior to 2020-05-06 and are not yet on batching, please contact your Customer Success Manager.
15
-
16
- #### 2.12.8 - 2021-04-06
17
-
18
- - Bugfix: Rename pageViewFilters to screenAttributeFilters
19
- Enables screen attributes to be filtered out on downstream forwarders
20
-
21
- #### 2.12.7 - 2021-03-25
22
-
23
- - Bugfix - Add product impressions to kit blocking
24
- - Feat - Consent-based cookie-sync
25
- - Bugfix - Add source message id
26
-
27
- #### 2.12.5 - 2021-02-17
28
-
29
- - Bugfix - Use addEventListeners for life cycle events
30
- - Bugfix - Set setCurrencyCode on eCommerce object
31
-
32
- #### 2.12.4 - 2021-02-09
33
-
34
- - Refactor - Import version from package.json
35
- - Format code styling
36
-
37
- #### 2.12.3 - 2021-01-20
38
-
39
- - Bugfix - update is first run to booleans
40
- - Bugfix - Sanitize ecommerce amounts to numbers
41
- - Bugfix - Set sessionStartDate to 0 instead of null
42
- - Bugfix - Error events - Set to null if stack trace is undefined; Add context to error events
43
-
44
- #### 2.12.2 - 2020-11-12
45
-
46
- - Bugfix - Fix data plan options API
47
- - Bugfix - Add try/catch to cookie searching
48
-
49
- #### 2.12.1 - 2020-11-11
50
-
51
- - Fix Typo in logging
52
- - Update identity mappings
53
- - Bugfix - Add check for window for node environments
54
-
55
- #### 2.12.0 - 2020-10-29
56
-
57
- - Feat - Implement client side kit blocking
58
- You can now use Data Master to block unplanned events and attributes from being sent to client side forwarders.
59
-
60
- #### 2.11.16 - 2020-10-26
61
-
62
- - Remove eventsApiModels.ts in favor of js-events npm module
63
- - Feat - Add event and product context to sanitized attributes
64
- - Add logic to handle Media Events as Custom Events
65
- - Add additional tests for app name change in config
66
-
67
- #### 2.11.15 - 2020-06-30
68
-
69
- - Feat - Add transactionAttributes to logProductAction method signature
70
-
71
- #### 2.11.14 - 2020-06-24
72
-
73
- - Bugfix - Make tagging batches with appropriate UI more robust
74
-
75
- #### 2.11.13 - 2020-06-17
76
-
77
- - Bugfix - prevent null CCPA consent on events v3 endpoint
78
-
79
- #### 2.11.12 - 2020-06-03
80
-
81
- - Bugfix - logProductActions of purchase/refund conform to logPurchase/logRefund
82
-
83
- #### 2.11.11 - 2020-05-12
84
-
85
- - Feat - Add Other5-Other10, mobile/phone number identity types
86
-
87
- #### 2.11.10 - 2020-04-23
88
-
89
- - Bugfix - Fix v3 events endpoint location payload
90
-
91
- #### 2.11.9 - 2020-04-02
92
-
93
- - Bugfix - Send specific user along with UIC and UAC Events
94
- - Dependabot - Bump Acorn version
95
-
96
- #### 2.11.8 - 2020-03-16
97
-
98
- - Don't set empty TransactionAttribute fields
99
-
100
- #### 2.11.7 - 2020-03-04
101
-
102
- - Deprecate removeCCPAState in favor of removeCCPAConsentState
103
- - Feat - XHR Support for Batching
104
-
105
- #### 2.11.6 - 2020-02-26
106
-
107
- - Migrate network tests from local Mockhttprequest to Sinon
108
- - Bugfix - Flush eventQueue after identity callback
109
-
110
- #### 2.11.5 - 2020-02-12
111
-
112
- - Update node version for Travis
113
- - Api docs update
114
- - Bugfix - Enable configuration of v1 endpoints
115
-
116
- #### 2.11.4 - 2020-02-06
117
-
118
- - Feat - Modify reset API for public consumption
119
- - Feat - Import @mparticle/event-models to replace eventApiModels
120
- - Bugfix - Typo & keep persistence checking consistent
121
-
122
- #### 2.11.3 - 2020-02-04
123
-
124
- - Update package.json (Add mparticle.js to dist/ for partner kit testing)
125
-
126
- #### 2.11.2 - 2020-02-01
127
-
128
- - Feat - Add support for custom v3 URL
129
-
130
- #### 2.11.1 - 2020-01-29
131
-
132
- - Bugfix - resolve when browser has disabled localStorage
133
- - Bugfix - Do not log deprecated warnings when logging purchases
134
- - Feat - Add support for Data Planning to V2 Events upload
135
-
136
- #### 2.11.0 - 2020-01-16
137
-
138
- - Feat - Add CCPA support
139
- - Add batch creator class for ESLint data planning plugin
140
-
141
- #### 2.10.2 - 2019-12-19
142
-
143
- - Feat - Pass appName to config
144
-
145
- #### 2.10.1 - 2019-12-11
146
-
147
- - Bugfix - Do not populate data plan context when plan id is null
148
-
149
- #### 2.10.0 - 2019-11-13
150
-
151
- - Feat - Implement Multiple Instances
152
-
153
- #### 2.9.16 - 2019-11-06
154
-
155
- - Bugfix - Parse string in shouldEnableBatching
156
-
157
- #### 2.9.15 - 2019-11-06
158
-
159
- - Deprecate Cart - The mParticle functionality will be removed in a future release, please
160
- - Bugfix - Self hosting namespaces storage with workspaceToken again
161
-
162
- #### 2.9.14 - 2019-10-31
163
-
164
- - Remove mparticle.js from root
165
- - Feat - Stub logBaseEvent in snippet, add snippet comments
166
- - Feat - Implement User Identity Change & User Attribute Change Events
167
- - Allow MediaEvents and Media PageEvents to be supported
168
- - Happy Halloween! :jack_o_lantern:
169
-
170
- #### 2.9.13 - 2019-10-09
171
-
172
- - Refactor codebase with Prettier
173
- - Bugfix - Resolve Sonarqube code smells
174
- - Modify Rollup builds
175
-
176
- #### 2.9.12 - 2019-10-02
177
-
178
- - Support event batching and beacon API; provide new Events API v3 endpoint which supports batching
179
- - Implement Typescript and Babel compilation
180
- - Feat - Enable configuration of config endpoint
181
-
182
- #### 2.9.11 - 2019-09-26
183
-
184
- - Feat - Add Base Event functionality to core for future child SDK use
185
- - Update .eslintrc, fix urls in yuidoc comments
186
-
187
- #### 2.9.10 - 2019-08-21
188
-
189
- - Add integration tests for bundlers (webpack, browserify, rollup)
190
- - Bugfix - Make getCartProducts more robust
191
- - Bugfix - Fix immediate logging for self hosting
192
- - Feat - add session start to server DTO
193
- - Bugfix - update modify old_value
194
-
195
- #### 2.9.9 - 2019-08-07
196
-
197
- - Bugfix - Check all event attributes when forwarding rules are set
198
-
199
- #### 2.9.8 - 2019-08-07
200
-
201
- - Migrate to ES6 Modules; Replace Browserify with Rollup
202
-
203
- #### 2.9.7 - 2019-07-16
204
-
205
- - Bugfix - noHttpCoverage code properly sent to callback
206
- - Bugfix - Configure forwarders prior to identify callback
207
-
208
- #### 2.9.6 - 2019-07-08
209
-
210
- - Bugfix - Alias requests respect isDevelopmentMode setting
211
-
212
- #### 2.9.5 - 2019-07-01
213
-
214
- - Bugfix - set isInitialized in both web and webview contexts
215
- - Feature: log error custom attributes
216
- - Update build parameters
217
-
218
- #### 2.9.4 - 2019-06-25
219
-
220
- - Modify files for self hosting
221
- - Add a /config endpoint
222
- - Accept 2nd argument to init for configuration
223
- - Bugfix - Initialize Logger before Store
224
-
225
- #### 2.9.3 - 2019-06-20
226
-
227
- - Bugfix - retain mParticle.isIOS on script load
228
-
229
- #### 2.9.2 - 2019-06-10
230
-
231
- - Bugfix - respect mParticle.isIOS setting
232
-
233
- #### 2.9.1 - 2019-06-05
234
-
235
- - Make endpoints configurable
236
-
237
- #### 2.9.0 - 2019-05-28
238
-
239
- - Implement User Aliasing
240
- - Bugfixes - Helpers.debug & set isFirstRun to false after app inits for the first time
241
-
242
- #### 2.8.12 - 2019-05-08
243
-
244
- - Implement firstSeen and lastSeen fields for MParticleUser
245
- - Sort MParticleUser Array returned by getUsers() by lastSeenTime
246
- - Bugfix - Callback validation & correct warning message
247
- - Add getPreviousUser() to Identity callbacks
248
-
249
- #### 2.8.11 - 2019-04-24
250
-
251
- - Refactor config into a class
252
- - Implement Logger
253
- - Fix consent object validation and remove unneeded null check
254
-
255
- #### 2.8.10 - 2019-04-10
256
-
257
- - Prefer modules over public mParticle methods
258
-
259
- #### 2.8.9 - 2019-03-13
260
-
261
- - Simplify / remove migrations
262
-
263
- #### 2.8.8 - 2019-02-20
264
-
265
- - Bugfix - Native SDK - prioritize equality of requiredWebviewBridgeName
266
-
267
- #### 2.8.7 - 2019-02-14
268
-
269
- - Update native bridge logic
270
-
271
- #### 2.8.6 - 2019-02-14
272
-
273
- - Namespace localstorage with workspace token
274
-
275
- #### 2.8.5 - 2019-02-13
276
-
277
- - Add callback to location tracking method
278
-
279
- #### 2.8.4 - 2019-02-04
280
-
281
- - Set session attributes when using native bridge
282
-
283
- #### 2.8.3 - 2019-01-30
284
-
285
- - Bugfix - Check for LocalStorage before migrating
286
-
287
- #### 2.8.2 - 2019-01-25
288
-
289
- - Bugfix - Guard against undefined result from crypto API
290
- - Bugfix - Call identify if cookies exist, but there is no current user
291
-
292
- #### 2.8.1 - 2019-01-23
293
-
294
- - Add identityMethod to onUserIdentified function definition
295
- - Bugfix - return 0 instead of null for hashing boolean false
296
-
297
- #### 2.8.0 - 2018-12-19
298
-
299
- - Fix autogen yuidocs comments
300
- - Add get/setIntegrationAttribute APIs
301
- - Add snippet tests
302
- - Add boolean validation for isDevelopmentMode
303
-
304
- #### 2.7.8 - 2018-10-24
305
-
306
- - Initialize forwarders based on logged in status
307
-
308
- #### 2.7.7 - 2018-10-15
309
-
310
- - Bugfix - remove cart item uses proper product persistence
311
- - Bugfix - Guard against corrupt local storage/cookies
312
-
313
- #### 2.7.6 - 2018-10-10
314
-
315
- - Bugfix - guard against null cookie
316
-
317
- #### 2.7.5 - 2018-09-19
318
-
319
- - Add getUser method to identity callback results
320
- - Only call initial identify and callback once
321
- - Bugfix - logLevel
322
-
323
- #### 2.7.4 - 2018-09-14
324
-
325
- - Bugfix - Remove corrupt localStorage
326
- - Bugfix - Fix encoding LS for special characters
327
-
328
- #### 2.7.3 - 2018-08-30
329
-
330
- - Bugfix - Always init forwarder when no UA filters are present
331
-
332
- #### 2.7.2 - 2018-08-22
333
-
334
- - Re-initialize forwarders after userAttr changes
335
- - Capitalize all letters in sessionId
336
-
337
- #### 2.7.1 - 2018-08-10
338
-
339
- - Bugfix - Create copy of MP.eventQueue to iterate through
340
-
341
- #### 2.7.0 - 2018-08-08
342
-
343
- - Add setUserAttributes to public API
344
-
345
- #### 2.6.4 - 2018-08-01
346
-
347
- - Implement forwarderUploader module, feaure flags, batch forwarder stats
348
- - Bugfix - Change ProductActionTypes to be consistent with mobile/S2S
349
-
350
- #### 2.6.3 - 2018-07-18
351
-
352
- - Implement customFlags per public API method
353
-
354
- #### 2.6.2 - 2018-07-16
355
-
356
- - Update growl and hoek for testing dependencies
357
- - Bugfix - sendEventToForwarder fix
358
-
359
- #### 2.6.1 - 2018-07-11
360
-
361
- - Default forceHttps to true
362
- - Add apiClient module
363
-
364
- #### 2.6.0 - 2018-06-20
365
-
366
- - Implement Consent forwarding rules
367
-
368
- #### 2.5.1 - 2018-06-11
369
-
370
- - Bugfix - Fix filterUserAttributeValues break/continue
371
-
372
- #### 2.5.0 - 2018-06-06
373
-
374
- - Expose getUser and getUsers to public Identity API
375
- - Bugfix - send newUser to forwarder on user identified
376
- - Add filtered user object
377
-
378
- #### 2.4.1 - 2018-05-09
379
-
380
- - Bugfix - encode event value before sending to iOS
381
- - Update package-lock.json to pass CI tests
382
-
383
- #### 2.4.0 - 2018-04-26
384
-
385
- - Implement Consent State
386
- - Expose Identitiy HTTP constants to the public
387
-
388
- #### 2.3.3 - 2018-04-19
389
-
390
- - Bugfix - filter user attributes to forwarders on init
391
-
392
- #### 2.3.2 - 2018-04-04
393
-
394
- - Bugfix - filter user attributes to forwarders on init
395
-
396
- #### 2.3.1 - 2018-04-02
397
-
398
- - Bugfix - Compare strings when filtering event/user attribute values
399
-
400
- #### 2.3.0 - 2018-03-28
401
-
402
- - Bugfix - Prioritize client entered config over persistence
403
- - Bugfix - Correct capitalization of clearing eCommerce carts
404
- - Add Identify to public API
405
-
406
- #### 2.2.6 - 2018-03-07
407
-
408
- - Add forceHttps as a config option
409
- - Fix linting
410
- - Migrate all mpids between cookies and LS when useCookieStorage changes
411
-
412
- #### 2.2.5 - 2018-03-01
413
-
414
- - Bugfix - add shouldUseNativeSdk logic to fix null user and null path values
415
-
416
- #### 2.2.4 - 2018-02-28
417
-
418
- - Add config option for maxCookieSize
419
- - Refactor useNativeSdk and prevent identify calls when in webview
420
-
421
- #### 2.2.3 - 2018-02-23
422
-
423
- - Update logic for useNativeSdk and isIOS
424
-
425
- #### 2.2.2 - 2018-02-20
426
-
427
- - Pass identityApiData to native SDKs
428
-
429
- #### 2.2.1 - 2018-02-14
430
-
431
- - Queue events when mpid is null or 0
432
- - Stub primary methods for pre-loading SDK invocation
433
- - Add eventSubscriptionId to forwarder contract
434
- - Update readme to remove adchemix
435
-
436
- #### 2.2.0 - 2018-01-31
437
-
438
- - Remove product bags
439
-
440
- #### 2.1.5 - 2018-01-25
441
-
442
- - Update version endpoint for /Forwarding
443
-
444
- #### 2.1.4 - 2018-01-10
445
-
446
- - Ensure customerid is always the first identity being set
447
- - Auto generate API docs
448
- - Add migration for base64 encoded products
449
- - Finalize Other IDs
450
- - Bugfix - Adjust logic for session end event
451
-
452
- #### 2.1.3 - 2017-12-20
453
-
454
- - Remove logLTVIncrease
455
- - Return an empty array when there are no cart products
456
- - Bugfix - Adjust arguments for applyToForwarders
457
-
458
- #### 2.1.2 - 2017-12-14
459
-
460
- - Add setForwarderOnUserIdentified, return null currentUser when MPID is null
461
-
462
- #### 2.1.1 - 2017-12-13
463
-
464
- - Modularize tests for readability and robustness
465
- - Adjust Application State Transition, include initial location
466
- - Bugfix - Add CheckoutOption to ProductAction-related switch statements
467
- - Add parseStringOrNumber function
468
- - Sanitize additional attributes
469
- - Correct order of internal createProducts arguments
470
- - Refactor logPageView
471
- - Require explicit UIWebview binding
472
-
473
- #### 2.1.0 - 2017-11-30
474
-
475
- - Migrate persistence to v4
476
- - Add onUserAlias callback
477
-
478
- #### 2.0.13 - 2017-11-08
479
-
480
- - Add support for filtering user attribute values
481
- - Update persistence after a modify call
482
-
483
- #### 2.0.12 - 2017-10-23
484
-
485
- - Complete modularization of SDK
486
-
487
- #### 2.0.11 - 2017-10-19
488
-
489
- - Modularize Types, Constants, Helpers, DTO, Identity, Ecommerce
490
- - Reorganize tests
491
-
492
- #### 2.0.10 - 2017-10-17
493
-
494
- - Bugfix - Execute useLocalStorage method
495
-
496
- #### 1.14.1 - 2017-06-22
497
-
498
- - Fixes for cookie syncing. Properly cookie sync when MPID changes, and only perform a cookie sync when debug modes for defined pixel and mParticle match
499
- - Store productBags and cartProducts to cookies, with config option to change number of products allowed in each (config.maxProducts = 20 by default)
500
- - Prevent setUserIdentity from accepting booleans
501
- - Clean up code - Add additional validations, convert remaining == to ===
502
-
503
- #### 1.14.0 - 2017-06-15
504
-
505
- - Support for cookie-syncing. Cookie-syncing enables the optional collection of 3rd-party IDs to enable enhanced audience sharing with advertising platforms such as DoubleClick, Adobe, and AppNexus
506
- - Add application state transition to mParticle initialization
507
-
508
- #### 1.13.1 - 2017-05-25
509
-
510
- - Fix for removing duplicate user identities where ID is missing, allow ID to be `undefined`
511
- - Fix for creating CGID on initial load
512
-
513
- #### 1.13.0 - 2017-05-18
514
-
515
- - Send sessionLength to server when sessionEnd is called.
516
-
517
- #### 1.12.0 - 2017-05-11
518
-
519
- - Add deviceId, and deviceId retrieval via `mParticle.getDeviceId()`.
520
-
521
- #### 1.11.0 - 2017-04-27
522
-
523
- - Add new session management.
524
- - Fixed a bug where the same sessionId may be associated with events over several days.
525
-
526
- #### 1.10.0 - 2017-04-20
527
-
528
- - Added config option for useCookieStorage to allow use of either cookies or localStorage. By default, localStorage is used (useCookieStorage = false). If localStorage not available, reverts to cookie use.
529
- - Fixed a bug where `forwarders` contained a mix of both initialized and uninitialized forwarders. `forwarders` now only contains initialized forwarders.
530
-
531
- #### 1.9.0 - 2017-04-17
532
-
533
- - Fixed bug where calling setUserIdentity with a similar type added another identity, rather than replacing the identity.
534
- - Calling setUserIdentity with `id = null` and valid type will remove the user identity of that type.
535
- - Include CommerceEvent custom attributions in expansion; makes a copy of the original commerce event rather than referencing it, which would mutate it.