@microsoft/applicationinsights-analytics-js 3.0.0-beta.2210-01 → 3.0.0-beta.2210-03

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 (33) hide show
  1. package/browser/applicationinsights-analytics-js.integrity.json +9 -9
  2. package/browser/applicationinsights-analytics-js.js +1013 -542
  3. package/browser/applicationinsights-analytics-js.js.map +1 -1
  4. package/browser/applicationinsights-analytics-js.min.js +2 -2
  5. package/browser/applicationinsights-analytics-js.min.js.map +1 -1
  6. package/dist/applicationinsights-analytics-js.api.json +5 -43
  7. package/dist/applicationinsights-analytics-js.api.md +2 -6
  8. package/dist/applicationinsights-analytics-js.d.ts +15 -18
  9. package/dist/applicationinsights-analytics-js.js +1013 -542
  10. package/dist/applicationinsights-analytics-js.js.map +1 -1
  11. package/dist/applicationinsights-analytics-js.min.js +2 -2
  12. package/dist/applicationinsights-analytics-js.min.js.map +1 -1
  13. package/dist/applicationinsights-analytics-js.rollup.d.ts +15 -18
  14. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js +155 -148
  15. package/dist-esm/JavaScriptSDK/AnalyticsPlugin.js.map +1 -1
  16. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js +14 -15
  17. package/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js.map +1 -1
  18. package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js +9 -10
  19. package/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js.map +1 -1
  20. package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js +8 -9
  21. package/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js.map +1 -1
  22. package/dist-esm/JavaScriptSDK/Timing.js +1 -1
  23. package/dist-esm/JavaScriptSDK.Interfaces/ITelemetryConfig.js +1 -1
  24. package/dist-esm/__DynamicConstants.js +16 -24
  25. package/dist-esm/__DynamicConstants.js.map +1 -1
  26. package/dist-esm/applicationinsights-analytics-js.js +1 -1
  27. package/package.json +6 -6
  28. package/src/JavaScriptSDK/AnalyticsPlugin.ts +177 -175
  29. package/src/JavaScriptSDK/Telemetry/PageVisitTimeManager.ts +4 -4
  30. package/src/__DynamicConstants.ts +15 -23
  31. package/types/JavaScriptSDK/AnalyticsPlugin.d.ts +14 -17
  32. package/types/JavaScriptSDK/Telemetry/PageVisitTimeManager.d.ts +3 -3
  33. package/types/__DynamicConstants.d.ts +15 -23
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Web Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Web Analytics, 3.0.0-beta.2210-03
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  (function (global, factory) {
@@ -18,7 +18,6 @@
18
18
  var ObjAssign = ObjClass$1["assign"];
19
19
  var ObjCreate = ObjClass$1["create"];
20
20
  var ObjDefineProperty = ObjClass$1["defineProperty"];
21
- var ObjHasOwnProperty = ObjProto$1[strShimHasOwnProperty];
22
21
 
23
22
  var _cachedGlobal$1 = null;
24
23
  function getGlobal$1(useCached) {
@@ -348,7 +347,6 @@
348
347
 
349
348
  var UNDEF_VALUE = undefined;
350
349
  var EMPTY = "";
351
- var BOOLEAN = "boolean";
352
350
  var FUNCTION = "function";
353
351
  var NUMBER = "number";
354
352
  var OBJECT = "object";
@@ -356,13 +354,19 @@
356
354
  var STRING = "string";
357
355
  var UNDEFINED = "undefined";
358
356
  var HAS_OWN_PROPERTY = "hasOwnProperty";
357
+ var SYMBOL = "Symbol";
358
+ var POLYFILL_TAG = "_polyfill";
359
359
  var INDEX_OF = "indexOf";
360
360
  var LENGTH = "length";
361
+ var DONE = "done";
362
+ var VALUE = "value";
361
363
  var ObjClass = Object;
362
364
  var ObjProto = ObjClass[PROTOTYPE];
363
365
  var StrCls = String;
364
366
  var StrProto = StrCls[PROTOTYPE];
367
+ var MathCls = Math;
365
368
  var ArrCls = Array;
369
+ var ArrProto = ArrCls[PROTOTYPE];
366
370
 
367
371
  function _safeCheck(cb, defValue) {
368
372
  var result = defValue;
@@ -406,7 +410,6 @@
406
410
  }
407
411
  var isArray = ArrCls.isArray;
408
412
  var isNumber = _createIs(NUMBER);
409
- var isBoolean = _createIs(BOOLEAN);
410
413
  var isError = _createObjIs("[object Error]");
411
414
  function isTruthy(value) {
412
415
  return !(!value || _safeCheck(function () { return !(value && (0 + value)); }, !value));
@@ -482,7 +485,7 @@
482
485
  return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);
483
486
  }
484
487
 
485
- function objForEachKey(theObject, callbackfn, thisArg) {
488
+ function objForEachKey$1(theObject, callbackfn, thisArg) {
486
489
  if (theObject && isObject(theObject)) {
487
490
  for (var prop in theObject) {
488
491
  if (objHasOwn(theObject, prop)) {
@@ -514,6 +517,7 @@
514
517
  throw new TypeError(message);
515
518
  }
516
519
 
520
+ ObjClass["assign"];
517
521
  var _objFreeze = ObjClass["freeze"];
518
522
  function _doNothing(value) {
519
523
  return value;
@@ -526,7 +530,7 @@
526
530
  }
527
531
  function objDeepFreeze(value) {
528
532
  if (_objFreeze) {
529
- objForEachKey(value, function (key, value) {
533
+ objForEachKey$1(value, function (key, value) {
530
534
  if (isArray(value) || isObject(value)) {
531
535
  _objFreeze(value);
532
536
  }
@@ -535,16 +539,76 @@
535
539
  return objFreeze(value);
536
540
  }
537
541
  var objFreeze = _objFreeze || _doNothing;
542
+ ObjClass["seal"] || _doNothing;
538
543
 
539
544
  function createEnum(values) {
540
545
  var theEnum = {};
541
- objForEachKey(values, function (field, value) {
546
+ objForEachKey$1(values, function (field, value) {
542
547
  theEnum[field] = value;
543
548
  theEnum[value] = field;
544
549
  });
545
550
  return objDeepFreeze(theEnum);
546
551
  }
547
552
 
553
+ var POLY_GLOBAL_REGISTORT = "__polySymbols$ts_utils";
554
+ var _polySymbols;
555
+ function _globalSymbolRegistry() {
556
+ if (!_polySymbols) {
557
+ var gbl = getGlobal();
558
+ _polySymbols = gbl[POLY_GLOBAL_REGISTORT] = gbl[POLY_GLOBAL_REGISTORT] || { k: {}, s: {} };
559
+ }
560
+ return _polySymbols;
561
+ }
562
+ function polyNewSymbol(description) {
563
+ var theSymbol = {
564
+ description: "" + description,
565
+ toString: function () { return SYMBOL + "(" + description + ")"; }
566
+ };
567
+ theSymbol[POLYFILL_TAG] = true;
568
+ return theSymbol;
569
+ }
570
+ function polySymbolFor(key) {
571
+ var registry = _globalSymbolRegistry();
572
+ if (!objHasOwn(registry, key)) {
573
+ var newSymbol = polyNewSymbol(key);
574
+ registry.k[key] = newSymbol;
575
+ registry.s[newSymbol] = "" + key;
576
+ }
577
+ return registry.k[key];
578
+ }
579
+
580
+ var _hasSymbol = _safeCheck(function () { return isDefined(Symbol); }, false);
581
+ var _symbol = getInst(SYMBOL);
582
+ var _symbolFor = _symbol && _safeCheck(function () { return _symbol["for"]; }, null);
583
+ _symbol && _safeCheck(function () { return _symbol["keyFor"]; }, null);
584
+ function newSymbol(description, noPoly) {
585
+ return _hasSymbol ? Symbol(description) : (!noPoly ? polyNewSymbol(description) : null);
586
+ }
587
+ var symbolFor = _symbolFor || polySymbolFor;
588
+
589
+ function isIterator(value) {
590
+ return !!value && isFunction(value.next);
591
+ }
592
+
593
+ function arrAppend(target, elms) {
594
+ if (!isUndefined(elms) && target) {
595
+ if (isArray(elms)) {
596
+ ArrProto.push.apply(target, elms);
597
+ }
598
+ else if (isIterator(elms)) {
599
+ var value = elms.next();
600
+ while (!value[DONE]) {
601
+ target.push(value[VALUE]);
602
+ value = elms.next();
603
+ }
604
+ }
605
+ else {
606
+ target.push(elms);
607
+ }
608
+ }
609
+ return target;
610
+ }
611
+
548
612
  function dumpObj(object, format) {
549
613
  var objectTypeDump = objToString(object);
550
614
  var propertyValueDump = "";
@@ -588,7 +652,7 @@
588
652
  d.__proto__ = b;
589
653
  }) ||
590
654
  function (d, b) {
591
- objForEachKey(b, function (key, value) {
655
+ objForEachKey$1(b, function (key, value) {
592
656
  d[key] = value;
593
657
  });
594
658
  };
@@ -652,7 +716,29 @@
652
716
  }
653
717
  }
654
718
 
719
+ var mathMax = MathCls.max;
720
+
721
+ var strSlice = _unwrapFunction("slice");
722
+
723
+ var SUB_STR = "substr";
655
724
  var strSubstring = _unwrapFunction("substring");
725
+ var strSubstr = StrProto[SUB_STR] ? _unwrapFunction(SUB_STR) : polyStrSubstr;
726
+ function polyStrSubstr(value, start, length) {
727
+ if (isNullOrUndefined(value)) {
728
+ throwTypeError("'polyStrSubstr called with invalid " + dumpObj(value));
729
+ }
730
+ if (length < 0) {
731
+ return EMPTY;
732
+ }
733
+ start = start || 0;
734
+ if (start < 0) {
735
+ start = mathMax(start + value[LENGTH], 0);
736
+ }
737
+ if (isUndefined(length)) {
738
+ return strSlice(value, start);
739
+ }
740
+ return strSlice(value, start, start + length);
741
+ }
656
742
 
657
743
  var ENDS_WITH = "endsWith";
658
744
  var strEndsWith = StrProto[ENDS_WITH] ? _unwrapFunction(ENDS_WITH) : polyStrEndsWith;
@@ -669,6 +755,8 @@
669
755
 
670
756
  var strIndexOf = _unwrapFunction(INDEX_OF);
671
757
 
758
+ var asString = StrCls;
759
+
672
760
  function _createTrimFn(exp) {
673
761
  return function _doTrim(value) {
674
762
  if (isNullOrUndefined(value)) {
@@ -687,49 +775,54 @@
687
775
 
688
776
  var createEnumStyle = createEnum;
689
777
 
778
+ var _DYN_LENGTH$2 = "length";
779
+ var _DYN_NOTIFY = "notify";
780
+ var _DYN_THROW_INTERNAL = "throwInternal";
781
+ var _DYN_WATCH = "watch";
782
+ var _DYN_LOGGER = "logger";
783
+ var _DYN_CONFIGURABLE = "configurable";
784
+ var _DYN_ENUMERABLE = "enumerable";
785
+ var _DYN_APPLY = "apply";
786
+ var _DYN_INDEX_OF$1 = "indexOf";
787
+ var _DYN_PUSH = "push";
690
788
  var _DYN_INITIALIZE = "initialize";
691
- var _DYN_NAME$1 = "name";
692
789
  var _DYN_IDENTIFIER = "identifier";
693
- var _DYN_PUSH = "push";
790
+ var _DYN_SPLICE = "splice";
694
791
  var _DYN_IS_INITIALIZED = "isInitialized";
695
- var _DYN_CONFIG = "config";
696
- var _DYN_LOGGER = "logger";
697
- var _DYN_LENGTH$2 = "length";
792
+ var _DYN_NAME$1 = "name";
698
793
  var _DYN_TIME = "time";
699
794
  var _DYN_PROCESS_NEXT = "processNext";
700
795
  var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
796
+ var _DYN_CALL = "call";
701
797
  var _DYN_GET_PLUGIN = "getPlugin";
702
- var _DYN_SPLICE = "splice";
798
+ var _DYN_LOGGING_LEVEL_CONSOL4 = "loggingLevelConsole";
703
799
  var _DYN_TEARDOWN = "teardown";
704
800
  var _DYN_MESSAGE_ID = "messageId";
705
801
  var _DYN_MESSAGE$2 = "message";
706
802
  var _DYN_IS_ASYNC = "isAsync";
803
+ var _DYN_DIAG_LOG$1 = "diagLog";
707
804
  var _DYN__DO_TEARDOWN = "_doTeardown";
708
805
  var _DYN_UPDATE = "update";
709
806
  var _DYN_GET_NEXT = "getNext";
710
- var _DYN_DIAG_LOG$1 = "diagLog";
711
807
  var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
712
808
  var _DYN_CREATE_NEW = "createNew";
713
- var _DYN_COOKIE_CFG = "cookieCfg";
714
- var _DYN_INDEX_OF$1 = "indexOf";
809
+ var _DYN_CONFIG = "config";
715
810
  var _DYN_SUBSTRING$1 = "substring";
716
811
  var _DYN_USER_AGENT = "userAgent";
717
812
  var _DYN_SPLIT$1 = "split";
718
- var _DYN_SUBSTR = "substr";
719
813
  var _DYN_NODE_TYPE = "nodeType";
720
- var _DYN_APPLY = "apply";
721
814
  var _DYN_REPLACE = "replace";
722
- var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
815
+ var _DYN_ENABLE_DEBUG_EXCEPTI5 = "enableDebugExceptions";
723
816
  var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
724
817
  var _DYN_TO_LOWER_CASE$1 = "toLowerCase";
725
818
  var _DYN_TYPE = "type";
726
819
  var _DYN_HANDLER = "handler";
727
- var _DYN_CALL = "call";
728
820
  var _DYN_IS_CHILD_EVT = "isChildEvt";
729
821
  var _DYN_GET_CTX = "getCtx";
730
822
  var _DYN_SET_CTX = "setCtx";
731
823
  var _DYN_COMPLETE = "complete";
732
824
 
825
+ var UNDEFINED_VALUE = undefined;
733
826
  var STR_EMPTY = "";
734
827
  var STR_CORE = "core";
735
828
  var STR_DISABLED = "disabled";
@@ -739,42 +832,19 @@
739
832
  var STR_ERROR_TO_CONSOLE = "errorToConsole";
740
833
  var STR_WARN_TO_CONSOLE = "warnToConsole";
741
834
  var STR_GET_PERF_MGR = "getPerfMgr";
835
+ var STR_DOMAIN = "domain";
836
+ var STR_PATH = "path";
837
+ var STR_NOT_DYNAMIC_ERROR = "Not dynamic - ";
742
838
 
743
- var _aiNamespace = null;
744
- function _getExtensionNamespace() {
745
- var target = getInst("Microsoft");
746
- if (target) {
747
- _aiNamespace = target["ApplicationInsights"];
748
- }
749
- return _aiNamespace;
750
- }
751
- function getDebugExt(config) {
752
- var ns = _aiNamespace;
753
- if (!ns && config.disableDbgExt !== true) {
754
- ns = _aiNamespace || _getExtensionNamespace();
755
- }
756
- return ns ? ns["ChromeDbgExt"] : null;
757
- }
758
-
759
- var cString = "String";
760
- var cObject = "Object";
761
- var strToISOString = "toISOString";
762
839
  var strToString = "toString";
763
840
  var strGetPrototypeOf = "getPrototypeOf";
764
841
  var strConstructor = "constructor";
765
- var DateProto = Date[strShimPrototype];
766
- var _dateToISOString = DateProto[strToISOString] || _polyfillRequired("Date", strToISOString);
767
- var _fnToString = ObjHasOwnProperty[strToString] || _polyfillRequired(cString, strToString);
842
+ var _fnToString = ObjClass$1[strToString];
768
843
  var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass$1);
769
844
  var rCamelCase = /-([a-z])/g;
770
845
  var rNormalizeInvalid = /([^\w\d_$])/g;
771
846
  var rLeadingNumeric = /^(\d+[\w\d_$])/;
772
- function _polyfillRequired(object, name) {
773
- return function () {
774
- throwUnsupported("Polyfill required for [" + name + "]");
775
- };
776
- }
777
- var _getObjProto = Object[strGetPrototypeOf] || _polyfillRequired(cObject, strGetPrototypeOf);
847
+ var _getObjProto = Object[strGetPrototypeOf];
778
848
  function isNotNullOrUndefined(value) {
779
849
  return !isNullOrUndefined(value);
780
850
  }
@@ -791,6 +861,7 @@
791
861
  }
792
862
  return value;
793
863
  }
864
+ var objForEachKey = objForEachKey$1;
794
865
  function strContains(value, search) {
795
866
  if (value && search) {
796
867
  return strIndexOf(value, search) !== -1;
@@ -805,7 +876,7 @@
805
876
  result = true;
806
877
  }
807
878
  else {
808
- if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
879
+ if (proto[strConstructor] && objHasOwnProperty(proto, strConstructor)) {
809
880
  proto = proto[strConstructor];
810
881
  }
811
882
  result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
@@ -814,7 +885,7 @@
814
885
  return result;
815
886
  }
816
887
  function toISOString(date) {
817
- return _dateToISOString[_DYN_CALL ](date);
888
+ return date && date.toISOString() || "";
818
889
  }
819
890
  function dateNow() {
820
891
  var dt = Date;
@@ -837,9 +908,6 @@
837
908
  }
838
909
  return theValue;
839
910
  }
840
- function getCfgValue(theValue, defaultValue) {
841
- return !isNullOrUndefined(theValue) ? theValue : defaultValue;
842
- }
843
911
  function _createProxyFunction(source, funcName) {
844
912
  var srcFunc = null;
845
913
  var src = null;
@@ -866,111 +934,621 @@
866
934
  }
867
935
  }
868
936
  }
869
- function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
870
- var theArgs = arguments;
871
- var extended = theArgs[0] || {};
872
- var argLen = theArgs[_DYN_LENGTH$2 ];
873
- var deep = false;
874
- var idx = 1;
875
- if (argLen > 0 && isBoolean(extended)) {
876
- deep = extended;
877
- extended = theArgs[idx] || {};
878
- idx++;
879
- }
880
- if (!isObject(extended)) {
881
- extended = {};
882
- }
883
- for (; idx < argLen; idx++) {
884
- var arg = theArgs[idx];
885
- var isArgArray = isArray(arg);
886
- var isArgObj = isObject(arg);
887
- for (var prop in arg) {
888
- var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
889
- if (!propOk) {
890
- continue;
891
- }
892
- var newValue = arg[prop];
893
- var isNewArray = void 0;
894
- if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {
895
- var clone = extended[prop];
896
- if (isNewArray) {
897
- if (!isArray(clone)) {
898
- clone = [];
899
- }
937
+
938
+ var CFG_HANDLER_LINK = symbolFor("[[ai_dynCfg_1]]");
939
+ function _cfgDeepCopy(source) {
940
+ if (source) {
941
+ if (isArray(source)) {
942
+ var result_1 = [];
943
+ result_1[_DYN_LENGTH$2 ] = source[_DYN_LENGTH$2 ];
944
+ arrForEach(source, function (value, idx) {
945
+ result_1[idx] = _cfgDeepCopy(value);
946
+ });
947
+ return result_1;
948
+ }
949
+ if (isPlainObject(source)) {
950
+ var target_1 = {};
951
+ objForEachKey$1(source, function (key, value) {
952
+ target_1[key] = _cfgDeepCopy(value);
953
+ });
954
+ return target_1;
955
+ }
956
+ }
957
+ return source;
958
+ }
959
+ function getDynamicConfigHandler(value) {
960
+ if (value) {
961
+ var handler = value[CFG_HANDLER_LINK] || value;
962
+ if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {
963
+ return handler;
964
+ }
965
+ }
966
+ return null;
967
+ }
968
+ function throwInvalidAccess(message) {
969
+ throwTypeError("InvalidAccess:" + message);
970
+ }
971
+
972
+ function _getDefault(dynamicHandler, theConfig, cfgDefaults) {
973
+ var defValue;
974
+ var isDefaultValid = cfgDefaults.dfVal || isDefined;
975
+ if (theConfig && cfgDefaults.fb) {
976
+ var fallbacks = cfgDefaults.fb;
977
+ if (!isArray(fallbacks)) {
978
+ fallbacks = [fallbacks];
979
+ }
980
+ for (var lp = 0; lp < fallbacks[_DYN_LENGTH$2 ]; lp++) {
981
+ var fallback = fallbacks[lp];
982
+ var fbValue = theConfig[fallback];
983
+ if (isDefaultValid(fbValue)) {
984
+ defValue = fbValue;
985
+ }
986
+ else {
987
+ fbValue = dynamicHandler.cfg[fallback];
988
+ if (isDefaultValid(fbValue)) {
989
+ defValue = fbValue;
990
+ }
991
+ dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);
992
+ }
993
+ if (isDefaultValid(defValue)) {
994
+ break;
995
+ }
996
+ }
997
+ }
998
+ if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {
999
+ defValue = cfgDefaults.v;
1000
+ }
1001
+ return defValue;
1002
+ }
1003
+ function _applyDefaultValue(theConfig, name, defaultValue) {
1004
+ var dynamicHandler = theConfig[CFG_HANDLER_LINK];
1005
+ if (!dynamicHandler) {
1006
+ throwInvalidAccess(STR_NOT_DYNAMIC_ERROR + dumpObj(theConfig));
1007
+ }
1008
+ var isValid;
1009
+ var setFn;
1010
+ var defValue;
1011
+ var cfgDefaults = defaultValue;
1012
+ if (cfgDefaults && isObject(cfgDefaults) && (cfgDefaults.isVal || cfgDefaults.set || cfgDefaults.fb || objHasOwn(cfgDefaults, "v"))) {
1013
+ isValid = cfgDefaults.isVal;
1014
+ setFn = cfgDefaults.set;
1015
+ defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);
1016
+ }
1017
+ else {
1018
+ defValue = defaultValue;
1019
+ }
1020
+ var theValue = defValue;
1021
+ var usingDefault = true;
1022
+ var cfgValue = theConfig[name];
1023
+ if (cfgValue || !isNullOrUndefined(cfgValue)) {
1024
+ theValue = cfgValue;
1025
+ usingDefault = false;
1026
+ }
1027
+ if (!usingDefault) {
1028
+ if (isValid && theValue !== defValue && !isValid(theValue)) {
1029
+ theValue = defValue;
1030
+ usingDefault = true;
1031
+ }
1032
+ if (setFn) {
1033
+ theValue = setFn(theValue, defValue, theConfig);
1034
+ usingDefault = theValue === defValue;
1035
+ }
1036
+ }
1037
+ if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {
1038
+ theValue = _cfgDeepCopy(theValue);
1039
+ }
1040
+ dynamicHandler.set(theConfig, name, theValue);
1041
+ }
1042
+ function applyDefaults(theConfig, defaultValues) {
1043
+ if (defaultValues) {
1044
+ if (theConfig && !theConfig[CFG_HANDLER_LINK] && (isPlainObject(theConfig) || isArray(theConfig))) {
1045
+ throwInvalidAccess(STR_NOT_DYNAMIC_ERROR + dumpObj(theConfig));
1046
+ }
1047
+ objForEachKey(defaultValues, function (name, value) {
1048
+ _applyDefaultValue(theConfig, name, value);
1049
+ });
1050
+ }
1051
+ return theConfig;
1052
+ }
1053
+
1054
+ var strLocation = "location";
1055
+ var strConsole = "console";
1056
+ var strPerformance = "performance";
1057
+ var strJSON = "JSON";
1058
+ var strCrypto = "crypto";
1059
+ var strMsCrypto = "msCrypto";
1060
+ var strMsie = "msie";
1061
+ var strTrident = "trident/";
1062
+ var _isTrident = null;
1063
+ var _navUserAgentCheck = null;
1064
+ var _enableMocks = false;
1065
+ function getLocation(checkForMock) {
1066
+ if (checkForMock && _enableMocks) {
1067
+ var mockLocation = getInst("__mockLocation");
1068
+ if (mockLocation) {
1069
+ return mockLocation;
1070
+ }
1071
+ }
1072
+ if (typeof location === strShimObject && location) {
1073
+ return location;
1074
+ }
1075
+ return getInst(strLocation);
1076
+ }
1077
+ function getConsole() {
1078
+ if (typeof console !== strShimUndefined) {
1079
+ return console;
1080
+ }
1081
+ return getInst(strConsole);
1082
+ }
1083
+ function getPerformance() {
1084
+ return getInst(strPerformance);
1085
+ }
1086
+ function hasJSON() {
1087
+ return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);
1088
+ }
1089
+ function getJSON() {
1090
+ if (hasJSON()) {
1091
+ return JSON || getInst(strJSON);
1092
+ }
1093
+ return null;
1094
+ }
1095
+ function getCrypto() {
1096
+ return getInst(strCrypto);
1097
+ }
1098
+ function getMsCrypto() {
1099
+ return getInst(strMsCrypto);
1100
+ }
1101
+ function isIE() {
1102
+ var nav = getNavigator();
1103
+ if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
1104
+ _navUserAgentCheck = nav[_DYN_USER_AGENT ];
1105
+ var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
1106
+ _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1107
+ }
1108
+ return _isTrident;
1109
+ }
1110
+
1111
+ var UInt32Mask = 0x100000000;
1112
+ var MaxUInt32 = 0xffffffff;
1113
+ var _mwcSeeded = false;
1114
+ var _mwcW = 123456789;
1115
+ var _mwcZ = 987654321;
1116
+ function _mwcSeed(seedValue) {
1117
+ if (seedValue < 0) {
1118
+ seedValue >>>= 0;
1119
+ }
1120
+ _mwcW = (123456789 + seedValue) & MaxUInt32;
1121
+ _mwcZ = (987654321 - seedValue) & MaxUInt32;
1122
+ _mwcSeeded = true;
1123
+ }
1124
+ function _autoSeedMwc() {
1125
+ try {
1126
+ var now = dateNow() & 0x7fffffff;
1127
+ _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
1128
+ }
1129
+ catch (e) {
1130
+ }
1131
+ }
1132
+ function random32(signed) {
1133
+ var value = 0;
1134
+ var c = getCrypto() || getMsCrypto();
1135
+ if (c && c.getRandomValues) {
1136
+ value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
1137
+ }
1138
+ if (value === 0 && isIE()) {
1139
+ if (!_mwcSeeded) {
1140
+ _autoSeedMwc();
1141
+ }
1142
+ value = mwcRandom32() & MaxUInt32;
1143
+ }
1144
+ if (value === 0) {
1145
+ value = Math.floor((UInt32Mask * Math.random()) | 0);
1146
+ }
1147
+ if (!signed) {
1148
+ value >>>= 0;
1149
+ }
1150
+ return value;
1151
+ }
1152
+ function mwcRandom32(signed) {
1153
+ _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
1154
+ _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
1155
+ var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
1156
+ if (!signed) {
1157
+ value >>>= 0;
1158
+ }
1159
+ return value;
1160
+ }
1161
+ function newId(maxLength) {
1162
+ if (maxLength === void 0) { maxLength = 22; }
1163
+ var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1164
+ var number = random32() >>> 0;
1165
+ var chars = 0;
1166
+ var result = STR_EMPTY;
1167
+ while (result[_DYN_LENGTH$2 ] < maxLength) {
1168
+ chars++;
1169
+ result += base64chars.charAt(number & 0x3F);
1170
+ number >>>= 6;
1171
+ if (chars === 5) {
1172
+ number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
1173
+ chars = 0;
1174
+ }
1175
+ }
1176
+ return result;
1177
+ }
1178
+
1179
+ var _objDefineProperty = ObjDefineProperty;
1180
+ var version = "3.0.0-beta.2210-03";
1181
+ var instanceName = "." + newId(6);
1182
+ var _dataUid = 0;
1183
+ function _createAccessor(target, prop, value) {
1184
+ var _a;
1185
+ if (_objDefineProperty) {
1186
+ try {
1187
+ _objDefineProperty(target, prop, (_a = {
1188
+ value: value
1189
+ },
1190
+ _a[_DYN_ENUMERABLE ] = false,
1191
+ _a[_DYN_CONFIGURABLE ] = true,
1192
+ _a));
1193
+ return true;
1194
+ }
1195
+ catch (e) {
1196
+ }
1197
+ }
1198
+ return false;
1199
+ }
1200
+ function _canAcceptData(target) {
1201
+ return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
1202
+ }
1203
+ function _getCache(data, target) {
1204
+ var theCache = target[data.id];
1205
+ if (!theCache) {
1206
+ theCache = {};
1207
+ try {
1208
+ if (_canAcceptData(target)) {
1209
+ if (!_createAccessor(target, data.id, theCache)) {
1210
+ target[data.id] = theCache;
900
1211
  }
901
- else if (!isPlainObject(clone)) {
902
- clone = {};
1212
+ }
1213
+ }
1214
+ catch (e) {
1215
+ }
1216
+ }
1217
+ return theCache;
1218
+ }
1219
+ function createUniqueNamespace(name, includeVersion) {
1220
+ if (includeVersion === void 0) { includeVersion = false; }
1221
+ return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1222
+ }
1223
+ function createElmNodeData(name) {
1224
+ var data = {
1225
+ id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1226
+ accept: function (target) {
1227
+ return _canAcceptData(target);
1228
+ },
1229
+ get: function (target, name, defValue, addDefault) {
1230
+ var theCache = target[data.id];
1231
+ if (!theCache) {
1232
+ if (addDefault) {
1233
+ theCache = _getCache(data, target);
1234
+ theCache[normalizeJsName(name)] = defValue;
1235
+ }
1236
+ return defValue;
1237
+ }
1238
+ return theCache[normalizeJsName(name)];
1239
+ },
1240
+ kill: function (target, name) {
1241
+ if (target && target[name]) {
1242
+ try {
1243
+ delete target[name];
1244
+ }
1245
+ catch (e) {
903
1246
  }
904
- newValue = objExtend(deep, clone, newValue);
905
1247
  }
906
- if (newValue !== undefined) {
907
- extended[prop] = newValue;
1248
+ }
1249
+ };
1250
+ return data;
1251
+ }
1252
+
1253
+ var arrayMethodsToPatch = [
1254
+ "push",
1255
+ "pop",
1256
+ "shift",
1257
+ "unshift",
1258
+ "splice"
1259
+ ];
1260
+ function _patchArray(state, target) {
1261
+ if (isArray(target)) {
1262
+ arrForEach(arrayMethodsToPatch, function (method) {
1263
+ var orgMethod = target[method];
1264
+ target[method] = function () {
1265
+ var args = [];
1266
+ for (var _i = 0; _i < arguments.length; _i++) {
1267
+ args[_i] = arguments[_i];
1268
+ }
1269
+ var result = orgMethod[_DYN_APPLY ](this, args);
1270
+ _makeDynamicObject(state, target);
1271
+ return result;
1272
+ };
1273
+ });
1274
+ }
1275
+ }
1276
+ function _makeDynamicProperty(state, theConfig, name, value) {
1277
+ var detail = {
1278
+ n: name,
1279
+ h: [],
1280
+ add: function (handler) {
1281
+ if (handler && handler.fn && detail.h[_DYN_INDEX_OF$1 ](handler) === -1) {
1282
+ detail.h[_DYN_PUSH ](handler);
1283
+ }
1284
+ }
1285
+ };
1286
+ var checkDynamic = true;
1287
+ function _getProperty() {
1288
+ if (checkDynamic) {
1289
+ if (value && !value[CFG_HANDLER_LINK] && (isPlainObject(value) || isArray(value))) {
1290
+ value = _makeDynamicObject(state, value);
1291
+ }
1292
+ checkDynamic = false;
1293
+ }
1294
+ var activeHandler = state.act;
1295
+ if (activeHandler) {
1296
+ detail.add(activeHandler);
1297
+ }
1298
+ return value;
1299
+ }
1300
+ _getProperty[state.prop] = true;
1301
+ function _setProperty(newValue) {
1302
+ if (value !== newValue) {
1303
+ if (!!_setProperty[state.ro] && state.upd) {
1304
+ throwInvalidAccess("[" + name + "] is sealed from " + dumpObj(theConfig));
1305
+ }
1306
+ if (value && value[CFG_HANDLER_LINK]) {
1307
+ if (isPlainObject(value)) {
1308
+ objForEachKey$1(value, function (key) {
1309
+ value[key] = UNDEFINED_VALUE;
1310
+ });
1311
+ }
1312
+ else if (isArray(value)) {
1313
+ arrForEach(value, function (propValue, idx) {
1314
+ value[idx] = UNDEFINED_VALUE;
1315
+ });
1316
+ }
1317
+ }
1318
+ checkDynamic = false;
1319
+ if (isPlainObject(newValue) || isArray(newValue)) {
1320
+ _makeDynamicObject(state, newValue);
1321
+ }
1322
+ value = newValue;
1323
+ state.add(detail);
1324
+ }
1325
+ }
1326
+ objDefineAccessors(theConfig, detail.n, _getProperty, _setProperty, true);
1327
+ }
1328
+ function _setDynamicProperty(state, target, name, value) {
1329
+ if (target) {
1330
+ var isDynamic = false;
1331
+ var propDesc = objGetOwnPropertyDescriptor(target, name);
1332
+ if (propDesc && propDesc.get) {
1333
+ isDynamic = !!propDesc.get[state.prop];
1334
+ }
1335
+ if (!isDynamic) {
1336
+ _makeDynamicProperty(state, target, name, value);
1337
+ }
1338
+ else {
1339
+ target[name] = value;
1340
+ }
1341
+ }
1342
+ return value;
1343
+ }
1344
+ function _makeDynamicObject(state, target ) {
1345
+ var _a;
1346
+ objForEachKey$1( target, function (key, value) {
1347
+ _setDynamicProperty(state, target, key, value);
1348
+ });
1349
+ if (!target[CFG_HANDLER_LINK]) {
1350
+ objDefineProp(target, CFG_HANDLER_LINK, (_a = {},
1351
+ _a[_DYN_CONFIGURABLE ] = false,
1352
+ _a[_DYN_ENUMERABLE ] = false,
1353
+ _a.get = function () {
1354
+ return state.hdlr;
1355
+ },
1356
+ _a));
1357
+ _patchArray(state, target);
1358
+ }
1359
+ return target;
1360
+ }
1361
+
1362
+ var symPrefix = "[[ai_";
1363
+ var symPostfix = "]]";
1364
+ function _insertWatcher(watchers, theDetail) {
1365
+ if (theDetail && theDetail.h && theDetail.h[_DYN_LENGTH$2 ] > 0) {
1366
+ arrForEach(theDetail.h, function (handler) {
1367
+ if (handler && handler.fn && watchers[_DYN_INDEX_OF$1 ](handler) === -1) {
1368
+ watchers[_DYN_PUSH ](handler);
1369
+ }
1370
+ });
1371
+ }
1372
+ }
1373
+ function _createState(cfgHandler) {
1374
+ var _a;
1375
+ var dynamicPropertySymbol = newSymbol(symPrefix + "get" + cfgHandler.uid + symPostfix);
1376
+ var dynamicPropertyReadOnly = newSymbol(symPrefix + "ro" + cfgHandler.uid + symPostfix);
1377
+ var _waitingHandlers = null;
1378
+ var _watcherTimer = null;
1379
+ var theState;
1380
+ function _useHandler(activeHandler, callback) {
1381
+ var prevWatcher = theState.act;
1382
+ try {
1383
+ theState.act = activeHandler;
1384
+ callback({
1385
+ cfg: cfgHandler.cfg,
1386
+ hdlr: cfgHandler
1387
+ });
1388
+ }
1389
+ catch (e) {
1390
+ var message = "Watcher [" + dumpObj(callback) + "] failed [" + dumpObj(e) + "]";
1391
+ var logger = cfgHandler[_DYN_LOGGER ];
1392
+ if (logger) {
1393
+ cfgHandler.logger[_DYN_THROW_INTERNAL ](1 , 107 , message);
1394
+ }
1395
+ else {
1396
+ throwInvalidAccess(message);
1397
+ }
1398
+ }
1399
+ finally {
1400
+ theState.act = prevWatcher || null;
1401
+ }
1402
+ }
1403
+ function _notifyWatchers() {
1404
+ if (_waitingHandlers) {
1405
+ var notifyHandlers = _waitingHandlers;
1406
+ _waitingHandlers = null;
1407
+ if (_watcherTimer) {
1408
+ clearTimeout(_watcherTimer);
1409
+ _watcherTimer = null;
1410
+ }
1411
+ arrForEach(notifyHandlers, function (handler) {
1412
+ if (handler.fn) {
1413
+ _useHandler(handler, handler.fn);
1414
+ }
1415
+ });
1416
+ if (_waitingHandlers) {
1417
+ _notifyWatchers();
1418
+ }
1419
+ }
1420
+ }
1421
+ function _addWatcher(detail) {
1422
+ if (detail && detail.h[_DYN_LENGTH$2 ] > 0) {
1423
+ if (!_waitingHandlers) {
1424
+ _waitingHandlers = [];
908
1425
  }
1426
+ if (!_watcherTimer) {
1427
+ _watcherTimer = setTimeout(function () {
1428
+ _watcherTimer = null;
1429
+ _notifyWatchers();
1430
+ }, 0);
1431
+ }
1432
+ _insertWatcher(_waitingHandlers, detail);
909
1433
  }
910
1434
  }
911
- return extended;
1435
+ theState = (_a = {
1436
+ prop: dynamicPropertySymbol,
1437
+ ro: dynamicPropertyReadOnly,
1438
+ hdlr: cfgHandler,
1439
+ add: _addWatcher
1440
+ },
1441
+ _a[_DYN_NOTIFY ] = _notifyWatchers,
1442
+ _a.use = _useHandler,
1443
+ _a);
1444
+ return theState;
912
1445
  }
913
1446
 
914
- var strLocation = "location";
915
- var strConsole = "console";
916
- var strPerformance = "performance";
917
- var strJSON = "JSON";
918
- var strCrypto = "crypto";
919
- var strMsCrypto = "msCrypto";
920
- var strMsie = "msie";
921
- var strTrident = "trident/";
922
- var _isTrident = null;
923
- var _navUserAgentCheck = null;
924
- var _enableMocks = false;
925
- function getLocation(checkForMock) {
926
- if (checkForMock && _enableMocks) {
927
- var mockLocation = getInst("__mockLocation");
928
- if (mockLocation) {
929
- return mockLocation;
1447
+ function _createAndUseHandler(state, configHandler) {
1448
+ var handler = {
1449
+ fn: configHandler,
1450
+ rm: function () {
1451
+ handler.fn = null;
1452
+ state = null;
1453
+ configHandler = null;
930
1454
  }
1455
+ };
1456
+ state.use(handler, configHandler);
1457
+ return handler;
1458
+ }
1459
+ function _createDynamicHandler(logger, target, inPlace) {
1460
+ var _a, _b;
1461
+ var dynamicConfig = getDynamicConfigHandler(target);
1462
+ if (dynamicConfig) {
1463
+ return dynamicConfig;
931
1464
  }
932
- if (typeof location === strShimObject && location) {
933
- return location;
1465
+ var uid = createUniqueNamespace("dyncfg", true);
1466
+ var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);
1467
+ var theState;
1468
+ function _notifyWatchers() {
1469
+ theState[_DYN_NOTIFY ]();
934
1470
  }
935
- return getInst(strLocation);
936
- }
937
- function getConsole() {
938
- if (typeof console !== strShimUndefined) {
939
- return console;
1471
+ function _setValue(target, name, value) {
1472
+ return _setDynamicProperty(theState, target, name, value);
1473
+ }
1474
+ function _watch(configHandler) {
1475
+ return _createAndUseHandler(theState, configHandler);
1476
+ }
1477
+ function _block(configHandler) {
1478
+ theState.use(null, configHandler);
1479
+ }
1480
+ var cfgHandler = (_a = {
1481
+ uid: null,
1482
+ cfg: newTarget
1483
+ },
1484
+ _a[_DYN_LOGGER ] = logger,
1485
+ _a[_DYN_NOTIFY ] = _notifyWatchers,
1486
+ _a.set = _setValue,
1487
+ _a[_DYN_WATCH ] = _watch,
1488
+ _a._block = _block,
1489
+ _a);
1490
+ objDefineProp(cfgHandler, "uid", (_b = {},
1491
+ _b[_DYN_CONFIGURABLE ] = false,
1492
+ _b[_DYN_ENUMERABLE ] = false,
1493
+ _b.writable = false,
1494
+ _b.value = uid,
1495
+ _b));
1496
+ theState = _createState(cfgHandler);
1497
+ _makeDynamicObject(theState, newTarget);
1498
+ return cfgHandler;
1499
+ }
1500
+ function _logInvalidAccess(logger, message) {
1501
+ if (logger) {
1502
+ logger[STR_WARN_TO_CONSOLE ](message);
1503
+ logger[_DYN_THROW_INTERNAL ](2 , 108 , message);
1504
+ }
1505
+ else {
1506
+ throwInvalidAccess(message);
940
1507
  }
941
- return getInst(strConsole);
942
- }
943
- function getPerformance() {
944
- return getInst(strPerformance);
945
- }
946
- function hasJSON() {
947
- return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);
948
1508
  }
949
- function getJSON() {
950
- if (hasJSON()) {
951
- return JSON || getInst(strJSON);
1509
+ function createDynamicConfig(config, defaultConfig, logger, inPlace) {
1510
+ var dynamic = _createDynamicHandler(logger, config || {}, inPlace);
1511
+ if (defaultConfig) {
1512
+ applyDefaults(dynamic.cfg, defaultConfig);
952
1513
  }
953
- return null;
1514
+ return dynamic;
954
1515
  }
955
- function getCrypto() {
956
- return getInst(strCrypto);
1516
+ function onConfigChange(config, configHandler, logger) {
1517
+ var handler = config[CFG_HANDLER_LINK] || config;
1518
+ if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {
1519
+ return handler[_DYN_WATCH ](configHandler);
1520
+ }
1521
+ _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));
1522
+ createDynamicConfig(config, null, logger)[_DYN_WATCH ](configHandler);
957
1523
  }
958
- function getMsCrypto() {
959
- return getInst(strMsCrypto);
1524
+
1525
+ var _aiNamespace = null;
1526
+ function _getExtensionNamespace() {
1527
+ var target = getInst("Microsoft");
1528
+ if (target) {
1529
+ _aiNamespace = target["ApplicationInsights"];
1530
+ }
1531
+ return _aiNamespace;
960
1532
  }
961
- function isIE() {
962
- var nav = getNavigator();
963
- if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
964
- _navUserAgentCheck = nav[_DYN_USER_AGENT ];
965
- var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE$1 ]();
966
- _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
1533
+ function getDebugExt(config) {
1534
+ var ns = _aiNamespace;
1535
+ if (!ns && config.disableDbgExt !== true) {
1536
+ ns = _aiNamespace || _getExtensionNamespace();
967
1537
  }
968
- return _isTrident;
1538
+ return ns ? ns["ChromeDbgExt"] : null;
969
1539
  }
970
1540
 
1541
+ var _a$3;
971
1542
  var AiNonUserActionablePrefix = "AI (Internal): ";
972
1543
  var AiUserActionablePrefix = "AI: ";
973
1544
  var AIInternalMessagePrefix = "AITR_";
1545
+ var defaultValues$2 = (_a$3 = {
1546
+ loggingLevelConsole: 0,
1547
+ loggingLevelTelemetry: 1,
1548
+ maxMessageLimit: 25
1549
+ },
1550
+ _a$3[_DYN_ENABLE_DEBUG_EXCEPTI5 ] = false,
1551
+ _a$3);
974
1552
  function _sanitizeDiagnosticText(text) {
975
1553
  if (text) {
976
1554
  return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
@@ -1026,8 +1604,8 @@
1026
1604
  _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
1027
1605
  _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
1028
1606
  _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
1029
- _self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebugExceptions; };
1030
- _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
1607
+ _self[_DYN_ENABLE_DEBUG_EXCEPTI5 ] = function () { return _enableDebugExceptions; };
1608
+ _self[_DYN_THROW_INTERNAL ] = function (severity, msgId, msg, properties, isUserAct) {
1031
1609
  if (isUserAct === void 0) { isUserAct = false; }
1032
1610
  var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
1033
1611
  if (_enableDebugExceptions) {
@@ -1100,10 +1678,14 @@
1100
1678
  }
1101
1679
  }
1102
1680
  function _setDefaultsFromConfig(config) {
1103
- _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
1104
- _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
1105
- _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
1106
- _enableDebugExceptions = getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false);
1681
+ var handler = createDynamicConfig(config, defaultValues$2, _self);
1682
+ handler[_DYN_WATCH ](function (details) {
1683
+ var config = details.cfg;
1684
+ _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 ];
1685
+ _loggingLevelTelemetry = config.loggingLevelTelemetry;
1686
+ _maxInternalMessageLimit = config.maxMessageLimit;
1687
+ _enableDebugExceptions = config[_DYN_ENABLE_DEBUG_EXCEPTI5 ];
1688
+ });
1107
1689
  }
1108
1690
  function _areInternalMessagesThrottled() {
1109
1691
  return _messageCount >= _maxInternalMessageLimit;
@@ -1124,7 +1706,7 @@
1124
1706
  }
1125
1707
  function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
1126
1708
  if (isUserAct === void 0) { isUserAct = false; }
1127
- _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
1709
+ _getLogger(logger)[_DYN_THROW_INTERNAL ](severity, msgId, msg, properties, isUserAct);
1128
1710
  }
1129
1711
  function _warnToConsole(logger, message) {
1130
1712
  _getLogger(logger)[STR_WARN_TO_CONSOLE ](message);
@@ -1240,146 +1822,6 @@
1240
1822
  return func();
1241
1823
  }
1242
1824
 
1243
- var UInt32Mask = 0x100000000;
1244
- var MaxUInt32 = 0xffffffff;
1245
- var _mwcSeeded = false;
1246
- var _mwcW = 123456789;
1247
- var _mwcZ = 987654321;
1248
- function _mwcSeed(seedValue) {
1249
- if (seedValue < 0) {
1250
- seedValue >>>= 0;
1251
- }
1252
- _mwcW = (123456789 + seedValue) & MaxUInt32;
1253
- _mwcZ = (987654321 - seedValue) & MaxUInt32;
1254
- _mwcSeeded = true;
1255
- }
1256
- function _autoSeedMwc() {
1257
- try {
1258
- var now = dateNow() & 0x7fffffff;
1259
- _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
1260
- }
1261
- catch (e) {
1262
- }
1263
- }
1264
- function random32(signed) {
1265
- var value = 0;
1266
- var c = getCrypto() || getMsCrypto();
1267
- if (c && c.getRandomValues) {
1268
- value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
1269
- }
1270
- if (value === 0 && isIE()) {
1271
- if (!_mwcSeeded) {
1272
- _autoSeedMwc();
1273
- }
1274
- value = mwcRandom32() & MaxUInt32;
1275
- }
1276
- if (value === 0) {
1277
- value = Math.floor((UInt32Mask * Math.random()) | 0);
1278
- }
1279
- if (!signed) {
1280
- value >>>= 0;
1281
- }
1282
- return value;
1283
- }
1284
- function mwcRandom32(signed) {
1285
- _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
1286
- _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
1287
- var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
1288
- if (!signed) {
1289
- value >>>= 0;
1290
- }
1291
- return value;
1292
- }
1293
- function newId(maxLength) {
1294
- if (maxLength === void 0) { maxLength = 22; }
1295
- var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1296
- var number = random32() >>> 0;
1297
- var chars = 0;
1298
- var result = STR_EMPTY;
1299
- while (result[_DYN_LENGTH$2 ] < maxLength) {
1300
- chars++;
1301
- result += base64chars.charAt(number & 0x3F);
1302
- number >>>= 6;
1303
- if (chars === 5) {
1304
- number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
1305
- chars = 0;
1306
- }
1307
- }
1308
- return result;
1309
- }
1310
-
1311
- var _objDefineProperty = ObjDefineProperty;
1312
- var version = "3.0.0-beta.2210-01";
1313
- var instanceName = "." + newId(6);
1314
- var _dataUid = 0;
1315
- function _createAccessor(target, prop, value) {
1316
- if (_objDefineProperty) {
1317
- try {
1318
- _objDefineProperty(target, prop, {
1319
- value: value,
1320
- enumerable: false,
1321
- configurable: true
1322
- });
1323
- return true;
1324
- }
1325
- catch (e) {
1326
- }
1327
- }
1328
- return false;
1329
- }
1330
- function _canAcceptData(target) {
1331
- return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
1332
- }
1333
- function _getCache(data, target) {
1334
- var theCache = target[data.id];
1335
- if (!theCache) {
1336
- theCache = {};
1337
- try {
1338
- if (_canAcceptData(target)) {
1339
- if (!_createAccessor(target, data.id, theCache)) {
1340
- target[data.id] = theCache;
1341
- }
1342
- }
1343
- }
1344
- catch (e) {
1345
- }
1346
- }
1347
- return theCache;
1348
- }
1349
- function createUniqueNamespace(name, includeVersion) {
1350
- if (includeVersion === void 0) { includeVersion = false; }
1351
- return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
1352
- }
1353
- function createElmNodeData(name) {
1354
- var data = {
1355
- id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
1356
- accept: function (target) {
1357
- return _canAcceptData(target);
1358
- },
1359
- get: function (target, name, defValue, addDefault) {
1360
- var theCache = target[data.id];
1361
- if (!theCache) {
1362
- if (addDefault) {
1363
- theCache = _getCache(data, target);
1364
- theCache[normalizeJsName(name)] = defValue;
1365
- }
1366
- return defValue;
1367
- }
1368
- return theCache[normalizeJsName(name)];
1369
- },
1370
- kill: function (target, name) {
1371
- if (target && target[name]) {
1372
- try {
1373
- delete target[name];
1374
- }
1375
- catch (e) {
1376
- }
1377
- }
1378
- }
1379
- };
1380
- return data;
1381
- }
1382
-
1383
1825
  function generateW3CId() {
1384
1826
  var hexValues = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
1385
1827
  var oct = STR_EMPTY, tmp;
@@ -1396,14 +1838,14 @@
1396
1838
  hexValues[tmp >> 28 & 0xF];
1397
1839
  }
1398
1840
  var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];
1399
- return oct[_DYN_SUBSTR ](0, 8) + oct[_DYN_SUBSTR ](9, 4) + "4" + oct[_DYN_SUBSTR ](13, 3) + clockSequenceHi + oct[_DYN_SUBSTR ](16, 3) + oct[_DYN_SUBSTR ](19, 12);
1841
+ return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + "4" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);
1400
1842
  }
1401
1843
 
1402
1844
  var INVALID_TRACE_ID = "00000000000000000000000000000000";
1403
1845
  var INVALID_SPAN_ID = "0000000000000000";
1404
1846
  function _isValid(value, len, invalidValue) {
1405
1847
  if (value && value[_DYN_LENGTH$2 ] === len && value !== invalidValue) {
1406
- return !!value.match(/^[\da-f]*$/);
1848
+ return !!value.match(/^[\da-f]*$/i);
1407
1849
  }
1408
1850
  return false;
1409
1851
  }
@@ -1432,9 +1874,12 @@
1432
1874
  }
1433
1875
  return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
1434
1876
  }
1435
- function _createInternalContext(telemetryChain, config, core, startAt) {
1877
+ function _createInternalContext(telemetryChain, dynamicConfig, core, startAt) {
1436
1878
  var _nextProxy = null;
1437
1879
  var _onComplete = [];
1880
+ if (!dynamicConfig) {
1881
+ dynamicConfig = createDynamicConfig({}, null, core[_DYN_LOGGER ]);
1882
+ }
1438
1883
  if (startAt !== null) {
1439
1884
  _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
1440
1885
  }
@@ -1445,12 +1890,12 @@
1445
1890
  return core;
1446
1891
  },
1447
1892
  diagLog: function () {
1448
- return safeGetLogger(core, config);
1893
+ return safeGetLogger(core, dynamicConfig.cfg);
1449
1894
  },
1450
1895
  getCfg: function () {
1451
- return config;
1896
+ return dynamicConfig.cfg;
1452
1897
  },
1453
- getExtCfg: _getExtCfg,
1898
+ getExtCfg: _resolveExtCfg,
1454
1899
  getConfig: _getConfig,
1455
1900
  hasNext: function () {
1456
1901
  return !!_nextProxy;
@@ -1497,48 +1942,51 @@
1497
1942
  }
1498
1943
  return nextProxy;
1499
1944
  }
1500
- function _getExtCfg(identifier, defaultValue, mergeDefault) {
1501
- if (defaultValue === void 0) { defaultValue = {}; }
1502
- if (mergeDefault === void 0) { mergeDefault = 0 ; }
1503
- var theConfig;
1504
- if (config) {
1505
- var extConfig = config[STR_EXTENSION_CONFIG ];
1506
- if (extConfig && identifier) {
1507
- theConfig = extConfig[identifier];
1508
- }
1509
- }
1510
- if (!theConfig) {
1511
- theConfig = defaultValue;
1512
- }
1513
- else if (isObject(defaultValue)) {
1514
- if (mergeDefault !== 0 ) {
1515
- var newConfig_1 = objExtend(true, defaultValue, theConfig);
1516
- if (config && mergeDefault === 2 ) {
1517
- objForEachKey(defaultValue, function (field) {
1518
- if (isNullOrUndefined(newConfig_1[field])) {
1519
- var cfgValue = config[field];
1520
- if (!isNullOrUndefined(cfgValue)) {
1521
- newConfig_1[field] = cfgValue;
1522
- }
1523
- }
1524
- });
1945
+ function _getExtCfg(identifier, createIfMissing) {
1946
+ var idCfg = null;
1947
+ if (dynamicConfig.cfg && identifier) {
1948
+ var extCfg = dynamicConfig.cfg[STR_EXTENSION_CONFIG ];
1949
+ if (!extCfg && createIfMissing) {
1950
+ dynamicConfig.set(dynamicConfig.cfg, "extensionConfig", {});
1951
+ extCfg = dynamicConfig.cfg[STR_EXTENSION_CONFIG ];
1952
+ }
1953
+ if (extCfg) {
1954
+ idCfg = extCfg[identifier];
1955
+ if (!idCfg && createIfMissing) {
1956
+ dynamicConfig.set(extCfg, identifier, {});
1957
+ idCfg = extCfg[identifier];
1525
1958
  }
1526
- theConfig = newConfig_1;
1527
1959
  }
1528
1960
  }
1529
- return theConfig;
1961
+ return idCfg;
1962
+ }
1963
+ function _resolveExtCfg(identifier, defaultValues) {
1964
+ var newConfig = _getExtCfg(identifier, true);
1965
+ if (defaultValues) {
1966
+ objForEachKey(defaultValues, function (field, defaultValue) {
1967
+ if (isNullOrUndefined(newConfig[field])) {
1968
+ var cfgValue = dynamicConfig.cfg[field];
1969
+ if (cfgValue || !isNullOrUndefined(cfgValue)) {
1970
+ newConfig[field] = cfgValue;
1971
+ }
1972
+ }
1973
+ _applyDefaultValue(newConfig, field, defaultValue);
1974
+ });
1975
+ }
1976
+ return applyDefaults(newConfig, defaultValues);
1530
1977
  }
1531
1978
  function _getConfig(identifier, field, defaultValue) {
1532
1979
  if (defaultValue === void 0) { defaultValue = false; }
1533
1980
  var theValue;
1534
- var extConfig = _getExtCfg(identifier, null);
1535
- if (extConfig && !isNullOrUndefined(extConfig[field])) {
1981
+ var extConfig = _getExtCfg(identifier, false);
1982
+ var rootConfig = dynamicConfig.cfg;
1983
+ if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {
1536
1984
  theValue = extConfig[field];
1537
1985
  }
1538
- else if (config && !isNullOrUndefined(config[field])) {
1539
- theValue = config[field];
1986
+ else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {
1987
+ theValue = rootConfig[field];
1540
1988
  }
1541
- return !isNullOrUndefined(theValue) ? theValue : defaultValue;
1989
+ return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;
1542
1990
  }
1543
1991
  function _iterateChain(cb) {
1544
1992
  var nextPlugin;
@@ -1551,27 +1999,30 @@
1551
1999
  }
1552
2000
  return context;
1553
2001
  }
1554
- function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
2002
+ function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {
2003
+ var config = createDynamicConfig(cfg);
1555
2004
  var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1556
2005
  var context = internalContext.ctx;
1557
2006
  function _processNext(env) {
1558
2007
  var nextPlugin = internalContext._next();
1559
- nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
2008
+ if (nextPlugin) {
2009
+ nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
2010
+ }
1560
2011
  return !nextPlugin;
1561
2012
  }
1562
2013
  function _createNew(plugins, startAt) {
1563
2014
  if (plugins === void 0) { plugins = null; }
1564
2015
  if (isArray(plugins)) {
1565
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
2016
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
1566
2017
  }
1567
- return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
2018
+ return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config.cfg, core, startAt);
1568
2019
  }
1569
2020
  context[_DYN_PROCESS_NEXT ] = _processNext;
1570
2021
  context[_DYN_CREATE_NEW ] = _createNew;
1571
2022
  return context;
1572
2023
  }
1573
2024
  function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
1574
- var config = core[_DYN_CONFIG ] || {};
2025
+ var config = createDynamicConfig(core[_DYN_CONFIG ]);
1575
2026
  var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1576
2027
  var context = internalContext.ctx;
1577
2028
  function _processNext(unloadState) {
@@ -1582,7 +2033,7 @@
1582
2033
  function _createNew(plugins, startAt) {
1583
2034
  if (plugins === void 0) { plugins = null; }
1584
2035
  if (isArray(plugins)) {
1585
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
2036
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
1586
2037
  }
1587
2038
  return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1588
2039
  }
@@ -1591,7 +2042,7 @@
1591
2042
  return context;
1592
2043
  }
1593
2044
  function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
1594
- var config = core[_DYN_CONFIG ] || {};
2045
+ var config = createDynamicConfig(core[_DYN_CONFIG ]);
1595
2046
  var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
1596
2047
  var context = internalContext.ctx;
1597
2048
  function _processNext(updateState) {
@@ -1604,7 +2055,7 @@
1604
2055
  function _createNew(plugins, startAt) {
1605
2056
  if (plugins === void 0) { plugins = null; }
1606
2057
  if (isArray(plugins)) {
1607
- plugins = createTelemetryProxyChain(plugins, config, core, startAt);
2058
+ plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);
1608
2059
  }
1609
2060
  return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
1610
2061
  }
@@ -1767,11 +2218,11 @@
1767
2218
  return objFreeze(proxyChain);
1768
2219
  }
1769
2220
 
2221
+ var _a$2, _b;
1770
2222
  var strToGMTString = "toGMTString";
1771
2223
  var strToUTCString = "toUTCString";
1772
2224
  var strCookie = "cookie";
1773
2225
  var strExpires = "expires";
1774
- var strEnabled = "enabled";
1775
2226
  var strIsCookieUseDisabled = "isCookieUseDisabled";
1776
2227
  var strDisableCookiesUsage = "disableCookiesUsage";
1777
2228
  var strConfigCookieMgr = "_ckMgr";
@@ -1781,6 +2232,18 @@
1781
2232
  var _doc = getDocument();
1782
2233
  var _cookieCache = {};
1783
2234
  var _globalCookieConfig = {};
2235
+ var defaultConfig = objDeepFreeze((_a$2 = {},
2236
+ _a$2[STR_DOMAIN] = { fb: "cookieDomain", dfVal: isNotNullOrUndefined },
2237
+ _a$2.path = { fb: "cookiePath", dfVal: isNotNullOrUndefined },
2238
+ _a$2.enabled = UNDEFINED_VALUE,
2239
+ _a$2));
2240
+ var rootDefaultConfig = (_b = {
2241
+ cookieCfg: {},
2242
+ cookieDomain: UNDEFINED_VALUE,
2243
+ cookiePath: UNDEFINED_VALUE
2244
+ },
2245
+ _b[strDisableCookiesUsage] = UNDEFINED_VALUE,
2246
+ _b);
1784
2247
  function _gblCookieMgr(config, logger) {
1785
2248
  var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];
1786
2249
  if (!inst) {
@@ -1795,22 +2258,6 @@
1795
2258
  }
1796
2259
  return true;
1797
2260
  }
1798
- function _createCookieMgrConfig(rootConfig) {
1799
- var cookieMgrCfg = rootConfig[_DYN_COOKIE_CFG ] = rootConfig[_DYN_COOKIE_CFG ] || {};
1800
- setValue(cookieMgrCfg, "domain", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);
1801
- setValue(cookieMgrCfg, "path", rootConfig.cookiePath || "/", null, isNullOrUndefined);
1802
- if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {
1803
- var cookieEnabled = void 0;
1804
- if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {
1805
- cookieEnabled = !rootConfig[strIsCookieUseDisabled];
1806
- }
1807
- if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
1808
- cookieEnabled = !rootConfig[strDisableCookiesUsage];
1809
- }
1810
- cookieMgrCfg[strEnabled] = cookieEnabled;
1811
- }
1812
- return cookieMgrCfg;
1813
- }
1814
2261
  function _isIgnoredCookie(cookieMgrCfg, name) {
1815
2262
  if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {
1816
2263
  return cookieMgrCfg.ignoreCookies[_DYN_INDEX_OF$1 ](name) !== -1;
@@ -1831,8 +2278,8 @@
1831
2278
  cookieMgr = core.getCookieMgr();
1832
2279
  }
1833
2280
  else if (config) {
1834
- var cookieCfg = config[_DYN_COOKIE_CFG ];
1835
- if (cookieCfg[strConfigCookieMgr]) {
2281
+ var cookieCfg = config.cookieCfg;
2282
+ if (cookieCfg && cookieCfg[strConfigCookieMgr]) {
1836
2283
  cookieMgr = cookieCfg[strConfigCookieMgr];
1837
2284
  }
1838
2285
  else {
@@ -1845,10 +2292,35 @@
1845
2292
  return cookieMgr;
1846
2293
  }
1847
2294
  function createCookieMgr(rootConfig, logger) {
1848
- var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);
1849
- var _path = cookieMgrConfig.path || "/";
1850
- var _domain = cookieMgrConfig.domain;
1851
- var _enabled = cookieMgrConfig[strEnabled] !== false;
2295
+ var cookieMgrConfig;
2296
+ var _path;
2297
+ var _domain;
2298
+ var _enabled;
2299
+ var _getCookieFn;
2300
+ var _setCookieFn;
2301
+ var _delCookieFn;
2302
+ rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;
2303
+ onConfigChange(rootConfig, function (details) {
2304
+ applyDefaults(details.cfg, rootDefaultConfig);
2305
+ cookieMgrConfig = applyDefaults(details.cfg.cookieCfg, defaultConfig);
2306
+ var isEnabled = cookieMgrConfig.enabled;
2307
+ if (isNullOrUndefined(isEnabled)) {
2308
+ var cookieEnabled = void 0;
2309
+ if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {
2310
+ cookieEnabled = !rootConfig[strIsCookieUseDisabled];
2311
+ }
2312
+ if (!isUndefined(rootConfig[strDisableCookiesUsage])) {
2313
+ cookieEnabled = !rootConfig[strDisableCookiesUsage];
2314
+ }
2315
+ isEnabled = cookieEnabled;
2316
+ }
2317
+ _path = cookieMgrConfig[STR_PATH ] || "/";
2318
+ _domain = cookieMgrConfig[STR_DOMAIN ];
2319
+ _enabled = isEnabled !== false;
2320
+ _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;
2321
+ _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
2322
+ _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;
2323
+ }, logger);
1852
2324
  var cookieMgr = {
1853
2325
  isEnabled: function () {
1854
2326
  var enabled = _enabled && areCookiesSupported(logger);
@@ -1871,7 +2343,7 @@
1871
2343
  theValue = strTrim(value[_DYN_SUBSTRING$1 ](0, idx));
1872
2344
  values = _extractParts(value[_DYN_SUBSTRING$1 ](idx + 1));
1873
2345
  }
1874
- setValue(values, "domain", domain || _domain, isTruthy, isUndefined);
2346
+ setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);
1875
2347
  if (!isNullOrUndefined(maxAgeSec)) {
1876
2348
  var _isIE = isIE();
1877
2349
  if (isUndefined(values[strExpires])) {
@@ -1897,9 +2369,8 @@
1897
2369
  setValue(values, "SameSite", "None", null, isUndefined);
1898
2370
  }
1899
2371
  }
1900
- setValue(values, "path", path || _path, null, isUndefined);
1901
- var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;
1902
- setCookieFn(name, _formatCookieValue(theValue, values));
2372
+ setValue(values, STR_PATH, path || _path, null, isUndefined);
2373
+ _setCookieFn(name, _formatCookieValue(theValue, values));
1903
2374
  result = true;
1904
2375
  }
1905
2376
  return result;
@@ -1907,7 +2378,7 @@
1907
2378
  get: function (name) {
1908
2379
  var value = STR_EMPTY;
1909
2380
  if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {
1910
- value = (cookieMgrConfig.getCookie || _getCookieValue)(name);
2381
+ value = _getCookieFn(name);
1911
2382
  }
1912
2383
  return value;
1913
2384
  },
@@ -1923,14 +2394,13 @@
1923
2394
  var result = false;
1924
2395
  if (areCookiesSupported(logger)) {
1925
2396
  var values = (_a = {},
1926
- _a["path"] = path ? path : "/",
2397
+ _a[STR_PATH] = path ? path : "/",
1927
2398
  _a[strExpires] = "Thu, 01 Jan 1970 00:00:01 GMT",
1928
2399
  _a);
1929
2400
  if (!isIE()) {
1930
2401
  values["max-age"] = "0";
1931
2402
  }
1932
- var delCookie = cookieMgrConfig.delCookie || _setCookieValue;
1933
- delCookie(name, _formatCookieValue(STR_EMPTY, values));
2403
+ _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));
1934
2404
  result = true;
1935
2405
  }
1936
2406
  return result;
@@ -1979,7 +2449,7 @@
1979
2449
  }
1980
2450
  function _formatCookieValue(value, values) {
1981
2451
  var cookieValue = value || STR_EMPTY;
1982
- objForEachKey(values, function (name, theValue) {
2452
+ objForEachKey$1(values, function (name, theValue) {
1983
2453
  cookieValue += "; " + name + (!isNullOrUndefined(theValue) ? "=" + theValue : STR_EMPTY);
1984
2454
  });
1985
2455
  return cookieValue;
@@ -2050,7 +2520,11 @@
2050
2520
  };
2051
2521
  }
2052
2522
 
2523
+ var _a$1;
2053
2524
  var strGetPlugin = "getPlugin";
2525
+ var defaultValues$1 = (_a$1 = {},
2526
+ _a$1[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: [] },
2527
+ _a$1);
2054
2528
  var BaseTelemetryPlugin = /** @class */ (function () {
2055
2529
  function BaseTelemetryPlugin() {
2056
2530
  var _self = this;
@@ -2086,7 +2560,12 @@
2086
2560
  var oldHooks = _hooks;
2087
2561
  _hooks = [];
2088
2562
  arrForEach(oldHooks, function (fn) {
2089
- fn.rm();
2563
+ try {
2564
+ (fn.rm || fn.remove)[_DYN_CALL ](fn);
2565
+ }
2566
+ catch (e) {
2567
+ _throwInternal(theUnloadCtx[_DYN_DIAG_LOG$1 ](), 2 , 73 , "Unloading:" + dumpObj(e));
2568
+ }
2090
2569
  });
2091
2570
  if (result === true) {
2092
2571
  theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
@@ -2129,12 +2608,7 @@
2129
2608
  };
2130
2609
  _self._addHook = function (hooks) {
2131
2610
  if (hooks) {
2132
- if (isArray(hooks)) {
2133
- _hooks = _hooks.concat(hooks);
2134
- }
2135
- else {
2136
- _hooks[_DYN_PUSH ](hooks);
2137
- }
2611
+ arrAppend(_hooks, hooks);
2138
2612
  }
2139
2613
  };
2140
2614
  proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
@@ -2175,9 +2649,7 @@
2175
2649
  return itemCtx;
2176
2650
  }
2177
2651
  function _setDefaults(config, core, pluginChain) {
2178
- if (config) {
2179
- setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
2180
- }
2652
+ createDynamicConfig(config, defaultValues$1, core[_DYN_LOGGER ]);
2181
2653
  if (!pluginChain && core) {
2182
2654
  pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
2183
2655
  }
@@ -2216,7 +2688,7 @@
2216
2688
  var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
2217
2689
  function _normalizeNamespace(name) {
2218
2690
  if (name && name[_DYN_REPLACE ]) {
2219
- return name.replace(/^\s*\.*|\.*\s*$/g, STR_EMPTY);
2691
+ return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
2220
2692
  }
2221
2693
  return name;
2222
2694
  }
@@ -2612,7 +3084,7 @@
2612
3084
  function dataSanitizeProperties(logger, properties) {
2613
3085
  if (properties) {
2614
3086
  var tempProps_1 = {};
2615
- objForEachKey(properties, function (prop, value) {
3087
+ objForEachKey$1(properties, function (prop, value) {
2616
3088
  if (isObject(value) && hasJSON()) {
2617
3089
  try {
2618
3090
  value = getJSON()[_DYN_STRINGIFY ](value);
@@ -2632,7 +3104,7 @@
2632
3104
  function dataSanitizeMeasurements(logger, measurements) {
2633
3105
  if (measurements) {
2634
3106
  var tempMeasurements_1 = {};
2635
- objForEachKey(measurements, function (measure, value) {
3107
+ objForEachKey$1(measurements, function (measure, value) {
2636
3108
  measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);
2637
3109
  tempMeasurements_1[measure] = value;
2638
3110
  });
@@ -2683,7 +3155,7 @@
2683
3155
  function urlParseHost(url, inclPort) {
2684
3156
  var fullHost = urlParseFullHost(url, inclPort) || "";
2685
3157
  if (fullHost) {
2686
- var match = fullHost.match(/(www[0-9]?\.)?(.[^/:]+)(\:[\d]+)?/i);
3158
+ var match = fullHost.match(/(www\d{0,5}\.)?([^\/:]{1,256})(:\d{1,20})?/i);
2687
3159
  if (match != null && match[_DYN_LENGTH$1 ] > 3 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
2688
3160
  return match[2] + (match[3] || "");
2689
3161
  }
@@ -2693,7 +3165,7 @@
2693
3165
  function urlParseFullHost(url, inclPort) {
2694
3166
  var result = null;
2695
3167
  if (url) {
2696
- var match = url.match(/(\w*):\/\/(.[^/:]+)(\:[\d]+)?/i);
3168
+ var match = url.match(/(\w{1,150}):\/\/([^\/:]{1,256})(:\d{1,20})?/i);
2697
3169
  if (match != null && match[_DYN_LENGTH$1 ] > 2 && isString(match[2]) && match[2][_DYN_LENGTH$1 ] > 0) {
2698
3170
  result = match[2] || "";
2699
3171
  if (inclPort && match[_DYN_LENGTH$1 ] > 2) {
@@ -3496,7 +3968,7 @@
3496
3968
  ,
3497
3969
  _a);
3498
3970
  if (!isNullOrUndefined(customProperties)) {
3499
- objForEachKey(customProperties, function (prop, value) {
3971
+ objForEachKey$1(customProperties, function (prop, value) {
3500
3972
  telemetryItem.data[prop] = value;
3501
3973
  });
3502
3974
  }
@@ -3620,28 +4092,20 @@
3620
4092
  var AnalyticsPluginIdentifier = "ApplicationInsightsAnalytics";
3621
4093
 
3622
4094
  var _DYN_TO_STRING = "toString";
3623
- var _DYN_DISABLE_EXCEPTION_TR0 = "disableExceptionTracking";
3624
- var _DYN_AUTO_TRACK_PAGE_VISI1 = "autoTrackPageVisitTime";
3625
- var _DYN_OVERRIDE_PAGE_VIEW_D2 = "overridePageViewDuration";
3626
- var _DYN_ENABLE_UNHANDLED_PRO3 = "enableUnhandledPromiseRejectionTracking";
3627
- var _DYN_SAMPLING_PERCENTAGE = "samplingPercentage";
3628
- var _DYN_IS_STORAGE_USE_DISAB4 = "isStorageUseDisabled";
3629
- var _DYN_IS_BROWSER_LINK_TRAC5 = "isBrowserLinkTrackingEnabled";
3630
- var _DYN_ENABLE_AUTO_ROUTE_TR6 = "enableAutoRouteTracking";
3631
- var _DYN_NAME_PREFIX = "namePrefix";
3632
- var _DYN_DISABLE_FLUSH_ON_BEF7 = "disableFlushOnBeforeUnload";
4095
+ var _DYN_IS_STORAGE_USE_DISAB0 = "isStorageUseDisabled";
4096
+ var _DYN__ADD_HOOK = "_addHook";
3633
4097
  var _DYN_CORE = "core";
3634
4098
  var _DYN_DATA_TYPE = "dataType";
3635
4099
  var _DYN_ENVELOPE_TYPE = "envelopeType";
3636
4100
  var _DYN_DIAG_LOG = "diagLog";
3637
4101
  var _DYN_TRACK = "track";
3638
4102
  var _DYN_TRACK_PAGE_VIEW = "trackPageView";
3639
- var _DYN_TRACK_PREVIOUS_PAGE_9 = "trackPreviousPageVisit";
3640
- var _DYN_SEND_PAGE_VIEW_INTER10 = "sendPageViewInternal";
3641
- var _DYN_SEND_PAGE_VIEW_PERFO11 = "sendPageViewPerformanceInternal";
3642
- var _DYN_POPULATE_PAGE_VIEW_P12 = "populatePageViewPerformanceEvent";
4103
+ var _DYN_TRACK_PREVIOUS_PAGE_1 = "trackPreviousPageVisit";
4104
+ var _DYN_SEND_PAGE_VIEW_INTER2 = "sendPageViewInternal";
4105
+ var _DYN_SEND_PAGE_VIEW_PERFO3 = "sendPageViewPerformanceInternal";
4106
+ var _DYN_POPULATE_PAGE_VIEW_P4 = "populatePageViewPerformanceEvent";
3643
4107
  var _DYN_HREF = "href";
3644
- var _DYN_SEND_EXCEPTION_INTER13 = "sendExceptionInternal";
4108
+ var _DYN_SEND_EXCEPTION_INTER5 = "sendExceptionInternal";
3645
4109
  var _DYN_EXCEPTION = "exception";
3646
4110
  var _DYN_ERROR = "error";
3647
4111
  var _DYN__ONERROR = "_onerror";
@@ -3649,22 +4113,23 @@
3649
4113
  var _DYN_LINE_NUMBER = "lineNumber";
3650
4114
  var _DYN_COLUMN_NUMBER = "columnNumber";
3651
4115
  var _DYN_MESSAGE = "message";
3652
- var _DYN__CREATE_AUTO_EXCEPTI14 = "CreateAutoException";
3653
- var _DYN_ADD_TELEMETRY_INITIA15 = "addTelemetryInitializer";
4116
+ var _DYN__CREATE_AUTO_EXCEPTI6 = "CreateAutoException";
4117
+ var _DYN_ADD_TELEMETRY_INITIA7 = "addTelemetryInitializer";
3654
4118
  var _DYN_DURATION = "duration";
3655
4119
  var _DYN_LENGTH = "length";
3656
- var _DYN_IS_PERFORMANCE_TIMIN16 = "isPerformanceTimingSupported";
3657
- var _DYN_GET_PERFORMANCE_TIMI17 = "getPerformanceTiming";
4120
+ var _DYN_AUTO_UNHANDLED_PROMI8 = "autoUnhandledPromiseInstrumented";
4121
+ var _DYN_IS_PERFORMANCE_TIMIN9 = "isPerformanceTimingSupported";
4122
+ var _DYN_GET_PERFORMANCE_TIMI10 = "getPerformanceTiming";
3658
4123
  var _DYN_NAVIGATION_START = "navigationStart";
3659
- var _DYN_SHOULD_COLLECT_DURAT18 = "shouldCollectDuration";
3660
- var _DYN_IS_PERFORMANCE_TIMIN19 = "isPerformanceTimingDataReady";
4124
+ var _DYN_SHOULD_COLLECT_DURAT11 = "shouldCollectDuration";
4125
+ var _DYN_IS_PERFORMANCE_TIMIN12 = "isPerformanceTimingDataReady";
3661
4126
  var _DYN_GET_ENTRIES_BY_TYPE = "getEntriesByType";
3662
4127
  var _DYN_RESPONSE_START = "responseStart";
3663
4128
  var _DYN_REQUEST_START = "requestStart";
3664
4129
  var _DYN_LOAD_EVENT_END = "loadEventEnd";
3665
4130
  var _DYN_RESPONSE_END = "responseEnd";
3666
4131
  var _DYN_CONNECT_END = "connectEnd";
3667
- var _DYN_PAGE_VISIT_START_TIM20 = "pageVisitStartTime";
4132
+ var _DYN_PAGE_VISIT_START_TIM13 = "pageVisitStartTime";
3668
4133
 
3669
4134
  var PageViewManager = /** @class */ (function () {
3670
4135
  function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {
@@ -3717,18 +4182,18 @@
3717
4182
  var location_1 = getLocation();
3718
4183
  uri = pageView.uri = location_1 && location_1[_DYN_HREF ] || "";
3719
4184
  }
3720
- if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN16 ]()) {
3721
- appInsights[_DYN_SEND_PAGE_VIEW_INTER10 ](pageView, customProperties);
4185
+ if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN9 ]()) {
4186
+ appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
3722
4187
  _flushChannels(true);
3723
4188
  _throwInternal(_logger, 2 , 25 , "trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.");
3724
4189
  return;
3725
4190
  }
3726
4191
  var pageViewSent = false;
3727
4192
  var customDuration;
3728
- var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI17 ]()[_DYN_NAVIGATION_START ];
4193
+ var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI10 ]()[_DYN_NAVIGATION_START ];
3729
4194
  if (start > 0) {
3730
4195
  customDuration = dateTimeUtilsDuration(start, +new Date);
3731
- if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT18 ](customDuration)) {
4196
+ if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT11 ](customDuration)) {
3732
4197
  customDuration = undefined;
3733
4198
  }
3734
4199
  }
@@ -3744,7 +4209,7 @@
3744
4209
  }
3745
4210
  customProperties[_DYN_DURATION ] = customDuration;
3746
4211
  }
3747
- appInsights[_DYN_SEND_PAGE_VIEW_INTER10 ](pageView, customProperties);
4212
+ appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
3748
4213
  _flushChannels(true);
3749
4214
  pageViewSent = true;
3750
4215
  }
@@ -3755,24 +4220,24 @@
3755
4220
  _addQueue(function () {
3756
4221
  var processed = false;
3757
4222
  try {
3758
- if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN19 ]()) {
4223
+ if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN12 ]()) {
3759
4224
  processed = true;
3760
4225
  var pageViewPerformance = {
3761
4226
  name: name,
3762
4227
  uri: uri
3763
4228
  };
3764
- pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 ](pageViewPerformance);
4229
+ pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 ](pageViewPerformance);
3765
4230
  if (!pageViewPerformance.isValid && !pageViewSent) {
3766
4231
  customProperties[_DYN_DURATION ] = customDuration;
3767
- appInsights[_DYN_SEND_PAGE_VIEW_INTER10 ](pageView, customProperties);
4232
+ appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
3768
4233
  }
3769
4234
  else {
3770
4235
  if (!pageViewSent) {
3771
4236
  customProperties[_DYN_DURATION ] = pageViewPerformance.durationMs;
3772
- appInsights[_DYN_SEND_PAGE_VIEW_INTER10 ](pageView, customProperties);
4237
+ appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
3773
4238
  }
3774
4239
  if (!pageViewPerformanceSent) {
3775
- appInsights[_DYN_SEND_PAGE_VIEW_PERFO11 ](pageViewPerformance, customProperties);
4240
+ appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 ](pageViewPerformance, customProperties);
3776
4241
  pageViewPerformanceSent = true;
3777
4242
  }
3778
4243
  }
@@ -3781,7 +4246,7 @@
3781
4246
  processed = true;
3782
4247
  if (!pageViewSent) {
3783
4248
  customProperties[_DYN_DURATION ] = maxDurationLimit;
3784
- appInsights[_DYN_SEND_PAGE_VIEW_INTER10 ](pageView, customProperties);
4249
+ appInsights[_DYN_SEND_PAGE_VIEW_INTER2 ](pageView, customProperties);
3785
4250
  }
3786
4251
  }
3787
4252
  }
@@ -3873,7 +4338,7 @@
3873
4338
  var _this = this;
3874
4339
  var _logger = safeGetLogger(core);
3875
4340
  dynamicProto(PageViewPerformanceManager, this, function (_self) {
3876
- _self[_DYN_POPULATE_PAGE_VIEW_P12 ] = function (pageViewPerformance) {
4341
+ _self[_DYN_POPULATE_PAGE_VIEW_P4 ] = function (pageViewPerformance) {
3877
4342
  pageViewPerformance.isValid = false;
3878
4343
  var navigationTiming = _getPerformanceNavigationTiming();
3879
4344
  var timing = _getPerformanceTiming();
@@ -3900,7 +4365,7 @@
3900
4365
  if (total === 0) {
3901
4366
  _throwInternal(_logger, 2 , 10 , "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom });
3902
4367
  }
3903
- else if (!_this[_DYN_SHOULD_COLLECT_DURAT18 ](total, network, request, response, dom)) {
4368
+ else if (!_this[_DYN_SHOULD_COLLECT_DURAT11 ](total, network, request, response, dom)) {
3904
4369
  _throwInternal(_logger, 2 , 45 , "Invalid page load duration value. Browser perf data won't be sent.", { total: total, network: network, request: request, response: response, dom: dom });
3905
4370
  }
3906
4371
  else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {
@@ -3917,10 +4382,10 @@
3917
4382
  }
3918
4383
  }
3919
4384
  };
3920
- _self[_DYN_GET_PERFORMANCE_TIMI17 ] = _getPerformanceTiming;
3921
- _self[_DYN_IS_PERFORMANCE_TIMIN16 ] = _isPerformanceTimingSupported;
3922
- _self[_DYN_IS_PERFORMANCE_TIMIN19 ] = _isPerformanceTimingDataReady;
3923
- _self[_DYN_SHOULD_COLLECT_DURAT18 ] = _shouldCollectDuration;
4385
+ _self[_DYN_GET_PERFORMANCE_TIMI10 ] = _getPerformanceTiming;
4386
+ _self[_DYN_IS_PERFORMANCE_TIMIN9 ] = _isPerformanceTimingSupported;
4387
+ _self[_DYN_IS_PERFORMANCE_TIMIN12 ] = _isPerformanceTimingDataReady;
4388
+ _self[_DYN_SHOULD_COLLECT_DURAT11 ] = _shouldCollectDuration;
3924
4389
  });
3925
4390
  }
3926
4391
  PageViewPerformanceManager.__ieDyn=1;
@@ -3931,7 +4396,7 @@
3931
4396
  function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {
3932
4397
  var prevPageVisitDataKeyName = "prevPageVisitData";
3933
4398
  dynamicProto(PageVisitTimeManager, this, function (_self) {
3934
- _self[_DYN_TRACK_PREVIOUS_PAGE_9 ] = function (currentPageName, currentPageUrl) {
4399
+ _self[_DYN_TRACK_PREVIOUS_PAGE_1 ] = function (currentPageName, currentPageUrl) {
3935
4400
  try {
3936
4401
  var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);
3937
4402
  if (prevPageVisitTimeData) {
@@ -3977,7 +4442,7 @@
3977
4442
  var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);
3978
4443
  if (pageVisitDataJsonStr && hasJSON()) {
3979
4444
  prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);
3980
- prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM20 ];
4445
+ prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM13 ];
3981
4446
  utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);
3982
4447
  }
3983
4448
  }
@@ -3997,7 +4462,7 @@
3997
4462
  }());
3998
4463
  var PageVisitData = /** @class */ (function () {
3999
4464
  function PageVisitData(pageName, pageUrl) {
4000
- this[_DYN_PAGE_VISIT_START_TIM20 ] = dateNow();
4465
+ this[_DYN_PAGE_VISIT_START_TIM13 ] = dateNow();
4001
4466
  this.pageName = pageName;
4002
4467
  this.pageUrl = pageUrl;
4003
4468
  }
@@ -4031,6 +4496,7 @@
4031
4496
  return Timing;
4032
4497
  }());
4033
4498
 
4499
+ var _a;
4034
4500
  var strEvent = "event";
4035
4501
  function _dispatchEvent(target, evnt) {
4036
4502
  if (target && target.dispatchEvent && evnt) {
@@ -4048,38 +4514,37 @@
4048
4514
  return error || "";
4049
4515
  }
4050
4516
  var MinMilliSeconds = 60000;
4051
- function _configMilliseconds(value, defValue) {
4517
+ var defaultValues = objDeepFreeze((_a = {
4518
+ sessionRenewalMs: { set: _chkConfigMilliseconds, v: 30 * 60 * 1000 },
4519
+ sessionExpirationMs: { set: _chkConfigMilliseconds, v: 24 * 60 * 60 * 1000 },
4520
+ disableExceptionTracking: { set: stringToBoolOrDefault },
4521
+ autoTrackPageVisitTime: { set: stringToBoolOrDefault },
4522
+ overridePageViewDuration: { set: stringToBoolOrDefault },
4523
+ enableUnhandledPromiseRejectionTracking: { set: stringToBoolOrDefault }
4524
+ },
4525
+ _a[_DYN_AUTO_UNHANDLED_PROMI8 ] = false,
4526
+ _a.samplingPercentage = { isVal: _chkSampling, v: 100 },
4527
+ _a.isStorageUseDisabled = { set: stringToBoolOrDefault },
4528
+ _a.isBrowserLinkTrackingEnabled = { set: stringToBoolOrDefault },
4529
+ _a.enableAutoRouteTracking = { set: stringToBoolOrDefault },
4530
+ _a.namePrefix = "",
4531
+ _a.enableDebug = { set: stringToBoolOrDefault },
4532
+ _a.disableFlushOnBeforeUnload = { set: stringToBoolOrDefault },
4533
+ _a.disableFlushOnUnload = { set: stringToBoolOrDefault, fb: "disableFlushOnBeforeUnload" },
4534
+ _a));
4535
+ function _chkConfigMilliseconds(value, defValue) {
4052
4536
  value = value || defValue;
4053
4537
  if (value < MinMilliSeconds) {
4054
4538
  value = MinMilliSeconds;
4055
4539
  }
4056
- return value;
4540
+ return +value;
4057
4541
  }
4058
- function _getDefaultConfig(config) {
4059
- if (!config) {
4060
- config = {};
4061
- }
4062
- config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);
4063
- config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);
4064
- config[_DYN_DISABLE_EXCEPTION_TR0 ] = stringToBoolOrDefault(config[_DYN_DISABLE_EXCEPTION_TR0 ]);
4065
- config[_DYN_AUTO_TRACK_PAGE_VISI1 ] = stringToBoolOrDefault(config[_DYN_AUTO_TRACK_PAGE_VISI1 ]);
4066
- config[_DYN_OVERRIDE_PAGE_VIEW_D2 ] = stringToBoolOrDefault(config[_DYN_OVERRIDE_PAGE_VIEW_D2 ]);
4067
- config[_DYN_ENABLE_UNHANDLED_PRO3 ] = stringToBoolOrDefault(config[_DYN_ENABLE_UNHANDLED_PRO3 ]);
4068
- if (isNaN(config[_DYN_SAMPLING_PERCENTAGE ]) || config[_DYN_SAMPLING_PERCENTAGE ] <= 0 || config[_DYN_SAMPLING_PERCENTAGE ] >= 100) {
4069
- config[_DYN_SAMPLING_PERCENTAGE ] = 100;
4070
- }
4071
- config[_DYN_IS_STORAGE_USE_DISAB4 ] = stringToBoolOrDefault(config[_DYN_IS_STORAGE_USE_DISAB4 ]);
4072
- config[_DYN_IS_BROWSER_LINK_TRAC5 ] = stringToBoolOrDefault(config[_DYN_IS_BROWSER_LINK_TRAC5 ]);
4073
- config[_DYN_ENABLE_AUTO_ROUTE_TR6 ] = stringToBoolOrDefault(config[_DYN_ENABLE_AUTO_ROUTE_TR6 ]);
4074
- config[_DYN_NAME_PREFIX ] = config[_DYN_NAME_PREFIX ] || "";
4075
- config.enableDebug = stringToBoolOrDefault(config.enableDebug);
4076
- config[_DYN_DISABLE_FLUSH_ON_BEF7 ] = stringToBoolOrDefault(config[_DYN_DISABLE_FLUSH_ON_BEF7 ]);
4077
- config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config[_DYN_DISABLE_FLUSH_ON_BEF7 ]);
4078
- return config;
4542
+ function _chkSampling(value) {
4543
+ return !isNaN(value) && value > 0 && value <= 100;
4079
4544
  }
4080
4545
  function _updateStorageUsage(extConfig) {
4081
- if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB4 ])) {
4082
- if (extConfig[_DYN_IS_STORAGE_USE_DISAB4 ]) {
4546
+ if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 ])) {
4547
+ if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 ]) {
4083
4548
  utlDisableStorage();
4084
4549
  }
4085
4550
  else {
@@ -4108,11 +4573,13 @@
4108
4573
  var _autoExceptionInstrumented;
4109
4574
  var _enableUnhandledPromiseRejectionTracking;
4110
4575
  var _autoUnhandledPromiseInstrumented;
4576
+ var _extConfig;
4577
+ var _autoTrackPageVisitTime;
4111
4578
  var _prevUri;
4112
4579
  var _currUri;
4113
4580
  var _evtNamespace;
4114
4581
  dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {
4115
- var _addHook = _base._addHook;
4582
+ var _addHook = _base[_DYN__ADD_HOOK ];
4116
4583
  _initDefaults();
4117
4584
  _self.getCookieMgr = function () {
4118
4585
  return safeGetCookieMgr(_self[_DYN_CORE ]);
@@ -4167,15 +4634,15 @@
4167
4634
  try {
4168
4635
  var inPv = pageView || {};
4169
4636
  _pageViewManager[_DYN_TRACK_PAGE_VIEW ](inPv, __assignFn(__assignFn(__assignFn({}, inPv.properties), inPv.measurements), customProperties));
4170
- if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 ]) {
4171
- _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 ](inPv.name, inPv.uri);
4637
+ if (_autoTrackPageVisitTime) {
4638
+ _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](inPv.name, inPv.uri);
4172
4639
  }
4173
4640
  }
4174
4641
  catch (e) {
4175
4642
  _throwInternal(1 , 37 , "trackPageView failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4176
4643
  }
4177
4644
  };
4178
- _self[_DYN_SEND_PAGE_VIEW_INTER10 ] = function (pageView, properties, systemProperties) {
4645
+ _self[_DYN_SEND_PAGE_VIEW_INTER2 ] = function (pageView, properties, systemProperties) {
4179
4646
  var doc = getDocument();
4180
4647
  if (doc) {
4181
4648
  pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;
@@ -4183,15 +4650,15 @@
4183
4650
  var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE ], PageView[_DYN_ENVELOPE_TYPE ], _self[_DYN_DIAG_LOG ](), properties, systemProperties);
4184
4651
  _self[_DYN_CORE ][_DYN_TRACK ](telemetryItem);
4185
4652
  };
4186
- _self[_DYN_SEND_PAGE_VIEW_PERFO11 ] = function (pageViewPerformance, properties, systemProperties) {
4653
+ _self[_DYN_SEND_PAGE_VIEW_PERFO3 ] = function (pageViewPerformance, properties, systemProperties) {
4187
4654
  var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE ], PageViewPerformance[_DYN_ENVELOPE_TYPE ], _self[_DYN_DIAG_LOG ](), properties, systemProperties);
4188
4655
  _self[_DYN_CORE ][_DYN_TRACK ](telemetryItem);
4189
4656
  };
4190
4657
  _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {
4191
4658
  var inPvp = pageViewPerformance || {};
4192
4659
  try {
4193
- _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 ](inPvp);
4194
- _self[_DYN_SEND_PAGE_VIEW_PERFO11 ](inPvp, customProperties);
4660
+ _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 ](inPvp);
4661
+ _self[_DYN_SEND_PAGE_VIEW_PERFO3 ](inPvp, customProperties);
4195
4662
  }
4196
4663
  catch (e) {
4197
4664
  _throwInternal(1 , 37 , "trackPageViewPerformance failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
@@ -4220,15 +4687,15 @@
4220
4687
  url = loc && loc[_DYN_HREF ] || "";
4221
4688
  }
4222
4689
  _pageTracking.stop(name, url, properties, measurement);
4223
- if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 ]) {
4224
- _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 ](name, url);
4690
+ if (_autoTrackPageVisitTime) {
4691
+ _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 ](name, url);
4225
4692
  }
4226
4693
  }
4227
4694
  catch (e) {
4228
4695
  _throwInternal(1 , 32 , "stopTrackPage failed, page view will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
4229
4696
  }
4230
4697
  };
4231
- _self[_DYN_SEND_EXCEPTION_INTER13 ] = function (exception, customProperties, systemProperties) {
4698
+ _self[_DYN_SEND_EXCEPTION_INTER5 ] = function (exception, customProperties, systemProperties) {
4232
4699
  var theError = exception[_DYN_EXCEPTION ] || exception[_DYN_ERROR ] || new Error(strNotSpecified);
4233
4700
  var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG ](), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();
4234
4701
  var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE ], Exception[_DYN_ENVELOPE_TYPE ], _self[_DYN_DIAG_LOG ](), customProperties, systemProperties);
@@ -4239,7 +4706,7 @@
4239
4706
  exception[_DYN_EXCEPTION ] = exception[_DYN_ERROR ];
4240
4707
  }
4241
4708
  try {
4242
- _self[_DYN_SEND_EXCEPTION_INTER13 ](exception, customProperties);
4709
+ _self[_DYN_SEND_EXCEPTION_INTER5 ](exception, customProperties);
4243
4710
  }
4244
4711
  catch (e) {
4245
4712
  _throwInternal(1 , 35 , "trackException failed, exception will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
@@ -4265,7 +4732,7 @@
4265
4732
  message: exception[_DYN_MESSAGE ]
4266
4733
  };
4267
4734
  if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR ])) {
4268
- _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI14 ]("Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.", url, exception[_DYN_LINE_NUMBER ] || 0, exception[_DYN_COLUMN_NUMBER ] || 0, error, evt, null, errorSrc), properties);
4735
+ _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 ]("Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.", url, exception[_DYN_LINE_NUMBER ] || 0, exception[_DYN_COLUMN_NUMBER ] || 0, error, evt, null, errorSrc), properties);
4269
4736
  }
4270
4737
  else {
4271
4738
  if (!exception[_DYN_ERROR_SRC ]) {
@@ -4280,9 +4747,9 @@
4280
4747
  + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });
4281
4748
  }
