@microsoft/1ds-post-js 3.1.11 → 3.2.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.
Files changed (56) hide show
  1. package/README.md +2 -2
  2. package/bundle/{ms.post-3.1.11.gbl.js → ms.post-3.2.2.gbl.js} +1278 -548
  3. package/bundle/ms.post-3.2.2.gbl.js.map +1 -0
  4. package/bundle/ms.post-3.2.2.gbl.min.js +7 -0
  5. package/bundle/ms.post-3.2.2.gbl.min.js.map +1 -0
  6. package/bundle/ms.post-3.2.2.integrity.json +46 -0
  7. package/bundle/{ms.post-3.1.11.js → ms.post-3.2.2.js} +1278 -548
  8. package/bundle/ms.post-3.2.2.js.map +1 -0
  9. package/bundle/ms.post-3.2.2.min.js +7 -0
  10. package/bundle/ms.post-3.2.2.min.js.map +1 -0
  11. package/bundle/ms.post.gbl.js +1277 -547
  12. package/bundle/ms.post.gbl.js.map +1 -1
  13. package/bundle/ms.post.gbl.min.js +2 -2
  14. package/bundle/ms.post.gbl.min.js.map +1 -1
  15. package/bundle/ms.post.integrity.json +17 -17
  16. package/bundle/ms.post.js +1277 -547
  17. package/bundle/ms.post.js.map +1 -1
  18. package/bundle/ms.post.min.js +2 -2
  19. package/bundle/ms.post.min.js.map +1 -1
  20. package/dist/ms.post.js +212 -128
  21. package/dist/ms.post.js.map +1 -1
  22. package/dist/ms.post.min.js +2 -2
  23. package/dist/ms.post.min.js.map +1 -1
  24. package/dist-esm/src/BatchNotificationActions.js +1 -1
  25. package/dist-esm/src/ClockSkewManager.js +1 -1
  26. package/dist-esm/src/Constants.js +1 -1
  27. package/dist-esm/src/DataModels.js +1 -1
  28. package/dist-esm/src/EventBatch.js +1 -1
  29. package/dist-esm/src/HttpManager.d.ts +2 -1
  30. package/dist-esm/src/HttpManager.js +45 -40
  31. package/dist-esm/src/HttpManager.js.map +1 -1
  32. package/dist-esm/src/Index.js +1 -1
  33. package/dist-esm/src/KillSwitch.js +1 -1
  34. package/dist-esm/src/PostChannel.d.ts +2 -9
  35. package/dist-esm/src/PostChannel.js +151 -97
  36. package/dist-esm/src/PostChannel.js.map +1 -1
  37. package/dist-esm/src/RetryPolicy.d.ts +20 -25
  38. package/dist-esm/src/RetryPolicy.js +35 -44
  39. package/dist-esm/src/RetryPolicy.js.map +1 -1
  40. package/dist-esm/src/Serializer.js +1 -1
  41. package/dist-esm/src/TimeoutOverrideWrapper.d.ts +18 -0
  42. package/dist-esm/src/TimeoutOverrideWrapper.js +28 -0
  43. package/dist-esm/src/TimeoutOverrideWrapper.js.map +1 -0
  44. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  45. package/package.json +3 -3
  46. package/src/HttpManager.ts +48 -51
  47. package/src/PostChannel.ts +186 -119
  48. package/src/RetryPolicy.ts +33 -38
  49. package/src/TimeoutOverrideWrapper.ts +29 -0
  50. package/bundle/ms.post-3.1.11.gbl.js.map +0 -1
  51. package/bundle/ms.post-3.1.11.gbl.min.js +0 -7
  52. package/bundle/ms.post-3.1.11.gbl.min.js.map +0 -1
  53. package/bundle/ms.post-3.1.11.integrity.json +0 -46
  54. package/bundle/ms.post-3.1.11.js.map +0 -1
  55. package/bundle/ms.post-3.1.11.min.js +0 -7
  56. package/bundle/ms.post-3.1.11.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * 1DS JS SDK POST plugin, 3.1.11
2
+ * 1DS JS SDK POST plugin, 3.2.2
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -59,18 +59,6 @@
59
59
 
60
60
  (getGlobal() || {})["Symbol"];
61
61
  (getGlobal() || {})["Reflect"];
62
- var __objAssignFnImpl = function (t) {
63
- for (var s, i = 1, n = arguments.length; i < n; i++) {
64
- s = arguments[i];
65
- for (var p in s) {
66
- if (ObjProto[strShimHasOwnProperty].call(s, p)) {
67
- t[p] = s[p];
68
- }
69
- }
70
- }
71
- return t;
72
- };
73
- var __assignFn = ObjAssign || __objAssignFnImpl;
74
62
  var extendStaticsFn = function (d, b) {
75
63
  extendStaticsFn = ObjClass["setPrototypeOf"] ||
76
64
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
@@ -92,17 +80,8 @@
92
80
  d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
93
81
  }
94
82
 
95
- var EventsDiscardedReason = {
96
- Unknown: 0,
97
- NonRetryableStatus: 1,
98
- InvalidEvent: 2,
99
- SizeLimitExceeded: 3,
100
- KillSwitch: 4,
101
- QueueFull: 5
102
- };
103
-
104
83
  /*!
105
- * Microsoft Dynamic Proto Utility, 1.1.4
84
+ * Microsoft Dynamic Proto Utility, 1.1.6
106
85
  * Copyright (c) Microsoft and contributors. All rights reserved.
107
86
  */
108
87
  var Constructor = 'constructor';
@@ -116,11 +95,14 @@
116
95
  var DynAllowInstChkTag = DynInstChkTag;
117
96
  var DynProtoDefaultOptions = '_dfOpts';
118
97
  var UnknownValue = '_unknown_';
119
- var str__Proto = "__proto__";
98
+ var str__Proto$1 = "__proto__";
99
+ var DynProtoBaseProto = "_dyn" + str__Proto$1;
100
+ var DynProtoCurrent = "_dynInstProto";
120
101
  var strUseBaseInst = 'useBaseInst';
121
102
  var strSetInstFuncs = 'setInstFuncs';
122
103
  var Obj = Object;
123
- var _objGetPrototypeOf = Obj["getPrototypeOf"];
104
+ var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
105
+ var _objGetOwnProps = Obj["getOwnPropertyNames"];
124
106
  var _dynamicNames = 0;
