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