4282
4749
  };
4283
- _self[_DYN_ADD_TELEMETRY_INITIA15 ] = function (telemetryInitializer) {
4750
+ _self[_DYN_ADD_TELEMETRY_INITIA7 ] = function (telemetryInitializer) {
4284
4751
  if (_self[_DYN_CORE ]) {
4285
- return _self[_DYN_CORE ][_DYN_ADD_TELEMETRY_INITIA15 ](telemetryInitializer);
4752
+ return _self[_DYN_CORE ][_DYN_ADD_TELEMETRY_INITIA7 ](telemetryInitializer);
4286
4753
  }
4287
4754
  if (!_preInitTelemetryInitializers) {
4288
4755
  _preInitTelemetryInitializers = [];
@@ -4301,16 +4768,14 @@
4301
4768
  _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());
4302
4769
  if (_preInitTelemetryInitializers) {
4303
4770
  arrForEach(_preInitTelemetryInitializers, function (initializer) {
4304
- core[_DYN_ADD_TELEMETRY_INITIA15 ](initializer);
4771
+ core[_DYN_ADD_TELEMETRY_INITIA7 ](initializer);
4305
4772
  });
4306
4773
  _preInitTelemetryInitializers = null;
4307
4774
  }
4308
- var extConfig = _populateDefaults(config);
4309
- _updateStorageUsage(extConfig);
4775
+ _populateDefaults(config);
4310
4776
  _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE ]);