125
107
  function _hasOwnProperty(obj, prop) {
126
108
  return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
@@ -131,23 +113,26 @@
131
113
  function _isObjectArrayOrFunctionPrototype(target) {
132
114
  return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
133
115
  }
134
- function _getObjProto(target) {
116
+ function _getObjProto$1(target) {
117
+ var newProto;
135
118
  if (target) {
136
- if (_objGetPrototypeOf) {
137
- return _objGetPrototypeOf(target);
119
+ if (_objGetPrototypeOf$1) {
120
+ return _objGetPrototypeOf$1(target);
138
121
  }
139
- var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
140
- if (newProto) {
141
- return newProto;
122
+ var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
123
+ newProto = target[DynProtoBaseProto] || curProto;
124
+ if (!_hasOwnProperty(target, DynProtoBaseProto)) {
125
+ delete target[DynProtoCurrent];
126
+ newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
127
+ target[DynProtoCurrent] = curProto;
142
128
  }
143
129
  }
144
- return null;
130
+ return newProto;
145
131
  }
146
132
  function _forEachProp(target, func) {
147
133
  var props = [];
148
- var getOwnProps = Obj["getOwnPropertyNames"];
149
- if (getOwnProps) {
150
- props = getOwnProps(target);
134
+ if (_objGetOwnProps) {
135
+ props = _objGetOwnProps(target);
151
136
  }
152
137
  else {
153
138
  for (var name_1 in target) {
@@ -202,16 +187,16 @@
202
187
  _forEachProp(instFuncs, function (name) {
203
188
  baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
204
189
  });
205
- var baseProto = _getObjProto(classProto);
190
+ var baseProto = _getObjProto$1(classProto);
206
191
  var visited = [];
207
192
  while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
208
193
  _forEachProp(baseProto, function (name) {
209
- if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {
194
+ if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
210
195
  baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
211
196
  }
212
197
  });
213
198
  visited.push(baseProto);
214
- baseProto = _getObjProto(baseProto);
199
+ baseProto = _getObjProto$1(baseProto);
215
200
  }
216
201
  return baseFuncs;
217
202
  }
@@ -225,7 +210,7 @@
225
210
  }
226
211
  if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
227
212
  var canAddInst = !_hasOwnProperty(target, funcName);
228
- var objProto = _getObjProto(target);
213
+ var objProto = _getObjProto$1(target);
229
214
  var visited = [];
230
215
  while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
231
216
  var protoFunc = objProto[funcName];
@@ -234,7 +219,7 @@
234
219
  break;
235
220
  }
236
221
  visited.push(objProto);
237
- objProto = _getObjProto(objProto);
222
+ objProto = _getObjProto$1(objProto);
238
223
  }
239
224
  try {
240
225
  if (canAddInst) {
@@ -252,7 +237,7 @@
252
237
  function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
253
238
  var protoFunc = proto[funcName];
254
239
  if (protoFunc === currentDynProtoProxy) {
255
- protoFunc = _getObjProto(proto)[funcName];
240
+ protoFunc = _getObjProto$1(proto)[funcName];
256
241
  }
257
242
  if (typeof protoFunc !== strFunction) {
258
243
  _throwTypeError("[" + funcName + "] is not a " + strFunction);
@@ -286,18 +271,19 @@
286
271
  }
287
272
  }
288
273
  function _checkPrototype(classProto, thisTarget) {
289
- if (_objGetPrototypeOf) {
274
+ if (_objGetPrototypeOf$1) {
290
275
  var visited = [];
291
- var thisProto = _getObjProto(thisTarget);
276
+ var thisProto = _getObjProto$1(thisTarget);
292
277
  while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
293
278
  if (thisProto === classProto) {
294
279
  return true;
295
280
  }
296
281
  visited.push(thisProto);
297
- thisProto = _getObjProto(thisProto);
282
+ thisProto = _getObjProto$1(thisProto);
298
283
  }
284
+ return false;
299
285
  }
300
- return false;
286
+ return true;
301
287
  }
302
288
  function _getObjName(target, unknownValue) {
303
289
  if (_hasOwnProperty(target, Prototype)) {
@@ -330,7 +316,7 @@
330
316
  var instFuncs = _getInstanceFuncs(target);
331
317
  var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
332
318
  delegateFunc(target, baseFuncs);
333
- var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];
319
+ var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
334
320
  if (setInstanceFunc && options) {
335
321
  setInstanceFunc = !!options[strSetInstFuncs];
336
322
  }
@@ -342,104 +328,23 @@
342
328
  };
343
329
  dynamicProto[DynProtoDefaultOptions] = perfDefaults;
344
330
 
345
- var LoggingSeverity;
346
- (function (LoggingSeverity) {
347
- LoggingSeverity[LoggingSeverity["CRITICAL"] = 1] = "CRITICAL";
348
- LoggingSeverity[LoggingSeverity["WARNING"] = 2] = "WARNING";
349
- })(LoggingSeverity || (LoggingSeverity = {}));
350
- var _InternalMessageId = {
351
- BrowserDoesNotSupportLocalStorage: 0,
352
- BrowserCannotReadLocalStorage: 1,
353
- BrowserCannotReadSessionStorage: 2,
354
- BrowserCannotWriteLocalStorage: 3,
355
- BrowserCannotWriteSessionStorage: 4,
356
- BrowserFailedRemovalFromLocalStorage: 5,
357
- BrowserFailedRemovalFromSessionStorage: 6,
358
- CannotSendEmptyTelemetry: 7,
359
- ClientPerformanceMathError: 8,
360
- ErrorParsingAISessionCookie: 9,
361
- ErrorPVCalc: 10,
362
- ExceptionWhileLoggingError: 11,
363
- FailedAddingTelemetryToBuffer: 12,
364
- FailedMonitorAjaxAbort: 13,
365
- FailedMonitorAjaxDur: 14,
366
- FailedMonitorAjaxOpen: 15,
367
- FailedMonitorAjaxRSC: 16,
368
- FailedMonitorAjaxSend: 17,
369
- FailedMonitorAjaxGetCorrelationHeader: 18,
370
- FailedToAddHandlerForOnBeforeUnload: 19,
371
- FailedToSendQueuedTelemetry: 20,
372
- FailedToReportDataLoss: 21,
373
- FlushFailed: 22,
374
- MessageLimitPerPVExceeded: 23,
375
- MissingRequiredFieldSpecification: 24,
376
- NavigationTimingNotSupported: 25,
377
- OnError: 26,
378
- SessionRenewalDateIsZero: 27,
379
- SenderNotInitialized: 28,
380
- StartTrackEventFailed: 29,
381
- StopTrackEventFailed: 30,
382
- StartTrackFailed: 31,
383
- StopTrackFailed: 32,
384
- TelemetrySampledAndNotSent: 33,
385
- TrackEventFailed: 34,
386
- TrackExceptionFailed: 35,
387
- TrackMetricFailed: 36,
388
- TrackPVFailed: 37,
389
- TrackPVFailedCalc: 38,
390
- TrackTraceFailed: 39,
391
- TransmissionFailed: 40,
392
- FailedToSetStorageBuffer: 41,
393
- FailedToRestoreStorageBuffer: 42,
394
- InvalidBackendResponse: 43,
395
- FailedToFixDepricatedValues: 44,
396
- InvalidDurationValue: 45,
397
- TelemetryEnvelopeInvalid: 46,
398
- CreateEnvelopeError: 47,
399
- CannotSerializeObject: 48,
400
- CannotSerializeObjectNonSerializable: 49,
401
- CircularReferenceDetected: 50,
402
- ClearAuthContextFailed: 51,
403
- ExceptionTruncated: 52,
404
- IllegalCharsInName: 53,
405
- ItemNotInArray: 54,
406
- MaxAjaxPerPVExceeded: 55,
407
- MessageTruncated: 56,
408
- NameTooLong: 57,
409
- SampleRateOutOfRange: 58,
410
- SetAuthContextFailed: 59,
411
- SetAuthContextFailedAccountName: 60,
412
- StringValueTooLong: 61,
413
- StartCalledMoreThanOnce: 62,
414
- StopCalledWithoutStart: 63,
415
- TelemetryInitializerFailed: 64,
416
- TrackArgumentsNotSpecified: 65,
417
- UrlTooLong: 66,
418
- SessionStorageBufferFull: 67,
419
- CannotAccessCookie: 68,
420
- IdTooLong: 69,
421
- InvalidEvent: 70,
422
- FailedMonitorAjaxSetRequestHeader: 71,
423
- SendBrowserInfoOnUserInit: 72,
424
- PluginException: 73,
425
- NotificationException: 74,
426
- SnippetScriptLoadFailure: 99,
427
- InvalidInstrumentationKey: 100,
428
- CannotParseAiBlobValue: 101,
429
- InvalidContentBlob: 102,
430
- TrackPageActionEventFailed: 103,
431
- FailedAddingCustomDefinedRequestContext: 104,
432
- InMemoryStorageBufferFull: 105
433
- };
331
+ var strEmpty = "";
332
+ var strSetNextPlugin = "setNextPlugin";
333
+ var strIsInitialized = "isInitialized";
334
+ var strTeardown = "teardown";
335
+ var strCore = "core";
336
+ var strUpdate = "update";
337
+ var strDisabled = "disabled";
338
+ var strDoTeardown = "_doTeardown";
434
339
 
435
- var strOnPrefix = "on";
436
- var strAttachEvent = "attachEvent";
437
- var strAddEventHelper = "addEventListener";
438
340
  var cStrStartsWith = "startsWith";
439
341
  var strIndexOf = "indexOf";
440
342
  var cStrTrim = "trim";
441
343
  var strToString = "toString";
442
- var _objDefineProperty = ObjDefineProperty;
344
+ var str__Proto = "__proto__";
345
+ var strConstructor = "constructor";
346
+ var _objDefineProperty$1 = ObjDefineProperty;
347
+ var _objFreeze = ObjClass.freeze;
443
348
  var _objKeys = ObjClass.keys;
444
349
  var StringProto = String[strShimPrototype];
445
350
  var _strTrim = StringProto[cStrTrim];
@@ -447,7 +352,23 @@
447
352
  var _isArray = Array.isArray;
448
353
  var _objToString = ObjProto[strToString];
449
354
  var _fnToString = ObjHasOwnProperty[strToString];
450
- _fnToString.call(ObjClass);
355
+ var _objFunctionString = _fnToString.call(ObjClass);
356
+ var rCamelCase = /-([a-z])/g;
357
+ var rNormalizeInvalid = /([^\w\d_$])/g;
358
+ var rLeadingNumeric = /^(\d+[\w\d_$])/;
359
+ var _objGetPrototypeOf = Object["getPrototypeOf"];
360
+ function _getObjProto(target) {
361
+ if (target) {
362
+ if (_objGetPrototypeOf) {
363
+ return _objGetPrototypeOf(target);
364
+ }
365
+ var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
366
+ if (newProto) {
367
+ return newProto;
368
+ }
369
+ }
370
+ return null;
371
+ }
451
372
  function isUndefined(value) {
452
373
  return value === undefined || typeof value === strShimUndefined;
453
374
  }
@@ -463,24 +384,18 @@
463
384
  function isFunction(value) {
464
385
  return !!(value && typeof value === strShimFunction);
465
386
  }
466
- function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {
467
- if (useCapture === void 0) { useCapture = false; }
468
- var result = false;
469
- if (!isNullOrUndefined(obj)) {
470
- try {
471
- if (!isNullOrUndefined(obj[strAddEventHelper])) {
472
- obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);
473
- result = true;
474
- }
475
- else if (!isNullOrUndefined(obj[strAttachEvent])) {
476
- obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);
477
- result = true;
478
- }
479
- }
480
- catch (e) {
481
- }
387
+ function normalizeJsName(name) {
388
+ var value = name;
389
+ if (value && isString(value)) {
390
+ value = value.replace(rCamelCase, function (_all, letter) {
391
+ return letter.toUpperCase();
392
+ });
393
+ value = value.replace(rNormalizeInvalid, "_");
394
+ value = value.replace(rLeadingNumeric, function (_all, match) {
395
+ return "_" + match;
396
+ });
482
397
  }
483
- return result;
398
+ return value;
484
399
  }
485
400
  function objForEachKey(target, callbackfn) {
486
401
  if (target) {
@@ -511,6 +426,12 @@
511
426
  }
512
427
  return result;
513
428
  }
429
+ function strContains(value, search) {
430
+ if (value && search) {
431
+ return value.indexOf(search) !== -1;
432
+ }
433
+ return false;
434
+ }
514
435
  var isArray = _isArray || _isArrayPoly;
515
436
  function _isArrayPoly(obj) {
516
437
  return !!(obj && _objToString.call(obj) === "[object Array]");
@@ -524,6 +445,22 @@
524
445
  function isBoolean(value) {
525
446
  return typeof value === "boolean";
526
447
  }
448
+ function isPlainObject(value) {
449
+ var result = false;
450
+ if (value && typeof value === "object") {
451
+ var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
452
+ if (!proto) {
453
+ result = true;
454
+ }
455
+ else {
456
+ if (proto[strConstructor] && ObjHasOwnProperty.call(proto, strConstructor)) {
457
+ proto = proto[strConstructor];
458
+ }
459
+ result = typeof proto === strShimFunction && _fnToString.call(proto) === _objFunctionString;
460
+ }
461
+ }
462
+ return result;
463
+ }
527
464
  function arrForEach(arr, callbackfn, thisArg) {
528
465
  var len = arr.length;
529
466
  try {
@@ -598,7 +535,7 @@
598
535
  return result;
599
536
  }
600
537
  function objDefineAccessors(target, prop, getProp, setProp) {
601
- if (_objDefineProperty) {
538
+ if (_objDefineProperty$1) {
602
539
  try {
603
540
  var descriptor = {
604
541
  enumerable: true,
@@ -610,7 +547,7 @@
610
547
  if (setProp) {
611
548
  descriptor.set = setProp;
612
549
  }
613
- _objDefineProperty(target, prop, descriptor);
550
+ _objDefineProperty$1(target, prop, descriptor);
614
551
  return true;
615
552
  }
616
553
  catch (e) {
@@ -618,6 +555,20 @@
618
555
  }
619
556
  return false;
620
557
  }
558
+ function _doNothing(value) {
559
+ return value;
560
+ }
561
+ function deepFreeze(obj) {
562
+ if (_objFreeze) {
563
+ objForEachKey(obj, function (name, value) {
564
+ if (isArray(value) || isObject(value)) {
565
+ _objFreeze(value);
566
+ }
567
+ });
568
+ }
569
+ return objFreeze(obj);
570
+ }
571
+ var objFreeze = _objFreeze || _doNothing;
621
572
  function dateNow() {
622
573
  var dt = Date;
623
574
  return dt.now ? dt.now() : new dt().getTime();
@@ -633,12 +584,100 @@
633
584
  }
634
585
  return theValue;
635
586
  }
587
+ function _createProxyFunction(source, funcName) {
588
+ var srcFunc = null;
589
+ var src = null;
590
+ if (isFunction(source)) {
591
+ srcFunc = source;
592
+ }
593
+ else {
594
+ src = source;
595
+ }
596
+ return function () {
597
+ var originalArguments = arguments;
598
+ if (srcFunc) {
599
+ src = srcFunc();
600
+ }
601
+ if (src) {
602
+ return src[funcName].apply(src, originalArguments);
603
+ }
604
+ };
605
+ }
606
+ function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {
607
+ if (target && name && source) {
608
+ if (overwriteTarget !== false || isUndefined(target[name])) {
609
+ target[name] = _createProxyFunction(source, theFunc);
610
+ }
611
+ }
612
+ }
636
613
  function optimizeObject(theObject) {
637
614
  if (theObject && ObjAssign) {
638
615
  theObject = ObjClass(ObjAssign({}, theObject));
639
616
  }
640
617
  return theObject;
641
618
  }
619
+ function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
620
+ var theArgs = arguments;
621
+ var extended = theArgs[0] || {};
622
+ var argLen = theArgs.length;
623
+ var deep = false;
624
+ var idx = 1;
625
+ if (argLen > 0 && isBoolean(extended)) {
626
+ deep = extended;
627
+ extended = theArgs[idx] || {};
628
+ idx++;
629
+ }
630
+ if (!isObject(extended)) {
631
+ extended = {};
632
+ }
633
+ for (; idx < argLen; idx++) {
634
+ var arg = theArgs[idx];
635
+ var isArgArray = isArray(arg);
636
+ var isArgObj = isObject(arg);
637
+ for (var prop in arg) {
638
+ var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty.call(arg, prop)));
639
+ if (!propOk) {
640
+ continue;
641
+ }
642
+ var newValue = arg[prop];
643
+ var isNewArray = void 0;
644
+ if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {
645
+ var clone = extended[prop];
646
+ if (isNewArray) {
647
+ if (!isArray(clone)) {
648
+ clone = [];
649
+ }
650
+ }
651
+ else if (!isPlainObject(clone)) {
652
+ clone = {};
653
+ }
654
+ newValue = objExtend(deep, clone, newValue);
655
+ }
656
+ if (newValue !== undefined) {
657
+ extended[prop] = newValue;
658
+ }
659
+ }
660
+ }
661
+ return extended;
662
+ }
663
+
664
+ function createEnumStyle(values) {
665
+ var enumClass = {};
666
+ objForEachKey(values, function (field, value) {
667
+ enumClass[field] = value;
668
+ enumClass[value] = field;
669
+ });
670
+ return deepFreeze(enumClass);
671
+ }
672
+
673
+ var EventsDiscardedReason = createEnumStyle({
674
+ Unknown: 0 ,
675
+ NonRetryableStatus: 1 ,
676
+ InvalidEvent: 2 ,
677
+ SizeLimitExceeded: 3 ,
678
+ KillSwitch: 4 ,
679
+ QueueFull: 5
680
+ });
642
681
 
643
682
  var strWindow = "window";
644
683
  var strDocument = "document";
@@ -647,7 +686,14 @@
647
686
  var strConsole = "console";
648
687
  var strPerformance = "performance";
649
688
  var strJSON = "JSON";
689
+ var strCrypto = "crypto";
690
+ var strMsCrypto = "msCrypto";
650
691
  var strReactNative = "ReactNative";
692
+ var strMsie = "msie";
693
+ var strTrident = "trident/";
694
+ var strXMLHttpRequest = "XMLHttpRequest";
695
+ var _isTrident = null;
696
+ var _navUserAgentCheck = null;
651
697
  var _enableMocks = false;
652
698
  var _useXDomainRequest = null;
653
699
  var _beaconsSupported = null;
@@ -743,6 +789,12 @@
743
789
  }
744
790
  return null;
745
791
  }
792
+ function getCrypto() {
793
+ return getGlobalInst(strCrypto);
794
+ }
795
+ function getMsCrypto() {
796
+ return getGlobalInst(strMsCrypto);
797
+ }
746
798
  function isReactNative() {
747
799
  var nav = getNavigator();
748
800
  if (nav && nav.product) {
@@ -750,9 +802,18 @@
750
802
  }
751
803
  return false;
752
804
  }
805
+ function isIE() {
806
+ var nav = getNavigator();
807
+ if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {
808
+ _navUserAgentCheck = nav.userAgent;
809
+ var userAgent = (_navUserAgentCheck || strEmpty).toLowerCase();
810
+ _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
811
+ }
812
+ return _isTrident;
813
+ }
753
814
  function dumpObj(object) {
754
815
  var objectTypeDump = Object[strShimPrototype].toString.call(object);
755
- var propertyValueDump = "";
816
+ var propertyValueDump = strEmpty;
756
817
  if (objectTypeDump === "[object Error]") {
757
818
  propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
758
819
  }
@@ -770,8 +831,7 @@
770
831
  function isFetchSupported(withKeepAlive) {
771
832
  var isSupported = false;
772
833
  try {
773
- var fetchApi = getGlobalInst("fetch");
774
- isSupported = !!fetchApi;
834
+ isSupported = !!getGlobalInst("fetch");
775
835
  var request = getGlobalInst("Request");
776
836
  if (isSupported && withKeepAlive && request) {
777
837
  isSupported = _hasProperty(request, "keepalive");
@@ -783,9 +843,9 @@
783
843
  }
784
844
  function useXDomainRequest() {
785
845
  if (_useXDomainRequest === null) {
786
- _useXDomainRequest = (typeof XDomainRequest !== "undefined");
846
+ _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);
787
847
  if (_useXDomainRequest && isXhrSupported()) {
788
- _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst("XMLHttpRequest"), "withCredentials");
848
+ _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), "withCredentials");
789
849
  }
790
850
  }
791
851
  return _useXDomainRequest;
@@ -793,7 +853,7 @@
793
853
  function isXhrSupported() {
794
854
  var isSupported = false;
795
855
  try {
796
- var xmlHttpRequest = getGlobalInst("XMLHttpRequest");
856
+ var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);
797
857
  isSupported = !!xmlHttpRequest;
798
858
  }
799
859
  catch (e) {
@@ -824,9 +884,9 @@
824
884
  var strWarnToConsole = "warnToConsole";
825
885
  function _sanitizeDiagnosticText(text) {
826
886
  if (text) {
827
- return "\"" + text.replace(/\"/g, "") + "\"";
887
+ return "\"" + text.replace(/\"/g, strEmpty) + "\"";
828
888
  }
829
- return "";
889
+ return strEmpty;
830
890
  }
831
891
  function _logToConsole(func, message) {
832
892
  var theConsole = getConsole();
@@ -848,12 +908,12 @@
848
908
  _self.message =
849
909
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
850
910
  msgId;
851
- var strProps = "";
911
+ var strProps = strEmpty;
852
912
  if (hasJSON()) {
853
913
  strProps = getJSON().stringify(properties);
854
914
  }
855
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : "") +
856
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : "");
915
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : strEmpty) +
916
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : strEmpty);
857
917
  _self.message += diagnosticText;
858
918
  }
859
919
  _InternalLogMessage.dataType = "MessageData";
@@ -880,10 +940,10 @@
880
940
  if (isUserAct === void 0) { isUserAct = false; }
881
941
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
882
942
  if (_self.enableDebugExceptions()) {
883
- throw message;
943
+ throw dumpObj(message);
884
944
  }
885
945
  else {
886
- var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;
946
+ var logFunc = severity === 1 ? strErrorToConsole : strWarnToConsole;
887
947
  if (!isUndefined(message.message)) {
888
948
  var logLevel = _self.consoleLoggingLevel();
889
949
  if (isUserAct) {
@@ -901,7 +961,7 @@
901
961
  _self.logInternalMessage(severity, message);
902
962
  }
903
963
  else {
904
- _debugExtMsg("throw" + (severity === LoggingSeverity.CRITICAL ? "Critical" : "Warning"), message);
964
+ _debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
905
965
  }
906
966
  }
907
967
  };
@@ -933,13 +993,13 @@
933
993
  if (severity <= _self.telemetryLoggingLevel()) {
934
994
  _self.queue.push(message);
935
995
  _messageCount++;
936
- _debugExtMsg((severity === LoggingSeverity.CRITICAL ? "error" : "warn"), message);
996
+ _debugExtMsg((severity === 1 ? "error" : "warn"), message);
937
997
  }
938
998
  if (_messageCount === _self.maxInternalMessageLimit()) {
939
999
  var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
940
- var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);
1000
+ var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
941
1001
  _self.queue.push(throttleMessage);
942
- if (severity === LoggingSeverity.CRITICAL) {
1002
+ if (severity === 1 ) {
943
1003
  _self.errorToConsole(throttleLimitMessage);
944
1004
  }
945
1005
  else {
@@ -968,6 +1028,10 @@
968
1028
  }
969
1029
  return DiagnosticLogger;
970
1030
  }());
1031
+ function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1032
+ if (isUserAct === void 0) { isUserAct = false; }
1033
+ (logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
1034
+ }
971
1035
 
972
1036
  var strExecutionContextKey = "ctx";
973
1037
  var PerfEvent = /** @class */ (function () {
@@ -1081,207 +1145,621 @@
1081
1145
  return func();
1082
1146
  }
1083
1147
 
1084
- var TelemetryPluginChain = /** @class */ (function () {
1085
- function TelemetryPluginChain(plugin, defItemCtx) {
1086
- var _self = this;
1087
- var _nextProxy = null;
1088
- var _hasProcessTelemetry = isFunction(plugin.processTelemetry);
1089
- var _hasSetNext = isFunction(plugin.setNextPlugin);
1090
- _self._hasRun = false;
1091
- _self.getPlugin = function () {
1092
- return plugin;
1093
- };
1094
- _self.getNext = function () {
1095
- return _nextProxy;
1096
- };
1097
- _self.setNext = function (nextPlugin) {
1098
- _nextProxy = nextPlugin;
1099
- };
1100
- _self.processTelemetry = function (env, itemCtx) {
1101
- if (!itemCtx) {
1102
- itemCtx = defItemCtx;
1148
+ var UInt32Mask = 0x100000000;
1149
+ var MaxUInt32 = 0xffffffff;
1150
+ var _mwcSeeded = false;
1151
+ var _mwcW = 123456789;
1152
+ var _mwcZ = 987654321;
1153
+ function _mwcSeed(seedValue) {
1154
+ if (seedValue < 0) {
1155
+ seedValue >>>= 0;
1156
+ }
1157
+ _mwcW = (123456789 + seedValue) & MaxUInt32;
1158
+ _mwcZ = (987654321 - seedValue) & MaxUInt32;
1159
+ _mwcSeeded = true;
1160
+ }
1161
+ function _autoSeedMwc() {
1162
+ try {
1163
+ var now = dateNow() & 0x7fffffff;
1164
+ _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
1165
+ }
1166
+ catch (e) {
1167
+ }
1168
+ }
1169
+ function random32(signed) {
1170
+ var value = 0;
1171
+ var c = getCrypto() || getMsCrypto();
1172
+ if (c && c.getRandomValues) {
1173
+ value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
1174
+ }
1175
+ if (value === 0 && isIE()) {
1176
+ if (!_mwcSeeded) {
1177
+ _autoSeedMwc();
1178
+ }
1179
+ value = mwcRandom32() & MaxUInt32;
1180
+ }
1181
+ if (value === 0) {
1182
+ value = Math.floor((UInt32Mask * Math.random()) | 0);
1183
+ }
1184
+ if (!signed) {
1185
+ value >>>= 0;
1186
+ }
1187
+ return value;
1188
+ }
1189
+ function mwcRandom32(signed) {
1190
+ _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
1191
+ _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
1192
+ var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
1193
+ if (!signed) {
1194
+ value >>>= 0;
1195
+ }
1196
+ return value;
1197
+ }
1198
+ function newId(maxLength) {
1199
+ if (maxLength === void 0) { maxLength = 22; }
1200
+ var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1201
+ var number = random32() >>> 0;
1202
+ var chars = 0;
1203
+ var result = strEmpty;
1204
+ while (result.length < maxLength) {
1205
+ chars++;
1206
+ result += base64chars.charAt(number & 0x3F);
1207
+ number >>>= 6;
1208
+ if (chars === 5) {
1209
+ number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
1210
+ chars = 0;
1211
+ }
1212
+ }
1213
+ return result;
1214
+ }
1215
+
1216
+ var _objDefineProperty = ObjDefineProperty;
1217
+ var version = "2.8.3";
1218
+ var instanceName = "." + newId(6);
1219
+ var _dataUid = 0;
1220
+ function _createAccessor(target, prop, value) {
1221
+ if (_objDefineProperty) {
1222
+ try {
1223
+ _objDefineProperty(target, prop, {
1224
+ value: value,
1225
+ enumerable: false,
1226
+ configurable: true
1227
+ });
1228
+ return true;
1229
+ }
1230
+ catch (e) {
1231
+ }
1232
+ }
1233
+ return false;
1234
+ }
1235
+ function _canAcceptData(target) {
1236
+ return target.nodeType === 1 || target.nodeType === 9 || !(+target.nodeType);
1237
+ }
1238
+ function _getCache(data, target) {
1239
+ var theCache = target[data.id];
1240
+ if (!theCache) {
1241
+ theCache = {};
1242
+ try {
1243
+ if (_canAcceptData(target)) {
1244
+ if (!_createAccessor(target, data.id, theCache)) {
1245
+ target[data.id] = theCache;
1246
+ }
1247
+ }
1248
+ }
1249
+ catch (e) {
1250
+ }
1251
+ }
1252
+ return theCache;
1253
+ }
1254
+ function createUniqueNamespace(name, includeVersion) {
1255
+ if (includeVersion === void 0) { includeVersion = false; }
1256
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : "") + instanceName);
1257
+ }
1258
+ function createElmNodeData(name) {
1259
+ var data = {
1260
+ id: createUniqueNamespace("_aiData-" + (name || "") + "." + version),
1261
+ accept: function (target) {
1262
+ return _canAcceptData(target);
1263
+ },
1264
+ get: function (target, name, defValue, addDefault) {
1265
+ var theCache = target[data.id];
1266
+ if (!theCache) {
1267
+ if (addDefault) {
1268
+ theCache = _getCache(data, target);
1269
+ theCache[normalizeJsName(name)] = defValue;
1270
+ }
1271
+ return defValue;
1272
+ }
1273
+ return theCache[normalizeJsName(name)];
1274
+ },
1275
+ kill: function (target, name) {
1276
+ if (target && target[name]) {
1277
+ try {
1278
+ delete target[name];
1279
+ }
1280
+ catch (e) {
1281
+ }
1103
1282
  }
1104
- var identifier = plugin ? plugin.identifier : "TelemetryPluginChain";
1105
- doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + ":processTelemetry"; }, function () {
1106
- if (plugin && _hasProcessTelemetry) {
1107
- _self._hasRun = true;
1283
+ }
1284
+ };
1285
+ return data;
1286
+ }
1287
+
1288
+ var pluginStateData = createElmNodeData("plugin");
1289
+ function _getPluginState(plugin) {
1290
+ return pluginStateData.get(plugin, "state", {}, true);
1291
+ }
1292
+
1293
+ var strTelemetryPluginChain = "TelemetryPluginChain";
1294
+ var strHasRunFlags = "_hasRun";
1295
+ var strGetTelCtx = "_getTelCtx";
1296
+ var _chainId = 0;
1297
+ function _getNextProxyStart(proxy, core, startAt) {
1298
+ while (proxy) {
1299
+ if (proxy.getPlugin() === startAt) {
1300
+ return proxy;
1301
+ }
1302
+ proxy = proxy.getNext();
1303
+ }
1304
+ return createTelemetryProxyChain([startAt], core.config || {}, core);
1305
+ }
1306
+ function _createInternalContext(telemetryChain, config, core, startAt) {
1307
+ var _nextProxy = null;
1308
+ var _onComplete = [];
1309
+ if (startAt !== null) {
1310
+ _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
1311
+ }
1312
+ var context = {
1313
+ _next: _moveNext,
1314
+ ctx: {
1315
+ core: function () {
1316
+ return core;
1317
+ },
1318
+ diagLog: function () {
1319
+ return safeGetLogger(core, config);
1320
+ },
1321
+ getCfg: function () {
1322
+ return config;
1323
+ },
1324
+ getExtCfg: _getExtCfg,
1325
+ getConfig: _getConfig,
1326
+ hasNext: function () {
1327
+ return !!_nextProxy;
1328
+ },
1329
+ getNext: function () {
1330
+ return _nextProxy;
1331
+ },
1332
+ setNext: function (nextPlugin) {
1333
+ _nextProxy = nextPlugin;
1334
+ },
1335
+ iterate: _iterateChain,
1336
+ onComplete: _addOnComplete
1337
+ }
1338
+ };
1339
+ function _addOnComplete(onComplete, that) {
1340
+ var args = [];
1341
+ for (var _i = 2; _i < arguments.length; _i++) {
1342
+ args[_i - 2] = arguments[_i];
1343
+ }
1344
+ if (onComplete) {
1345
+ _onComplete.push({
1346
+ func: onComplete,
1347
+ self: !isUndefined(that) ? that : context.ctx,
1348
+ args: args
1349
+ });
1350
+ }
1351
+ }
1352
+ function _moveNext() {
1353
+ var nextProxy = _nextProxy;
1354
+ _nextProxy = nextProxy ? nextProxy.getNext() : null;
1355
+ if (!nextProxy) {
1356
+ var onComplete = _onComplete;
1357
+ if (onComplete && onComplete.length > 0) {
1358
+ arrForEach(onComplete, function (completeDetails) {
1108
1359
  try {
1109
- itemCtx.setNext(_nextProxy);
1110
- if (_hasSetNext) {
1111
- plugin.setNextPlugin(_nextProxy);
1112
- }
1113
- _nextProxy && (_nextProxy._hasRun = false);
1114
- plugin.processTelemetry(env, itemCtx);
1360
+ completeDetails.func.call(completeDetails.self, completeDetails.args);
1115
1361
  }
1116
- catch (error) {
1117
- var hasRun = _nextProxy && _nextProxy._hasRun;
1118
- if (!_nextProxy || !hasRun) {
1119
- itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, "Plugin [" + plugin.identifier + "] failed during processTelemetry - " + dumpObj(error));
1120
- }
1121
- if (_nextProxy && !hasRun) {
1122
- _nextProxy.processTelemetry(env, itemCtx);
1123
- }
1362
+ catch (e) {
1363
+ _throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1124
1364
  }
1125
- }
1126
- else if (_nextProxy) {
1127
- _self._hasRun = true;
1128
- _nextProxy.processTelemetry(env, itemCtx);
1129
- }
1130
- }, function () { return ({ item: env }); }, !(env.sync));
1131
- };
1365
+ });
1366
+ _onComplete = [];
1367
+ }
1368
+ }
1369
+ return nextProxy;
1132
1370
  }
1133
- return TelemetryPluginChain;
1134
- }());
1135
-
1136
- function _createProxyChain(plugins, itemCtx) {
1137
- var proxies = [];
1138
- if (plugins && plugins.length > 0) {
1139
- var lastProxy = null;
1140
- for (var idx = 0; idx < plugins.length; idx++) {
1141
- var thePlugin = plugins[idx];
1142
- if (thePlugin && isFunction(thePlugin.processTelemetry)) {
1143
- var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);
1144
- proxies.push(newProxy);
1145
- if (lastProxy) {
1146
- lastProxy.setNext(newProxy);
1371
+ function _getExtCfg(identifier, defaultValue, mergeDefault) {
1372
+ if (defaultValue === void 0) { defaultValue = {}; }
1373
+ if (mergeDefault === void 0) { mergeDefault = 0 ; }
1374
+ var theConfig;
1375
+ if (config) {
1376
+ var extConfig = config.extensionConfig;
1377
+ if (extConfig && identifier) {
1378
+ theConfig = extConfig[identifier];
1379
+ }
1380
+ }
1381
+ if (!theConfig) {
1382
+ theConfig = defaultValue;
1383
+ }
1384
+ else if (isObject(defaultValue)) {
1385
+ if (mergeDefault !== 0 ) {
1386
+ var newConfig_1 = objExtend(true, defaultValue, theConfig);
1387
+ if (config && mergeDefault === 2 ) {
1388
+ objForEachKey(defaultValue, function (field) {
1389
+ if (isNullOrUndefined(newConfig_1[field])) {
1390
+ var cfgValue = config[field];
1391
+ if (!isNullOrUndefined(cfgValue)) {
1392
+ newConfig_1[field] = cfgValue;
1393
+ }
1394
+ }
1395
+ });
1147
1396
  }
1148
- lastProxy = newProxy;
1397
+ theConfig = newConfig_1;
1149
1398
  }
1150
1399
  }
1400
+ return theConfig;
1151
1401
  }
1152
- return proxies.length > 0 ? proxies[0] : null;
1153
- }
1154
- function _copyProxyChain(proxy, itemCtx, startAt) {
1155
- var plugins = [];
1156
- var add = startAt ? false : true;
1157
- if (proxy) {
1158
- while (proxy) {
1159
- var thePlugin = proxy.getPlugin();
1160
- if (add || thePlugin === startAt) {
1161
- add = true;
1162
- plugins.push(thePlugin);
1402
+ function _getConfig(identifier, field, defaultValue) {
1403
+ if (defaultValue === void 0) { defaultValue = false; }
1404
+ var theValue;
1405
+ var extConfig = _getExtCfg(identifier, null);
1406
+ if (extConfig && !isNullOrUndefined(extConfig[field])) {
1407
+ theValue = extConfig[field];
1408
+ }
1409
+ else if (config && !isNullOrUndefined(config[field])) {
1410
+ theValue = config[field];
1411
+ }
1412
+ return !isNullOrUndefined(theValue) ? theValue : defaultValue;
1413
+ }
1414
+ function _iterateChain(cb) {
1415
+ var nextPlugin;
1416
+ while (!!(nextPlugin = context._next())) {
1417
+ var plugin = nextPlugin.getPlugin();
1418
+ if (plugin) {
1419
+ cb(plugin);
1163
1420
  }
1164
- proxy = proxy.getNext();
1165
1421
  }
1166
1422
  }
1167
- if (!add) {
1168
- plugins.push(startAt);
1423
+ return context;
1424
+ }
1425
+ function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
1426
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1427
+ var context = internalContext.ctx;
1428
+ function _processNext(env) {
1429
+ var nextPlugin = internalContext._next();
1430
+ nextPlugin && nextPlugin.processTelemetry(env, context);
1431
+ return !nextPlugin;
1432
+ }
1433
+ function _createNew(plugins, startAt) {
1434
+ if (plugins === void 0) { plugins = null; }
1435
+ if (isArray(plugins)) {
1436
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1437
+ }
1438
+ return createProcessTelemetryContext(plugins || context.getNext(), config, core, startAt);
1169
1439
  }
1170
- return _createProxyChain(plugins, itemCtx);
1440
+ context.processNext = _processNext;
1441
+ context.createNew = _createNew;
1442
+ return context;
1171
1443
  }
1172
- function _copyPluginChain(srcPlugins, itemCtx, startAt) {
1173
- var plugins = srcPlugins;
1174
- var add = false;
1175
- if (startAt && srcPlugins) {
1176
- plugins = [];
1177
- arrForEach(srcPlugins, function (thePlugin) {
1178
- if (add || thePlugin === startAt) {
1179
- add = true;
1180
- plugins.push(thePlugin);
1444
+ function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
1445
+ var config = core.config || {};
1446
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1447
+ var context = internalContext.ctx;
1448
+ function _processNext(unloadState) {
1449
+ var nextPlugin = internalContext._next();
1450
+ nextPlugin && nextPlugin.unload(context, unloadState);
1451
+ return !nextPlugin;
1452
+ }
1453
+ function _createNew(plugins, startAt) {
1454
+ if (plugins === void 0) { plugins = null; }
1455
+ if (isArray(plugins)) {
1456
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1457
+ }
1458
+ return createProcessTelemetryUnloadContext(plugins || context.getNext(), core, startAt);
1459
+ }
1460
+ context.processNext = _processNext;
1461
+ context.createNew = _createNew;
1462
+ return context;
1463
+ }
1464
+ function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
1465
+ var config = core.config || {};
1466
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1467
+ var context = internalContext.ctx;
1468
+ function _processNext(updateState) {
1469
+ return context.iterate(function (plugin) {
1470
+ if (isFunction(plugin.update)) {
1471
+ plugin.update(context, updateState);
1181
1472
  }
1182
1473
  });
1183
1474
  }
1184
- if (startAt && !add) {
1185
- if (!plugins) {
1186
- plugins = [];
1475
+ function _createNew(plugins, startAt) {
1476
+ if (plugins === void 0) { plugins = null; }
1477
+ if (isArray(plugins)) {
1478
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1187
1479
  }
1188
- plugins.push(startAt);
1480
+ return createProcessTelemetryUpdateContext(plugins || context.getNext(), core, startAt);
1189
1481
  }
1190
- return _createProxyChain(plugins, itemCtx);
1482
+ context.processNext = _processNext;
1483
+ context.createNew = _createNew;
1484
+ return context;
1191
1485
  }
1192
- var ProcessTelemetryContext = /** @class */ (function () {
1193
- function ProcessTelemetryContext(plugins, config, core, startAt) {
1194
- var _self = this;
1195
- var _nextProxy = null;
1196
- if (startAt !== null) {
1197
- if (plugins && isFunction(plugins.getPlugin)) {
1198
- _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());
1486
+ function createTelemetryProxyChain(plugins, config, core, startAt) {
1487
+ var firstProxy = null;
1488
+ var add = startAt ? false : true;
1489
+ if (isArray(plugins) && plugins.length > 0) {
1490
+ var lastProxy_1 = null;
1491
+ arrForEach(plugins, function (thePlugin) {
1492
+ if (!add && startAt === thePlugin) {
1493
+ add = true;
1199
1494
  }
1200
- else {
1201
- if (startAt) {
1202
- _nextProxy = _copyPluginChain(plugins, _self, startAt);
1495
+ if (add && thePlugin && isFunction(thePlugin.processTelemetry)) {
1496
+ var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
1497
+ if (!firstProxy) {
1498
+ firstProxy = newProxy;
1203
1499
  }
1204
- else if (isUndefined(startAt)) {
1205
- _nextProxy = _createProxyChain(plugins, _self);
1500
+ if (lastProxy_1) {
1501
+ lastProxy_1._setNext(newProxy);
1206
1502
  }
1503
+ lastProxy_1 = newProxy;
1207
1504
  }
1505
+ });
1506
+ }
1507
+ if (startAt && !firstProxy) {
1508
+ return createTelemetryProxyChain([startAt], config, core);
1509
+ }
1510
+ return firstProxy;
1511
+ }
1512
+ function createTelemetryPluginProxy(plugin, config, core) {
1513
+ var nextProxy = null;
1514
+ var hasProcessTelemetry = isFunction(plugin.processTelemetry);
1515
+ var hasSetNext = isFunction(plugin.setNextPlugin);
1516
+ var chainId;
1517
+ if (plugin) {
1518
+ chainId = plugin.identifier + "-" + plugin.priority + "-" + _chainId++;
1519
+ }
1520
+ else {
1521
+ chainId = "Unknown-0-" + _chainId++;
1522
+ }
1523
+ var proxyChain = {
1524
+ getPlugin: function () {
1525
+ return plugin;
1526
+ },
1527
+ getNext: function () {
1528
+ return nextProxy;
1529
+ },
1530
+ processTelemetry: _processTelemetry,
1531
+ unload: _unloadPlugin,
1532
+ update: _updatePlugin,
1533
+ _id: chainId,
1534
+ _setNext: function (nextPlugin) {
1535
+ nextProxy = nextPlugin;
1208
1536
  }
1209
- _self.core = function () {
1210
- return core;
1211
- };
1212
- _self.diagLog = function () {
1213
- return safeGetLogger(core, config);
1214
- };
1215
- _self.getCfg = function () {
1216
- return config;
1217
- };
1218
- _self.getExtCfg = function (identifier, defaultValue) {
1219
- if (defaultValue === void 0) { defaultValue = {}; }
1220
- var theConfig;
1221
- if (config) {
1222
- var extConfig = config.extensionConfig;
1223
- if (extConfig && identifier) {
1224
- theConfig = extConfig[identifier];
1537
+ };
1538
+ function _getTelCtx() {
1539
+ var itemCtx;
1540
+ if (plugin && isFunction(plugin[strGetTelCtx])) {
1541
+ itemCtx = plugin[strGetTelCtx]();
1542
+ }
1543
+ if (!itemCtx) {
1544
+ itemCtx = createProcessTelemetryContext(proxyChain, config, core);
1545
+ }
1546
+ return itemCtx;
1547
+ }
1548
+ function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
1549
+ var hasRun = false;
1550
+ var identifier = plugin ? plugin.identifier : strTelemetryPluginChain;
1551
+ var hasRunContext = itemCtx[strHasRunFlags];
1552
+ if (!hasRunContext) {
1553
+ hasRunContext = itemCtx[strHasRunFlags] = {};
1554
+ }
1555
+ itemCtx.setNext(nextProxy);
1556
+ if (plugin) {
1557
+ doPerf(itemCtx[strCore](), function () { return identifier + ":" + name; }, function () {
1558
+ hasRunContext[chainId] = true;
1559
+ try {
1560
+ var nextId = nextProxy ? nextProxy._id : strEmpty;
1561
+ if (nextId) {
1562
+ hasRunContext[nextId] = false;
1563
+ }
1564
+ hasRun = processPluginFn(itemCtx);
1225
1565
  }
1566
+ catch (error) {
1567
+ var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
1568
+ if (hasNextRun) {
1569
+ hasRun = true;
1570
+ }
1571
+ if (!nextProxy || !hasNextRun) {
1572
+ _throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1573
+ }
1574
+ }
1575
+ }, details, isAsync);
1576
+ }
1577
+ return hasRun;
1578
+ }
1579
+ function _processTelemetry(env, itemCtx) {
1580
+ itemCtx = itemCtx || _getTelCtx();
1581
+ function _callProcessTelemetry(itemCtx) {
1582
+ if (!plugin || !hasProcessTelemetry) {
1583
+ return false;
1226
1584
  }
1227
- return (theConfig ? theConfig : defaultValue);
1228
- };
1229
- _self.getConfig = function (identifier, field, defaultValue) {
1230
- if (defaultValue === void 0) { defaultValue = false; }
1231
- var theValue;
1232
- var extConfig = _self.getExtCfg(identifier, null);
1233
- if (extConfig && !isNullOrUndefined(extConfig[field])) {
1234
- theValue = extConfig[field];
1585
+ var pluginState = _getPluginState(plugin);
1586
+ if (pluginState.teardown || pluginState[strDisabled]) {
1587
+ return false;
1235
1588
  }
1236
- else if (config && !isNullOrUndefined(config[field])) {
1237
- theValue = config[field];
1589
+ if (hasSetNext) {
1590
+ plugin.setNextPlugin(nextProxy);
1238
1591
  }
1239
- return !isNullOrUndefined(theValue) ? theValue : defaultValue;
1240
- };
1241
- _self.hasNext = function () {
1242
- return _nextProxy != null;
1243
- };
1244
- _self.getNext = function () {
1245
- return _nextProxy;
1246
- };
1247
- _self.setNext = function (nextPlugin) {
1248
- _nextProxy = nextPlugin;
1249
- };
1250
- _self.processNext = function (env) {
1251
- var nextPlugin = _nextProxy;
1252
- if (nextPlugin) {
1253
- _nextProxy = nextPlugin.getNext();
1254
- nextPlugin.processTelemetry(env, _self);
1592
+ plugin.processTelemetry(env, itemCtx);
1593
+ return true;
1594
+ }
1595
+ if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
1596
+ itemCtx.processNext(env);
1597
+ }
1598
+ }
1599
+ function _unloadPlugin(unloadCtx, unloadState) {
1600
+ function _callTeardown() {
1601
+ var hasRun = false;
1602
+ if (plugin) {
1603
+ var pluginState = _getPluginState(plugin);
1604
+ var pluginCore = plugin[strCore] || pluginState.core;
1605
+ if (plugin && (!pluginCore || pluginCore === unloadCtx[strCore]()) && !pluginState[strTeardown]) {
1606
+ pluginState[strCore] = null;
1607
+ pluginState[strTeardown] = true;
1608
+ pluginState[strIsInitialized] = false;
1609
+ if (plugin[strTeardown] && plugin[strTeardown](unloadCtx, unloadState) === true) {
1610
+ hasRun = true;
1611
+ }
1612
+ }
1255
1613
  }
1256
- };
1257
- _self.createNew = function (plugins, startAt) {
1258
- if (plugins === void 0) { plugins = null; }
1259
- return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);
1260
- };
1614
+ return hasRun;
1615
+ }
1616
+ if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState.isAsync)) {
1617
+ unloadCtx.processNext(unloadState);
1618
+ }
1261
1619
  }
1262
- return ProcessTelemetryContext;
1263
- }());
1620
+ function _updatePlugin(updateCtx, updateState) {
1621
+ function _callUpdate() {
1622
+ var hasRun = false;
1623
+ if (plugin) {
1624
+ var pluginState = _getPluginState(plugin);
1625
+ var pluginCore = plugin[strCore] || pluginState.core;
1626
+ if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
1627
+ if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
1628
+ hasRun = true;
1629
+ }
1630
+ }
1631
+ }
1632
+ return hasRun;
1633
+ }
1634
+ if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
1635
+ updateCtx.processNext(updateState);
1636
+ }
1637
+ }
1638
+ return objFreeze(proxyChain);
1639
+ }
1264
1640
 
1265
1641
  var strExtensionConfig = "extensionConfig";
1266
1642
 
1643
+ function createUnloadHandlerContainer() {
1644
+ var handlers = [];
1645
+ function _addHandler(handler) {
1646
+ if (handler) {
1647
+ handlers.push(handler);
1648
+ }
1649
+ }
1650
+ function _runHandlers(unloadCtx, unloadState) {
1651
+ arrForEach(handlers, function (handler) {
1652
+ try {
1653
+ handler(unloadCtx, unloadState);
1654
+ }
1655
+ catch (e) {
1656
+ _throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1657
+ }
1658
+ });
1659
+ handlers = [];
1660
+ }
1661
+ return {
1662
+ add: _addHandler,
1663
+ run: _runHandlers
1664
+ };
1665
+ }
1666
+
1267
1667
  var strGetPlugin = "getPlugin";
1268
1668
  var BaseTelemetryPlugin = /** @class */ (function () {
1269
1669
  function BaseTelemetryPlugin() {
1270
1670
  var _self = this;
1271
- var _isinitialized = false;
1272
- var _rootCtx = null;
1273
- var _nextPlugin = null;
1274
- _self.core = null;
1671
+ var _isinitialized;
1672
+ var _rootCtx;
1673
+ var _nextPlugin;
1674
+ var _unloadHandlerContainer;
1675
+ var _hooks;
1676
+ _initDefaults();
1677
+ dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
1678
+ _self.initialize = function (config, core, extensions, pluginChain) {
1679
+ _setDefaults(config, core, pluginChain);
1680
+ _isinitialized = true;
1681
+ };
1682
+ _self.teardown = function (unloadCtx, unloadState) {
1683
+ var core = _self.core;
1684
+ if (!core || (unloadCtx && core !== unloadCtx.core())) {
1685
+ return;
1686
+ }
1687
+ var result;
1688
+ var unloadDone = false;
1689
+ var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
1690
+ var theUnloadState = unloadState || {
1691
+ reason: 0 ,
1692
+ isAsync: false
1693
+ };
1694
+ function _unloadCallback() {
1695
+ if (!unloadDone) {
1696
+ unloadDone = true;
1697
+ _unloadHandlerContainer.run(theUnloadCtx, unloadState);
1698
+ arrForEach(_hooks, function (fn) {
1699
+ fn.rm();
1700
+ });
1701
+ _hooks = [];
1702
+ if (result === true) {
1703
+ theUnloadCtx.processNext(theUnloadState);
1704
+ }
1705
+ _initDefaults();
1706
+ }
1707
+ }
1708
+ if (!_self[strDoTeardown] || _self[strDoTeardown](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
1709
+ _unloadCallback();
1710
+ }
1711
+ else {
1712
+ result = true;
1713
+ }
1714
+ return result;
1715
+ };
1716
+ _self.update = function (updateCtx, updateState) {
1717
+ var core = _self.core;
1718
+ if (!core || (updateCtx && core !== updateCtx.core())) {
1719
+ return;
1720
+ }
1721
+ var result;
1722
+ var updateDone = false;
1723
+ var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
1724
+ var theUpdateState = updateState || {
1725
+ reason: 0
1726
+ };
1727
+ function _updateCallback() {
1728
+ if (!updateDone) {
1729
+ updateDone = true;
1730
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
1731
+ }
1732
+ }
1733
+ if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
1734
+ _updateCallback();
1735
+ }
1736
+ else {
1737
+ result = true;
1738
+ }
1739
+ return result;
1740
+ };
1741
+ _self._addHook = function (hooks) {
1742
+ if (hooks) {
1743
+ if (isArray(hooks)) {
1744
+ _hooks = _hooks.concat(hooks);
1745
+ }
1746
+ else {
1747
+ _hooks.push(hooks);
1748
+ }
1749
+ }
1750
+ };
1751
+ proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
1752
+ });
1275
1753
  _self.diagLog = function (itemCtx) {
1276
- return _self._getTelCtx(itemCtx).diagLog();
1754
+ return _getTelCtx(itemCtx).diagLog();
1277
1755
  };
1278
- _self.isInitialized = function () {
1756
+ _self[strIsInitialized] = function () {
1279
1757
  return _isinitialized;
1280
1758
  };
1281
1759
  _self.setInitialized = function (isInitialized) {
1282
1760
  _isinitialized = isInitialized;
1283
1761
  };
1284
- _self.setNextPlugin = function (next) {
1762
+ _self[strSetNextPlugin] = function (next) {
1285
1763
  _nextPlugin = next;
1286
1764
  };
1287
1765
  _self.processNext = function (env, itemCtx) {
@@ -1292,11 +1770,12 @@
1292
1770
  _nextPlugin.processTelemetry(env, null);
1293
1771
  }
1294
1772
  };
1295
- _self._getTelCtx = function (currentCtx) {
1773
+ _self._getTelCtx = _getTelCtx;
1774
+ function _getTelCtx(currentCtx) {
1296
1775
  if (currentCtx === void 0) { currentCtx = null; }
1297
1776
  var itemCtx = currentCtx;
1298
1777
  if (!itemCtx) {
1299
- var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);
1778
+ var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self.core);
1300
1779
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
1301
1780
  itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);
1302
1781
  }
@@ -1305,8 +1784,8 @@
1305
1784
  }
1306
1785
  }
1307
1786
  return itemCtx;
1308
- };
1309
- _self._baseTelInit = function (config, core, extensions, pluginChain) {
1787
+ }
1788
+ function _setDefaults(config, core, pluginChain) {
1310
1789
  if (config) {
1311
1790
  setValue(config, strExtensionConfig, [], null, isNullOrUndefined);
1312
1791
  }
@@ -1318,93 +1797,300 @@
1318
1797
  nextPlugin = _nextPlugin[strGetPlugin]();
1319
1798
  }
1320
1799
  _self.core = core;
1321
- _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);
1322
- _isinitialized = true;
1323
- };
1800
+ _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
1801
+ }
1802
+ function _initDefaults() {
1803
+ _isinitialized = false;
1804
+ _self.core = null;
1805
+ _rootCtx = null;
1806
+ _nextPlugin = null;
1807
+ _hooks = [];
1808
+ _unloadHandlerContainer = createUnloadHandlerContainer();
1809
+ }
1324
1810
  }
1325
- BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {
1326
- this._baseTelInit(config, core, extensions, pluginChain);
1327
- };
1328
1811
  return BaseTelemetryPlugin;
1329
1812
  }());
1330
1813
 
1814
+ var strOnPrefix = "on";
1815
+ var strAttachEvent = "attachEvent";
1816
+ var strAddEventHelper = "addEventListener";
1817
+ var strDetachEvent = "detachEvent";
1818
+ var strRemoveEventListener = "removeEventListener";
1819
+ var strEvents = "events";
1331
1820
  var strVisibilityChangeEvt = "visibilitychange";
1332
1821
  var strPageHide = "pagehide";
1333
1822
  var strPageShow = "pageshow";
1334
- function addEventHandler(eventName, callback) {
1823
+ var strUnload = "unload";
1824
+ var strBeforeUnload = "beforeunload";
1825
+ var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
1826
+ var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
1827
+ var rRemoveEmptyNs = /\.[\.]+/g;
1828
+ var rRemoveTrailingEmptyNs = /[\.]+$/;
1829
+ var _guid = 1;
1830
+ var elmNodeData = createElmNodeData("events");
1831
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1832
+ function _normalizeNamespace(name) {
1833
+ if (name && name.replace) {
1834
+ return name.replace(/^\s*\.*|\.*\s*$/g, "");
1835
+ }
1836
+ return name;
1837
+ }
1838
+ function _getEvtNamespace(eventName, evtNamespace) {
1839
+ if (evtNamespace) {
1840
+ var theNamespace_1 = "";
1841
+ if (isArray(evtNamespace)) {
1842
+ theNamespace_1 = "";
1843
+ arrForEach(evtNamespace, function (name) {
1844
+ name = _normalizeNamespace(name);
1845
+ if (name) {
1846
+ if (name[0] !== ".") {
1847
+ name = "." + name;
1848
+ }
1849
+ theNamespace_1 += name;
1850
+ }
1851
+ });
1852
+ }
1853
+ else {
1854
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
1855
+ }
1856
+ if (theNamespace_1) {
1857
+ if (theNamespace_1[0] !== ".") {
1858
+ theNamespace_1 = "." + theNamespace_1;
1859
+ }
1860
+ eventName = (eventName || "") + theNamespace_1;
1861
+ }
1862
+ }
1863
+ var parsedEvent = (eventNamespace.exec(eventName || "") || []);
1864
+ return {
1865
+ type: parsedEvent[1],
1866
+ ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
1867
+ };
1868
+ }
1869
+ function _getRegisteredEvents(target, evtName, addDefault) {
1870
+ if (addDefault === void 0) { addDefault = true; }
1871
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1872
+ var registeredEvents = aiEvts[evtName];
1873
+ if (!registeredEvents) {
1874
+ registeredEvents = aiEvts[evtName] = [];
1875
+ }
1876
+ return registeredEvents;
1877
+ }
1878
+ function _doDetach(obj, evtName, handlerRef, useCapture) {
1879
+ if (obj && evtName && evtName.type) {
1880
+ if (obj[strRemoveEventListener]) {
1881
+ obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
1882
+ }
1883
+ else if (obj[strDetachEvent]) {
1884
+ obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
1885
+ }
1886
+ }
1887
+ }
1888
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
1889
+ var result = false;
1890
+ if (obj && evtName && evtName.type && handlerRef) {
1891
+ if (obj[strAddEventHelper]) {
1892
+ obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
1893
+ result = true;
1894
+ }
1895
+ else if (obj[strAttachEvent]) {
1896
+ obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
1897
+ result = true;
1898
+ }
1899
+ }
1900
+ return result;
1901
+ }
1902
+ function _doUnregister(target, events, evtName, unRegFn) {
1903
+ var idx = events.length;
1904
+ while (idx--) {
1905
+ var theEvent = events[idx];
1906
+ if (theEvent) {
1907
+ if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
1908
+ if (!unRegFn || unRegFn(theEvent)) {
1909
+ _doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
1910
+ events.splice(idx, 1);
1911
+ }
1912
+ }
1913
+ }
1914
+ }
1915
+ }
1916
+ function _unregisterEvents(target, evtName, unRegFn) {
1917
+ if (evtName.type) {
1918
+ _doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
1919
+ }
1920
+ else {
1921
+ var eventCache = elmNodeData.get(target, strEvents, {});
1922
+ objForEachKey(eventCache, function (evtType, events) {
1923
+ _doUnregister(target, events, evtName, unRegFn);
1924
+ });
1925
+ if (objKeys(eventCache).length === 0) {
1926
+ elmNodeData.kill(target, strEvents);
1927
+ }
1928
+ }
1929
+ }
1930
+ function mergeEvtNamespace(theNamespace, namespaces) {
1931
+ var newNamespaces;
1932
+ if (namespaces) {
1933
+ if (isArray(namespaces)) {
1934
+ newNamespaces = [theNamespace].concat(namespaces);
1935
+ }
1936
+ else {
1937
+ newNamespaces = [theNamespace, namespaces];
1938
+ }
1939
+ newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
1940
+ }
1941
+ else {
1942
+ newNamespaces = theNamespace;
1943
+ }
1944
+ return newNamespaces;
1945
+ }
1946
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1947
+ if (useCapture === void 0) { useCapture = false; }
1948
+ var result = false;
1949
+ if (target) {
1950
+ try {
1951
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
1952
+ result = _doAttach(target, evtName, handlerRef, useCapture);
1953
+ if (result && elmNodeData.accept(target)) {
1954
+ var registeredEvent = {
1955
+ guid: _guid++,
1956
+ evtName: evtName,
1957
+ handler: handlerRef,
1958
+ capture: useCapture
1959
+ };
1960
+ _getRegisteredEvents(target, evtName.type).push(registeredEvent);
1961
+ }
1962
+ }
1963
+ catch (e) {
1964
+ }
1965
+ }
1966
+ return result;
1967
+ }
1968
+ function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
1969
+ if (useCapture === void 0) { useCapture = false; }
1970
+ if (target) {
1971
+ try {
1972
+ var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
1973
+ var found_1 = false;
1974
+ _unregisterEvents(target, evtName_1, function (regEvent) {
1975
+ if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
1976
+ found_1 = true;
1977
+ return true;
1978
+ }
1979
+ return false;
1980
+ });
1981
+ if (!found_1) {
1982
+ _doDetach(target, evtName_1, handlerRef, useCapture);
1983
+ }
1984
+ }
1985
+ catch (e) {
1986
+ }
1987
+ }
1988
+ }
1989
+ function addEventHandler(eventName, callback, evtNamespace) {
1335
1990
  var result = false;
1336
1991
  var w = getWindow();
1337
1992
  if (w) {
1338
- result = attachEvent(w, eventName, callback);
1339
- result = attachEvent(w["body"], eventName, callback) || result;
1993
+ result = eventOn(w, eventName, callback, evtNamespace);
1994
+ result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
1340
1995
  }
1341
1996
  var doc = getDocument();
1342
1997
  if (doc) {
1343
- result = attachEvent(doc, eventName, callback) || result;
1998
+ result = eventOn(doc, eventName, callback, evtNamespace) || result;
1344
1999
  }
1345
2000
  return result;
1346
2001
  }
1347
- function addEventListeners(events, listener, excludeEvents) {
2002
+ function removeEventHandler(eventName, callback, evtNamespace) {
2003
+ var w = getWindow();
2004
+ if (w) {
2005
+ eventOff(w, eventName, callback, evtNamespace);
2006
+ eventOff(w["body"], eventName, callback, evtNamespace);
2007
+ }
2008
+ var doc = getDocument();
2009
+ if (doc) {
2010
+ eventOff(doc, eventName, callback, evtNamespace);
2011
+ }
2012
+ }
2013
+ function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
1348
2014
  var added = false;
1349
- if (listener && events && isArray(events)) {
1350
- var excluded_1 = [];
2015
+ if (listener && events && events.length > 0) {
1351
2016
  arrForEach(events, function (name) {
1352
- if (isString(name)) {
2017
+ if (name) {
1353
2018
  if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
1354
- added = addEventHandler(name, listener) || added;
1355
- }
1356
- else {
1357
- excluded_1.push(name);
2019
+ added = addEventHandler(name, listener, evtNamespace) || added;
1358
2020
  }
1359
2021
  }
1360
2022
  });
1361
- if (!added && excluded_1.length > 0) {
1362
- added = addEventListeners(excluded_1, listener);
2023
+ }
2024
+ return added;
2025
+ }
2026
+ function addEventListeners(events, listener, excludeEvents, evtNamespace) {
2027
+ var added = false;
2028
+ if (listener && events && isArray(events)) {
2029
+ added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
2030
+ if (!added && excludeEvents && excludeEvents.length > 0) {
2031
+ added = _addEventListeners(events, listener, null, evtNamespace);
1363
2032
  }
1364
2033
  }
1365
2034
  return added;
1366
2035
  }
1367
- function addPageUnloadEventListener(listener, excludeEvents) {
1368
- return addEventListeners(["beforeunload", "unload", "pagehide"], listener, excludeEvents);
2036
+ function removeEventListeners(events, listener, evtNamespace) {
2037
+ if (events && isArray(events)) {
2038
+ arrForEach(events, function (name) {
2039
+ if (name) {
2040
+ removeEventHandler(name, listener, evtNamespace);
2041
+ }
2042
+ });
2043
+ }
2044
+ }
2045
+ function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
2046
+ return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
2047
+ }
2048
+ function removePageUnloadEventListener(listener, evtNamespace) {
2049
+ removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
1369
2050
  }
1370
- function addPageHideEventListener(listener, excludeEvents) {
2051
+ function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
1371
2052
  function _handlePageVisibility(evt) {
1372
2053
  var doc = getDocument();
1373
2054
  if (listener && doc && doc.visibilityState === "hidden") {
1374
2055
  listener(evt);
1375
2056
  }
1376
2057
  }
1377
- var pageUnloadAdded = false;
1378
- if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {
1379
- pageUnloadAdded = addEventHandler(strPageHide, listener);
1380
- }
2058
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2059
+ var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
1381
2060
  if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1382
- pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;
2061
+ pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
1383
2062
  }
1384
2063
  if (!pageUnloadAdded && excludeEvents) {
1385
- pageUnloadAdded = addPageHideEventListener(listener);
2064
+ pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
1386
2065
  }
1387
2066
  return pageUnloadAdded;
1388
2067
  }
1389
- function addPageShowEventListener(listener, excludeEvents) {
2068
+ function removePageHideEventListener(listener, evtNamespace) {
2069
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2070
+ removeEventListeners([strPageHide], listener, newNamespaces);
2071
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2072
+ }
2073
+ function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
1390
2074
  function _handlePageVisibility(evt) {
1391
2075
  var doc = getDocument();
1392
2076
  if (listener && doc && doc.visibilityState === "visible") {
1393
2077
  listener(evt);
1394
2078
  }
1395
2079
  }
1396
- var pageShowAdded = false;
1397
- if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {
1398
- pageShowAdded = addEventHandler(strPageShow, listener);
1399
- }
1400
- if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1401
- pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;
1402
- }
2080
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2081
+ var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
2082
+ pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
1403
2083
  if (!pageShowAdded && excludeEvents) {
1404
- pageShowAdded = addPageShowEventListener(listener);
2084
+ pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
1405
2085
  }
1406
2086
  return pageShowAdded;
1407
2087
  }
2088
+ function removePageShowEventListener(listener, evtNamespace) {
2089
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2090
+ removeEventListeners([strPageShow], listener, newNamespaces);
2091
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2092
+ }
2093
+
1408
2094
  function perfNow() {
1409
2095
  var perf = getPerformance();
1410
2096
  if (perf && perf.now) {
@@ -1413,60 +2099,23 @@
1413
2099
  return dateNow();
1414
2100
  }
1415
2101
 
1416
- var ValueKind = {
1417
- NotSet: 0,
1418
- Pii_DistinguishedName: 1,
1419
- Pii_GenericData: 2,
1420
- Pii_IPV4Address: 3,
1421
- Pii_IPv6Address: 4,
1422
- Pii_MailSubject: 5,
1423
- Pii_PhoneNumber: 6,
1424
- Pii_QueryString: 7,
1425
- Pii_SipAddress: 8,
1426
- Pii_SmtpAddress: 9,
1427
- Pii_Identity: 10,
1428
- Pii_Uri: 11,
1429
- Pii_Fqdn: 12,
1430
- Pii_IPV4AddressLegacy: 13,
1431
- CustomerContent_GenericContent: 32
1432
- };
1433
- var EventLatency = {
1434
- Normal: 1 ,
1435
- CostDeferred: 2 ,
1436
- RealTime: 3 ,
1437
- Immediate: 4
1438
- };
1439
- var EventPropertyType = {
1440
- Unspecified: 0,
1441
- String: 1,
1442
- Int32: 2,
1443
- UInt32: 3,
1444
- Int64: 4,
1445
- UInt64: 5,
1446
- Double: 6,
1447
- Bool: 7,
1448
- Guid: 8,
1449
- DateTime: 9
1450
- };
1451
- var _ExtendedInternalMessageId = __assignFn(__assignFn({}, _InternalMessageId), { AuthHandShakeError: 501, AuthRedirectFail: 502, BrowserCannotReadLocalStorage: 503, BrowserCannotWriteLocalStorage: 504, BrowserDoesNotSupportLocalStorage: 505, CannotParseBiBlobValue: 506, CannotParseDataAttribute: 507, CVPluginNotAvailable: 508, DroppedEvent: 509, ErrorParsingAISessionCookie: 510, ErrorProvidedChannels: 511, FailedToGetCookies: 512, FailedToInitializeCorrelationVector: 513, FailedToInitializeSDK: 514, InvalidContentBlob: 515, InvalidCorrelationValue: 516, SessionRenewalDateIsZero: 517, SendPostOnCompleteFailure: 518, PostResponseHandler: 519, SDKNotInitialized: 520 });
1452
-
1453
2102
  var _a$1;
1454
- var Version = '3.1.11';
2103
+ var Version = '3.2.2';
1455
2104
  var FullVersionString = "1DS-Web-JS-" + Version;
1456
2105
  var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
1457
2106
  var strWithCredentials = "withCredentials";
1458
2107
  var strTimeout = "timeout";
1459
2108
  var _fieldTypeEventPropMap = (_a$1 = {},
1460
- _a$1[0 ] = EventPropertyType.Unspecified,
1461
- _a$1[2 ] = EventPropertyType.Double,
1462
- _a$1[1 ] = EventPropertyType.String,
1463
- _a$1[3 ] = EventPropertyType.Bool,
1464
- _a$1[4096 | 2 ] = EventPropertyType.Double,
1465
- _a$1[4096 | 1 ] = EventPropertyType.String,
1466
- _a$1[4096 | 3 ] = EventPropertyType.Bool,
2109
+ _a$1[0 ] = 0 ,
2110
+ _a$1[2 ] = 6 ,
2111
+ _a$1[1 ] = 1 ,
2112
+ _a$1[3 ] = 7 ,
2113
+ _a$1[4096 | 2 ] = 6 ,
2114
+ _a$1[4096 | 1 ] = 1 ,
2115
+ _a$1[4096 | 3 ] = 7 ,
1467
2116
  _a$1);
1468
2117
  Boolean(getDocument());
1469
- var isWindowObjectAvailable = Boolean(getWindow());
2118
+ Boolean(getWindow());
1470
2119
  function isValueAssigned(value) {
1471
2120
  return !(value === "" || isNullOrUndefined(value));
1472
2121
  }
@@ -1530,7 +2179,7 @@
1530
2179
  if (encodedTypeValue !== -1 && propType !== -1) {
1531
2180
  encodedTypeValue |= propType;
1532
2181
  }
1533
- else if (propType === EventPropertyType.Double) {
2182
+ else if (propType === 6 ) {
1534
2183
  encodedTypeValue = propType;
1535
2184
  }
1536
2185
  }
@@ -1576,7 +2225,7 @@
1576
2225
  }
1577
2226
  var getTime = perfNow;
1578
2227
  function isValueKind(value) {
1579
- if (value === ValueKind.NotSet || ((value > ValueKind.NotSet && value <= ValueKind.Pii_IPV4AddressLegacy) || value === ValueKind.CustomerContent_GenericContent)) {
2228
+ if (value === 0 || ((value > 0 && value <= 13 ) || value === 32 )) {
1580
2229
  return true;
1581
2230
  }
1582
2231
  return false;
@@ -1679,6 +2328,7 @@
1679
2328
  var strUploadTime = "upload-time";
1680
2329
  var strApiKey = "apikey";
1681
2330
  var strMsaDeviceTicket = "AuthMsaDeviceTicket";
2331
+ var strAuthXToken = "AuthXToken";
1682
2332
  var strNoResponseBody = "NoResponseBody";
1683
2333
  var strMsfpc = "msfpc";
1684
2334
 
@@ -1991,25 +2641,19 @@
1991
2641
  var RandomizationUpperThreshold = 1.2;
1992
2642
  var BaseBackoff = 3000;
1993
2643
  var MaxBackoff = 600000;
1994
- var RetryPolicy = /** @class */ (function () {
1995
- function RetryPolicy() {
1996
- }
1997
- RetryPolicy.shouldRetryForStatus = function (httpStatusCode) {
1998
- return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
1999
- || (httpStatusCode == 501)
2000
- || (httpStatusCode == 505));
2001
- };
2002
- RetryPolicy.getMillisToBackoffForRetry = function (retriesSoFar) {
2003
- var waitDuration = 0;
2004
- var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2005
- var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2006
- var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2007
- waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2008
- return Math.min(waitDuration, MaxBackoff);
2009
- };
2010
- return RetryPolicy;
2011
- }());
2012
- var RetryPolicy$1 = RetryPolicy;
2644
+ function retryPolicyShouldRetryForStatus(httpStatusCode) {
2645
+ return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
2646
+ || (httpStatusCode == 501)
2647
+ || (httpStatusCode == 505));
2648
+ }
2649
+ function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
2650
+ var waitDuration = 0;
2651
+ var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2652
+ var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2653
+ var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2654
+ waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2655
+ return Math.min(waitDuration, MaxBackoff);
2656
+ }
2013
2657
 
2014
2658
  var SecToMsMultiplier = 1000;
2015
2659
  var KillSwitch = /** @class */ (function () {
@@ -2114,11 +2758,19 @@
2114
2758
  _a);
2115
2759
  var _collectorQsHeaders = {};
2116
2760
  var _collectorHeaderToQs = {};
2117
- function _addCollectorHeaderQsMapping(qsName, headerName) {
2761
+ function _addCollectorHeaderQsMapping(qsName, headerName, allowQs) {
2118
2762
  _collectorQsHeaders[qsName] = headerName;
2119
- _collectorHeaderToQs[headerName] = qsName;
2763
+ if (allowQs !== false) {
2764
+ _collectorHeaderToQs[headerName] = qsName;
2765
+ }
2120
2766
  }
2121
- _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket);
2767
+ _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket, false);
2768
+ _addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
2769
+ _addCollectorHeaderQsMapping(strClientId, "Client-Id");
2770
+ _addCollectorHeaderQsMapping(strApiKey, strApiKey);
2771
+ _addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
2772
+ _addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
2773
+ _addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
2122
2774
  function _getResponseText(xhr) {
2123
2775
  try {
2124
2776
  return xhr.responseText;
@@ -2157,7 +2809,7 @@
2157
2809
  }
2158
2810
  }
2159
2811
  var HttpManager = /** @class */ (function () {
2160
- function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions) {
2812
+ function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
2161
2813
  this._responseHandlers = [];
2162
2814
  var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
2163
2815
  var _killSwitch = new EVTKillSwitch();
@@ -2187,7 +2839,7 @@
2187
2839
  channelConfig = {};
2188
2840
  }
2189
2841
  _urlString = endpointUrl + _urlString;
2190
- _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : false;
2842
+ _useHeaders = !isUndefined(channelConfig.avoidOptions) ? !channelConfig.avoidOptions : true;
2191
2843
  _core = core;
2192
2844
  _cookieMgr = core.getCookieMgr();
2193
2845
  _enableEventTimings = !_core.config.disableEventTimings;
@@ -2296,7 +2948,7 @@
2296
2948
  xdr.send(payload.data);
2297
2949
  }
2298
2950
  else {
2299
- _postManager._setTimeoutOverride(function () {
2951
+ timeoutOverride.set(function () {
2300
2952
  xdr.send(payload.data);
2301
2953
  }, 0);
2302
2954
  }
@@ -2354,7 +3006,7 @@
2354
3006
  _doOnComplete(oncomplete, 200, {});
2355
3007
  }
2356
3008
  if (!responseHandled && payload.timeout > 0) {
2357
- _postManager._setTimeoutOverride(function () {
3009
+ timeoutOverride.set(function () {
2358
3010
  if (!responseHandled) {
2359
3011
  responseHandled = true;
2360
3012
  _doOnComplete(oncomplete, 500, {});
@@ -2413,7 +3065,7 @@
2413
3065
  oncomplete(status, headers, response);
2414
3066
  }
2415
3067
  catch (e) {
2416
- _postManager.diagLog().throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.SendPostOnCompleteFailure, dumpObj(e));
3068
+ _throwInternal(_postManager.diagLog(), 2 , 518 , dumpObj(e));
2417
3069
  }
2418
3070
  }
2419
3071
  function _beaconSendPost(payload, oncomplete, sync) {
@@ -2448,7 +3100,7 @@
2448
3100
  }
2449
3101
  }
2450
3102
  catch (ex) {
2451
- _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + ex);
3103
+ _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
2452
3104
  status = 0;
2453
3105
  }
2454
3106
  finally {
@@ -2612,7 +3264,7 @@
2612
3264
  }, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
2613
3265
  }
2614
3266
  catch (ex) {
2615
- _postManager.diagLog().throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.CannotSerializeObject, "Unexpected Exception sending batch: " + dumpObj(ex));
3267
+ _throwInternal(_postManager.diagLog(), 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
2616
3268
  }
2617
3269
  }
2618
3270
  function _buildRequestDetails(thePayload, useHeaders) {
@@ -2621,8 +3273,21 @@
2621
3273
  hdrs: {},
2622
3274
  useHdrs: false
2623
3275
  };
2624
- requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
2625
- requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
3276
+ if (!useHeaders) {
3277
+ objForEachKey(_headers, function (name, value) {
3278
+ if (_collectorHeaderToQs[name]) {
3279
+ _addRequestDetails(requestDetails, _collectorHeaderToQs[name], value, false);
3280
+ }
3281
+ else {
3282
+ requestDetails.hdrs[name] = value;
3283
+ requestDetails.useHdrs = true;
3284
+ }
3285
+ });
3286
+ }
3287
+ else {
3288
+ requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
3289
+ requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
3290
+ }
2626
3291
  _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
2627
3292
  _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
2628
3293
  var apiQsKeys = "";
@@ -2808,7 +3473,7 @@
2808
3473
  reason = 200 ;
2809
3474
  return;
2810
3475
  }
