@microsoft/1ds-post-js 3.2.2 → 3.2.5

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 (76) hide show
  1. package/CODE_OF_CONDUCT.md +9 -0
  2. package/CONTRIBUTING.md +14 -0
  3. package/LICENSE.TXT +3 -3
  4. package/NOTICE +17 -0
  5. package/PRIVACY +3 -0
  6. package/README.md +16 -2
  7. package/SECURITY.md +41 -0
  8. package/SUPPORT.md +14 -0
  9. package/bundle/{ms.post-3.2.2.gbl.js → ms.post-3.2.5.gbl.js} +933 -858
  10. package/bundle/ms.post-3.2.5.gbl.js.map +1 -0
  11. package/bundle/ms.post-3.2.5.gbl.min.js +7 -0
  12. package/bundle/ms.post-3.2.5.gbl.min.js.map +1 -0
  13. package/bundle/ms.post-3.2.5.integrity.json +46 -0
  14. package/bundle/{ms.post-3.2.2.js → ms.post-3.2.5.js} +933 -858
  15. package/bundle/ms.post-3.2.5.js.map +1 -0
  16. package/bundle/ms.post-3.2.5.min.js +7 -0
  17. package/bundle/ms.post-3.2.5.min.js.map +1 -0
  18. package/bundle/ms.post.gbl.js +932 -857
  19. package/bundle/ms.post.gbl.js.map +1 -1
  20. package/bundle/ms.post.gbl.min.js +2 -2
  21. package/bundle/ms.post.gbl.min.js.map +1 -1
  22. package/bundle/ms.post.integrity.json +17 -17
  23. package/bundle/ms.post.js +932 -857
  24. package/bundle/ms.post.js.map +1 -1
  25. package/bundle/ms.post.min.js +2 -2
  26. package/bundle/ms.post.min.js.map +1 -1
  27. package/dist/ms.post.js +213 -197
  28. package/dist/ms.post.js.map +1 -1
  29. package/dist/ms.post.min.js +2 -2
  30. package/dist/ms.post.min.js.map +1 -1
  31. package/dist-esm/src/BatchNotificationActions.js +1 -1
  32. package/dist-esm/src/ClockSkewManager.js +6 -1
  33. package/dist-esm/src/ClockSkewManager.js.map +1 -1
  34. package/dist-esm/src/DataModels.js +1 -1
  35. package/dist-esm/src/EventBatch.d.ts +0 -5
  36. package/dist-esm/src/EventBatch.js +9 -4
  37. package/dist-esm/src/EventBatch.js.map +1 -1
  38. package/dist-esm/src/HttpManager.d.ts +2 -7
  39. package/dist-esm/src/HttpManager.js +116 -108
  40. package/dist-esm/src/HttpManager.js.map +1 -1
  41. package/dist-esm/src/Index.js +1 -1
  42. package/dist-esm/src/InternalConstants.d.ts +27 -0
  43. package/dist-esm/src/InternalConstants.js +40 -0
  44. package/dist-esm/src/InternalConstants.js.map +1 -0
  45. package/dist-esm/src/KillSwitch.js +7 -2
  46. package/dist-esm/src/KillSwitch.js.map +1 -1
  47. package/dist-esm/src/PostChannel.d.ts +1 -1
  48. package/dist-esm/src/PostChannel.js +79 -65
  49. package/dist-esm/src/PostChannel.js.map +1 -1
  50. package/dist-esm/src/RetryPolicy.js +1 -1
  51. package/dist-esm/src/Serializer.d.ts +1 -1
  52. package/dist-esm/src/Serializer.js +9 -3
  53. package/dist-esm/src/Serializer.js.map +1 -1
  54. package/dist-esm/src/TimeoutOverrideWrapper.d.ts +5 -5
  55. package/dist-esm/src/TimeoutOverrideWrapper.js +6 -6
  56. package/dist-esm/src/TimeoutOverrideWrapper.js.map +1 -1
  57. package/dist-esm/src/typings/XDomainRequest.js +1 -1
  58. package/package.json +4 -2
  59. package/src/EventBatch.ts +4 -4
  60. package/src/HttpManager.ts +70 -68
  61. package/src/InternalConstants.ts +41 -0
  62. package/src/KillSwitch.ts +1 -1
  63. package/src/PostChannel.ts +45 -36
  64. package/src/Serializer.ts +7 -5
  65. package/src/TimeoutOverrideWrapper.ts +6 -6
  66. package/bundle/ms.post-3.2.2.gbl.js.map +0 -1
  67. package/bundle/ms.post-3.2.2.gbl.min.js +0 -7
  68. package/bundle/ms.post-3.2.2.gbl.min.js.map +0 -1
  69. package/bundle/ms.post-3.2.2.integrity.json +0 -46
  70. package/bundle/ms.post-3.2.2.js.map +0 -1
  71. package/bundle/ms.post-3.2.2.min.js +0 -7
  72. package/bundle/ms.post-3.2.2.min.js.map +0 -1
  73. package/dist-esm/src/Constants.d.ts +0 -25
  74. package/dist-esm/src/Constants.js +0 -31
  75. package/dist-esm/src/Constants.js.map +0 -1
  76. package/src/Constants.ts +0 -28
package/bundle/ms.post.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * 1DS JS SDK POST plugin, 3.2.2
2
+ * 1DS JS SDK POST plugin, 3.2.5
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  * (Microsoft Internal Only)
5
5
  */
@@ -331,14 +331,55 @@
331
331
  };
332
332
  dynamicProto[DynProtoDefaultOptions] = perfDefaults;
333
333
 
334
- var strEmpty = "";
335
- var strSetNextPlugin = "setNextPlugin";
336
- var strIsInitialized = "isInitialized";
337
- var strTeardown = "teardown";
338
- var strCore = "core";
339
- var strUpdate = "update";
340
- var strDisabled = "disabled";
341
- var strDoTeardown = "_doTeardown";
334
+ var _DYN_INITIALIZE = "initialize";
335
+ var _DYN_NAME = "name";
336
+ var _DYN_IDENTIFIER = "identifier";
337
+ var _DYN_PUSH = "push";
338
+ var _DYN_IS_INITIALIZED = "isInitialized";
339
+ var _DYN_CONFIG = "config";
340
+ var _DYN_LOGGER = "logger";
341
+ var _DYN_LENGTH = "length";
342
+ var _DYN_TIME = "time";
343
+ var _DYN_PROCESS_NEXT = "processNext";
344
+ var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
345
+ var _DYN_GET_PLUGIN = "getPlugin";
346
+ var _DYN_SPLICE = "splice";
347
+ var _DYN_TEARDOWN = "teardown";
348
+ var _DYN_MESSAGE_ID = "messageId";
349
+ var _DYN_MESSAGE = "message";
350
+ var _DYN_IS_ASYNC = "isAsync";
351
+ var _DYN__DO_TEARDOWN = "_doTeardown";
352
+ var _DYN_UPDATE = "update";
353
+ var _DYN_GET_NEXT = "getNext";
354
+ var _DYN_DIAG_LOG = "diagLog";
355
+ var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
356
+ var _DYN_CREATE_NEW = "createNew";
357
+ var _DYN_INDEX_OF = "indexOf";
358
+ var _DYN_USER_AGENT = "userAgent";
359
+ var _DYN_SPLIT = "split";
360
+ var _DYN_NODE_TYPE = "nodeType";
361
+ var _DYN_APPLY = "apply";
362
+ var _DYN_REPLACE = "replace";
363
+ var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
364
+ var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
365
+ var _DYN_TO_LOWER_CASE = "toLowerCase";
366
+ var _DYN_CALL = "call";
367
+ var _DYN_TYPE = "type";
368
+ var _DYN_HANDLER = "handler";
369
+ var _DYN_IS_CHILD_EVT = "isChildEvt";
370
+ var _DYN_GET_CTX = "getCtx";
371
+ var _DYN_SET_CTX = "setCtx";
372
+ var _DYN_COMPLETE = "complete";
373
+
374
+ var STR_EMPTY$1 = "";
375
+ var STR_CORE = "core";
376
+ var STR_DISABLED = "disabled";
377
+ var STR_EXTENSION_CONFIG = "extensionConfig";
378
+ var STR_PROCESS_TELEMETRY = "processTelemetry";
379
+ var STR_PRIORITY = "priority";
380
+ var STR_ERROR_TO_CONSOLE = "errorToConsole";
381
+ var STR_WARN_TO_CONSOLE = "warnToConsole";
382
+ var STR_GET_PERF_MGR = "getPerfMgr";
342
383
 
343
384
  var cStrStartsWith = "startsWith";
344
385
  var strIndexOf = "indexOf";
@@ -355,7 +396,7 @@
355
396
  var _isArray = Array.isArray;
356
397
  var _objToString = ObjProto[strToString];
357
398
  var _fnToString = ObjHasOwnProperty[strToString];
358
- var _objFunctionString = _fnToString.call(ObjClass);
399
+ var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
359
400
  var rCamelCase = /-([a-z])/g;
360
401
  var rNormalizeInvalid = /([^\w\d_$])/g;
361
402
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
@@ -379,7 +420,7 @@
379
420
  return (value === null || isUndefined(value));
380
421
  }
381
422
  function hasOwnProperty(obj, prop) {
382
- return !!(obj && ObjHasOwnProperty.call(obj, prop));
423
+ return !!(obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop));
383
424
  }
384
425
  function isObject(value) {
385
426
  return !!(value && typeof value === strShimObject);
@@ -390,11 +431,11 @@
390
431
  function normalizeJsName(name) {
391
432
  var value = name;
392
433
  if (value && isString(value)) {
393
- value = value.replace(rCamelCase, function (_all, letter) {
434
+ value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
394
435
  return letter.toUpperCase();
395
436
  });
396
- value = value.replace(rNormalizeInvalid, "_");
397
- value = value.replace(rLeadingNumeric, function (_all, match) {
437
+ value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
438
+ value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
398
439
  return "_" + match;
399
440
  });
400
441
  }
@@ -403,8 +444,8 @@
403
444
  function objForEachKey(target, callbackfn) {
404
445
  if (target) {
405
446
  for (var prop in target) {
406
- if (ObjHasOwnProperty.call(target, prop)) {
407
- callbackfn.call(target, prop, target[prop]);
447
+ if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
448
+ callbackfn[_DYN_CALL ](target, prop, target[prop]);
408
449
  }
409
450
  }
410
451
  }
@@ -418,8 +459,8 @@
418
459
  }
419
460
  function _strStartsWithPoly(value, checkValue) {
420
461
  var result = false;
421
- var chkLen = checkValue ? checkValue.length : 0;
422
- if (value && chkLen && value.length >= chkLen && !(result = value === checkValue)) {
462
+ var chkLen = checkValue ? checkValue[_DYN_LENGTH ] : 0;
463
+ if (value && chkLen && value[_DYN_LENGTH ] >= chkLen && !(result = value === checkValue)) {
423
464
  for (var lp = 0; lp < chkLen; lp++) {
424
465
  if (value[lp] !== checkValue[lp]) {
425
466
  return false;
@@ -431,13 +472,13 @@
431
472
  }
432
473
  function strContains(value, search) {
433
474
  if (value && search) {
434
- return value.indexOf(search) !== -1;
475
+ return value[_DYN_INDEX_OF ](search) !== -1;
435
476
  }
436
477
  return false;
437
478
  }
438
479
  var isArray = _isArray || _isArrayPoly;
439
480
  function _isArrayPoly(obj) {
440
- return !!(obj && _objToString.call(obj) === "[object Array]");
481
+ return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
441
482
  }
442
483
  function isString(value) {
443
484
  return typeof value === "string";
@@ -456,20 +497,20 @@
456
497
  result = true;
457
498
  }
458
499
  else {
459
- if (proto[strConstructor] && ObjHasOwnProperty.call(proto, strConstructor)) {
500
+ if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
460
501
  proto = proto[strConstructor];
461
502
  }
462
- result = typeof proto === strShimFunction && _fnToString.call(proto) === _objFunctionString;
503
+ result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
463
504
  }
464
505
  }
465
506
  return result;
466
507
  }
467
508
  function arrForEach(arr, callbackfn, thisArg) {
468
- var len = arr.length;
509
+ var len = arr[_DYN_LENGTH ];
469
510
  try {
470
511
  for (var idx = 0; idx < len; idx++) {
471
512
  if (idx in arr) {
472
- if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {
513
+ if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
473
514
  break;
474
515
  }
475
516
  }
@@ -483,7 +524,7 @@
483
524
  if (arr[strIndexOf]) {
484
525
  return arr[strIndexOf](searchElement, fromIndex);
485
526
  }
486
- var len = arr.length;
527
+ var len = arr[_DYN_LENGTH ];
487
528
  var from = fromIndex || 0;
488
529
  try {
489
530
  for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {
@@ -499,7 +540,7 @@
499
540
  }
500
541
  function strTrim(str) {
501
542
  if (str) {
502
- str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str.replace ? str.replace(/^\s+|\s+$/g, "") : str);
543
+ str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|\s+$/g, STR_EMPTY$1) : str);
503
544
  }
504
545
  return str;
505
546
  }
@@ -523,15 +564,15 @@
523
564
  }
524
565
  var result = [];
525
566
  for (var prop in obj) {
526
- if (obj && ObjHasOwnProperty.call(obj, prop)) {
527
- result.push(prop);
567
+ if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
568
+ result[_DYN_PUSH ](prop);
528
569
  }
529
570
  }
530
571
  if (_objKeysHasDontEnumBug) {
531
- var dontEnumsLength = _objKeysDontEnums.length;
572
+ var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH ];
532
573
  for (var lp = 0; lp < dontEnumsLength; lp++) {
533
- if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {
534
- result.push(_objKeysDontEnums[lp]);
574
+ if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
575
+ result[_DYN_PUSH ](_objKeysDontEnums[lp]);
535
576
  }
536
577
  }
537
578
  }
@@ -587,6 +628,9 @@
587
628
  }
588
629
  return theValue;
589
630
  }
631
+ function getCfgValue(theValue, defaultValue) {
632
+ return !isNullOrUndefined(theValue) ? theValue : defaultValue;
633
+ }
590
634
  function _createProxyFunction(source, funcName) {
591
635
  var srcFunc = null;
592
636
  var src = null;
@@ -602,7 +646,7 @@
602
646
  src = srcFunc();
603
647
  }
604
648
  if (src) {
605
- return src[funcName].apply(src, originalArguments);
649
+ return src[funcName][_DYN_APPLY ](src, originalArguments);
606
650
  }
607
651
  };
608
652
  }
@@ -622,7 +666,7 @@
622
666
  function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
623
667
  var theArgs = arguments;
624
668
  var extended = theArgs[0] || {};
625
- var argLen = theArgs.length;
669
+ var argLen = theArgs[_DYN_LENGTH ];
626
670
  var deep = false;
627
671
  var idx = 1;