4311
- _pageViewManager = new PageViewManager(_this, extConfig[_DYN_OVERRIDE_PAGE_VIEW_D2 ], _self[_DYN_CORE ], _pageViewPerformanceManager);
4777
+ _pageViewManager = new PageViewManager(_this, _extConfig.overridePageViewDuration, _self[_DYN_CORE ], _pageViewPerformanceManager);
4312
4778
  _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG ](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });
4313
- _updateBrowserLinkTracking(extConfig, config);
4314
4779
  _eventTracking = new Timing(_self[_DYN_DIAG_LOG ](), "trackEvent");
4315
4780
  _eventTracking.action =
4316
4781
  function (name, url, duration, properties, measurements) {
@@ -4335,11 +4800,11 @@
4335
4800
  properties: properties,
4336
4801
  measurements: measurements
4337
4802
  };
4338
- _self[_DYN_SEND_PAGE_VIEW_INTER10 ](pageViewItem, properties);
4803
+ _self[_DYN_SEND_PAGE_VIEW_INTER2 ](pageViewItem, properties);
4339
4804
  };
4340
4805
  if (hasWindow()) {
4341
- _updateExceptionTracking(extConfig);
4342
- _updateLocationChange(extConfig);
4806
+ _updateExceptionTracking();
4807
+ _updateLocationChange();
4343
4808
  }