2811
- if (!RetryPolicy$1.shouldRetryForStatus(status) || thePayload.numEvents <= 0) {
3476
+ if (!retryPolicyShouldRetryForStatus(status) || thePayload.numEvents <= 0) {
2812
3477
  shouldRetry = false;
2813
3478
  }
2814
3479
  reason = 9000 + (status % 1000);
@@ -2824,7 +3489,7 @@
2824
3489
  _outstandingRequests--;
2825
3490
  }
2826
3491
  _sendBatches(thePayload.batches, retryCount_1 + 1, thePayload.isTeardown, _isUnloading ? 2 : thePayload.sendType, 5 );
2827
- }, _isUnloading, RetryPolicy$1.getMillisToBackoffForRetry(retryCount_1));
3492
+ }, _isUnloading, retryPolicyGetMillisToBackoffForRetry(retryCount_1));
2828
3493
  }
2829
3494
  else {
2830
3495
  backOffTrans = true;
@@ -2880,7 +3545,7 @@
2880
3545
  cb();
2881
3546
  }
2882
3547
  else {
2883
- _postManager._setTimeoutOverride(cb, interval);
3548
+ timeoutOverride.set(cb, interval);
2884
3549
  }
2885
3550
  }
2886
3551
  function _convertAllHeadersToMap(headersString) {
@@ -2920,7 +3585,7 @@
2920
3585
  responseHandlers[i](responseText);
2921
3586
  }