628
672
  if (argLen > 0 && isBoolean(extended)) {
@@ -638,7 +682,7 @@
638
682
  var isArgArray = isArray(arg);
639
683
  var isArgObj = isObject(arg);
640
684
  for (var prop in arg) {
641
- var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty.call(arg, prop)));
685
+ var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
642
686
  if (!propOk) {
643
687
  continue;
644
688
  }
@@ -807,18 +851,18 @@
807
851
  }
808
852
  function isIE() {
809
853
  var nav = getNavigator();
810
- if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {
811
- _navUserAgentCheck = nav.userAgent;
812
- var userAgent = (_navUserAgentCheck || strEmpty).toLowerCase();
854
+ if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
855
+ _navUserAgentCheck = nav[_DYN_USER_AGENT ];
856
+ var userAgent = (_navUserAgentCheck || STR_EMPTY$1)[_DYN_TO_LOWER_CASE ]();
813
857
  _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
814
858
  }
815
859
  return _isTrident;
816
860
  }
817
861
  function dumpObj(object) {
818
- var objectTypeDump = Object[strShimPrototype].toString.call(object);
819
- var propertyValueDump = strEmpty;
862
+ var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
863
+ var propertyValueDump = STR_EMPTY$1;
820
864
  if (objectTypeDump === "[object Error]") {
821
- propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'";
865
+ propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME ] + "'";
822
866
  }
823
867
  else if (hasJSON()) {
824
868
  propertyValueDump = getJSON().stringify(object);
@@ -883,13 +927,11 @@
883
927
  var AiNonUserActionablePrefix = "AI (Internal): ";
884
928
  var AiUserActionablePrefix = "AI: ";
885
929
  var AIInternalMessagePrefix = "AITR_";
886
- var strErrorToConsole = "errorToConsole";
887
- var strWarnToConsole = "warnToConsole";
888
930
  function _sanitizeDiagnosticText(text) {
889
931
  if (text) {
890
- return "\"" + text.replace(/\"/g, strEmpty) + "\"";
932
+ return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY$1) + "\"";
891
933
  }
892
- return strEmpty;
934
+ return STR_EMPTY$1;
893
935
  }
894
936
  function _logToConsole(func, message) {
895
937
  var theConsole = getConsole();
@@ -907,23 +949,23 @@
907
949
  function _InternalLogMessage(msgId, msg, isUserAct, properties) {
908
950
  if (isUserAct === void 0) { isUserAct = false; }
909
951
  var _self = this;
910
- _self.messageId = msgId;
911
- _self.message =
952
+ _self[_DYN_MESSAGE_ID ] = msgId;
953
+ _self[_DYN_MESSAGE ] =
912
954
  (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
913
955
  msgId;
914
- var strProps = strEmpty;
956
+ var strProps = STR_EMPTY$1;
915
957
  if (hasJSON()) {
916
958
  strProps = getJSON().stringify(properties);
917
959
  }
918
- var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : strEmpty) +
919
- (properties ? " props:" + _sanitizeDiagnosticText(strProps) : strEmpty);
920
- _self.message += diagnosticText;
960
+ var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY$1) +
961
+ (properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY$1);
962
+ _self[_DYN_MESSAGE ] += diagnosticText;
921
963
  }
922
964
  _InternalLogMessage.dataType = "MessageData";
923
965
  return _InternalLogMessage;
924
966
  }());
925
967
  function safeGetLogger(core, config) {
926
- return (core || {}).logger || new DiagnosticLogger(config);
968
+ return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
927
969
  }