4344
4809
  }
4345
4810
  catch (e) {
@@ -4353,23 +4818,16 @@
4353
4818
  _initDefaults();
4354
4819
  };
4355
4820
  function _populateDefaults(config) {
4356
- var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE ]);
4357
4821
  var identifier = _self.identifier;
4358
- var defaults = _getDefaultConfig(config);
4359
- var extConfig = _self.config = ctx.getExtCfg(identifier);
4360
- if (defaults !== undefined) {
4361
- objForEachKey(defaults, function (field, value) {
4362
- extConfig[field] = ctx.getConfig(identifier, field, value);
4363
- if (extConfig[field] === undefined) {
4364
- extConfig = value;
4365
- }
4366
- });
4367
- }
4368
- return extConfig;
4369
- }
4370
- function _updateBrowserLinkTracking(extConfig, config) {
4371
- _isBrowserLinkTrackingEnabled = extConfig[_DYN_IS_BROWSER_LINK_TRAC5 ] || config[_DYN_IS_BROWSER_LINK_TRAC5 ];
4372
- _addDefaultTelemetryInitializers();
4822
+ var core = _self[_DYN_CORE ];
4823
+ _self[_DYN__ADD_HOOK ](onConfigChange(config, function () {
4824
+ var ctx = createProcessTelemetryContext(null, config, core);
4825
+ _extConfig = ctx.getExtCfg(identifier, defaultValues);
4826
+ _autoTrackPageVisitTime = _extConfig.autoTrackPageVisitTime;
4827
+ _updateStorageUsage(_extConfig);
4828
+ _isBrowserLinkTrackingEnabled = _extConfig.isBrowserLinkTrackingEnabled;
4829
+ _addDefaultTelemetryInitializers();
4830
+ }));
4373
4831
  }