2922
3587
  catch (e) {
2923
- _postManager.diagLog().throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.PostResponseHandler, "Response handler failed: " + e);
3588
+ _throwInternal(_postManager.diagLog(), 1 , 519 , "Response handler failed: " + e);
2924
3589
  }
2925
3590
  }
2926
3591
  if (responseText) {
@@ -2944,7 +3609,7 @@
2944
3609
  theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
2945
3610
  }
2946
3611
  catch (e) {
2947
- _postManager.diagLog().throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.NotificationException, "send request notification failed: " + e);
3612
+ _throwInternal(_postManager.diagLog(), 1 , 74 , "send request notification failed: " + e);
2948
3613
  }
2949
3614
  }, sendSync || isSyncRequest_1, 0);
2950
3615
  }, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
@@ -2972,26 +3637,43 @@
2972
3637
  return HttpManager;
2973
3638
  }());
2974
3639
 
3640
+ function defaultSetTimeout(callback, ms) {
3641
+ var args = [];
3642
+ for (var _i = 2; _i < arguments.length; _i++) {
3643
+ args[_i - 2] = arguments[_i];
3644
+ }
3645
+ return setTimeout(callback, ms, args);
3646
+ }
3647
+ function defaultClearTimeout(timeoutId) {
3648
+ clearTimeout(timeoutId);
3649
+ }
3650
+ function createTimeoutWrapper(argSetTimeout, argClearTimeout) {
3651
+ return {
3652
+ set: argSetTimeout || defaultSetTimeout,
3653
+ clear: argClearTimeout || defaultClearTimeout
3654
+ };
3655
+ }
3656
+
2975
3657
  var FlushCheckTimer = 0.250;