928
970
  var DiagnosticLogger = /** @class */ (function () {
929
971
  function DiagnosticLogger(config) {
@@ -931,48 +973,49 @@
931
973
  this.queue = [];
932
974
  var _messageCount = 0;
933
975
  var _messageLogged = {};
976
+ var _loggingLevelConsole;
977
+ var _loggingLevelTelemetry;
978
+ var _maxInternalMessageLimit;
979
+ var _enableDebugExceptions;
934
980
  dynamicProto(DiagnosticLogger, this, function (_self) {
935
- if (isNullOrUndefined(config)) {
936
- config = {};
937
- }
938
- _self.consoleLoggingLevel = function () { return _getConfigValue("loggingLevelConsole", 0); };
939
- _self.telemetryLoggingLevel = function () { return _getConfigValue("loggingLevelTelemetry", 1); };
940
- _self.maxInternalMessageLimit = function () { return _getConfigValue("maxMessageLimit", 25); };
941
- _self.enableDebugExceptions = function () { return _getConfigValue("enableDebugExceptions", false); };
981
+ _setDefaultsFromConfig(config || {});
982
+ _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
983
+ _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
984
+ _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
985
+ _self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebugExceptions; };
942
986
  _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
943
987
  if (isUserAct === void 0) { isUserAct = false; }
944
988
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
945
- if (_self.enableDebugExceptions()) {
989
+ if (_enableDebugExceptions) {
946
990
  throw dumpObj(message);
947
991
  }
948
992
  else {
949
- var logFunc = severity === 1 ? strErrorToConsole : strWarnToConsole;
950
- if (!isUndefined(message.message)) {
951
- var logLevel = _self.consoleLoggingLevel();
993
+ var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
994
+ if (!isUndefined(message[_DYN_MESSAGE ])) {
952
995
  if (isUserAct) {
953
- var messageKey = +message.messageId;
954
- if (!_messageLogged[messageKey] && logLevel >= severity) {
955
- _self[logFunc](message.message);
996
+ var messageKey = +message[_DYN_MESSAGE_ID ];
997
+ if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
998
+ _self[logFunc](message[_DYN_MESSAGE ]);
956
999
  _messageLogged[messageKey] = true;
957
1000
  }
958
1001
  }
959
1002
  else {
960
- if (logLevel >= severity) {
961
- _self[logFunc](message.message);
1003
+ if (_loggingLevelConsole >= severity) {
1004
+ _self[logFunc](message[_DYN_MESSAGE ]);
962
1005
  }
963
1006
  }
964
- _self.logInternalMessage(severity, message);
1007
+ _logInternalMessage(severity, message);
965
1008
  }
966
1009
  else {
967
1010
  _debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
968
1011
  }
969
1012
  }
970
1013
  };
971
- _self.warnToConsole = function (message) {
1014
+ _self[STR_WARN_TO_CONSOLE ] = function (message) {
972
1015
  _logToConsole("warn", message);
973
1016
  _debugExtMsg("warning", message);
974
1017
  };
975
- _self.errorToConsole = function (message) {
1018
+ _self[STR_ERROR_TO_CONSOLE ] = function (message) {
976
1019
  _logToConsole("error", message);
977
1020
  _debugExtMsg("error", message);
978
1021
  };
@@ -980,12 +1023,13 @@
980
1023
  _messageCount = 0;
981
1024
  _messageLogged = {};
982
1025
  };
983
- _self.logInternalMessage = function (severity, message) {
1026
+ _self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
1027
+ function _logInternalMessage(severity, message) {
984
1028
  if (_areInternalMessagesThrottled()) {
985
1029
  return;
986
1030
  }
987
1031
  var logMessage = true;
988
- var messageKey = AIInternalMessagePrefix + message.messageId;
1032
+ var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
989
1033
  if (_messageLogged[messageKey]) {
990
1034
  logMessage = false;
991
1035
  }
@@ -993,58 +1037,66 @@
993
1037
  _messageLogged[messageKey] = true;
994
1038
  }
995
1039
  if (logMessage) {
996
- if (severity <= _self.telemetryLoggingLevel()) {
997
- _self.queue.push(message);
1040
+ if (severity <= _loggingLevelTelemetry) {
1041
+ _self.queue[_DYN_PUSH ](message);
998
1042
  _messageCount++;
999
1043
  _debugExtMsg((severity === 1 ? "error" : "warn"), message);
1000
1044
  }
1001
- if (_messageCount === _self.maxInternalMessageLimit()) {
1045
+ if (_messageCount === _maxInternalMessageLimit) {
1002
1046
  var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
1003
1047
  var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
1004
- _self.queue.push(throttleMessage);
1048
+ _self.queue[_DYN_PUSH ](throttleMessage);
1005
1049
  if (severity === 1 ) {
1006
- _self.errorToConsole(throttleLimitMessage);
1050
+ _self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
1007
1051
  }
1008
1052
  else {
1009
- _self.warnToConsole(throttleLimitMessage);
1053
+ _self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
1010
1054
  }
1011
1055
  }
1012
1056
  }
1013
- };
1014
- function _getConfigValue(name, defValue) {
1015
- var value = config[name];
1016
- if (!isNullOrUndefined(value)) {
1017
- return value;
1018
- }
1019
- return defValue;
1057
+ }
1058
+ function _setDefaultsFromConfig(config) {
1059
+ _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
1060
+ _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
1061
+ _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
1062
+ _enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false);
1020
1063
  }
1021
1064
  function _areInternalMessagesThrottled() {
1022
- return _messageCount >= _self.maxInternalMessageLimit();
1065
+ return _messageCount >= _maxInternalMessageLimit;
1023
1066
  }
1024
1067
  function _debugExtMsg(name, data) {
1025
- var dbgExt = getDebugExt(config);
1026
- if (dbgExt && dbgExt.diagLog) {
1027
- dbgExt.diagLog(name, data);
1068
+ var dbgExt = getDebugExt(config || {});
1069
+ if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
1070
+ dbgExt[_DYN_DIAG_LOG ](name, data);
1028
1071
  }
1029
1072
  }
1030
1073
  });
1031
1074
  }
1075
+ DiagnosticLogger.__ieDyn=1;
1032
1076
  return DiagnosticLogger;
1033
1077
  }());
1078
+ function _getLogger(logger) {
1079
+ return (logger || new DiagnosticLogger());
1080
+ }
1034
1081
  function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1035
1082
  if (isUserAct === void 0) { isUserAct = false; }
1036
- (logger || new DiagnosticLogger()).throwInternal(severity, msgId, msg, properties, isUserAct);
1083
+ _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
1084
+ }
1085
+ function _warnToConsole(logger, message) {
1086
+ _getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
1037
1087
  }
1038
1088
 
1039
1089
  var strExecutionContextKey = "ctx";
1090
+ var strParentContextKey = "ParentContextKey";
1091
+ var strChildrenContextKey = "ChildrenContextKey";
1040
1092
  var PerfEvent = /** @class */ (function () {
1041
1093
  function PerfEvent(name, payloadDetails, isAsync) {
1042
1094
  var _self = this;
1043
1095
  var accessorDefined = false;
1044
1096
  _self.start = dateNow();
1045
- _self.name = name;
1046
- _self.isAsync = isAsync;
1047
- _self.isChildEvt = function () { return false; };
1097
+ _self[_DYN_NAME ] = name;
1098
+ _self[_DYN_IS_ASYNC ] = isAsync;
1099
+ _self[_DYN_IS_CHILD_EVT ] = function () { return false; };
1048
1100
  if (isFunction(payloadDetails)) {
1049
1101
  var theDetails_1;
1050
1102
  accessorDefined = objDefineAccessors(_self, "payload", function () {
@@ -1055,24 +1107,24 @@
1055
1107
  return theDetails_1;
1056
1108
  });
1057
1109
  }
1058
- _self.getCtx = function (key) {
1110
+ _self[_DYN_GET_CTX ] = function (key) {
1059
1111
  if (key) {
1060
- if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {
1112
+ if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
1061
1113
  return _self[key];
1062
1114
  }
1063
1115
  return (_self[strExecutionContextKey] || {})[key];
1064
1116
  }
1065
1117
  return null;
1066
1118
  };
1067
- _self.setCtx = function (key, value) {
1119
+ _self[_DYN_SET_CTX ] = function (key, value) {
1068
1120
  if (key) {
1069
- if (key === PerfEvent.ParentContextKey) {
1121
+ if (key === PerfEvent[strParentContextKey]) {
1070
1122
  if (!_self[key]) {
1071
- _self.isChildEvt = function () { return true; };
1123
+ _self[_DYN_IS_CHILD_EVT ] = function () { return true; };
1072
1124
  }
1073
1125
  _self[key] = value;
1074
1126
  }
1075
- else if (key === PerfEvent.ChildrenContextKey) {
1127
+ else if (key === PerfEvent[strChildrenContextKey]) {
1076
1128
  _self[key] = value;
1077
1129
  }
1078
1130
  else {
@@ -1081,20 +1133,20 @@
1081
1133
  }
1082
1134
  }
1083
1135
  };
1084
- _self.complete = function () {
1136
+ _self[_DYN_COMPLETE ] = function () {
1085
1137
  var childTime = 0;
1086
- var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);
1138
+ var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
1087
1139
  if (isArray(childEvts)) {
1088
- for (var lp = 0; lp < childEvts.length; lp++) {
1140
+ for (var lp = 0; lp < childEvts[_DYN_LENGTH ]; lp++) {
1089
1141
  var childEvt = childEvts[lp];
1090
1142
  if (childEvt) {
1091
- childTime += childEvt.time;
1143
+ childTime += childEvt[_DYN_TIME ];
1092
1144
  }
1093
1145
  }
1094
1146
  }
1095
- _self.time = dateNow() - _self.start;
1096
- _self.exTime = _self.time - childTime;
1097
- _self.complete = function () { };
1147
+ _self[_DYN_TIME ] = dateNow() - _self.start;
1148
+ _self.exTime = _self[_DYN_TIME ] - childTime;
1149
+ _self[_DYN_COMPLETE ] = function () { };
1098
1150
  if (!accessorDefined && isFunction(payloadDetails)) {
1099
1151
  _self.payload = payloadDetails();
1100
1152
  }
@@ -1108,40 +1160,40 @@
1108
1160
  function doPerf(mgrSource, getSource, func, details, isAsync) {
1109
1161
  if (mgrSource) {
1110
1162
  var perfMgr = mgrSource;
1111
- if (isFunction(perfMgr["getPerfMgr"])) {
1112
- perfMgr = perfMgr["getPerfMgr"]();
1163
+ if (perfMgr[STR_GET_PERF_MGR]) {
1164
+ perfMgr = perfMgr[STR_GET_PERF_MGR]();
1113
1165
  }
1114
1166
  if (perfMgr) {
1115
1167
  var perfEvt = void 0;
1116
- var currentActive = perfMgr.getCtx(doPerfActiveKey);
1168
+ var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
1117
1169
  try {
1118
1170
  perfEvt = perfMgr.create(getSource(), details, isAsync);
1119
1171
  if (perfEvt) {
1120
- if (currentActive && perfEvt.setCtx) {
1121
- perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);
1122
- if (currentActive.getCtx && currentActive.setCtx) {
1123
- var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);
1172
+ if (currentActive && perfEvt[_DYN_SET_CTX ]) {
1173
+ perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
1174
+ if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
1175
+ var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
1124
1176
  if (!children) {
1125
1177
  children = [];
1126
- currentActive.setCtx(PerfEvent.ChildrenContextKey, children);
1178
+ currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
1127
1179
  }
1128
- children.push(perfEvt);
1180
+ children[_DYN_PUSH ](perfEvt);
1129
1181
  }
1130
1182
  }
1131
- perfMgr.setCtx(doPerfActiveKey, perfEvt);
1183
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
1132
1184
  return func(perfEvt);
1133
1185
  }
1134
1186
  }
1135
1187
  catch (ex) {
1136
- if (perfEvt && perfEvt.setCtx) {
1137
- perfEvt.setCtx("exception", ex);
1188
+ if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
1189
+ perfEvt[_DYN_SET_CTX ]("exception", ex);
1138
1190
  }
1139
1191
  }
1140
1192
  finally {
1141
1193
  if (perfEvt) {
1142
1194
  perfMgr.fire(perfEvt);
1143
1195
  }
1144
- perfMgr.setCtx(doPerfActiveKey, currentActive);
1196
+ perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
1145
1197
  }
1146
1198
  }
1147
1199
  }
@@ -1203,8 +1255,8 @@
1203
1255
  var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1204
1256
  var number = random32() >>> 0;
1205
1257
  var chars = 0;
1206
- var result = strEmpty;
1207
- while (result.length < maxLength) {
1258
+ var result = STR_EMPTY$1;
1259
+ while (result[_DYN_LENGTH ] < maxLength) {
1208
1260
  chars++;
1209
1261
  result += base64chars.charAt(number & 0x3F);
1210
1262
  number >>>= 6;
@@ -1217,7 +1269,7 @@
1217
1269
  }
1218
1270
 
1219
1271
  var _objDefineProperty = ObjDefineProperty;
1220
- var version = "2.8.3";
1272
+ var version = '2.8.6';
1221
1273
  var instanceName = "." + newId(6);
1222
1274
  var _dataUid = 0;
1223
1275
  function _createAccessor(target, prop, value) {
@@ -1236,7 +1288,7 @@
1236
1288
  return false;
1237
1289
  }
1238
1290
  function _canAcceptData(target) {
1239
- return target.nodeType === 1 || target.nodeType === 9 || !(+target.nodeType);
1291
+ return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
1240
1292
  }
1241
1293
  function _getCache(data, target) {
1242
1294
  var theCache = target[data.id];
@@ -1256,11 +1308,11 @@
1256
1308
  }
1257
1309
  function createUniqueNamespace(name, includeVersion) {
1258
1310
  if (includeVersion === void 0) { includeVersion = false; }
1259
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : "") + instanceName);
1311
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY$1) + instanceName);
1260
1312
  }
1261
1313
  function createElmNodeData(name) {
1262
1314
  var data = {
1263
- id: createUniqueNamespace("_aiData-" + (name || "") + "." + version),
1315
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY$1) + "." + version),
1264
1316
  accept: function (target) {
1265
1317
  return _canAcceptData(target);
1266
1318
  },
@@ -1288,214 +1340,505 @@
1288
1340
  return data;
1289
1341
  }
1290
1342
 
1291
- var pluginStateData = createElmNodeData("plugin");
1292
- function _getPluginState(plugin) {
1293
- return pluginStateData.get(plugin, "state", {}, true);
1294
- }
1295
-
1296
- var strTelemetryPluginChain = "TelemetryPluginChain";
1297
- var strHasRunFlags = "_hasRun";
1298
- var strGetTelCtx = "_getTelCtx";
1299
- var _chainId = 0;
1300
- function _getNextProxyStart(proxy, core, startAt) {
1301
- while (proxy) {
1302
- if (proxy.getPlugin() === startAt) {
1303
- return proxy;
1304
- }
1305
- proxy = proxy.getNext();
1343
+ var strOnPrefix = "on";
1344
+ var strAttachEvent = "attachEvent";
1345
+ var strAddEventHelper = "addEventListener";
1346
+ var strDetachEvent = "detachEvent";
1347
+ var strRemoveEventListener = "removeEventListener";
1348
+ var strEvents = "events";
1349
+ var strVisibilityChangeEvt = "visibilitychange";
1350
+ var strPageHide = "pagehide";
1351
+ var strPageShow = "pageshow";
1352
+ var strUnload = "unload";
1353
+ var strBeforeUnload = "beforeunload";
1354
+ var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
1355
+ var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
1356
+ var rRemoveEmptyNs = /\.[\.]+/g;
1357
+ var rRemoveTrailingEmptyNs = /[\.]+$/;
1358
+ var _guid = 1;
1359
+ var elmNodeData = createElmNodeData("events");
1360
+ var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1361
+ function _normalizeNamespace(name) {
1362
+ if (name && name[_DYN_REPLACE ]) {
1363
+ return name.replace(/^\s*\.*|\.*\s*$/g, STR_EMPTY$1);
1306
1364
  }
1307
- return createTelemetryProxyChain([startAt], core.config || {}, core);
1365
+ return name;
1308
1366
  }
1309
- function _createInternalContext(telemetryChain, config, core, startAt) {
1310
- var _nextProxy = null;
1311
- var _onComplete = [];
1312
- if (startAt !== null) {
1313
- _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
1314
- }
1315
- var context = {
1316
- _next: _moveNext,
1317
- ctx: {
1318
- core: function () {
1319
- return core;
1320
- },
1321
- diagLog: function () {
1322
- return safeGetLogger(core, config);
1323
- },
1324
- getCfg: function () {
1325
- return config;
1326
- },
1327
- getExtCfg: _getExtCfg,
1328
- getConfig: _getConfig,
1329
- hasNext: function () {
1330
- return !!_nextProxy;
1331
- },
1332
- getNext: function () {
1333
- return _nextProxy;
1334
- },
1335
- setNext: function (nextPlugin) {
1336
- _nextProxy = nextPlugin;
1337
- },
1338
- iterate: _iterateChain,
1339
- onComplete: _addOnComplete
1340
- }
1341
- };
1342
- function _addOnComplete(onComplete, that) {
1343
- var args = [];
1344
- for (var _i = 2; _i < arguments.length; _i++) {
1345
- args[_i - 2] = arguments[_i];
1346
- }
1347
- if (onComplete) {
1348
- _onComplete.push({
1349
- func: onComplete,
1350
- self: !isUndefined(that) ? that : context.ctx,
1351
- args: args
1367
+ function _getEvtNamespace(eventName, evtNamespace) {
1368
+ var _a;
1369
+ if (evtNamespace) {
1370
+ var theNamespace_1 = STR_EMPTY$1;
1371
+ if (isArray(evtNamespace)) {
1372
+ theNamespace_1 = STR_EMPTY$1;
1373
+ arrForEach(evtNamespace, function (name) {
1374
+ name = _normalizeNamespace(name);
1375
+ if (name) {
1376
+ if (name[0] !== ".") {
1377
+ name = "." + name;
1378
+ }
1379
+ theNamespace_1 += name;
1380
+ }
1352
1381
  });
1353
1382
  }
1354
- }
1355
- function _moveNext() {
1356
- var nextProxy = _nextProxy;
1357
- _nextProxy = nextProxy ? nextProxy.getNext() : null;
1358
- if (!nextProxy) {
1359
- var onComplete = _onComplete;
1360
- if (onComplete && onComplete.length > 0) {
1361
- arrForEach(onComplete, function (completeDetails) {
1362
- try {
1363
- completeDetails.func.call(completeDetails.self, completeDetails.args);
1364
- }
1365
- catch (e) {
1366
- _throwInternal(core.logger, 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1367
- }
1368
- });
1369
- _onComplete = [];
1370
- }
1383
+ else {
1384
+ theNamespace_1 = _normalizeNamespace(evtNamespace);
1371
1385
  }
1372
- return nextProxy;
1373
- }
1374
- function _getExtCfg(identifier, defaultValue, mergeDefault) {
1375
- if (defaultValue === void 0) { defaultValue = {}; }
1376
- if (mergeDefault === void 0) { mergeDefault = 0 ; }
1377
- var theConfig;
1378
- if (config) {
1379
- var extConfig = config.extensionConfig;
1380
- if (extConfig && identifier) {
1381
- theConfig = extConfig[identifier];
1386
+ if (theNamespace_1) {
1387
+ if (theNamespace_1[0] !== ".") {
1388
+ theNamespace_1 = "." + theNamespace_1;
1382
1389
  }
1390
+ eventName = (eventName || STR_EMPTY$1) + theNamespace_1;
1383
1391
  }
1384
- if (!theConfig) {
1385
- theConfig = defaultValue;
1392
+ }
1393
+ var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY$1) || []);
1394
+ return _a = {},
1395
+ _a[_DYN_TYPE ] = parsedEvent[1],
1396
+ _a.ns = ((parsedEvent[2] || STR_EMPTY$1).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY$1)[_DYN_SPLIT ](".").sort()).join("."),
1397
+ _a;
1398
+ }
1399
+ function _getRegisteredEvents(target, evtName, addDefault) {
1400
+ if (addDefault === void 0) { addDefault = true; }
1401
+ var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1402
+ var registeredEvents = aiEvts[evtName];
1403
+ if (!registeredEvents) {
1404
+ registeredEvents = aiEvts[evtName] = [];
1405
+ }
1406
+ return registeredEvents;
1407
+ }
1408
+ function _doDetach(obj, evtName, handlerRef, useCapture) {
1409
+ if (obj && evtName && evtName[_DYN_TYPE ]) {
1410
+ if (obj[strRemoveEventListener]) {
1411
+ obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
1386
1412
  }
1387
- else if (isObject(defaultValue)) {
1388
- if (mergeDefault !== 0 ) {
1389
- var newConfig_1 = objExtend(true, defaultValue, theConfig);
1390
- if (config && mergeDefault === 2 ) {
1391
- objForEachKey(defaultValue, function (field) {
1392
- if (isNullOrUndefined(newConfig_1[field])) {
1393
- var cfgValue = config[field];
1394
- if (!isNullOrUndefined(cfgValue)) {
1395
- newConfig_1[field] = cfgValue;
1396
- }
1397
- }
1398
- });
1399
- }
1400
- theConfig = newConfig_1;
1401
- }
1413
+ else if (obj[strDetachEvent]) {
1414
+ obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
1402
1415
  }
1403
- return theConfig;
1404
1416
  }
1405
- function _getConfig(identifier, field, defaultValue) {
1406
- if (defaultValue === void 0) { defaultValue = false; }
1407
- var theValue;
1408
- var extConfig = _getExtCfg(identifier, null);
1409
- if (extConfig && !isNullOrUndefined(extConfig[field])) {
1410
- theValue = extConfig[field];
1417
+ }
1418
+ function _doAttach(obj, evtName, handlerRef, useCapture) {
1419
+ var result = false;
1420
+ if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
1421
+ if (obj[strAddEventHelper]) {
1422
+ obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
1423
+ result = true;
1411
1424
  }
1412
- else if (config && !isNullOrUndefined(config[field])) {
1413
- theValue = config[field];
1425
+ else if (obj[strAttachEvent]) {
1426
+ obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
1427
+ result = true;
1414
1428
  }
1415
- return !isNullOrUndefined(theValue) ? theValue : defaultValue;
1416
1429
  }
1417
- function _iterateChain(cb) {
1418
- var nextPlugin;
1419
- while (!!(nextPlugin = context._next())) {
1420
- var plugin = nextPlugin.getPlugin();
1421
- if (plugin) {
1422
- cb(plugin);
1430
+ return result;
1431
+ }
1432
+ function _doUnregister(target, events, evtName, unRegFn) {
1433
+ var idx = events[_DYN_LENGTH ];
1434
+ while (idx--) {
1435
+ var theEvent = events[idx];
1436
+ if (theEvent) {
1437
+ if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
1438
+ if (!unRegFn || unRegFn(theEvent)) {
1439
+ _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
1440
+ events[_DYN_SPLICE ](idx, 1);
1441
+ }
1423
1442
  }
1424
1443
  }
1425
1444
  }
1426
- return context;
1427
1445
  }
1428
- function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
1429
- var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1430
- var context = internalContext.ctx;
1431
- function _processNext(env) {
1432
- var nextPlugin = internalContext._next();
1433
- nextPlugin && nextPlugin.processTelemetry(env, context);
1434
- return !nextPlugin;
1446
+ function _unregisterEvents(target, evtName, unRegFn) {
1447
+ if (evtName[_DYN_TYPE ]) {
1448
+ _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
1435
1449
  }
1436
- function _createNew(plugins, startAt) {
1437
- if (plugins === void 0) { plugins = null; }
1438
- if (isArray(plugins)) {
1439
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1450
+ else {
1451
+ var eventCache = elmNodeData.get(target, strEvents, {});
1452
+ objForEachKey(eventCache, function (evtType, events) {
1453
+ _doUnregister(target, events, evtName, unRegFn);
1454
+ });
1455
+ if (objKeys(eventCache)[_DYN_LENGTH ] === 0) {
1456
+ elmNodeData.kill(target, strEvents);
1440
1457
  }
1441
- return createProcessTelemetryContext(plugins || context.getNext(), config, core, startAt);
1442
1458
  }
1443
- context.processNext = _processNext;
1444
- context.createNew = _createNew;
1445
- return context;
1446
1459
  }
1447
- function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
1448
- var config = core.config || {};
1449
- var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1450
- var context = internalContext.ctx;
1451
- function _processNext(unloadState) {
1452
- var nextPlugin = internalContext._next();
1453
- nextPlugin && nextPlugin.unload(context, unloadState);
1454
- return !nextPlugin;
1455
- }
1456
- function _createNew(plugins, startAt) {
1457
- if (plugins === void 0) { plugins = null; }
1458
- if (isArray(plugins)) {
1459
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1460
+ function mergeEvtNamespace(theNamespace, namespaces) {
1461
+ var newNamespaces;
1462
+ if (namespaces) {
1463
+ if (isArray(namespaces)) {
1464
+ newNamespaces = [theNamespace].concat(namespaces);
1460
1465
  }
1461
- return createProcessTelemetryUnloadContext(plugins || context.getNext(), core, startAt);
1466
+ else {
1467
+ newNamespaces = [theNamespace, namespaces];
1468
+ }
1469
+ newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT ](".");
1462
1470
  }
1463
- context.processNext = _processNext;
1464
- context.createNew = _createNew;
1465
- return context;
1471
+ else {
1472
+ newNamespaces = theNamespace;
1473
+ }
1474
+ return newNamespaces;
1466
1475
  }
1467
- function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
1468
- var config = core.config || {};
1469
- var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1470
- var context = internalContext.ctx;
1471
- function _processNext(updateState) {
1472
- return context.iterate(function (plugin) {
1473
- if (isFunction(plugin.update)) {
1474
- plugin.update(context, updateState);
1476
+ function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1477
+ var _a;
1478
+ if (useCapture === void 0) { useCapture = false; }
1479
+ var result = false;
1480
+ if (target) {
1481
+ try {
1482
+ var evtName = _getEvtNamespace(eventName, evtNamespace);
1483
+ result = _doAttach(target, evtName, handlerRef, useCapture);
1484
+ if (result && elmNodeData.accept(target)) {
1485
+ var registeredEvent = (_a = {
1486
+ guid: _guid++,
1487
+ evtName: evtName
1488
+ },
1489
+ _a[_DYN_HANDLER ] = handlerRef,
1490
+ _a.capture = useCapture,
1491
+ _a);
1492
+ _getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
1475
1493
  }
1476
- });
1477
- }
1478
- function _createNew(plugins, startAt) {
1479
- if (plugins === void 0) { plugins = null; }
1480
- if (isArray(plugins)) {
1481
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1482
1494
  }
1483
- return createProcessTelemetryUpdateContext(plugins || context.getNext(), core, startAt);
1495
+ catch (e) {
1496
+ }
1484
1497
  }
1485
- context.processNext = _processNext;
1486
- context.createNew = _createNew;
1487
- return context;
1498
+ return result;
1488
1499
  }
1489
- function createTelemetryProxyChain(plugins, config, core, startAt) {
1490
- var firstProxy = null;
1491
- var add = startAt ? false : true;
1492
- if (isArray(plugins) && plugins.length > 0) {
1500
+ function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
1501
+ if (useCapture === void 0) { useCapture = false; }
1502
+ if (target) {
1503
+ try {
1504
+ var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
1505
+ var found_1 = false;
1506
+ _unregisterEvents(target, evtName_1, function (regEvent) {
1507
+ if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
1508
+ found_1 = true;
1509
+ return true;
1510
+ }
1511
+ return false;
1512
+ });
1513
+ if (!found_1) {
1514
+ _doDetach(target, evtName_1, handlerRef, useCapture);
1515
+ }
1516
+ }
1517
+ catch (e) {
1518
+ }
1519
+ }
1520
+ }
1521
+ function addEventHandler(eventName, callback, evtNamespace) {
1522
+ var result = false;
1523
+ var w = getWindow();
1524
+ if (w) {
1525
+ result = eventOn(w, eventName, callback, evtNamespace);
1526
+ result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
1527
+ }
1528
+ var doc = getDocument();
1529
+ if (doc) {
1530
+ result = eventOn(doc, eventName, callback, evtNamespace) || result;
1531
+ }
1532
+ return result;
1533
+ }
1534
+ function removeEventHandler(eventName, callback, evtNamespace) {
1535
+ var w = getWindow();
1536
+ if (w) {
1537
+ eventOff(w, eventName, callback, evtNamespace);
1538
+ eventOff(w["body"], eventName, callback, evtNamespace);
1539
+ }
1540
+ var doc = getDocument();
1541
+ if (doc) {
1542
+ eventOff(doc, eventName, callback, evtNamespace);
1543
+ }
1544
+ }
1545
+ function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
1546
+ var added = false;
1547
+ if (listener && events && events[_DYN_LENGTH ] > 0) {
1548
+ arrForEach(events, function (name) {
1549
+ if (name) {
1550
+ if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
1551
+ added = addEventHandler(name, listener, evtNamespace) || added;
1552
+ }
1553
+ }
1554
+ });
1555
+ }
1556
+ return added;
1557
+ }
1558
+ function addEventListeners(events, listener, excludeEvents, evtNamespace) {
1559
+ var added = false;
1560
+ if (listener && events && isArray(events)) {
1561
+ added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
1562
+ if (!added && excludeEvents && excludeEvents[_DYN_LENGTH ] > 0) {
1563
+ added = _addEventListeners(events, listener, null, evtNamespace);
1564
+ }
1565
+ }
1566
+ return added;
1567
+ }
1568
+ function removeEventListeners(events, listener, evtNamespace) {
1569
+ if (events && isArray(events)) {
1570
+ arrForEach(events, function (name) {
1571
+ if (name) {
1572
+ removeEventHandler(name, listener, evtNamespace);
1573
+ }
1574
+ });
1575
+ }
1576
+ }
1577
+ function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
1578
+ return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
1579
+ }
1580
+ function removePageUnloadEventListener(listener, evtNamespace) {
1581
+ removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
1582
+ }
1583
+ function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
1584
+ function _handlePageVisibility(evt) {
1585
+ var doc = getDocument();
1586
+ if (listener && doc && doc.visibilityState === "hidden") {
1587
+ listener(evt);
1588
+ }
1589
+ }
1590
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
1591
+ var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
1592
+ if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
1593
+ pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
1594
+ }
1595
+ if (!pageUnloadAdded && excludeEvents) {
1596
+ pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
1597
+ }
1598
+ return pageUnloadAdded;
1599
+ }
1600
+ function removePageHideEventListener(listener, evtNamespace) {
1601
+ var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
1602
+ removeEventListeners([strPageHide], listener, newNamespaces);
1603
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
1604
+ }
1605
+ function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
1606
+ function _handlePageVisibility(evt) {
1607
+ var doc = getDocument();
1608
+ if (listener && doc && doc.visibilityState === "visible") {
1609
+ listener(evt);
1610
+ }
1611
+ }
1612
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
1613
+ var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
1614
+ pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
1615
+ if (!pageShowAdded && excludeEvents) {
1616
+ pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
1617
+ }
1618
+ return pageShowAdded;
1619
+ }
1620
+ function removePageShowEventListener(listener, evtNamespace) {
1621
+ var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
1622
+ removeEventListeners([strPageShow], listener, newNamespaces);
1623
+ removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
1624
+ }
1625
+
1626
+ function perfNow() {
1627
+ var perf = getPerformance();
1628
+ if (perf && perf.now) {
1629
+ return perf.now();
1630
+ }
1631
+ return dateNow();
1632
+ }
1633
+
1634
+ var pluginStateData = createElmNodeData("plugin");
1635
+ function _getPluginState(plugin) {
1636
+ return pluginStateData.get(plugin, "state", {}, true);
1637
+ }
1638
+
1639
+ var strTelemetryPluginChain = "TelemetryPluginChain";
1640
+ var strHasRunFlags = "_hasRun";
1641
+ var strGetTelCtx = "_getTelCtx";
1642
+ var _chainId = 0;
1643
+ function _getNextProxyStart(proxy, core, startAt) {
1644
+ while (proxy) {
1645
+ if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
1646
+ return proxy;
1647
+ }
1648
+ proxy = proxy[_DYN_GET_NEXT ]();
1649
+ }
1650
+ return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
1651
+ }
1652
+ function _createInternalContext(telemetryChain, config, core, startAt) {
1653
+ var _nextProxy = null;
1654
+ var _onComplete = [];
1655
+ if (startAt !== null) {
1656
+ _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
1657
+ }
1658
+ var context = {
1659
+ _next: _moveNext,
1660
+ ctx: {
1661
+ core: function () {
1662
+ return core;
1663
+ },
1664
+ diagLog: function () {
1665
+ return safeGetLogger(core, config);
1666
+ },
1667
+ getCfg: function () {
1668
+ return config;
1669
+ },
1670
+ getExtCfg: _getExtCfg,
1671
+ getConfig: _getConfig,
1672
+ hasNext: function () {
1673
+ return !!_nextProxy;
1674
+ },
1675
+ getNext: function () {
1676
+ return _nextProxy;
1677
+ },
1678
+ setNext: function (nextPlugin) {
1679
+ _nextProxy = nextPlugin;
1680
+ },
1681
+ iterate: _iterateChain,
1682
+ onComplete: _addOnComplete
1683
+ }
1684
+ };
1685
+ function _addOnComplete(onComplete, that) {
1686
+ var args = [];
1687
+ for (var _i = 2; _i < arguments.length; _i++) {
1688
+ args[_i - 2] = arguments[_i];
1689
+ }
1690
+ if (onComplete) {
1691
+ _onComplete[_DYN_PUSH ]({
1692
+ func: onComplete,
1693
+ self: !isUndefined(that) ? that : context.ctx,
1694
+ args: args
1695
+ });
1696
+ }
1697
+ }
1698
+ function _moveNext() {
1699
+ var nextProxy = _nextProxy;
1700
+ _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
1701
+ if (!nextProxy) {
1702
+ var onComplete = _onComplete;
1703
+ if (onComplete && onComplete[_DYN_LENGTH ] > 0) {
1704
+ arrForEach(onComplete, function (completeDetails) {
1705
+ try {
1706
+ completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
1707
+ }
1708
+ catch (e) {
1709
+ _throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
1710
+ }
1711
+ });
1712
+ _onComplete = [];
1713
+ }
1714
+ }
1715
+ return nextProxy;
1716
+ }
1717
+ function _getExtCfg(identifier, defaultValue, mergeDefault) {
1718
+ if (defaultValue === void 0) { defaultValue = {}; }
1719
+ if (mergeDefault === void 0) { mergeDefault = 0 ; }
1720
+ var theConfig;
1721
+ if (config) {
1722
+ var extConfig = config[STR_EXTENSION_CONFIG ];
1723
+ if (extConfig && identifier) {
1724
+ theConfig = extConfig[identifier];
1725
+ }
1726
+ }
1727
+ if (!theConfig) {
1728
+ theConfig = defaultValue;
1729
+ }
1730
+ else if (isObject(defaultValue)) {
1731
+ if (mergeDefault !== 0 ) {
1732
+ var newConfig_1 = objExtend(true, defaultValue, theConfig);
1733
+ if (config && mergeDefault === 2 ) {
1734
+ objForEachKey(defaultValue, function (field) {
1735
+ if (isNullOrUndefined(newConfig_1[field])) {
1736
+ var cfgValue = config[field];
1737
+ if (!isNullOrUndefined(cfgValue)) {
1738
+ newConfig_1[field] = cfgValue;
1739
+ }
1740
+ }
1741
+ });
1742
+ }
1743
+ theConfig = newConfig_1;
1744
+ }
1745
+ }
1746
+ return theConfig;
1747
+ }
1748
+ function _getConfig(identifier, field, defaultValue) {
1749
+ if (defaultValue === void 0) { defaultValue = false; }
1750
+ var theValue;
1751
+ var extConfig = _getExtCfg(identifier, null);
1752
+ if (extConfig && !isNullOrUndefined(extConfig[field])) {
1753
+ theValue = extConfig[field];
1754
+ }
1755
+ else if (config && !isNullOrUndefined(config[field])) {
1756
+ theValue = config[field];
1757
+ }
1758
+ return !isNullOrUndefined(theValue) ? theValue : defaultValue;
1759
+ }
1760
+ function _iterateChain(cb) {
1761
+ var nextPlugin;
1762
+ while (!!(nextPlugin = context._next())) {
1763
+ var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
1764
+ if (plugin) {
1765
+ cb(plugin);
1766
+ }
1767
+ }
1768
+ }
1769
+ return context;
1770
+ }
1771
+ function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
1772
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1773
+ var context = internalContext.ctx;
1774
+ function _processNext(env) {
1775
+ var nextPlugin = internalContext._next();
1776
+ nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
1777
+ return !nextPlugin;
1778
+ }
1779
+ function _createNew(plugins, startAt) {
1780
+ if (plugins === void 0) { plugins = null; }
1781
+ if (isArray(plugins)) {
1782
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1783
+ }
1784
+ return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
1785
+ }
1786
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1787
+ context[_DYN_CREATE_NEW ] = _createNew;
1788
+ return context;
1789
+ }
1790
+ function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
1791
+ var config = core[_DYN_CONFIG ] || {};
1792
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1793
+ var context = internalContext.ctx;
1794
+ function _processNext(unloadState) {
1795
+ var nextPlugin = internalContext._next();
1796
+ nextPlugin && nextPlugin.unload(context, unloadState);
1797
+ return !nextPlugin;
1798
+ }
1799
+ function _createNew(plugins, startAt) {
1800
+ if (plugins === void 0) { plugins = null; }
1801
+ if (isArray(plugins)) {
1802
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1803
+ }
1804
+ return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1805
+ }
1806
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1807
+ context[_DYN_CREATE_NEW ] = _createNew;
1808
+ return context;
1809
+ }
1810
+ function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
1811
+ var config = core[_DYN_CONFIG ] || {};
1812
+ var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1813
+ var context = internalContext.ctx;
1814
+ function _processNext(updateState) {
1815
+ return context.iterate(function (plugin) {
1816
+ if (isFunction(plugin[_DYN_UPDATE ])) {
1817
+ plugin[_DYN_UPDATE ](context, updateState);
1818
+ }
1819
+ });
1820
+ }
1821
+ function _createNew(plugins, startAt) {
1822
+ if (plugins === void 0) { plugins = null; }
1823
+ if (isArray(plugins)) {
1824
+ plugins = createTelemetryProxyChain(plugins, config, core, startAt);
1825
+ }
1826
+ return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1827
+ }
1828
+ context[_DYN_PROCESS_NEXT ] = _processNext;
1829
+ context[_DYN_CREATE_NEW ] = _createNew;
1830
+ return context;
1831
+ }
1832
+ function createTelemetryProxyChain(plugins, config, core, startAt) {
1833
+ var firstProxy = null;
1834
+ var add = startAt ? false : true;
1835
+ if (isArray(plugins) && plugins[_DYN_LENGTH ] > 0) {
1493
1836
  var lastProxy_1 = null;
1494
1837
  arrForEach(plugins, function (thePlugin) {
1495
1838
  if (!add && startAt === thePlugin) {
1496
1839
  add = true;
1497
1840
  }
1498
- if (add && thePlugin && isFunction(thePlugin.processTelemetry)) {
1841
+ if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
1499
1842
  var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
1500
1843
  if (!firstProxy) {
1501
1844
  firstProxy = newProxy;
@@ -1514,11 +1857,11 @@
1514
1857
  }
1515
1858
  function createTelemetryPluginProxy(plugin, config, core) {
1516
1859
  var nextProxy = null;
1517
- var hasProcessTelemetry = isFunction(plugin.processTelemetry);
1518
- var hasSetNext = isFunction(plugin.setNextPlugin);
1860
+ var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
1861
+ var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
1519
1862
  var chainId;
1520
1863
  if (plugin) {
1521
- chainId = plugin.identifier + "-" + plugin.priority + "-" + _chainId++;
1864
+ chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
1522
1865
  }
1523
1866
  else {
1524
1867
  chainId = "Unknown-0-" + _chainId++;
@@ -1550,17 +1893,17 @@
1550
1893
  }
1551
1894
  function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
1552
1895
  var hasRun = false;
1553
- var identifier = plugin ? plugin.identifier : strTelemetryPluginChain;
1896
+ var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
1554
1897
  var hasRunContext = itemCtx[strHasRunFlags];
1555
1898
  if (!hasRunContext) {
1556
1899
  hasRunContext = itemCtx[strHasRunFlags] = {};
1557
1900
  }
1558
1901
  itemCtx.setNext(nextProxy);
1559
1902
  if (plugin) {
1560
- doPerf(itemCtx[strCore](), function () { return identifier + ":" + name; }, function () {
1903
+ doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
1561
1904
  hasRunContext[chainId] = true;
1562
1905
  try {
1563
- var nextId = nextProxy ? nextProxy._id : strEmpty;
1906
+ var nextId = nextProxy ? nextProxy._id : STR_EMPTY$1;
1564
1907
  if (nextId) {
1565
1908
  hasRunContext[nextId] = false;
1566
1909
  }
@@ -1572,7 +1915,7 @@
1572
1915
  hasRun = true;
1573
1916
  }
1574
1917
  if (!nextProxy || !hasNextRun) {
1575
- _throwInternal(itemCtx.diagLog(), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1918
+ _throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
1576
1919
  }
1577
1920
  }
1578
1921
  }, details, isAsync);
@@ -1586,17 +1929,17 @@
1586
1929
  return false;
1587
1930
  }
1588
1931
  var pluginState = _getPluginState(plugin);
1589
- if (pluginState.teardown || pluginState[strDisabled]) {
1932
+ if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
1590
1933
  return false;
1591
1934
  }
1592
1935
  if (hasSetNext) {
1593
- plugin.setNextPlugin(nextProxy);
1936
+ plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
1594
1937
  }
1595
- plugin.processTelemetry(env, itemCtx);
1938
+ plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
1596
1939
  return true;
1597
1940
  }
1598
1941
  if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
1599
- itemCtx.processNext(env);
1942
+ itemCtx[_DYN_PROCESS_NEXT ](env);
1600
1943
  }
1601
1944
  }
1602
1945
  function _unloadPlugin(unloadCtx, unloadState) {
@@ -1604,20 +1947,20 @@
1604
1947
  var hasRun = false;
1605
1948
  if (plugin) {
1606
1949
  var pluginState = _getPluginState(plugin);
1607
- var pluginCore = plugin[strCore] || pluginState.core;
1608
- if (plugin && (!pluginCore || pluginCore === unloadCtx[strCore]()) && !pluginState[strTeardown]) {
1609
- pluginState[strCore] = null;
1610
- pluginState[strTeardown] = true;
1611
- pluginState[strIsInitialized] = false;
1612
- if (plugin[strTeardown] && plugin[strTeardown](unloadCtx, unloadState) === true) {
1950
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
1951
+ if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
1952
+ pluginState[STR_CORE ] = null;
1953
+ pluginState[_DYN_TEARDOWN ] = true;
1954
+ pluginState[_DYN_IS_INITIALIZED ] = false;
1955
+ if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
1613
1956
  hasRun = true;
1614
1957
  }
1615
1958
  }
1616
1959
  }
1617
1960
  return hasRun;
1618
1961
  }
1619
- if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState.isAsync)) {
1620
- unloadCtx.processNext(unloadState);
1962
+ if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
1963
+ unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
1621
1964
  }
1622
1965
  }
1623
1966
  function _updatePlugin(updateCtx, updateState) {
@@ -1625,9 +1968,9 @@
1625
1968
  var hasRun = false;
1626
1969
  if (plugin) {
1627
1970
  var pluginState = _getPluginState(plugin);
1628
- var pluginCore = plugin[strCore] || pluginState.core;
1629
- if (plugin && (!pluginCore || pluginCore === updateCtx[strCore]()) && !pluginState[strTeardown]) {
1630
- if (plugin[strUpdate] && plugin[strUpdate](updateCtx, updateState) === true) {
1971
+ var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
1972
+ if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
1973
+ if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
1631
1974
  hasRun = true;
1632
1975
  }
1633
1976
  }
@@ -1635,19 +1978,17 @@
1635
1978
  return hasRun;
1636
1979
  }
1637
1980
  if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
1638
- updateCtx.processNext(updateState);
1981
+ updateCtx[_DYN_PROCESS_NEXT ](updateState);
1639
1982
  }
1640
1983
  }
1641
1984
  return objFreeze(proxyChain);
1642
1985
  }
1643
1986
 
1644
- var strExtensionConfig = "extensionConfig";
1645
-
1646
1987
  function createUnloadHandlerContainer() {
1647
1988
  var handlers = [];
1648
1989
  function _addHandler(handler) {
1649
1990
  if (handler) {
1650
- handlers.push(handler);
1991
+ handlers[_DYN_PUSH ](handler);
1651
1992
  }
1652
1993
  }
1653
1994
  function _runHandlers(unloadCtx, unloadState) {
@@ -1656,7 +1997,7 @@
1656
1997
  handler(unloadCtx, unloadState);
1657
1998
  }
1658
1999
  catch (e) {
1659
- _throwInternal(unloadCtx.diagLog(), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
2000
+ _throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
1660
2001
  }
1661
2002
  });
1662
2003
  handlers = [];
@@ -1678,37 +2019,40 @@
1678
2019
  var _hooks;
1679
2020
  _initDefaults();
1680
2021
  dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
1681
- _self.initialize = function (config, core, extensions, pluginChain) {
2022
+ _self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
1682
2023
  _setDefaults(config, core, pluginChain);
1683
2024
  _isinitialized = true;
1684
2025
  };
1685
- _self.teardown = function (unloadCtx, unloadState) {
1686
- var core = _self.core;
1687
- if (!core || (unloadCtx && core !== unloadCtx.core())) {
2026
+ _self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
2027
+ var _a;
2028
+ var core = _self[STR_CORE ];
2029
+ if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
1688
2030
  return;
1689
2031
  }
1690
2032
  var result;
1691
2033
  var unloadDone = false;
1692
2034
  var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
1693
- var theUnloadState = unloadState || {
1694
- reason: 0 ,
1695
- isAsync: false
1696
- };
2035
+ var theUnloadState = unloadState || (_a = {
2036
+ reason: 0
2037
+ },
2038
+ _a[_DYN_IS_ASYNC ] = false,
2039
+ _a);
1697
2040
  function _unloadCallback() {
1698
2041
  if (!unloadDone) {
1699
2042
  unloadDone = true;
1700
2043
  _unloadHandlerContainer.run(theUnloadCtx, unloadState);
1701
- arrForEach(_hooks, function (fn) {
2044
+ var oldHooks = _hooks;
2045
+ _hooks = [];
2046
+ arrForEach(oldHooks, function (fn) {
1702
2047
  fn.rm();
1703
2048
  });
1704
- _hooks = [];
1705
2049
  if (result === true) {
1706
- theUnloadCtx.processNext(theUnloadState);
2050
+ theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
1707
2051
  }
1708
2052
  _initDefaults();
1709
2053
  }
1710
2054
  }
1711
- if (!_self[strDoTeardown] || _self[strDoTeardown](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
2055
+ if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
1712
2056
  _unloadCallback();
1713
2057
  }
1714
2058
  else {
@@ -1716,9 +2060,9 @@
1716
2060
  }
1717
2061
  return result;
1718
2062
  };
1719
- _self.update = function (updateCtx, updateState) {
1720
- var core = _self.core;
1721
- if (!core || (updateCtx && core !== updateCtx.core())) {
2063
+ _self[_DYN_UPDATE ] = function (updateCtx, updateState) {
2064
+ var core = _self[STR_CORE ];
2065
+ if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
1722
2066
  return;
1723
2067
  }
1724
2068
  var result;
@@ -1730,7 +2074,7 @@
1730
2074
  function _updateCallback() {
1731
2075
  if (!updateDone) {
1732
2076
  updateDone = true;
1733
- _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx.getNext());
2077
+ _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
1734
2078
  }
1735
2079
  }
1736
2080
  if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
@@ -1747,30 +2091,30 @@
1747
2091
  _hooks = _hooks.concat(hooks);
1748
2092
  }
1749
2093
  else {
1750
- _hooks.push(hooks);
2094
+ _hooks[_DYN_PUSH ](hooks);
1751
2095
  }
1752
2096
  }
1753
2097
  };
1754
2098
  proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
1755
2099
  });
1756
- _self.diagLog = function (itemCtx) {
1757
- return _getTelCtx(itemCtx).diagLog();
2100
+ _self[_DYN_DIAG_LOG ] = function (itemCtx) {
2101
+ return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
1758
2102
  };
1759
- _self[strIsInitialized] = function () {
2103
+ _self[_DYN_IS_INITIALIZED ] = function () {
1760
2104
  return _isinitialized;
1761
2105
  };
1762
2106
  _self.setInitialized = function (isInitialized) {
1763
2107
  _isinitialized = isInitialized;
1764
2108
  };
1765
- _self[strSetNextPlugin] = function (next) {
2109
+ _self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
1766
2110
  _nextPlugin = next;
1767
2111
  };
1768
- _self.processNext = function (env, itemCtx) {
2112
+ _self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
1769
2113
  if (itemCtx) {
1770
- itemCtx.processNext(env);
2114
+ itemCtx[_DYN_PROCESS_NEXT ](env);
1771
2115
  }
1772
- else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {
1773
- _nextPlugin.processTelemetry(env, null);
2116
+ else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
2117
+ _nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
1774
2118
  }
1775
2119
  };
1776
2120
  _self._getTelCtx = _getTelCtx;
@@ -1778,332 +2122,47 @@
1778
2122
  if (currentCtx === void 0) { currentCtx = null; }
1779
2123
  var itemCtx = currentCtx;
1780
2124
  if (!itemCtx) {
1781
- var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self.core);
2125
+ var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
1782
2126
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
1783
- itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);
2127
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
1784
2128
  }
1785
2129
  else {
1786
- itemCtx = rootCtx.createNew(null, _nextPlugin);
2130
+ itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
1787
2131
  }
1788
2132
  }
1789
2133
  return itemCtx;
1790
2134
  }
1791
2135
  function _setDefaults(config, core, pluginChain) {
1792
2136
  if (config) {
1793
- setValue(config, strExtensionConfig, [], null, isNullOrUndefined);
2137
+ setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
1794
2138
  }
1795
2139
  if (!pluginChain && core) {
1796
- pluginChain = core.getProcessTelContext().getNext();
2140
+ pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
1797
2141
  }
1798
2142
  var nextPlugin = _nextPlugin;
1799
2143
  if (_nextPlugin && _nextPlugin[strGetPlugin]) {
1800
2144
  nextPlugin = _nextPlugin[strGetPlugin]();
1801
2145
  }
1802
- _self.core = core;
2146
+ _self[STR_CORE ] = core;
1803
2147
  _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
1804
2148
  }
1805
2149
  function _initDefaults() {
1806
- _isinitialized = false;
1807
- _self.core = null;
1808
- _rootCtx = null;
1809
- _nextPlugin = null;
1810
- _hooks = [];
1811
- _unloadHandlerContainer = createUnloadHandlerContainer();
1812
- }
1813
- }
1814
- return BaseTelemetryPlugin;
1815
- }());
1816
-
1817
- var strOnPrefix = "on";
1818
- var strAttachEvent = "attachEvent";
1819
- var strAddEventHelper = "addEventListener";
1820
- var strDetachEvent = "detachEvent";
1821
- var strRemoveEventListener = "removeEventListener";
1822
- var strEvents = "events";
1823
- var strVisibilityChangeEvt = "visibilitychange";
1824
- var strPageHide = "pagehide";
1825
- var strPageShow = "pageshow";
1826
- var strUnload = "unload";
1827
- var strBeforeUnload = "beforeunload";
1828
- var strPageHideNamespace = createUniqueNamespace("aiEvtPageHide");
1829
- var strPageShowNamespace = createUniqueNamespace("aiEvtPageShow");
1830
- var rRemoveEmptyNs = /\.[\.]+/g;
1831
- var rRemoveTrailingEmptyNs = /[\.]+$/;
1832
- var _guid = 1;
1833
- var elmNodeData = createElmNodeData("events");
1834
- var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
1835
- function _normalizeNamespace(name) {
1836
- if (name && name.replace) {
1837
- return name.replace(/^\s*\.*|\.*\s*$/g, "");
1838
- }
1839
- return name;
1840
- }
1841
- function _getEvtNamespace(eventName, evtNamespace) {
1842
- if (evtNamespace) {
1843
- var theNamespace_1 = "";
1844
- if (isArray(evtNamespace)) {
1845
- theNamespace_1 = "";
1846
- arrForEach(evtNamespace, function (name) {
1847
- name = _normalizeNamespace(name);
1848
- if (name) {
1849
- if (name[0] !== ".") {
1850
- name = "." + name;
1851
- }
1852
- theNamespace_1 += name;
1853
- }
1854
- });
1855
- }
1856
- else {
1857
- theNamespace_1 = _normalizeNamespace(evtNamespace);
1858
- }
1859
- if (theNamespace_1) {
1860
- if (theNamespace_1[0] !== ".") {
1861
- theNamespace_1 = "." + theNamespace_1;
1862
- }
1863
- eventName = (eventName || "") + theNamespace_1;
1864
- }
1865
- }
1866
- var parsedEvent = (eventNamespace.exec(eventName || "") || []);
1867
- return {
1868
- type: parsedEvent[1],
1869
- ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
1870
- };
1871
- }
1872
- function _getRegisteredEvents(target, evtName, addDefault) {
1873
- if (addDefault === void 0) { addDefault = true; }
1874
- var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
1875
- var registeredEvents = aiEvts[evtName];
1876
- if (!registeredEvents) {
1877
- registeredEvents = aiEvts[evtName] = [];
1878
- }
1879
- return registeredEvents;
1880
- }
1881
- function _doDetach(obj, evtName, handlerRef, useCapture) {
1882
- if (obj && evtName && evtName.type) {
1883
- if (obj[strRemoveEventListener]) {
1884
- obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
1885
- }
1886
- else if (obj[strDetachEvent]) {
1887
- obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
1888
- }
1889
- }
1890
- }
1891
- function _doAttach(obj, evtName, handlerRef, useCapture) {
1892
- var result = false;
1893
- if (obj && evtName && evtName.type && handlerRef) {
1894
- if (obj[strAddEventHelper]) {
1895
- obj[strAddEventHelper](evtName.type, handlerRef, useCapture);
1896
- result = true;
1897
- }
1898
- else if (obj[strAttachEvent]) {
1899
- obj[strAttachEvent](strOnPrefix + evtName.type, handlerRef);
1900
- result = true;
1901
- }
1902
- }
1903
- return result;
1904
- }
1905
- function _doUnregister(target, events, evtName, unRegFn) {
1906
- var idx = events.length;
1907
- while (idx--) {
1908
- var theEvent = events[idx];
1909
- if (theEvent) {
1910
- if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
1911
- if (!unRegFn || unRegFn(theEvent)) {
1912
- _doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
1913
- events.splice(idx, 1);
1914
- }
1915
- }
1916
- }
1917
- }
1918
- }
1919
- function _unregisterEvents(target, evtName, unRegFn) {
1920
- if (evtName.type) {
1921
- _doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
1922
- }
1923
- else {
1924
- var eventCache = elmNodeData.get(target, strEvents, {});
1925
- objForEachKey(eventCache, function (evtType, events) {
1926
- _doUnregister(target, events, evtName, unRegFn);
1927
- });
1928
- if (objKeys(eventCache).length === 0) {
1929
- elmNodeData.kill(target, strEvents);
1930
- }
1931
- }
1932
- }
1933
- function mergeEvtNamespace(theNamespace, namespaces) {
1934
- var newNamespaces;
1935
- if (namespaces) {
1936
- if (isArray(namespaces)) {
1937
- newNamespaces = [theNamespace].concat(namespaces);
1938
- }
1939
- else {
1940
- newNamespaces = [theNamespace, namespaces];
1941
- }
1942
- newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
1943
- }
1944
- else {
1945
- newNamespaces = theNamespace;
1946
- }
1947
- return newNamespaces;
1948
- }
1949
- function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
1950
- if (useCapture === void 0) { useCapture = false; }
1951
- var result = false;
1952
- if (target) {
1953
- try {
1954
- var evtName = _getEvtNamespace(eventName, evtNamespace);
1955
- result = _doAttach(target, evtName, handlerRef, useCapture);
1956
- if (result && elmNodeData.accept(target)) {
1957
- var registeredEvent = {
1958
- guid: _guid++,
1959
- evtName: evtName,
1960
- handler: handlerRef,
1961
- capture: useCapture
1962
- };
1963
- _getRegisteredEvents(target, evtName.type).push(registeredEvent);
1964
- }
1965
- }
1966
- catch (e) {
1967
- }
1968
- }
1969
- return result;
1970
- }
1971
- function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
1972
- if (useCapture === void 0) { useCapture = false; }
1973
- if (target) {
1974
- try {
1975
- var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
1976
- var found_1 = false;
1977
- _unregisterEvents(target, evtName_1, function (regEvent) {
1978
- if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
1979
- found_1 = true;
1980
- return true;
1981
- }
1982
- return false;
1983
- });
1984
- if (!found_1) {
1985
- _doDetach(target, evtName_1, handlerRef, useCapture);
1986
- }
1987
- }
1988
- catch (e) {
1989
- }
1990
- }
1991
- }
1992
- function addEventHandler(eventName, callback, evtNamespace) {
1993
- var result = false;
1994
- var w = getWindow();
1995
- if (w) {
1996
- result = eventOn(w, eventName, callback, evtNamespace);
1997
- result = eventOn(w["body"], eventName, callback, evtNamespace) || result;
1998
- }
1999
- var doc = getDocument();
2000
- if (doc) {
2001
- result = eventOn(doc, eventName, callback, evtNamespace) || result;
2002
- }
2003
- return result;
2004
- }
2005
- function removeEventHandler(eventName, callback, evtNamespace) {
2006
- var w = getWindow();
2007
- if (w) {
2008
- eventOff(w, eventName, callback, evtNamespace);
2009
- eventOff(w["body"], eventName, callback, evtNamespace);
2010
- }
2011
- var doc = getDocument();
2012
- if (doc) {
2013
- eventOff(doc, eventName, callback, evtNamespace);
2014
- }
2015
- }
2016
- function _addEventListeners(events, listener, excludeEvents, evtNamespace) {
2017
- var added = false;
2018
- if (listener && events && events.length > 0) {
2019
- arrForEach(events, function (name) {
2020
- if (name) {
2021
- if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {
2022
- added = addEventHandler(name, listener, evtNamespace) || added;
2023
- }
2024
- }
2025
- });
2026
- }
2027
- return added;
2028
- }
2029
- function addEventListeners(events, listener, excludeEvents, evtNamespace) {
2030
- var added = false;
2031
- if (listener && events && isArray(events)) {
2032
- added = _addEventListeners(events, listener, excludeEvents, evtNamespace);
2033
- if (!added && excludeEvents && excludeEvents.length > 0) {
2034
- added = _addEventListeners(events, listener, null, evtNamespace);
2035
- }
2036
- }
2037
- return added;
2038
- }
2039
- function removeEventListeners(events, listener, evtNamespace) {
2040
- if (events && isArray(events)) {
2041
- arrForEach(events, function (name) {
2042
- if (name) {
2043
- removeEventHandler(name, listener, evtNamespace);
2044
- }
2045
- });
2046
- }
2047
- }
2048
- function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {
2049
- return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);
2050
- }
2051
- function removePageUnloadEventListener(listener, evtNamespace) {
2052
- removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);
2053
- }
2054
- function addPageHideEventListener(listener, excludeEvents, evtNamespace) {
2055
- function _handlePageVisibility(evt) {
2056
- var doc = getDocument();
2057
- if (listener && doc && doc.visibilityState === "hidden") {
2058
- listener(evt);
2059
- }
2060
- }
2061
- var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2062
- var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);
2063
- if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {
2064
- pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;
2065
- }
2066
- if (!pageUnloadAdded && excludeEvents) {
2067
- pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);
2068
- }
2069
- return pageUnloadAdded;
2070
- }
2071
- function removePageHideEventListener(listener, evtNamespace) {
2072
- var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);
2073
- removeEventListeners([strPageHide], listener, newNamespaces);
2074
- removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2075
- }
2076
- function addPageShowEventListener(listener, excludeEvents, evtNamespace) {
2077
- function _handlePageVisibility(evt) {
2078
- var doc = getDocument();
2079
- if (listener && doc && doc.visibilityState === "visible") {
2080
- listener(evt);
2150
+ _isinitialized = false;
2151
+ _self[STR_CORE ] = null;
2152
+ _rootCtx = null;
2153
+ _nextPlugin = null;
2154
+ _hooks = [];
2155
+ _unloadHandlerContainer = createUnloadHandlerContainer();
2081
2156
  }
2082
2157
  }
2083
- var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2084
- var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);
2085
- pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;
2086
- if (!pageShowAdded && excludeEvents) {
2087
- pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);
2088
- }
2089
- return pageShowAdded;
2090
- }
2091
- function removePageShowEventListener(listener, evtNamespace) {
2092
- var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);
2093
- removeEventListeners([strPageShow], listener, newNamespaces);
2094
- removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);
2095
- }
2158
+ BaseTelemetryPlugin.__ieDyn=1;
2159
+ return BaseTelemetryPlugin;
2160
+ }());
2096
2161
 