4374
4832
  function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {
4375
4833
  var properties = { PageName: pageName, PageUrl: pageUrl };
@@ -4397,7 +4855,7 @@
4397
4855
  }
4398
4856
  return true;
4399
4857
  };
4400
- _self[_DYN_ADD_TELEMETRY_INITIA15 ](dropBrowserLinkRequests);
4858
+ _self[_DYN__ADD_HOOK ](_self[_DYN_ADD_TELEMETRY_INITIA7 ](dropBrowserLinkRequests));
4401
4859
  _browserLinkInitializerAdded = true;
4402
4860
  }
4403
4861
  }
@@ -4405,33 +4863,37 @@
4405
4863
  var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE ], Exception[_DYN_ENVELOPE_TYPE ], _self[_DYN_DIAG_LOG ](), properties);
4406
4864
  _self[_DYN_CORE ][_DYN_TRACK ](telemetryItem);
4407
4865
  }
4408
- function _updateExceptionTracking(extConfig) {
4866
+ function _updateExceptionTracking() {
4409
4867
  var _window = getWindow();
4410
4868
  var locn = getLocation(true);
4411
- _disableExceptionTracking = extConfig[_DYN_DISABLE_EXCEPTION_TR0 ];
4412
- if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {
4413
- _addHook(InstrumentEvent(_window, "onerror", {
4414
- ns: _evtNamespace,
4415
- rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
4416
- if (!_disableExceptionTracking && callDetails.rslt !== true) {
4417
- _self[_DYN__ONERROR ](Exception[_DYN__CREATE_AUTO_EXCEPTI14 ](message, url, lineNumber, columnNumber, error, callDetails.evt));
4869
+ _self[_DYN__ADD_HOOK ](onConfigChange(_extConfig, function () {
4870
+ _disableExceptionTracking = _extConfig.disableExceptionTracking;
4871
+ if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {
4872
+ _addHook(InstrumentEvent(_window, "onerror", {
4873
+ ns: _evtNamespace,
4874
+ rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {
4875
+ if (!_disableExceptionTracking && callDetails.rslt !== true) {
4876
+ _self[_DYN__ONERROR ](Exception[_DYN__CREATE_AUTO_EXCEPTI6 ](message, url, lineNumber, columnNumber, error, callDetails.evt));
4877
+ }
4418
4878
  }
4419
- }
4420
- }, false));
4421
- _autoExceptionInstrumented = true;
4422
- }
4423
- _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);
4879
+ }, false));
4880
+ _autoExceptionInstrumented = true;
4881
+ }
4882
+ }));
4883
+ _addUnhandledPromiseRejectionTracking(_window, locn);
4424
4884
  }