2976
3658
  var MaxNumberEventPerBatch = 500;
2977
3659
  var EventsDroppedAtOneTime = 20;
2978
3660
  var MaxSendAttempts = 6;
2979
3661
  var MaxSyncUnloadSendAttempts = 2;
2980
3662
  var MaxBackoffCount = 4;
2981
- var globalContext = isWindowObjectAvailable ? window : undefined;
2982
3663
  var MaxConnections = 2;
2983
3664
  var MaxRequestRetriesBeforeBackoff = 1;
2984
3665
  var strEventsDiscarded = "eventsDiscarded";
2985
3666
  var strOverrideInstrumentationKey = "overrideInstrumentationKey";
2986
3667
  var strMaxEventRetryAttempts = "maxEventRetryAttempts";
2987
3668
  var strMaxUnloadEventRetryAttempts = "maxUnloadEventRetryAttempts";
3669
+ var strAddUnloadCb = "addUnloadCb";
2988
3670
  var PostChannel = /** @class */ (function (_super) {
2989
3671
  __extendsFn(PostChannel, _super);
2990
3672
  function PostChannel() {
2991
3673
  var _this = _super.call(this) || this;
2992
3674
  _this.identifier = "PostChannel";
2993
3675
  _this.priority = 1011;
2994
- _this.version = '3.1.11';
3676
+ _this.version = '3.2.2';
2995
3677
  var _config;
2996
3678
  var _isTeardownCalled = false;
2997
3679
  var _flushCallbackQueue = [];
@@ -3019,18 +3701,10 @@
3019
3701
  var _disableXhrSync = false;
3020
3702
  var _maxEventSendAttempts = MaxSendAttempts;
3021
3703
  var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
3704
+ var _evtNamespace;
3705
+ var _timeoutWrapper;
3022
3706
  dynamicProto(PostChannel, _this, function (_self, _base) {
3023
- _initializeProfiles();
3024
- _clearQueues();
3025
- _setAutoLimits();
3026
- _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
3027
- requeue: _requeueEvents,
3028
- send: _sendingEvent,
3029
- sent: _eventsSentEvent,
3030
- drop: _eventsDropped,
3031
- rspFail: _eventsResponseFail,
3032
- oth: _otherEvent
3033
- });
3707
+ _initDefaults();
3034
3708
  _self["_getDbgPlgTargets"] = function () {
3035
3709
  return [_httpManager];
3036
3710
  };
@@ -3038,47 +3712,52 @@
3038
3712
  doPerf(core, function () { return "PostChannel:initialize"; }, function () {
3039
3713
  var extendedCore = core;
3040
3714
  _base.initialize(coreConfig, core, extensions);
3041
- _self.setInitialized(false);
3042
- var ctx = _self._getTelCtx();
3043
- coreConfig.extensionConfig[_self.identifier] = coreConfig.extensionConfig[_self.identifier] || {};
3044
- _config = ctx.getExtCfg(_self.identifier);
3045
- _self._setTimeoutOverride = _config.setTimeoutOverride ? _config.setTimeoutOverride : setTimeout.bind(globalContext);
3046
- _self._clearTimeoutOverride = _config.clearTimeoutOverride ? _config.clearTimeoutOverride : clearTimeout.bind(globalContext);
3047
- _optimizeObject = !_config.disableOptimizeObj && isChromium();
3048
- _hookWParam(extendedCore);
3049
- if (_config.eventsLimitInMem > 0) {
3050
- _queueSizeLimit = _config.eventsLimitInMem;
3051
- }
3052
- if (_config.immediateEventLimit > 0) {
3053
- _immediateQueueSizeLimit = _config.immediateEventLimit;
3054
- }
3055
- if (_config.autoFlushEventsLimit > 0) {
3056
- _autoFlushEventsLimit = _config.autoFlushEventsLimit;
3057
- }
3058
- _disableXhrSync = _config.disableXhrSync;
3059
- if (isNumber(_config[strMaxEventRetryAttempts])) {
3060
- _maxEventSendAttempts = _config[strMaxEventRetryAttempts];
3061
- }
3062
- if (isNumber(_config[strMaxUnloadEventRetryAttempts])) {
3063
- _maxUnloadEventSendAttempts = _config[strMaxUnloadEventRetryAttempts];
3064
- }
3065
- _setAutoLimits();
3066
- if (_config.httpXHROverride && _config.httpXHROverride.sendPOST) {
3067
- _xhrOverride = _config.httpXHROverride;
3068
- }
3069
- if (isValueAssigned(coreConfig.anonCookieName)) {
3070
- _httpManager.addQueryStringParameter("anoncknm", coreConfig.anonCookieName);
3071
- }
3072
- _httpManager.sendHook = _config.payloadPreprocessor;
3073
- _httpManager.sendListener = _config.payloadListener;
3074
- var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
3075
- _self._notificationManager = coreConfig.extensionConfig.NotificationManager;
3076
- _httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
3077
- var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
3078
- addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents);
3079
- addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents);
3080
- addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents);
3081
- _self.setInitialized(true);
3715
+ try {
3716
+ var hasAddUnloadCb = !!core[strAddUnloadCb];
3717
+ _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());
3718
+ var ctx = _self._getTelCtx();
3719
+ coreConfig.extensionConfig[_self.identifier] = coreConfig.extensionConfig[_self.identifier] || {};
3720
+ _config = ctx.getExtCfg(_self.identifier);
3721
+ _timeoutWrapper = createTimeoutWrapper(_config.setTimeoutOverride, _config.clearTimeoutOverride);
3722
+ _optimizeObject = !_config.disableOptimizeObj && isChromium();
3723
+ _hookWParam(extendedCore);
3724
+ if (_config.eventsLimitInMem > 0) {
3725
+ _queueSizeLimit = _config.eventsLimitInMem;
3726
+ }
3727
+ if (_config.immediateEventLimit > 0) {
3728
+ _immediateQueueSizeLimit = _config.immediateEventLimit;
3729
+ }
3730
+ if (_config.autoFlushEventsLimit > 0) {
3731
+ _autoFlushEventsLimit = _config.autoFlushEventsLimit;
3732
+ }
3733
+ _disableXhrSync = _config.disableXhrSync;
3734
+ if (isNumber(_config[strMaxEventRetryAttempts])) {
3735
+ _maxEventSendAttempts = _config[strMaxEventRetryAttempts];
3736
+ }
3737
+ if (isNumber(_config[strMaxUnloadEventRetryAttempts])) {
3738
+ _maxUnloadEventSendAttempts = _config[strMaxUnloadEventRetryAttempts];
3739
+ }
3740
+ _setAutoLimits();
3741
+ if (_config.httpXHROverride && _config.httpXHROverride.sendPOST) {
3742
+ _xhrOverride = _config.httpXHROverride;
3743
+ }
3744
+ if (isValueAssigned(coreConfig.anonCookieName)) {
3745
+ _httpManager.addQueryStringParameter("anoncknm", coreConfig.anonCookieName);
3746
+ }
3747
+ _httpManager.sendHook = _config.payloadPreprocessor;
3748
+ _httpManager.sendListener = _config.payloadListener;
3749
+ var endpointUrl = _config.overrideEndpointUrl ? _config.overrideEndpointUrl : coreConfig.endpointUrl;
3750
+ _self._notificationManager = coreConfig.extensionConfig.NotificationManager;
3751
+ _httpManager.initialize(endpointUrl, _self.core, _self, _xhrOverride, _config);
3752
+ var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents || [];
3753
+ addPageUnloadEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
3754
+ addPageHideEventListener(_handleUnloadEvents, excludePageUnloadEvents, _evtNamespace);
3755
+ addPageShowEventListener(_handleShowEvents, coreConfig.disablePageShowEvents, _evtNamespace);
3756
+ }
3757
+ catch (e) {
3758
+ _self.setInitialized(false);
3759
+ throw e;
3760
+ }
3082
3761
  }, function () { return ({ coreConfig: coreConfig, core: core, extensions: extensions }); });