2097
- function perfNow() {
2098
- var perf = getPerformance();
2099
- if (perf && perf.now) {
2100
- return perf.now();
2101
- }
2102
- return dateNow();
2103
- }
2162
+ var STR_EMPTY = "";
2104
2163
 
2105
2164
  var _a$1;
2106
- var Version = '3.2.2';
2165
+ var Version = '3.2.5';
2107
2166
  var FullVersionString = "1DS-Web-JS-" + Version;
2108
2167
  var strDisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2109
2168
  var strWithCredentials = "withCredentials";
@@ -2120,7 +2179,7 @@
2120
2179
  Boolean(getDocument());
2121
2180
  Boolean(getWindow());
2122
2181
  function isValueAssigned(value) {
2123
- return !(value === "" || isNullOrUndefined(value));
2182
+ return !(value === STR_EMPTY || isNullOrUndefined(value));
2124
2183
  }
2125
2184
  function getTenantId(apiKey) {
2126
2185
  if (apiKey) {
@@ -2129,7 +2188,7 @@
2129
2188
  return apiKey.substring(0, indexTenantId);
2130
2189
  }
2131
2190
  }
2132
- return "";
2191
+ return STR_EMPTY;
2133
2192
  }
2134
2193
  function sanitizeProperty(name, property, stringifyObjects) {
2135
2194
  if ((!property && !isValueAssigned(property)) || typeof name !== "string") {
@@ -2139,11 +2198,11 @@
2139
2198
  if (propType === "string" || propType === "number" || propType === "boolean" || isArray(property)) {
2140
2199
  property = { value: property };
2141
2200
  }
2142
- else if (propType === "object" && !property.hasOwnProperty("value")) {
2201
+ else if (propType === "object" && !ObjHasOwnProperty.call(property, "value")) {
2143
2202
  property = { value: stringifyObjects ? JSON.stringify(property) : property };
2144
2203
  }
2145
2204
  else if (isNullOrUndefined(property.value)
2146
- || property.value === "" || (!isString(property.value)
2205
+ || property.value === STR_EMPTY || (!isString(property.value)
2147
2206
  && !isNumber(property.value) && !isBoolean(property.value)
2148
2207
  && !isArray(property.value))) {
2149
2208
  return null;
@@ -2269,7 +2328,7 @@
2269
2328
  theType |= getFieldValueType(value[0]);
2270
2329
  }
2271
2330
  }
2272
- else if (hasOwnProperty(value, "value")) {
2331
+ else if (ObjHasOwnProperty.call(value, "value")) {
2273
2332
  theType = 8192 | getFieldValueType(value.value);
2274
2333
  }
2275
2334
  }
@@ -2310,35 +2369,37 @@
2310
2369
  var NRT_PROFILE = "NEAR_REAL_TIME";
2311
2370
  var BE_PROFILE = "BEST_EFFORT";
2312
2371
 
2313
- var Method = "POST";
2314
- var DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2315
- var strDropped = "drop";
2316
- var strSending = "send";
2317
- var strRequeue = "requeue";
2318
- var strResponseFail = "rspFail";
2319
- var strOther = "oth";
2320
- var defaultCacheControl = "no-cache, no-store";
2321
- var defaultContentType = "application/x-json-stream";
2322
- var strCacheControl = "cache-control";
2323
- var strContentTypeHeader = "content-type";
2324
- var strKillTokensHeader = "kill-tokens";
2325
- var strKillDurationHeader = "kill-duration";
2326
- var strKillDurationSecondsHeader = "kill-duration-seconds";
2327
- var strTimeDeltaHeader = "time-delta-millis";
2328
- var strClientVersion = "client-version";
2329
- var strClientId = "client-id";
2330
- var strTimeDeltaToApply = "time-delta-to-apply-millis";
2331
- var strUploadTime = "upload-time";
2332
- var strApiKey = "apikey";
2333
- var strMsaDeviceTicket = "AuthMsaDeviceTicket";
2334
- var strAuthXToken = "AuthXToken";
2335
- var strNoResponseBody = "NoResponseBody";
2336
- var strMsfpc = "msfpc";
2372
+ var STR_POST_METHOD = "POST";
2373
+ var STR_DISABLED_PROPERTY_NAME = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation";
2374
+ var STR_DROPPED = "drop";
2375
+ var STR_SENDING = "send";
2376
+ var STR_REQUEUE = "requeue";
2377
+ var STR_RESPONSE_FAIL = "rspFail";
2378
+ var STR_OTHER = "oth";
2379
+ var DEFAULT_CACHE_CONTROL = "no-cache, no-store";
2380
+ var DEFAULT_CONTENT_TYPE = "application/x-json-stream";
2381
+ var STR_CACHE_CONTROL = "cache-control";
2382
+ var STR_CONTENT_TYPE_HEADER = "content-type";
2383
+ var STR_KILL_TOKENS_HEADER = "kill-tokens";
2384
+ var STR_KILL_DURATION_HEADER = "kill-duration";
2385
+ var STR_KILL_DURATION_SECONDS_HEADER = "kill-duration-seconds";
2386
+ var STR_TIME_DELTA_HEADER = "time-delta-millis";
2387
+ var STR_CLIENT_VERSION = "client-version";
2388
+ var STR_CLIENT_ID = "client-id";
2389
+ var STR_TIME_DELTA_TO_APPLY = "time-delta-to-apply-millis";
2390
+ var STR_UPLOAD_TIME = "upload-time";
2391
+ var STR_API_KEY = "apikey";
2392
+ var STR_MSA_DEVICE_TICKET = "AuthMsaDeviceTicket";
2393
+ var STR_AUTH_XTOKEN = "AuthXToken";
2394
+ var STR_NO_RESPONSE_BODY = "NoResponseBody";
2395
+ var STR_MSFPC = "msfpc";
2396
+ var STR_TRACE = "trace";
2397
+ var STR_USER = "user";
2337
2398
 
2338
2399
  function _getEventMsfpc(theEvent) {
2339
2400
  var intWeb = ((theEvent.ext || {})["intweb"]);
2340
- if (intWeb && isValueAssigned(intWeb[strMsfpc])) {
2341
- return intWeb[strMsfpc];
2401
+ if (intWeb && isValueAssigned(intWeb[STR_MSFPC])) {
2402
+ return intWeb[STR_MSFPC];
2342
2403
  }
2343
2404
  return null;
2344
2405
  }
@@ -2395,6 +2456,117 @@
2395
2456
  return EventBatch;
2396
2457
  }());
2397
2458
 
2459
+ var ClockSkewManager = /** @class */ (function () {
2460
+ function ClockSkewManager() {
2461
+ var _allowRequestSending = true;
2462
+ var _shouldAddClockSkewHeaders = true;
2463
+ var _isFirstRequest = true;
2464
+ var _clockSkewHeaderValue = "use-collector-delta";
2465
+ var _clockSkewSet = false;
2466
+ dynamicProto(ClockSkewManager, this, function (_self) {
2467
+ _self.allowRequestSending = function () {
2468
+ return _allowRequestSending;
2469
+ };
2470
+ _self.firstRequestSent = function () {
2471
+ if (_isFirstRequest) {
2472
+ _isFirstRequest = false;
2473
+ if (!_clockSkewSet) {
2474
+ _allowRequestSending = false;
2475
+ }
2476
+ }
2477
+ };
2478
+ _self.shouldAddClockSkewHeaders = function () {
2479
+ return _shouldAddClockSkewHeaders;
2480
+ };
2481
+ _self.getClockSkewHeaderValue = function () {
2482
+ return _clockSkewHeaderValue;
2483
+ };
2484
+ _self.setClockSkew = function (timeDeltaInMillis) {
2485
+ if (!_clockSkewSet) {
2486
+ if (timeDeltaInMillis) {
2487
+ _clockSkewHeaderValue = timeDeltaInMillis;
2488
+ _shouldAddClockSkewHeaders = true;
2489
+ _clockSkewSet = true;
2490
+ }
2491
+ else {
2492
+ _shouldAddClockSkewHeaders = false;
2493
+ }
2494
+ _allowRequestSending = true;
2495
+ }
2496
+ };
2497
+ });
2498
+ }
2499
+ ClockSkewManager.__ieDyn=1;
2500
+ return ClockSkewManager;
2501
+ }());
2502
+ var EVTClockSkewManager = ClockSkewManager;
2503
+
2504
+ var SecToMsMultiplier = 1000;
2505
+ var KillSwitch = /** @class */ (function () {
2506
+ function KillSwitch() {
2507
+ var _killedTokenDictionary = {};
2508
+ function _normalizeTenants(values) {
2509
+ var result = [];
2510
+ if (values) {
2511
+ arrForEach(values, function (value) {
2512
+ result.push(strTrim(value));
2513
+ });
2514
+ }
2515
+ return result;
2516
+ }
2517
+ dynamicProto(KillSwitch, this, function (_self) {
2518
+ _self.setKillSwitchTenants = function (killTokens, killDuration) {
2519
+ if (killTokens && killDuration) {
2520
+ try {
2521
+ var killedTokens = _normalizeTenants(killTokens.split(","));
2522
+ if (killDuration === "this-request-only") {
2523
+ return killedTokens;
2524
+ }
2525
+ var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
2526
+ for (var i = 0; i < killedTokens.length; ++i) {
2527
+ _killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
2528
+ }
2529
+ }
2530
+ catch (ex) {
2531
+ return [];
2532
+ }
2533
+ }
2534
+ return [];
2535
+ };
2536
+ _self.isTenantKilled = function (tenantToken) {
2537
+ var killDictionary = _killedTokenDictionary;
2538
+ var name = strTrim(tenantToken);
2539
+ if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
2540
+ return true;
2541
+ }
2542
+ delete killDictionary[name];
2543
+ return false;
2544
+ };
2545
+ });
2546
+ }
2547
+ KillSwitch.__ieDyn=1;
2548
+ return KillSwitch;
2549
+ }());
2550
+ var EVTKillSwitch = KillSwitch;
2551
+
2552
+ var RandomizationLowerThreshold = 0.8;
2553
+ var RandomizationUpperThreshold = 1.2;
2554
+ var BaseBackoff = 3000;
2555
+ var MaxBackoff = 600000;
2556
+ function retryPolicyShouldRetryForStatus(httpStatusCode) {
2557
+ return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
2558
+ || (httpStatusCode == 501)
2559
+ || (httpStatusCode == 505));
2560
+ }
2561
+ function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
2562
+ var waitDuration = 0;
2563
+ var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2564
+ var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2565
+ var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2566
+ waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2567
+ return Math.min(waitDuration, MaxBackoff);
2568
+ }
2569
+
2398
2570
  var _MAX_STRING_JOINS = 20;