4425
- function _updateLocationChange(extConfig) {
4885
+ function _updateLocationChange() {
4426
4886
  var win = getWindow();
4427
4887
  var locn = getLocation(true);
4428
- _enableAutoRouteTracking = extConfig[_DYN_ENABLE_AUTO_ROUTE_TR6 ] === true;
4429
- if (win && _enableAutoRouteTracking && hasHistory()) {
4430
- var _history = getHistory();
4431
- if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
4432
- _addHistoryListener(extConfig, win, _history, locn);
4888
+ _self[_DYN__ADD_HOOK ](onConfigChange(_extConfig, function () {
4889
+ _enableAutoRouteTracking = _extConfig.enableAutoRouteTracking === true;
4890
+ if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {
4891
+ var _history = getHistory();
4892
+ if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strShimUndefined) {
4893
+ _addHistoryListener(win, _history, locn);
4894
+ }
4433
4895
  }
4434
- }
4896
+ }));
4435
4897
  }
4436
4898
  function _getDistributedTraceCtx() {
4437
4899
  var distributedTraceCtx = null;
@@ -4449,8 +4911,11 @@
4449
4911
  }
4450
4912
  return distributedTraceCtx;
4451
4913
  }
4452
- function _addHistoryListener(extConfig, win, history, locn) {
4453
- var namePrefix = extConfig[_DYN_NAME_PREFIX ] || "";
4914
+ function _addHistoryListener(win, history, locn) {
4915
+ if (_historyListenerAdded) {
4916
+ return;
4917
+ }
4918
+ var namePrefix = _extConfig.namePrefix || "";
4454
4919
  function _popstateHandler() {
4455
4920
  if (_enableAutoRouteTracking) {
4456
4921
  _dispatchEvent(win, createDomEvent(namePrefix + "locationchange"));
@@ -4479,44 +4944,44 @@
4479
4944
  }).bind(this, _prevUri), _self.autoRoutePVDelay);
4480
4945
  }