3083
3762
  };
3084
3763
  _self.processTelemetry = function (ev, itemCtx) {
@@ -3107,6 +3786,15 @@
3107
3786
  }
3108
3787
  _self.processNext(event, itemCtx);
3109
3788
  };
3789
+ _self._doTeardown = function (unloadCtx, unloadState) {
3790
+ _releaseAllQueues(2 , 2 );
3791
+ _isTeardownCalled = true;
3792
+ _httpManager.teardown();
3793
+ removePageUnloadEventListener(null, _evtNamespace);
3794
+ removePageHideEventListener(null, _evtNamespace);
3795
+ removePageShowEventListener(null, _evtNamespace);
3796
+ _initDefaults();
3797
+ };
3110
3798
  function _hookWParam(extendedCore) {
3111
3799
  var existingGetWParamMethod = extendedCore.getWParam;
3112
3800
  extendedCore.getWParam = function () {
@@ -3134,7 +3822,7 @@
3134
3822
  event.sendAttempt = 0;
3135
3823
  }
3136
3824
  if (!event.latency) {
3137
- event.latency = EventLatency.Normal;
3825
+ event.latency = 1 ;
3138
3826
  }
3139
3827
  if (event.ext && event.ext["trace"]) {
3140
3828
  delete (event.ext["trace"]);
@@ -3153,7 +3841,7 @@
3153
3841
  }
3154
3842
  if (event.sync) {
3155
3843
  if (_currentBackoffCount || _paused) {
3156
- event.latency = EventLatency.RealTime;
3844
+ event.latency = 3 ;
3157
3845
  event.sync = false;
3158
3846
  }
3159
3847
  else {
@@ -3169,7 +3857,7 @@
3169
3857
  var evtLatency = event.latency;
3170
3858
  var queueSize = _queueSize;
3171
3859
  var queueLimit = _queueSizeLimit;
3172
- if (evtLatency === EventLatency.Immediate) {
3860
+ if (evtLatency === 4 ) {
3173
3861
  queueSize = _immediateQueueSize;
3174
3862
  queueLimit = _immediateQueueSizeLimit;
3175
3863
  }
@@ -3178,10 +3866,10 @@
3178
3866
  eventDropped = !_addEventToProperQueue(event, append);
3179
3867
  }
3180
3868
  else {
3181
- var dropLatency = EventLatency.Normal;
3869
+ var dropLatency = 1 ;
3182
3870
  var dropNumber = EventsDroppedAtOneTime;
3183
- if (evtLatency === EventLatency.Immediate) {
3184
- dropLatency = EventLatency.Immediate;
3871
+ if (evtLatency === 4 ) {
3872
+ dropLatency = 4 ;
3185
3873
  dropNumber = 1;
3186
3874
  }
3187
3875
  eventDropped = true;
@@ -3199,7 +3887,7 @@
3199
3887
  _setAutoLimits();
3200
3888
  var doFlush = _queueSize > eventLimit;
3201
3889
  if (!doFlush && _autoFlushBatchLimit > 0) {
3202
- for (var latency = EventLatency.Normal; !doFlush && latency <= EventLatency.RealTime; latency++) {
3890
+ for (var latency = 1 ; !doFlush && latency <= 3 ; latency++) {
3203
3891
  var batchQueue = _batchQueues[latency];
3204
3892
  if (batchQueue && batchQueue.batches) {
3205
3893
  arrForEach(batchQueue.batches, function (theBatch) {
@@ -3212,11 +3900,6 @@
3212
3900
  }
3213
3901
  _performAutoFlush(true, doFlush);
3214
3902
  };
3215
- _self.teardown = function () {
3216
- _releaseAllQueues(2 , 2 );
3217
- _isTeardownCalled = true;
3218
- _httpManager.teardown();
3219
- };
3220
3903
  _self.pause = function () {
3221
3904
  _clearScheduledTimer();
3222
3905
  _paused = true;
@@ -3258,7 +3941,7 @@
3258
3941
  _clearScheduledTimer();
3259
3942
  sendReason = sendReason || 1 ;
3260
3943
  if (async) {
3261
- _queueBatches(EventLatency.Normal, 0 , sendReason);
3944
+ _queueBatches(1 , 0 , sendReason);
3262
3945
  _resetQueueCounts();
3263
3946
  if (_flushCallbackTimerId == null) {
3264
3947
  _flushCallbackTimerId = _createTimer(function () {
@@ -3270,7 +3953,7 @@
3270
3953
  }
3271
3954
  }
3272
3955
  else {
3273
- _sendEventsForLatencyAndAbove(EventLatency.Normal, 1 , sendReason);
3956
+ _sendEventsForLatencyAndAbove(1 , 1 , sendReason);
3274
3957
  if (callback !== null && callback !== undefined) {
3275
3958
  callback();
3276
3959
  }
@@ -3305,7 +3988,7 @@
3305
3988
  if (immediateTimeOut >= 0) {
3306
3989
  _immediateTimerId = _createTimer(function () {
3307
3990
  _immediateTimerId = null;
3308
- _sendEventsForLatencyAndAbove(EventLatency.Immediate, 0 , 1 );
3991
+ _sendEventsForLatencyAndAbove(4 , 0 , 1 );
3309
3992
  _scheduleTimer();
3310
3993
  }, immediateTimeOut);
3311
3994
  }
@@ -3315,7 +3998,7 @@
3315
3998
  if (_hasEvents()) {
3316
3999
  _scheduledTimerId = _createTimer(function () {
3317
4000
  _scheduledTimerId = null;
3318
- _sendEventsForLatencyAndAbove(_timerCount === 0 ? EventLatency.RealTime : EventLatency.Normal, 0 , 1 );
4001
+ _sendEventsForLatencyAndAbove(_timerCount === 0 ? 3 : 1 , 0 , 1 );
3319
4002
  _timerCount++;
3320
4003
  _timerCount %= 2;
3321
4004
  _scheduleTimer();
@@ -3340,19 +4023,60 @@
3340
4023
  _scheduleTimer();
3341
4024
  }
3342
4025
  };
4026
+ function _initDefaults() {
4027
+ _config = null;
4028
+ _isTeardownCalled = false;
4029
+ _flushCallbackQueue = [];
4030
+ _flushCallbackTimerId = null;
4031
+ _paused = false;
4032
+ _immediateQueueSize = 0;
4033
+ _immediateQueueSizeLimit = 500;
4034
+ _queueSize = 0;
4035
+ _queueSizeLimit = 10000;
4036
+ _profiles = {};
4037
+ _currentProfile = RT_PROFILE;
4038
+ _scheduledTimerId = null;
4039
+ _immediateTimerId = null;
4040
+ _currentBackoffCount = 0;
4041
+ _timerCount = 0;
4042
+ _xhrOverride = null;
4043
+ _batchQueues = {};
4044
+ _autoFlushEventsLimit = undefined;
4045
+ _autoFlushBatchLimit = 0;
4046
+ _delayedBatchSendLatency = -1;
4047
+ _delayedBatchReason = null;
4048
+ _optimizeObject = true;
4049
+ _isPageUnloadTriggered = false;
4050
+ _disableXhrSync = false;
4051
+ _maxEventSendAttempts = MaxSendAttempts;
4052
+ _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
4053
+ _evtNamespace = null;
4054
+ _timeoutWrapper = createTimeoutWrapper();
4055
+ _httpManager = new HttpManager(MaxNumberEventPerBatch, MaxConnections, MaxRequestRetriesBeforeBackoff, {
4056
+ requeue: _requeueEvents,
4057
+ send: _sendingEvent,
4058
+ sent: _eventsSentEvent,
4059
+ drop: _eventsDropped,
4060
+ rspFail: _eventsResponseFail,
4061
+ oth: _otherEvent
4062
+ }, _timeoutWrapper);
4063
+ _initializeProfiles();
4064
+ _clearQueues();
4065
+ _setAutoLimits();
4066
+ }
3343
4067
  function _createTimer(theTimerFunc, timeOut) {
3344
4068
  if (timeOut === 0 && _currentBackoffCount) {
3345
4069
  timeOut = 1;
3346
4070
  }
3347
4071
  var timerMultiplier = 1000;
3348
4072
  if (_currentBackoffCount) {
3349
- timerMultiplier = RetryPolicy$1.getMillisToBackoffForRetry(_currentBackoffCount - 1);
4073
+ timerMultiplier = retryPolicyGetMillisToBackoffForRetry(_currentBackoffCount - 1);
3350
4074
  }
3351
- return _self._setTimeoutOverride(theTimerFunc, timeOut * timerMultiplier);
4075
+ return _timeoutWrapper.set(theTimerFunc, timeOut * timerMultiplier);
3352
4076
  }
3353
4077
  function _clearScheduledTimer() {
3354
4078
  if (_scheduledTimerId !== null) {
3355
- _self._clearTimeoutOverride(_scheduledTimerId);
4079
+ _timeoutWrapper.clear(_scheduledTimerId);
3356
4080
  _scheduledTimerId = null;
3357
4081
  _timerCount = 0;
3358
4082
  }
@@ -3360,27 +4084,27 @@
3360
4084
  function _releaseAllQueues(sendType, sendReason) {
3361
4085
  _clearScheduledTimer();
3362
4086
  if (_flushCallbackTimerId) {
3363
- _self._clearTimeoutOverride(_flushCallbackTimerId);
4087
+ _timeoutWrapper.clear(_flushCallbackTimerId);
3364
4088
  _flushCallbackTimerId = null;
3365
4089
  }
3366
4090
  if (!_paused) {
3367
- _sendEventsForLatencyAndAbove(EventLatency.Normal, sendType, sendReason);
4091
+ _sendEventsForLatencyAndAbove(1 , sendType, sendReason);
3368
4092
  }
3369
4093
  }
3370
4094
  function _clearQueues() {
3371
- _batchQueues[EventLatency.Immediate] = {
4095
+ _batchQueues[4 ] = {
3372
4096
  batches: [],
3373
4097
  iKeyMap: {}
3374
4098
  };
3375
- _batchQueues[EventLatency.RealTime] = {
4099
+ _batchQueues[3 ] = {
3376
4100
  batches: [],
3377
4101
  iKeyMap: {}
3378
4102
  };
3379
- _batchQueues[EventLatency.CostDeferred] = {
4103
+ _batchQueues[2 ] = {
3380
4104
  batches: [],
3381
4105
  iKeyMap: {}
3382
4106
  };
3383
- _batchQueues[EventLatency.Normal] = {
4107
+ _batchQueues[1 ] = {
3384
4108
  batches: [],
3385
4109
  iKeyMap: {}
3386
4110
  };
@@ -3388,7 +4112,7 @@
3388
4112
  function _getEventBatch(iKey, latency, create) {
3389
4113
  var batchQueue = _batchQueues[latency];
3390
4114
  if (!batchQueue) {
3391
- latency = EventLatency.Normal;
4115
+ latency = 1 ;
3392
4116
  batchQueue = _batchQueues[latency];
3393
4117
  }
3394
4118
  var eventBatch = batchQueue.iKeyMap[iKey];
@@ -3416,7 +4140,7 @@
3416
4140
  var latency = event.latency;
3417
4141
  var eventBatch = _getEventBatch(event.iKey, latency, true);
3418
4142
  if (eventBatch.addEvent(event)) {
3419
- if (latency !== EventLatency.Immediate) {
4143
+ if (latency !== 4 ) {
3420
4144
  _queueSize++;
3421
4145
  if (append && event.sendAttempt === 0) {
3422
4146
  _performAutoFlush(!event.sync, _autoFlushBatchLimit > 0 && eventBatch.count() >= _autoFlushBatchLimit);
@@ -3436,7 +4160,7 @@
3436
4160
  var droppedEvents = eventBatch.split(0, dropNumber);
3437
4161
  var droppedCount = droppedEvents.count();
3438
4162
  if (droppedCount > 0) {
3439
- if (currentLatency === EventLatency.Immediate) {
4163
+ if (currentLatency === 4 ) {
3440
4164
  _immediateQueueSize -= droppedCount;
3441
4165
  }
3442
4166
  else {
@@ -3458,7 +4182,7 @@
3458
4182
  var batchQueue = _batchQueues[latency];
3459
4183
  if (batchQueue && batchQueue.batches) {
3460
4184
  arrForEach(batchQueue.batches, function (theBatch) {
3461
- if (latency === EventLatency.Immediate) {
4185
+ if (latency === 4 ) {
3462
4186
  immediateQueue += theBatch.count();
3463
4187
  }
3464
4188
  else {
@@ -3467,7 +4191,7 @@
3467
4191
  });
3468
4192
  }
3469
4193
  };
3470
- for (var latency = EventLatency.Normal; latency <= EventLatency.Immediate; latency++) {
4194
+ for (var latency = 1 ; latency <= 4 ; latency++) {
3471
4195
  _loop_1(latency);
3472
4196
  }
3473
4197
  _queueSize = normalQueue;
@@ -3479,7 +4203,7 @@
3479
4203
  if (!isAsync || _httpManager.canSendRequest()) {
3480
4204
  doPerf(_self.core, function () { return "PostChannel._queueBatches"; }, function () {
3481
4205
  var droppedEvents = [];
3482
- var latencyToProcess = EventLatency.Immediate;
4206
+ var latencyToProcess = 4 ;
3483
4207
  while (latencyToProcess >= latency) {
3484
4208
  var batchQueue = _batchQueues[latencyToProcess];
3485
4209
  if (batchQueue && batchQueue.batches && batchQueue.batches.length > 0) {
@@ -3490,7 +4214,7 @@
3490
4214
  else {
3491
4215
  eventsQueued = eventsQueued || (theBatch && theBatch.count() > 0);
3492
4216
  }
3493
- if (latencyToProcess === EventLatency.Immediate) {
4217
+ if (latencyToProcess === 4 ) {
3494
4218
  _immediateQueueSize -= theBatch.count();
3495
4219
  }
3496
4220
  else {
@@ -3518,7 +4242,7 @@
3518
4242
  return eventsQueued;
3519
4243
  }
3520
4244
  function _flushImpl(callback, sendReason) {
3521
- _sendEventsForLatencyAndAbove(EventLatency.Normal, 0 , sendReason);
4245
+ _sendEventsForLatencyAndAbove(1 , 0 , sendReason);
3522
4246
  _waitForIdleManager(function () {
3523
4247
  if (callback) {
3524
4248
  callback();
@@ -3567,7 +4291,7 @@
3567
4291
  arrForEach(theBatch.events(), function (theEvent) {
3568
4292
  if (theEvent) {
3569
4293
  if (theEvent.sync) {
3570
- theEvent.latency = EventLatency.Immediate;
4294
+ theEvent.latency = 4 ;
3571
4295
  theEvent.sync = false;
3572
4296
  }
3573
4297
  if (theEvent.sendAttempt < maxSendAttempts) {
@@ -3596,7 +4320,7 @@
3596
4320
  notifyFunc.apply(manager, theArgs);
3597
4321
  }
3598
4322
  catch (e) {
3599
- _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.NotificationException, evtName + " notification failed: " + e);
4323
+ _throwInternal(_self.diagLog(), 1 , 74 , evtName + " notification failed: " + e);
3600
4324
  }
3601
4325
  }
3602
4326
  }
@@ -3654,6 +4378,12 @@
3654
4378
  _autoFlushBatchLimit = 0;
3655
4379
  }
3656
4380
  }
4381
+ objDefineAccessors(_self, "_setTimeoutOverride", function () { return _timeoutWrapper.set; }, function (value) {
4382
+ _timeoutWrapper = createTimeoutWrapper(value, _timeoutWrapper.clear);
4383
+ });
4384
+ objDefineAccessors(_self, "_clearTimeoutOverride", function () { return _timeoutWrapper.clear; }, function (value) {
4385
+ _timeoutWrapper = createTimeoutWrapper(_timeoutWrapper.set, value);
4386
+ });
3657
4387
  });
3658
4388
  return _this;
3659
4389
  }
@@ -3669,4 +4399,4 @@
3669
4399
  (function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
3670
4400
 
3671
4401
  })(this.oneDS = this.oneDS || {});
3672
- //# sourceMappingURL=ms.post-3.1.11.gbl.js.map
4402
+ //# sourceMappingURL=ms.post-3.2.2.gbl.js.map