2399
2571
  var RequestSizeLimitBytes = 3984588;
2400
2572
  var BeaconRequestSizeLimitBytes = 65000;
@@ -2600,6 +2772,7 @@
2600
2772
  }
2601
2773
  });
2602
2774
  }
2775
+ Serializer.__ieDyn=1;
2603
2776
  return Serializer;
2604
2777
  }());
2605
2778
  function _addJSONPropertyMetaData(json, propKeys, name, propertyValue) {
@@ -2640,124 +2813,15 @@
2640
2813
  }
2641
2814
  }
2642
2815
 
2643
- var RandomizationLowerThreshold = 0.8;
2644
- var RandomizationUpperThreshold = 1.2;
2645
- var BaseBackoff = 3000;
2646
- var MaxBackoff = 600000;
2647
- function retryPolicyShouldRetryForStatus(httpStatusCode) {
2648
- return !((httpStatusCode >= 300 && httpStatusCode < 500 && httpStatusCode != 408 && httpStatusCode != 429)
2649
- || (httpStatusCode == 501)
2650
- || (httpStatusCode == 505));
2651
- }
2652
- function retryPolicyGetMillisToBackoffForRetry(retriesSoFar) {
2653
- var waitDuration = 0;
2654
- var minBackoff = BaseBackoff * RandomizationLowerThreshold;
2655
- var maxBackoff = BaseBackoff * RandomizationUpperThreshold;
2656
- var randomBackoff = Math.floor(Math.random() * (maxBackoff - minBackoff)) + minBackoff;
2657
- waitDuration = Math.pow(2, retriesSoFar) * randomBackoff;
2658
- return Math.min(waitDuration, MaxBackoff);
2659
- }
2660
-
2661
- var SecToMsMultiplier = 1000;
2662
- var KillSwitch = /** @class */ (function () {
2663
- function KillSwitch() {
2664
- var _killedTokenDictionary = {};
2665
- function _normalizeTenants(values) {
2666
- var result = [];
2667
- if (values) {
2668
- arrForEach(values, function (value) {
2669
- result.push(strTrim(value));
2670
- });
2671
- }
2672
- return result;
2673
- }
2674
- dynamicProto(KillSwitch, this, function (_self) {
2675
- _self.setKillSwitchTenants = function (killTokens, killDuration) {
2676
- if (killTokens && killDuration) {
2677
- try {
2678
- var killedTokens = _normalizeTenants(killTokens.split(","));
2679
- if (killDuration === "this-request-only") {
2680
- return killedTokens;
2681
- }
2682
- var durationMs = parseInt(killDuration, 10) * SecToMsMultiplier;
2683
- for (var i = 0; i < killedTokens.length; ++i) {
2684
- _killedTokenDictionary[killedTokens[i]] = dateNow() + durationMs;
2685
- }
2686
- }
2687
- catch (ex) {
2688
- return [];
2689
- }
2690
- }
2691
- return [];
2692
- };
2693
- _self.isTenantKilled = function (tenantToken) {
2694
- var killDictionary = _killedTokenDictionary;
2695
- var name = strTrim(tenantToken);
2696
- if (killDictionary[name] !== undefined && killDictionary[name] > dateNow()) {
2697
- return true;
2698
- }
2699
- delete killDictionary[name];
2700
- return false;
2701
- };
2702
- });
2703
- }
2704
- return KillSwitch;
2705
- }());
2706
- var EVTKillSwitch = KillSwitch;
2707
-
2708
- var ClockSkewManager = /** @class */ (function () {
2709
- function ClockSkewManager() {
2710
- var _allowRequestSending = true;
2711
- var _shouldAddClockSkewHeaders = true;
2712
- var _isFirstRequest = true;
2713
- var _clockSkewHeaderValue = "use-collector-delta";
2714
- var _clockSkewSet = false;
2715
- dynamicProto(ClockSkewManager, this, function (_self) {
2716
- _self.allowRequestSending = function () {
2717
- return _allowRequestSending;
2718
- };
2719
- _self.firstRequestSent = function () {
2720
- if (_isFirstRequest) {
2721
- _isFirstRequest = false;
2722
- if (!_clockSkewSet) {
2723
- _allowRequestSending = false;
2724
- }
2725
- }
2726
- };
2727
- _self.shouldAddClockSkewHeaders = function () {
2728
- return _shouldAddClockSkewHeaders;
2729
- };
2730
- _self.getClockSkewHeaderValue = function () {
2731
- return _clockSkewHeaderValue;
2732
- };
2733
- _self.setClockSkew = function (timeDeltaInMillis) {
2734
- if (!_clockSkewSet) {
2735
- if (timeDeltaInMillis) {
2736
- _clockSkewHeaderValue = timeDeltaInMillis;
2737
- _shouldAddClockSkewHeaders = true;
2738
- _clockSkewSet = true;
2739
- }
2740
- else {
2741
- _shouldAddClockSkewHeaders = false;
2742
- }
2743
- _allowRequestSending = true;
2744
- }
2745
- };
2746
- });
2747
- }
2748
- return ClockSkewManager;
2749
- }());
2750
- var EVTClockSkewManager = ClockSkewManager;
2751
-
2752
2816
  var _a;