4481
4946
  }
4482
- if (!_historyListenerAdded) {
4483
- _addHook(InstrumentEvent(history, "pushState", {
4484
- ns: _evtNamespace,
4485
- rsp: function () {
4486
- if (_enableAutoRouteTracking) {
4487
- _dispatchEvent(win, createDomEvent(namePrefix + "pushState"));
4488
- _dispatchEvent(win, createDomEvent(namePrefix + "locationchange"));
4489
- }
4947
+ _addHook(InstrumentEvent(history, "pushState", {
4948
+ ns: _evtNamespace,
4949
+ rsp: function () {
4950
+ if (_enableAutoRouteTracking) {
4951
+ _dispatchEvent(win, createDomEvent(namePrefix + "pushState"));
4952
+ _dispatchEvent(win, createDomEvent(namePrefix + "locationchange"));
4490
4953
  }
4491
- }, true));
4492
- _addHook(InstrumentEvent(history, "replaceState", {
4493
- ns: _evtNamespace,
4494
- rsp: function () {
4495
- if (_enableAutoRouteTracking) {
4496
- _dispatchEvent(win, createDomEvent(namePrefix + "replaceState"));
4497
- _dispatchEvent(win, createDomEvent(namePrefix + "locationchange"));
4498
- }
4954
+ }
4955
+ }, true));
4956
+ _addHook(InstrumentEvent(history, "replaceState", {
4957
+ ns: _evtNamespace,
4958
+ rsp: function () {
4959
+ if (_enableAutoRouteTracking) {
4960
+ _dispatchEvent(win, createDomEvent(namePrefix + "replaceState"));
4961
+ _dispatchEvent(win, createDomEvent(namePrefix + "locationchange"));
4499
4962
  }
4500
- }, true));
4501
- eventOn(win, namePrefix + "popstate", _popstateHandler, _evtNamespace);
4502
- eventOn(win, namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
4503
- _historyListenerAdded = true;
4504
- }
4505
- }
4506
- function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {
4507
- _enableUnhandledPromiseRejectionTracking = extConfig[_DYN_ENABLE_UNHANDLED_PRO3 ] === true;
4508
- if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
4509
- _addHook(InstrumentEvent(_window, "onunhandledrejection", {
4510
- ns: _evtNamespace,
4511
- rsp: function (callDetails, error) {
4512
- if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
4513
- _self[_DYN__ONERROR ](Exception[_DYN__CREATE_AUTO_EXCEPTI14 ](_getReason(error), _location ? _location[_DYN_HREF ] : "", 0, 0, error, callDetails.evt));
4963
+ }
4964
+ }, true));
4965
+ eventOn(win, namePrefix + "popstate", _popstateHandler, _evtNamespace);
4966
+ eventOn(win, namePrefix + "locationchange", _locationChangeHandler, _evtNamespace);
4967
+ _historyListenerAdded = true;
4968
+ }
4969
+ function _addUnhandledPromiseRejectionTracking(_window, _location) {
4970
+ _self[_DYN__ADD_HOOK ](onConfigChange(_extConfig, function () {
4971
+ _enableUnhandledPromiseRejectionTracking = _extConfig.enableUnhandledPromiseRejectionTracking === true;
4972
+ _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI8 ];
4973
+ if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {
4974
+ _addHook(InstrumentEvent(_window, "onunhandledrejection", {
4975
+ ns: _evtNamespace,
4976
+ rsp: function (callDetails, error) {
4977
+ if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) {
4978
+ _self[_DYN__ONERROR ](Exception[_DYN__CREATE_AUTO_EXCEPTI6 ](_getReason(error), _location ? _location[_DYN_HREF ] : "", 0, 0, error, callDetails.evt));
4979
+ }
4514
4980
  }
4515
- }
4516
- }, false));
4517
- _autoUnhandledPromiseInstrumented = true;
4518
- extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;
4519
- }
4981
+ }, false));
4982
+ _extConfig[_DYN_AUTO_UNHANDLED_PROMI8 ] = _autoUnhandledPromiseInstrumented = true;
4983
+ }
4984
+ }));
4520
4985
  }