2753
2817
  var strSendAttempt = "sendAttempt";
2754
- var _noResponseQs = "&" + strNoResponseBody + "=true";
2818
+ var _noResponseQs = "&" + STR_NO_RESPONSE_BODY + "=true";
2755
2819
  var _eventActionMap = (_a = {},
2756
- _a[1 ] = strRequeue,
2757
- _a[100 ] = strRequeue,
2820
+ _a[1 ] = STR_REQUEUE,
2821
+ _a[100 ] = STR_REQUEUE,
2758
2822
  _a[200 ] = "sent",
2759
- _a[8004 ] = strDropped,
2760
- _a[8003 ] = strDropped,
2823
+ _a[8004 ] = STR_DROPPED,
2824
+ _a[8003 ] = STR_DROPPED,
2761
2825
  _a);
2762
2826
  var _collectorQsHeaders = {};
2763
2827
  var _collectorHeaderToQs = {};
@@ -2767,13 +2831,13 @@
2767
2831
  _collectorHeaderToQs[headerName] = qsName;
2768
2832
  }
2769
2833
  }
2770
- _addCollectorHeaderQsMapping(strMsaDeviceTicket, strMsaDeviceTicket, false);
2771
- _addCollectorHeaderQsMapping(strClientVersion, strClientVersion);
2772
- _addCollectorHeaderQsMapping(strClientId, "Client-Id");
2773
- _addCollectorHeaderQsMapping(strApiKey, strApiKey);
2774
- _addCollectorHeaderQsMapping(strTimeDeltaToApply, strTimeDeltaToApply);
2775
- _addCollectorHeaderQsMapping(strUploadTime, strUploadTime);
2776
- _addCollectorHeaderQsMapping(strAuthXToken, strAuthXToken);
2834
+ _addCollectorHeaderQsMapping(STR_MSA_DEVICE_TICKET, STR_MSA_DEVICE_TICKET, false);
2835
+ _addCollectorHeaderQsMapping(STR_CLIENT_VERSION, STR_CLIENT_VERSION);
2836
+ _addCollectorHeaderQsMapping(STR_CLIENT_ID, "Client-Id");
2837
+ _addCollectorHeaderQsMapping(STR_API_KEY, STR_API_KEY);
2838
+ _addCollectorHeaderQsMapping(STR_TIME_DELTA_TO_APPLY, STR_TIME_DELTA_TO_APPLY);
2839
+ _addCollectorHeaderQsMapping(STR_UPLOAD_TIME, STR_UPLOAD_TIME);
2840
+ _addCollectorHeaderQsMapping(STR_AUTH_XTOKEN, STR_AUTH_XTOKEN);
2777
2841
  function _getResponseText(xhr) {
2778
2842
  try {
2779
2843
  return xhr.responseText;
@@ -2814,13 +2878,14 @@
2814
2878
  var HttpManager = /** @class */ (function () {
2815
2879
  function HttpManager(maxEventsPerBatch, maxConnections, maxRequestRetriesBeforeBackoff, actions, timeoutOverride) {
2816
2880
  this._responseHandlers = [];
2817
- var _urlString = "?cors=true&" + strContentTypeHeader.toLowerCase() + "=" + defaultContentType;
2881
+ var _urlString = "?cors=true&" + STR_CONTENT_TYPE_HEADER.toLowerCase() + "=" + DEFAULT_CONTENT_TYPE;
2818
2882
  var _killSwitch = new EVTKillSwitch();
2819
2883
  var _paused = false;
2820
2884
  var _clockSkewManager = new EVTClockSkewManager();
2821
2885
  var _useBeacons = false;
2822
2886
  var _outstandingRequests = 0;
2823
2887
  var _postManager;
2888
+ var _logger;
2824
2889
  var _sendInterfaces;
2825
2890
  var _core;
2826
2891
  var _customHttpInterface = true;
@@ -2848,6 +2913,7 @@
2848
2913
  _enableEventTimings = !_core.config.disableEventTimings;
2849
2914
  var enableCompoundKey = !!_core.config.enableCompoundKey;
2850
2915
  _postManager = postChannel;
2916
+ _logger = _postManager.diagLog();
2851
2917
  var valueSanitizer = channelConfig.valueSanitizer;
2852
2918
  var stringifyObjects = channelConfig.stringifyObjects;
2853
2919
  if (!isUndefined(channelConfig.enableCompoundKey)) {
@@ -2885,7 +2951,7 @@
2885
2951
  httpInterface = _getSenderInterface(theTransports, false);
2886
2952
  syncHttpInterface = _getSenderInterface(theTransports, true);
2887
2953
  if (!httpInterface) {
2888
- _postManager.diagLog().warnToConsole("No available transport to send events");
2954
+ _warnToConsole(_logger, "No available transport to send events");
2889
2955
  }
2890
2956
  }
2891
2957
  _sendInterfaces = (_a = {},
@@ -2931,7 +2997,7 @@
2931
2997
  };
2932
2998
  function _xdrSendPost(payload, oncomplete, sync) {
2933
2999
  var xdr = new XDomainRequest();
2934
- xdr.open(Method, payload.urlString);
3000
+ xdr.open(STR_POST_METHOD, payload.urlString);
2935
3001
  if (payload.timeout) {
2936
3002
  xdr.timeout = payload.timeout;
2937
3003
  }
@@ -2963,9 +3029,9 @@
2963
3029
  var responseHandled = false;
2964
3030
  var requestInit = (_a = {
2965
3031
  body: payload.data,
2966
- method: Method
3032
+ method: STR_POST_METHOD
2967
3033
  },
2968
- _a[DisabledPropertyName] = true,
3034
+ _a[STR_DISABLED_PROPERTY_NAME] = true,
2969
3035
  _a);
2970
3036
  if (sync) {
2971
3037
  requestInit.keepalive = true;
@@ -2983,8 +3049,9 @@
2983
3049
  fetch(theUrl, requestInit).then(function (response) {
2984
3050
  var headerMap = {};
2985
3051
  var responseText = "";
2986
- if (response.headers) {
2987
- response.headers.forEach(function (value, name) {
3052
+ var headers = response.headers;
3053
+ if (headers) {
3054
+ headers["forEach"](function (value, name) {
2988
3055
  headerMap[name] = value;
2989
3056
  });
2990
3057
  }
@@ -3031,9 +3098,9 @@
3031
3098
  function _getAllResponseHeaders(xhr) {
3032
3099
  var theHeaders = {};
3033
3100
  if (!xhr.getAllResponseHeaders) {
3034
- theHeaders = _appendHeader(theHeaders, xhr, strTimeDeltaHeader);
3035
- theHeaders = _appendHeader(theHeaders, xhr, strKillDurationHeader);
3036
- theHeaders = _appendHeader(theHeaders, xhr, strKillDurationSecondsHeader);
3101
+ theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);
3102
+ theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);
3103
+ theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);
3037
3104
  }
3038
3105
  else {
3039
3106
  theHeaders = _convertAllHeadersToMap(xhr.getAllResponseHeaders());
@@ -3046,7 +3113,7 @@
3046
3113
  if (sync && payload.disableXhrSync) {
3047
3114
  sync = false;
3048
3115
  }
3049
- var xhrRequest = openXhr(Method, theUrl, _sendCredentials, true, sync, payload.timeout);
3116
+ var xhrRequest = openXhr(STR_POST_METHOD, theUrl, _sendCredentials, true, sync, payload.timeout);
3050
3117
  objForEachKey(payload.headers, function (name, value) {
3051
3118
  xhrRequest.setRequestHeader(name, value);
3052
3119
  });
@@ -3068,7 +3135,7 @@
3068
3135
  oncomplete(status, headers, response);
3069
3136
  }
3070
3137
  catch (e) {
3071
- _throwInternal(_postManager.diagLog(), 2 , 518 , dumpObj(e));
3138
+ _throwInternal(_logger, 2 , 518 , dumpObj(e));
3072
3139
  }
3073
3140
  }
3074
3141
  function _beaconSendPost(payload, oncomplete, sync) {
@@ -3103,7 +3170,7 @@
3103
3170
  }
3104
3171
  }
3105
3172
  catch (ex) {
3106
- _postManager.diagLog().warnToConsole("Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
3173
+ _warnToConsole(_logger, "Failed to send telemetry using sendBeacon API. Ex:" + dumpObj(ex));
3107
3174
  status = 0;
3108
3175
  }
3109
3176
  finally {
@@ -3267,7 +3334,7 @@
3267
3334
  }, function () { return ({ batches: _createDebugBatches(orgBatches_1), retryCount: retryCount, isTeardown: isTeardown, isSynchronous: isSynchronous_1, sendReason: sendReason, useSendBeacon: _isBeaconPayload(sendType), sendType: sendType }); }, !isSynchronous_1);
3268
3335
  }
3269
3336
  catch (ex) {
3270
- _throwInternal(_postManager.diagLog(), 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
3337
+ _throwInternal(_logger, 2 , 48 , "Unexpected Exception sending batch: " + dumpObj(ex));
3271
3338
  }
3272
3339
  }
3273
3340
  function _buildRequestDetails(thePayload, useHeaders) {
@@ -3291,8 +3358,8 @@
3291
3358
  requestDetails.hdrs = extend(requestDetails.hdrs, _headers);
3292
3359
  requestDetails.useHdrs = (objKeys(requestDetails.hdrs).length > 0);
3293
3360
  }
3294
- _addRequestDetails(requestDetails, strClientId, "NO_AUTH", useHeaders);
3295
- _addRequestDetails(requestDetails, strClientVersion, FullVersionString, useHeaders);
3361
+ _addRequestDetails(requestDetails, STR_CLIENT_ID, "NO_AUTH", useHeaders);
3362
+ _addRequestDetails(requestDetails, STR_CLIENT_VERSION, FullVersionString, useHeaders);
3296
3363
  var apiQsKeys = "";
3297
3364
  arrForEach(thePayload.apiKeys, function (apiKey) {
3298
3365
  if (apiQsKeys.length > 0) {
@@ -3300,14 +3367,14 @@
3300
3367
  }
3301
3368
  apiQsKeys += apiKey;
3302
3369
  });
3303
- _addRequestDetails(requestDetails, strApiKey, apiQsKeys, useHeaders);
3304
- _addRequestDetails(requestDetails, strUploadTime, dateNow().toString(), useHeaders);
3370
+ _addRequestDetails(requestDetails, STR_API_KEY, apiQsKeys, useHeaders);
3371
+ _addRequestDetails(requestDetails, STR_UPLOAD_TIME, dateNow().toString(), useHeaders);
3305
3372
  var msfpc = _getMsfpc(thePayload);
3306
3373
  if (isValueAssigned(msfpc)) {
3307
3374
  requestDetails.url += "&ext.intweb.msfpc=" + msfpc;
3308
3375
  }
3309
3376
  if (_clockSkewManager.shouldAddClockSkewHeaders()) {
3310
- _addRequestDetails(requestDetails, strTimeDeltaToApply, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
3377
+ _addRequestDetails(requestDetails, STR_TIME_DELTA_TO_APPLY, _clockSkewManager.getClockSkewHeaderValue(), useHeaders);
3311
3378
  }
3312
3379
  if (_core.getWParam) {
3313
3380
  var wParam = _core.getWParam();
@@ -3369,11 +3436,11 @@
3369
3436
  orgPayloadData.disableXhrSync = !!_disableXhrSync;
3370
3437
  }
3371
3438
  if (useHeaders_1) {
3372
- if (!_hasHeader(orgPayloadData.headers, strCacheControl)) {
3373
- orgPayloadData.headers[strCacheControl] = defaultCacheControl;
3439
+ if (!_hasHeader(orgPayloadData.headers, STR_CACHE_CONTROL)) {
3440
+ orgPayloadData.headers[STR_CACHE_CONTROL] = DEFAULT_CACHE_CONTROL;
3374
3441
  }
3375
- if (!_hasHeader(orgPayloadData.headers, strContentTypeHeader)) {
3376
- orgPayloadData.headers[strContentTypeHeader] = defaultContentType;
3442
+ if (!_hasHeader(orgPayloadData.headers, STR_CONTENT_TYPE_HEADER)) {
3443
+ orgPayloadData.headers[STR_CONTENT_TYPE_HEADER] = DEFAULT_CONTENT_TYPE;
3377
3444
  }
3378
3445
  }
3379
3446
  var sender = null;
@@ -3391,7 +3458,7 @@
3391
3458
  }
3392
3459
  }
3393
3460
  catch (ex) {
3394
- _postManager.diagLog().warnToConsole("Unexpected exception sending payload. Ex:" + dumpObj(ex));
3461
+ _warnToConsole(_logger, "Unexpected exception sending payload. Ex:" + dumpObj(ex));
3395
3462
  _doOnComplete(onComplete, 0, {});
3396
3463
  }
3397
3464
  };
@@ -3459,9 +3526,9 @@
3459
3526
  var shouldRetry = true;
3460
3527
  if (typeof status !== strShimUndefined) {
3461
3528
  if (headers) {
3462
- _clockSkewManager.setClockSkew(headers[strTimeDeltaHeader]);
3463
- var killDuration = headers[strKillDurationHeader] || headers["kill-duration-seconds"];
3464
- arrForEach(_killSwitch.setKillSwitchTenants(headers[strKillTokensHeader], killDuration), function (killToken) {
3529
+ _clockSkewManager.setClockSkew(headers[STR_TIME_DELTA_HEADER]);
3530
+ var killDuration = headers[STR_KILL_DURATION_HEADER] || headers["kill-duration-seconds"];
3531
+ arrForEach(_killSwitch.setKillSwitchTenants(headers[STR_KILL_TOKENS_HEADER], killDuration), function (killToken) {
3465
3532
  arrForEach(thePayload.batches, function (theBatch) {
3466
3533
  if (theBatch.iKey() === killToken) {
3467
3534
  droppedBatches = droppedBatches || [];
@@ -3588,13 +3655,13 @@
3588
3655
  responseHandlers[i](responseText);
3589
3656
  }
3590
3657
  catch (e) {
3591
- _throwInternal(_postManager.diagLog(), 1 , 519 , "Response handler failed: " + e);
3658
+ _throwInternal(_logger, 1 , 519 , "Response handler failed: " + e);
3592
3659
  }
3593
3660
  }
3594
3661
  if (responseText) {
3595
3662
  var response = JSON.parse(responseText);
3596
- if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[strMsfpc])) {
3597
- _cookieMgr.set("MSFPC", response.webResult[strMsfpc], 365 * 86400);
3663
+ if (isValueAssigned(response.webResult) && isValueAssigned(response.webResult[STR_MSFPC])) {
3664
+ _cookieMgr.set("MSFPC", response.webResult[STR_MSFPC], 365 * 86400);
3598
3665
  }
3599
3666
  }
3600
3667
  }
@@ -3612,7 +3679,7 @@
3612
3679
  theAction_1.call(actions, theBatches, batchReason, isSyncRequest_1, sendType);
3613
3680
  }
3614
3681
  catch (e) {
3615
- _throwInternal(_postManager.diagLog(), 1 , 74 , "send request notification failed: " + e);
3682
+ _throwInternal(_logger, 1 , 74 , "send request notification failed: " + e);
3616
3683
  }
3617
3684
  }, sendSync || isSyncRequest_1, 0);
3618
3685
  }, function () { return ({ batches: _createDebugBatches(theBatches), reason: batchReason, isSync: isSyncRequest_1, sendSync: sendSync, sendType: sendType }); }, !isSyncRequest_1);
@@ -3622,21 +3689,22 @@
3622
3689
  function _getNotificationAction(reason) {
3623
3690
  var action = _eventActionMap[reason];
3624
3691
  if (!isValueAssigned(action)) {
3625
- action = strOther;
3692
+ action = STR_OTHER;
3626
3693
  if (reason >= 9000 && reason <= 9999 ) {
3627
- action = strResponseFail;
3694
+ action = STR_RESPONSE_FAIL;
3628
3695
  }
3629
3696
  else if (reason >= 8000 && reason <= 8999 ) {
3630
- action = strDropped;
3697
+ action = STR_DROPPED;
3631
3698
  }
3632
3699
  else if (reason >= 1000 && reason <= 1999 ) {
3633
- action = strSending;
3700
+ action = STR_SENDING;
3634
3701
  }
3635
3702
  }
3636
3703
  return action;
3637
3704
  }
3638
3705
  });
3639
3706
  }
3707
+ HttpManager.__ieDyn=1;
3640
3708
  return HttpManager;
3641
3709
  }());
3642
3710
 
@@ -3676,7 +3744,7 @@
3676
3744
  var _this = _super.call(this) || this;
3677
3745
  _this.identifier = "PostChannel";
3678
3746
  _this.priority = 1011;
3679
- _this.version = '3.2.2';
3747
+ _this.version = '3.2.5';
3680
3748
  var _config;
3681
3749
  var _isTeardownCalled = false;
3682
3750
  var _flushCallbackQueue = [];
@@ -3701,7 +3769,6 @@
3701
3769
  var _delayedBatchReason;
3702
3770
  var _optimizeObject = true;
3703
3771
  var _isPageUnloadTriggered = false;
3704
- var _disableXhrSync = false;
3705
3772
  var _maxEventSendAttempts = MaxSendAttempts;
3706
3773
  var _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
3707
3774
  var _evtNamespace;
@@ -3733,7 +3800,6 @@
3733
3800
  if (_config.autoFlushEventsLimit > 0) {
3734
3801
  _autoFlushEventsLimit = _config.autoFlushEventsLimit;
3735
3802
  }
3736
- _disableXhrSync = _config.disableXhrSync;
3737
3803
  if (isNumber(_config[strMaxEventRetryAttempts])) {
3738
3804
  _maxEventSendAttempts = _config[strMaxEventRetryAttempts];
3739
3805
  }
@@ -3827,11 +3893,11 @@
3827
3893
  if (!event.latency) {
3828
3894
  event.latency = 1 ;
3829
3895
  }
3830
- if (event.ext && event.ext["trace"]) {
3831
- delete (event.ext["trace"]);
3896
+ if (event.ext && event.ext[STR_TRACE]) {
3897
+ delete (event.ext[STR_TRACE]);
3832
3898
  }
3833
- if (event.ext && event.ext["user"] && event.ext["user"]["id"]) {
3834
- delete (event.ext["user"]["id"]);
3899
+ if (event.ext && event.ext[STR_USER] && event.ext[STR_USER]["id"]) {
3900
+ delete (event.ext[STR_USER]["id"]);
3835
3901
  }
3836
3902
  if (_optimizeObject) {
3837
3903
  event.ext = optimizeObject(event.ext);
@@ -3941,13 +4007,13 @@
3941
4007
  _self.flush = function (async, callback, sendReason) {
3942
4008
  if (async === void 0) { async = true; }
3943
4009
  if (!_paused) {
3944
- _clearScheduledTimer();
3945
4010
  sendReason = sendReason || 1 ;
3946
4011
  if (async) {
3947
- _queueBatches(1 , 0 , sendReason);
3948
- _resetQueueCounts();
3949
4012
  if (_flushCallbackTimerId == null) {
4013
+ _clearScheduledTimer();
4014
+ _queueBatches(1 , 0 , sendReason);
3950
4015
  _flushCallbackTimerId = _createTimer(function () {
4016
+ _flushCallbackTimerId = null;
3951
4017
  _flushImpl(callback, sendReason);
3952
4018
  }, 0);
3953
4019
  }
@@ -3956,15 +4022,19 @@
3956
4022
  }
3957
4023
  }
3958
4024
  else {
4025
+ var cleared = _clearScheduledTimer();
3959
4026
  _sendEventsForLatencyAndAbove(1 , 1 , sendReason);
3960
4027
  if (callback !== null && callback !== undefined) {
3961
4028
  callback();
3962
4029
  }
4030
+ if (cleared) {
4031
+ _scheduleTimer();
4032
+ }
3963
4033
  }
3964
4034
  }
3965
4035
  };
3966
4036
  _self.setMsaAuthTicket = function (ticket) {
3967
- _httpManager.addHeader(strMsaDeviceTicket, ticket);
4037
+ _httpManager.addHeader(STR_MSA_DEVICE_TICKET, ticket);
3968
4038
  };
3969
4039
  _self.hasEvents = _hasEvents;
3970
4040
  _self._setTransmitProfile = function (profileName) {
@@ -4050,7 +4120,6 @@
4050
4120
  _delayedBatchReason = null;
4051
4121
  _optimizeObject = true;
4052
4122
  _isPageUnloadTriggered = false;
4053
- _disableXhrSync = false;
4054
4123
  _maxEventSendAttempts = MaxSendAttempts;
4055
4124
  _maxUnloadEventSendAttempts = MaxSyncUnloadSendAttempts;
4056
4125
  _evtNamespace = null;
@@ -4082,7 +4151,9 @@
4082
4151
  _timeoutWrapper.clear(_scheduledTimerId);
4083
4152
  _scheduledTimerId = null;
4084
4153
  _timerCount = 0;
4154
+ return true;
4085
4155
  }
4156
+ return false;
4086
4157
  }
4087
4158
  function _releaseAllQueues(sendType, sendReason) {
4088
4159
  _clearScheduledTimer();
@@ -4246,18 +4317,20 @@
4246
4317
  }
4247
4318
  function _flushImpl(callback, sendReason) {
4248
4319
  _sendEventsForLatencyAndAbove(1 , 0 , sendReason);
4320
+ _resetQueueCounts();
4249
4321
  _waitForIdleManager(function () {
4250
4322
  if (callback) {
4251
4323
  callback();
4252
4324
  }
4253
4325
  if (_flushCallbackQueue.length > 0) {
4254
- _flushCallbackTimerId = _createTimer(function () { return _flushImpl(_flushCallbackQueue.shift(), sendReason); }, 0);
4326
+ _flushCallbackTimerId = _createTimer(function () {
4327
+ _flushCallbackTimerId = null;
4328
+ _flushImpl(_flushCallbackQueue.shift(), sendReason);
4329
+ }, 0);
4255
4330
  }
4256
4331
  else {
4257
4332
  _flushCallbackTimerId = null;
4258
- if (_hasEvents()) {
4259
- _scheduleTimer();
4260
- }
4333
+ _scheduleTimer();
4261
4334
  }
4262
4335
  });
4263
4336
  }
@@ -4267,6 +4340,7 @@
4267
4340
  }
4268
4341
  else {
4269
4342
  _flushCallbackTimerId = _createTimer(function () {
4343
+ _flushCallbackTimerId = null;
4270
4344
  _waitForIdleManager(callback);
4271
4345
  }, FlushCheckTimer);
4272
4346
  }
@@ -4390,6 +4464,7 @@
4390
4464
  });
4391
4465
  return _this;
4392
4466
  }
4467
+ PostChannel.__ieDyn=1;
4393
4468
  return PostChannel;
4394
4469
  }(BaseTelemetryPlugin));
4395
4470
  var PostChannel$1 = PostChannel;