4521
4986
  function _throwInternal(severity, msgId, msg, properties, isUserAct) {
4522
4987
  _self[_DYN_DIAG_LOG ]().throwInternal(severity, msgId, msg, properties, isUserAct);
@@ -4536,10 +5001,17 @@
4536
5001
  _autoExceptionInstrumented = false;
4537
5002
  _enableUnhandledPromiseRejectionTracking = false;
4538
5003
  _autoUnhandledPromiseInstrumented = false;
5004
+ _autoTrackPageVisitTime = false;
4539
5005
  var location = getLocation(true);
4540
5006
  _prevUri = location && location[_DYN_HREF ] || "";
4541
5007
  _currUri = null;
4542
5008
  _evtNamespace = null;
5009
+ _extConfig = null;
5010
+ objDefineProp(_self, "config", {
5011
+ configurable: true,
5012
+ enumerable: true,
5013
+ get: function () { return _extConfig; }
5014
+ });
4543
5015
  }
4544
5016
  objDefineAccessors(_self, "_pageViewManager", function () { return _pageViewManager; });
4545
5017
  objDefineAccessors(_self, "_pageViewPerformanceManager", function () { return _pageViewPerformanceManager; });
@@ -4548,8 +5020,7 @@
4548
5020
  });
4549
5021
  return _this;
4550
5022
  }
4551
- AnalyticsPlugin.Version = "3.0.0-beta.2210-01";
4552
- AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;
5023
+ AnalyticsPlugin.Version = "3.0.0-beta.2210-03";
4553
5024
  return AnalyticsPlugin;
4554
5025
  }(BaseTelemetryPlugin));
4555
5026